diff --git a/src/hooks/modules/useTable.ts b/src/hooks/modules/useTable.ts index 3f73176..d70e690 100644 --- a/src/hooks/modules/useTable.ts +++ b/src/hooks/modules/useTable.ts @@ -65,14 +65,21 @@ export function useTable(api: Api, options?: Options( deleteApi: () => Promise>, - options?: { title?: string, content?: string, successTip?: string, showModal?: boolean }, + options?: { title?: string, content?: string, successTip?: string, showModal?: boolean, multiple?: boolean }, ): Promise => { const onDelete = async () => { try { const res = await deleteApi() if (res.success) { + // 计算新总页数 + const deleteNum = options?.multiple ? selectedKeys.value.length : 1 + const totalPage = Math.ceil((pagination.total - deleteNum) / pagination.pageSize) + // 修正当前页码 + if (pagination.current > totalPage) { + pagination.current = totalPage > 0 ? totalPage : 1 + } + options?.multiple && (selectedKeys.value = []) Message.success(options?.successTip || '删除成功') - selectedKeys.value = [] await getTableData() } return res.success diff --git a/src/views/setting/message/index.vue b/src/views/setting/message/index.vue index de2c111..3e12bea 100644 --- a/src/views/setting/message/index.vue +++ b/src/views/setting/message/index.vue @@ -114,7 +114,7 @@ const onDelete = () => { if (!selectedKeys.value.length) { return Message.warning('请选择数据') } - return handleDelete(() => deleteMessage(selectedKeys.value), { showModal: false }) + return handleDelete(() => deleteMessage(selectedKeys.value), { showModal: false, multiple: true }) } // 标记为已读