diff --git a/src/components/me/crud/index.vue b/src/components/me/crud/index.vue index 735430f..93e8407 100644 --- a/src/components/me/crud/index.vue +++ b/src/components/me/crud/index.vue @@ -117,6 +117,10 @@ async function handleQuery() { }) tableData.value = data?.pageData || data pagination.itemCount = data.total ?? data.length + if (pagination.itemCount && !tableData.value.length && pagination.page > 1) { + // 如果当前页数据为空,且总条数不为0,则返回上一页数据 + onPageChange(pagination.page - 1) + } } catch (error) { tableData.value = [] @@ -127,9 +131,14 @@ async function handleQuery() { loading.value = false } } -function handleSearch() { - pagination.page = 1 - handleQuery() + +function handleSearch(keepCurrentPage = false) { + if (keepCurrentPage) { + handleQuery() + } + else { + onPageChange(1) + } } async function handleReset() { const queryItems = { ...props.queryItems } diff --git a/src/composables/useCrud.js b/src/composables/useCrud.js index 6ce0a3b..d3c4425 100644 --- a/src/composables/useCrud.js +++ b/src/composables/useCrud.js @@ -100,7 +100,7 @@ export function useCrud({ name, initForm = {}, doCreate, doDelete, doUpdate, ref const data = await doDelete(id) $message.success('删除成功') d.loading = false - refresh(data) + refresh(data, true) } catch (error) { d.loading = false diff --git a/src/views/pms/role/index.vue b/src/views/pms/role/index.vue index bcf7dbf..36b85b1 100644 --- a/src/views/pms/role/index.vue +++ b/src/views/pms/role/index.vue @@ -120,7 +120,7 @@ const { modalRef, modalFormRef, modalAction, modalForm, handleAdd, handleDelete, doDelete: api.delete, doUpdate: api.update, initForm: { enable: true }, - refresh: () => $table.value?.handleSearch(), + refresh: (_, keepCurrentPage) => $table.value?.handleSearch(keepCurrentPage), }) const columns = [