tav-ui
Version:
1 lines • 4.43 kB
Source Map (JSON)
{"version":3,"file":"usePagination2.mjs","sources":["../../../../../../../../packages/components/table/src/hooks/usePagination.ts"],"sourcesContent":["import { computed, ref, unref, watch } from 'vue'\nimport { tavI18n } from '@tav-ui/locales'\nimport { isBoolean } from '@tav-ui/utils/is'\nimport { PAGE_SIZE, PAGE_SIZE_OPTIONS } from '../const'\nimport type { ComputedRef } from 'vue'\nimport type { PaginationProps } from '../types/pagination'\nimport type { BasicTableProps } from '../types/table'\n\ninterface ItemRender {\n page: number\n type: 'page' | 'prev' | 'next'\n originalElement: any\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction itemRender({ page, type, originalElement }: ItemRender) {\n if (type === 'prev') {\n return tavI18n('Tav.tablePro.page.1')\n } else if (type === 'next') {\n return tavI18n('Tav.tablePro.page.2')\n }\n return originalElement\n}\n\nexport function usePagination(refProps: ComputedRef<BasicTableProps>) {\n const configRef = ref<PaginationProps>({})\n const show = ref(true)\n\n watch(\n () => unref(refProps).pagination,\n (pagination) => {\n if (!isBoolean(pagination) && pagination) {\n configRef.value = {\n ...unref(configRef),\n ...(pagination ?? {}),\n }\n }\n }\n )\n\n const getPaginationInfo = computed((): PaginationProps | boolean => {\n const { pagination } = unref(refProps)\n\n if (!unref(show) || (isBoolean(pagination) && !pagination)) {\n return false\n }\n\n return {\n current: 1,\n pageSize: PAGE_SIZE,\n size: 'small',\n defaultPageSize: PAGE_SIZE,\n showTotal: (total) => '共 {total} 条数据'.replace('{total}', `${total}`),\n showSizeChanger: true,\n pageSizeOptions: PAGE_SIZE_OPTIONS,\n itemRender,\n // showQuickJumper: true,\n ...(isBoolean(pagination) ? {} : pagination),\n ...unref(configRef),\n }\n })\n\n function setPagination(info: Partial<PaginationProps>) {\n const paginationInfo = unref(getPaginationInfo)\n configRef.value = {\n ...(!isBoolean(paginationInfo) ? paginationInfo : {}),\n ...info,\n }\n }\n\n function getPagination() {\n return unref(getPaginationInfo)\n }\n\n function getShowPagination() {\n return unref(show)\n }\n\n async function setShowPagination(flag: boolean) {\n show.value = flag\n }\n\n return { getPagination, getPaginationInfo, setShowPagination, getShowPagination, setPagination }\n}\n"],"names":[],"mappings":";;;;;;AAIA,SAAS,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;AACrD,EAAE,IAAI,IAAI,KAAK,MAAM,EAAE;AACvB,IAAI,OAAO,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC1C,GAAG,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE;AAC9B,IAAI,OAAO,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,OAAO,eAAe,CAAC;AACzB,CAAC;AACM,SAAS,aAAa,CAAC,QAAQ,EAAE;AACxC,EAAE,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5B,EAAE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAC,UAAU,KAAK;AAC1D,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,EAAE;AAC9C,MAAM,SAAS,CAAC,KAAK,GAAG;AACxB,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;AAC3B,QAAQ,GAAG,UAAU,IAAI,EAAE;AAC3B,OAAO,CAAC;AACR,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM;AAC3C,IAAI,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE;AAC9D,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,OAAO;AACX,MAAM,OAAO,EAAE,CAAC;AAChB,MAAM,QAAQ,EAAE,SAAS;AACzB,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,eAAe,EAAE,SAAS;AAChC,MAAM,SAAS,EAAE,CAAC,KAAK,KAAK,mCAAmC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9F,MAAM,eAAe,EAAE,IAAI;AAC3B,MAAM,eAAe,EAAE,iBAAiB;AACxC,MAAM,UAAU;AAChB,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,UAAU;AAChD,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;AACzB,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL,EAAE,SAAS,aAAa,CAAC,IAAI,EAAE;AAC/B,IAAI,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACpD,IAAI,SAAS,CAAC,KAAK,GAAG;AACtB,MAAM,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,EAAE;AACzD,MAAM,GAAG,IAAI;AACb,KAAK,CAAC;AACN,GAAG;AACH,EAAE,SAAS,aAAa,GAAG;AAC3B,IAAI,OAAO,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,SAAS,iBAAiB,GAAG;AAC/B,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AACvB,GAAG;AACH,EAAE,eAAe,iBAAiB,CAAC,IAAI,EAAE;AACzC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACnG;;;;"}