UNPKG

tdesign-vue-next

Version:
1 lines 26.1 kB
{"version":3,"file":"pagination.mjs","sources":["../../../components/pagination/pagination.tsx"],"sourcesContent":["import { defineComponent, computed, ref, watch, toRefs, getCurrentInstance } from 'vue';\nimport { isNaN, isObject } from 'lodash-es';\nimport {\n PageFirstIcon as TdPageFirstIcon,\n PageLastIcon as TdPageLastIcon,\n ChevronLeftIcon as TdChevronLeftIcon,\n ChevronRightIcon as TdChevronRightIcon,\n ChevronLeftDoubleIcon as TdChevronLeftDoubleIcon,\n ChevronRightDoubleIcon as TdChevronRightDoubleIcon,\n EllipsisIcon as TdEllipsisIcon,\n} from 'tdesign-icons-vue-next';\nimport { useConfig, useVModel, useTNodeJSX, useGlobalIcon, usePrefixClass, useDefaultValue } from '@tdesign/hooks';\n\nimport TInputNumber from '../input-number';\nimport { Select } from '../select';\nimport TInputAdornment from '../input-adornment';\nimport props from './props';\nimport { usePaginationClasses, useMoreAction } from './hooks';\n\nimport type { PageInfo, TdPaginationProps } from '../pagination/type';\n\nconst min = 1;\n\ntype PageChangeType = 'prevPage' | 'nextPage' | 'prevMorePage' | 'nextMorePage';\n\nexport default defineComponent({\n name: 'TPagination',\n props,\n\n setup(props: TdPaginationProps) {\n const { emit } = getCurrentInstance();\n\n const { modelValue, pageSize, current } = toRefs(props);\n const renderTNodeJSX = useTNodeJSX();\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onCurrentChange,\n 'current',\n );\n\n const [innerPageSize, setInnerPageSize] = useDefaultValue(\n pageSize,\n props.defaultPageSize,\n props.onPageSizeChange,\n 'pageSize',\n );\n\n const { t, globalConfig } = useConfig('pagination');\n const COMPONENT_NAME = usePrefixClass('pagination');\n const {\n PageFirstIcon,\n PageLastIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronLeftDoubleIcon,\n ChevronRightDoubleIcon,\n EllipsisIcon,\n } = useGlobalIcon({\n PageFirstIcon: TdPageFirstIcon,\n PageLastIcon: TdPageLastIcon,\n ChevronLeftIcon: TdChevronLeftIcon,\n ChevronRightIcon: TdChevronRightIcon,\n ChevronLeftDoubleIcon: TdChevronLeftDoubleIcon,\n ChevronRightDoubleIcon: TdChevronRightDoubleIcon,\n EllipsisIcon: TdEllipsisIcon,\n });\n\n const { pageCount, ...CLASS_MAP } = usePaginationClasses(props, innerCurrent, innerPageSize, COMPONENT_NAME);\n\n const { prevMore, isPrevMoreShow, curPageLeftCount, nextMore, isNextMoreShow, curPageRightCount } = useMoreAction(\n props,\n pageCount,\n innerCurrent,\n );\n\n const jumpIndex = ref(innerCurrent.value);\n\n const isFolded = computed(() => pageCount.value > props.maxPageBtn);\n\n const sizeOptions = computed<Array<{ label: string; value: number }>>(() => {\n const pageSizeOptions = props.pageSizeOptions as TdPaginationProps['pageSizeOptions'];\n const options = pageSizeOptions.map((option) =>\n isObject(option)\n ? option\n : {\n label: t(globalConfig.value.itemsPerPage, { size: option }),\n value: Number(option),\n },\n );\n return options.sort((a, b) => a.value - b.value);\n });\n\n const isMidEllipsis = computed(() => {\n return props.pageEllipsisMode === 'mid';\n });\n\n const pages = computed(() => {\n const array = [];\n let start;\n let end;\n\n if (isFolded.value) {\n if (isPrevMoreShow.value && isNextMoreShow.value) {\n start = innerCurrent.value - curPageLeftCount.value;\n end = innerCurrent.value + curPageRightCount.value;\n } else {\n const foldedStart = isMidEllipsis.value ? 2 : 1;\n const foldedEnd = isMidEllipsis.value ? pageCount.value - 1 : pageCount.value;\n if (isPrevMoreShow.value) {\n // 保证前面还有一页展示\n start = Math.min(innerCurrent.value - 1, pageCount.value - props.foldedMaxPageBtn + 1);\n } else {\n start = foldedStart;\n }\n\n if (isNextMoreShow.value) {\n // 保证后面还有一页展示\n end = Math.max(innerCurrent.value + 1, props.foldedMaxPageBtn);\n } else {\n end = foldedEnd;\n }\n }\n } else {\n start = 1;\n end = pageCount.value;\n }\n\n for (let i = start; i <= end; i++) {\n array.push(i);\n }\n return array;\n });\n\n // 如果页面总数发生变化并当前页数大于总页数则重置为1\n watch(\n () => pageCount.value,\n () => {\n if (innerCurrent.value > pageCount.value) innerCurrent.value = 1;\n },\n );\n watch(\n () => innerCurrent.value,\n (val) => (jumpIndex.value = val),\n );\n\n const toPage: (pageIndex: number, pageInfo?: PageInfo) => void = (pageIndex, pageInfo) => {\n if (props.disabled) {\n return;\n }\n let current = pageIndex;\n if (pageIndex < min) {\n current = min;\n } else if (pageIndex > pageCount.value) {\n current = pageCount.value;\n }\n if (innerCurrent.value !== current) {\n const prev = innerCurrent.value;\n pageInfo = pageInfo || {\n current,\n previous: prev,\n pageSize: innerPageSize.value,\n };\n if (pageInfo) {\n setInnerCurrent(current, pageInfo);\n props.onChange?.(pageInfo);\n } else {\n // 非主动更改时应仅更新modelValue不触发onCurrentChange事件\n emit('update:modelValue', current);\n }\n }\n };\n\n const handlePageChange = (type: PageChangeType) => {\n const pageChangeMap = {\n prevPage: () => toPage(innerCurrent.value - 1),\n nextPage: () => toPage(innerCurrent.value + 1),\n prevMorePage: () => toPage(Math.max(2, innerCurrent.value - props.foldedMaxPageBtn)),\n nextMorePage: () => toPage(Math.min(innerCurrent.value + props.foldedMaxPageBtn, pageCount.value - 1)),\n };\n pageChangeMap[type]();\n };\n\n const onSelectorChange: (e: string) => void = (e) => {\n if (props.disabled) {\n return;\n }\n const pageSize: number = parseInt(e, 10);\n let pageCount = 1;\n if (pageSize > 0) {\n pageCount = Math.max(Math.ceil(props.total / pageSize), 1);\n }\n\n let isIndexChange = false;\n\n if (innerCurrent.value > pageCount) {\n isIndexChange = true;\n }\n\n /**\n * 分页大小变化事件\n * @param {Number} pageSize 分页大小\n * @param {Number} index 当前页\n */\n const pageInfo = {\n current: isIndexChange ? pageCount : innerCurrent.value,\n previous: innerCurrent.value,\n pageSize,\n };\n setInnerPageSize(pageSize, pageInfo);\n if (isIndexChange) {\n toPage(pageCount, pageInfo);\n } else {\n props.onChange?.(pageInfo);\n }\n };\n\n const onJumperChange = (val: number) => {\n const currentIndex = Math.trunc(+val);\n if (isNaN(currentIndex)) return;\n jumpIndex.value = currentIndex;\n toPage(currentIndex);\n };\n\n return () => {\n const { total, pageSizeOptions, size, disabled, showPageSize } = props;\n if (pageCount.value < 1) return null;\n\n const Jumper = (\n <div class={CLASS_MAP.jumperClass.value}>\n {t(globalConfig.value.jumpTo)}\n <TInputAdornment append={`/ ${pageCount.value} ${t(globalConfig.value.page)}`}>\n <TInputNumber\n class={CLASS_MAP.jumperInputClass.value}\n v-model={jumpIndex.value}\n onBlur={onJumperChange}\n onEnter={onJumperChange}\n max={pageCount.value}\n min={min}\n size={size}\n disabled={disabled}\n theme=\"normal\"\n placeholder=\"\"\n />\n </TInputAdornment>\n </div>\n );\n\n return (\n <div class={CLASS_MAP.paginationClass.value}>\n {/* 数据统计区 */}\n {renderTNodeJSX(\n 'totalContent',\n <div class={CLASS_MAP.totalClass.value}>{t(globalConfig.value.total, { total })}</div>,\n )}\n {/* 分页器 */}\n {showPageSize && pageSizeOptions.length > 0 && (\n <Select\n size={size}\n value={innerPageSize}\n disabled={disabled}\n class={CLASS_MAP.sizerClass.value}\n autoWidth={true}\n onChange={onSelectorChange}\n options={sizeOptions.value}\n {...props.selectProps}\n />\n )}\n {/* 首页按钮 */}\n {props.showFirstAndLastPageBtn ? (\n <div class={CLASS_MAP.preBtnClass.value} onClick={() => toPage(1)}>\n <PageFirstIcon />\n </div>\n ) : null}\n {/* 向前按钮 */}\n {props.showPreviousAndNextBtn ? (\n <div class={CLASS_MAP.preBtnClass.value} onClick={() => handlePageChange('prevPage')}>\n <ChevronLeftIcon />\n </div>\n ) : null}\n {/* 常规版 */}\n {props.showPageNumber && props.theme === 'default' ? (\n <ul class={CLASS_MAP.btnWrapClass.value}>\n {isFolded.value && isMidEllipsis.value && (\n <li class={CLASS_MAP.getButtonClass(1)} onClick={() => toPage(min)}>\n {min}\n </li>\n )}\n {isFolded.value && isPrevMoreShow.value && isMidEllipsis.value ? (\n <li\n class={CLASS_MAP.btnMoreClass.value}\n onClick={() => handlePageChange('prevMorePage')}\n onMouseover={() => (prevMore.value = true)}\n onMouseout={() => (prevMore.value = false)}\n >\n {prevMore.value ? <ChevronLeftDoubleIcon /> : <EllipsisIcon />}\n </li>\n ) : null}\n {pages.value.map((i) => (\n <li class={CLASS_MAP.getButtonClass(i)} key={i} onClick={() => toPage(i)}>\n {i}\n </li>\n ))}\n {isFolded.value && isNextMoreShow.value && isMidEllipsis.value ? (\n <li\n class={CLASS_MAP.btnMoreClass.value}\n onClick={() => handlePageChange('nextMorePage')}\n onMouseover={() => (nextMore.value = true)}\n onMouseout={() => (nextMore.value = false)}\n >\n {nextMore.value ? <ChevronRightDoubleIcon /> : <EllipsisIcon />}\n </li>\n ) : null}\n {isFolded.value && isMidEllipsis.value ? (\n <li class={CLASS_MAP.getButtonClass(pageCount.value)} onClick={() => toPage(pageCount.value)}>\n {pageCount.value}\n </li>\n ) : null}\n </ul>\n ) : null}\n {/* 极简版 */}\n {props.theme === 'simple' && Jumper}\n {/* 向后按钮 */}\n {props.showPreviousAndNextBtn ? (\n <div class={CLASS_MAP.nextBtnClass.value} onClick={() => handlePageChange('nextPage')}>\n <ChevronRightIcon />\n </div>\n ) : null}\n {/* 尾页按钮 */}\n {props.showFirstAndLastPageBtn ? (\n <div class={CLASS_MAP.nextBtnClass.value} onClick={() => toPage(pageCount.value)}>\n <PageLastIcon />\n </div>\n ) : null}\n {/* 快速跳转 */}\n {props.theme === 'default' && props.showJumper && Jumper}\n </div>\n );\n };\n },\n});\n"],"names":["min","defineComponent","name","props","setup","_getCurrentInstance","getCurrentInstance","emit","_toRefs","toRefs","modelValue","pageSize","current","renderTNodeJSX","useTNodeJSX","_useVModel","useVModel","defaultCurrent","onCurrentChange","_useVModel2","_slicedToArray","innerCurrent","setInnerCurrent","_useDefaultValue","useDefaultValue","defaultPageSize","onPageSizeChange","_useDefaultValue2","innerPageSize","setInnerPageSize","_useConfig","useConfig","t","globalConfig","COMPONENT_NAME","usePrefixClass","_useGlobalIcon","useGlobalIcon","PageFirstIcon","TdPageFirstIcon","PageLastIcon","TdPageLastIcon","ChevronLeftIcon","TdChevronLeftIcon","ChevronRightIcon","TdChevronRightIcon","ChevronLeftDoubleIcon","TdChevronLeftDoubleIcon","ChevronRightDoubleIcon","TdChevronRightDoubleIcon","EllipsisIcon","TdEllipsisIcon","_usePaginationClasses","usePaginationClasses","pageCount","CLASS_MAP","_objectWithoutProperties","_excluded","_useMoreAction","useMoreAction","prevMore","isPrevMoreShow","curPageLeftCount","nextMore","isNextMoreShow","curPageRightCount","jumpIndex","ref","value","isFolded","computed","maxPageBtn","sizeOptions","pageSizeOptions","options","map","option","isObject","label","itemsPerPage","size","Number","sort","a","b","isMidEllipsis","pageEllipsisMode","pages","array","start","end","foldedStart","foldedEnd","Math","foldedMaxPageBtn","max","i","push","watch","val","toPage","pageIndex","pageInfo","disabled","prev","previous","_props2$onChange","onChange","handlePageChange","type","pageChangeMap","prevPage","nextPage","prevMorePage","nextMorePage","onSelectorChange","e","parseInt","ceil","total","isIndexChange","_props2$onChange2","onJumperChange","currentIndex","trunc","isNaN","showPageSize","Jumper","_createVNode","jumperClass","jumpTo","TInputAdornment","concat","page","jumperInputClass","onUpdateModelValue","$event","paginationClass","totalClass","length","Select","_mergeProps","sizerClass","selectProps","showFirstAndLastPageBtn","preBtnClass","onClick","showPreviousAndNextBtn","showPageNumber","theme","btnWrapClass","getButtonClass","btnMoreClass","onMouseover","onMouseout","nextBtnClass","showJumper"],"mappings":"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"}