From c2ff434b9db298ee19ccfce08e3caf79869a4970 Mon Sep 17 00:00:00 2001 From: zclzone Date: Thu, 20 Jun 2024 14:02:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20crud=E7=BB=84=E4=BB=B6handleSearch?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8F=82=E6=95=B0=E6=8E=A7=E5=88=B6=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E7=95=99=E5=9C=A8=E5=BD=93=E5=89=8D=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/me/crud/index.vue | 15 ++++++++++++--- src/composables/useCrud.js | 2 +- src/views/pms/role/index.vue | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) 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 = [