diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index eac37a96..2abc2600 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -11,6 +11,7 @@ - 修复`inset`属性不起作用的问题 - 修复`useTable`与`BasicTable`实例的`reload`方法`await`表现不一致的问题 - 修复`clickToRowSelect`会无视行选择框 disabled 状态的问题 + - 修复`BasicTable`在某些情况下,分页会被重置的问题 - **BasicModal** - 修复点击遮罩、按下`Esc`键都不能关闭`Modal`的问题 - 修复点击关闭按钮、最大化按钮旁边的空白区域也会导致`Modal`关闭的问题 diff --git a/mock/demo/table-demo.ts b/mock/demo/table-demo.ts index 2fae797f..f3a0f16f 100644 --- a/mock/demo/table-demo.ts +++ b/mock/demo/table-demo.ts @@ -12,7 +12,7 @@ function getRandomPics(count = 10): string[] { const demoList = (() => { const result: any[] = []; - for (let index = 0; index < 60; index++) { + for (let index = 0; index < 200; index++) { result.push({ id: `${index}`, beginTime: '@datetime', diff --git a/src/components/Table/src/hooks/usePagination.tsx b/src/components/Table/src/hooks/usePagination.tsx index 4fb2362f..ba310bd1 100644 --- a/src/components/Table/src/hooks/usePagination.tsx +++ b/src/components/Table/src/hooks/usePagination.tsx @@ -1,6 +1,6 @@ import type { PaginationProps } from '../types/pagination'; import type { BasicTableProps } from '../types/table'; -import { computed, unref, ref, ComputedRef, watchEffect } from 'vue'; +import { computed, unref, ref, ComputedRef, watch } from 'vue'; import { LeftOutlined, RightOutlined } from '@ant-design/icons-vue'; import { isBoolean } from '/@/utils/is'; import { PAGE_SIZE, PAGE_SIZE_OPTIONS } from '../const'; @@ -27,15 +27,17 @@ export function usePagination(refProps: ComputedRef) { const configRef = ref({}); const show = ref(true); - watchEffect(() => { - const { pagination } = unref(refProps); - if (!isBoolean(pagination) && pagination) { - configRef.value = { - ...unref(configRef), - ...(pagination ?? {}), - }; - } - }); + watch( + () => unref(refProps).pagination, + (pagination) => { + if (!isBoolean(pagination) && pagination) { + configRef.value = { + ...unref(configRef), + ...(pagination ?? {}), + }; + } + }, + ); const getPaginationInfo = computed((): PaginationProps | boolean => { const { pagination } = unref(refProps); diff --git a/src/views/demo/table/FetchTable.vue b/src/views/demo/table/FetchTable.vue index 21c4dffe..8d9efa35 100644 --- a/src/views/demo/table/FetchTable.vue +++ b/src/views/demo/table/FetchTable.vue @@ -22,6 +22,7 @@ title: '远程加载示例', api: demoListApi, columns: getBasicColumns(), + pagination: { pageSize: 10 }, }); function handleReloadCurrent() { reload();