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"