diff --git a/src/components/SmartTable/src/SmartTable.tsx b/src/components/SmartTable/src/SmartTable.tsx index 58097b741..829de8e60 100644 --- a/src/components/SmartTable/src/SmartTable.tsx +++ b/src/components/SmartTable/src/SmartTable.tsx @@ -38,6 +38,7 @@ export default defineComponent({ 'proxy-delete', 'add-edit-modal-show', 'cell-click', + 'page-change', ], setup(props, { emit, slots, attrs }) { const { t } = useI18n(); @@ -66,7 +67,8 @@ export default defineComponent({ setPagination, getShowPagination, setShowPagination, - } = usePagination(getTableProps); + handlePageChange, + } = usePagination(getTableProps, emit); /** * vxe-table函数 @@ -74,7 +76,7 @@ export default defineComponent({ const getTableInstance = () => unref(tableElRef); provide('getTableInstance', getTableInstance); const commitVxeProxy = (code, ...args) => getTableInstance()?.commitProxy(code, args); - const getCheckboxRecords = (isFull: boolean) => + const getCheckboxRecords = (isFull?: boolean) => getTableInstance()?.getCheckboxRecords(isFull) || []; const getRadioRecord = (isFull: boolean) => getTableInstance()?.getRadioRecord(isFull); const setRadioRow = (row: any) => getTableInstance()!.setRadioRow(row); @@ -227,6 +229,7 @@ export default defineComponent({ customConfig: unref(getCustomConfig), ...unref(getTableEvents), ...unref(computedTableClassStyle), + onPageChange: handlePageChange, }; }); diff --git a/src/components/SmartTable/src/hooks/usePagination.ts b/src/components/SmartTable/src/hooks/usePagination.ts index 62c484577..a9973f70e 100644 --- a/src/components/SmartTable/src/hooks/usePagination.ts +++ b/src/components/SmartTable/src/hooks/usePagination.ts @@ -11,7 +11,7 @@ import { VxeGridPropTypes } from 'vxe-table'; * @author zhongming4762 * @param propsRef */ -export const usePagination = (propsRef: ComputedRef) => { +export const usePagination = (propsRef: ComputedRef, emit: Function) => { const configRef = ref({}); const show = ref(true); @@ -53,6 +53,15 @@ export const usePagination = (propsRef: ComputedRef) => { }; }; + const handlePageChange = (eventData) => { + const { pageSize, currentPage } = eventData; + setPagination({ + pageSize, + currentPage, + }); + emit('page-change', eventData); + }; + const getPagination = () => unref(getPaginationInfo); function getShowPagination() { @@ -69,5 +78,6 @@ export const usePagination = (propsRef: ComputedRef) => { getPagination, getShowPagination, setShowPagination, + handlePageChange, }; };