From f806106c88ada08d5296027414faef1617c6ea67 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Thu, 1 Oct 2026 16:56:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(gerp):=20=E9=83=A8=E9=97=A8=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E4=B8=8D=E6=8F=90=E4=BE=9B=E6=96=B0=E5=A2=9E=E5=85=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E6=96=B0=E5=A2=9E=20creatable=20=E5=B1=9E?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CrudTable 新增 creatable 属性(默认 true)只隐藏「新增」按钮,保留编辑/删除/批量删除;部门详情页部门员工子表传 creatable=false —— 部门成员须走入职流程(EmployeeProfile → UserRole/UserRoleDepartment),本页只保留编辑职务与批量调整职务。 --- src/components/CrudTable.vue | 9 ++++++++- src/views/company/DepartmentDetail.vue | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/components/CrudTable.vue b/src/components/CrudTable.vue index 6f491e1..885ecb5 100644 --- a/src/components/CrudTable.vue +++ b/src/components/CrudTable.vue @@ -86,6 +86,11 @@ const props = withDefaults(defineProps<{ * (用于 role_scope 非管理员场景,如 Products/Orders 仅管理员可改)。 */ editable?: boolean + /** + * 是否允许新增(默认 true)。只隐藏「新增」按钮,保留编辑/删除/批量删除, + * 用于"记录不由本页新增"的场景(如部门详情的部门成员须走入职流程)。 + */ + creatable?: boolean /** * 新增/编辑表单容器形态(默认 'drawer' 右侧抽屉): * 传 'dialog' 改回居中弹窗 —— 表格自身嵌在弹窗里时必须传 'dialog' @@ -97,6 +102,8 @@ const props = withDefaults(defineProps<{ // 不给默认值时 props.editable 恒为 false,canEdit 判定失败 → 所有未传 editable 的 // 表格都退化成只读(新增/批量删除/行内编辑/删除全消失,操作栏只剩「查看」) editable: true, + // 同上:Boolean prop 不显式给默认值会被强制成 false,所有表格都会丢掉「新增」按钮 + creatable: true, // 默认抽屉:GERP 列表页的新增/编辑统一走右侧抽屉(详情页子表同理) formMode: 'drawer', }) @@ -514,7 +521,7 @@ defineExpose({
{{ title || table }}
- + 新增 { 部门员工
+ { title="部门员工" :query="{ DeptUUID: deptUUID, CompanyUUID: data?.CompanyUUID || '' }" :pk-field="'UserRoleDepartmentUUID'" + :creatable="false" selectable pageable :max-height="400"