chore:优化文件管理分页

This commit is contained in:
秋帆
2024-05-19 22:42:51 +08:00
parent f703854037
commit 00da9acdd0
3 changed files with 51 additions and 113 deletions

View File

@@ -3,11 +3,12 @@ import { useBreakpoint } from '@/hooks'
type Callback = () => void
type Options = {
export type Options = {
defaultPageSize: number
defaultSizeOptions: number[]
}
export function usePagination(callback: Callback, options: Options = { defaultPageSize: 10 }) {
export function usePagination(callback: Callback, options: Options = { defaultPageSize: 10, defaultSizeOptions: [10, 20, 30, 40, 50] }) {
const { breakpoint } = useBreakpoint()
const pagination = reactive({
@@ -15,6 +16,7 @@ export function usePagination(callback: Callback, options: Options = { defaultPa
showTotal: true,
current: 1,
pageSize: options.defaultPageSize,
pageSizeOptions: options.defaultSizeOptions,
total: 0,
simple: false,
onChange: (size: number) => {

View File

@@ -1,5 +1,6 @@
import type { TableData, TableInstance } from '@arco-design/web-vue'
import { Message, Modal } from '@arco-design/web-vue'
import type { Options as paginationOptions } from './usePagination'
import { usePagination } from '@/hooks'
interface Options<T> {
@@ -7,6 +8,7 @@ interface Options<T> {
onSuccess?: () => void
immediate?: boolean
rowKey?: keyof T
paginationOption: paginationOptions
}
type PaginationParams = { page: number, size: number }
@@ -14,7 +16,7 @@ type Api<T> = (params: PaginationParams) => Promise<ApiRes<PageRes<T[]>>> | Prom
export function useTable<T>(api: Api<T>, options?: Options<T>) {
const { formatResult, onSuccess, immediate, rowKey } = options || {}
const { pagination, setTotal } = usePagination(() => getTableData())
const { pagination, setTotal } = usePagination(() => getTableData(), options?.paginationOption)
const loading = ref(false)
const tableData = ref<T[]>([])