From 4b1614952b2875a1bbce0522f6f43a07cce8716b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B6=85=E5=87=A1?= <2508779859@qq.com> Date: Mon, 21 Apr 2025 22:12:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20:sparkles:=20pageModal=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=EF=BC=8C=E6=B7=BB=E5=8A=A0=E4=BA=8C=E7=BA=A7=E5=BC=B9?= =?UTF-8?q?=E7=AA=97=E4=B8=8E=E4=BD=BF=E7=94=A8=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/CURD/PageContent.vue | 40 ++-- src/components/CURD/PageModal.vue | 279 ++++++++++++++-------------- src/components/CURD/types.ts | 49 ++--- src/components/CURD/usePage.ts | 55 ++++-- src/views/demo/curd/config/add.ts | 20 +- src/views/demo/curd/config/add2.ts | 59 ++++++ src/views/demo/curd/index.vue | 58 +++--- 7 files changed, 331 insertions(+), 229 deletions(-) create mode 100644 src/views/demo/curd/config/add2.ts diff --git a/src/components/CURD/PageContent.vue b/src/components/CURD/PageContent.vue index fd461292..68e01afb 100644 --- a/src/components/CURD/PageContent.vue +++ b/src/components/CURD/PageContent.vue @@ -503,19 +503,24 @@ function handleDelete(id?: number | string) { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", - }).then(function () { - if (props.contentConfig.deleteAction) { - props.contentConfig.deleteAction(ids).then(() => { - ElMessage.success("删除成功"); - removeIds.value = []; - //清空选中项 - tableRef.value?.clearSelection(); - handleRefresh(true); - }); - } else { - ElMessage.error("未配置deleteAction"); - } - }); + }) + .then(function () { + if (props.contentConfig.deleteAction) { + props.contentConfig + .deleteAction(ids) + .then(() => { + ElMessage.success("删除成功"); + removeIds.value = []; + //清空选中项 + tableRef.value?.clearSelection(); + handleRefresh(true); + }) + .catch(() => {}); + } else { + ElMessage.error("未配置deleteAction"); + } + }) + .catch(() => {}); } // 导出表单 @@ -777,7 +782,14 @@ function handleToolbar(name: string) { // 操作列 function handleOperate(data: IOperateData) { - emit("operateClick", data); + switch (data.name) { + case "delete": + props.contentConfig?.deleteAction && handleDelete(data.row[pk]); + break; + default: + emit("operateClick", data); + break; + } } // 属性修改 diff --git a/src/components/CURD/PageModal.vue b/src/components/CURD/PageModal.vue index 10ab9952..fe1fa5c9 100644 --- a/src/components/CURD/PageModal.vue +++ b/src/components/CURD/PageModal.vue @@ -1,147 +1,151 @@