diff --git a/inventory-backend/app/services/permission_service.py b/inventory-backend/app/services/permission_service.py index a89c5ba..9024154 100644 --- a/inventory-backend/app/services/permission_service.py +++ b/inventory-backend/app/services/permission_service.py @@ -152,9 +152,6 @@ class PermissionService: ) ).all() - crossDomain_deleted = any(p.target_code == 'crossDomain' for p in old_perms) - print(f"[权限保存] company_name={repr(company_name)} role={role_code}") - print(f"[权限保存] 删除旧权限 {len(old_perms)} 条, crossDomain 在其中: {crossDomain_deleted}") for p in old_perms: db.session.delete(p) @@ -183,16 +180,8 @@ class PermissionService: if new_records: session.add_all(new_records) - crossDomain_inserted = 'crossDomain' in (permissions or []) - print(f"[权限保存] 新权限 {len(permissions or [])} 条, crossDomain 在提交列表中: {crossDomain_inserted}") - # 4. 提交 session.commit() - # 验证:提交后 crossDomain 是否还在 - after = SysRolePermission.query.filter_by( - role_code=role_code, target_code='crossDomain' - ).first() - print(f"[权限保存] 提交后 crossDomain 仍在: {after is not None} (company_name={repr(after.company_name) if after else 'N/A'})") return True except SQLAlchemyError as e: diff --git a/inventory-web/src/views/system/PermissionConfig.vue b/inventory-web/src/views/system/PermissionConfig.vue index 6926289..d421657 100644 --- a/inventory-web/src/views/system/PermissionConfig.vue +++ b/inventory-web/src/views/system/PermissionConfig.vue @@ -256,8 +256,19 @@ const fetchTree = async () => { ] }; // 将虚拟节点放在最前面,然后交给 transformData 处理 - const rawData = [globalNode, ...(res.data || [])]; - + // ★ 从真实树中移除 crossDomain(已由虚拟节点 global_privileges 统一管理,避免重复) + const stripCrossDomain = (nodes: any[]) => { + nodes.forEach(node => { + if (node.children) { + node.children = node.children.filter((c: any) => c.code !== 'crossDomain') + stripCrossDomain(node.children) + } + }) + } + const realData = res.data || [] + stripCrossDomain(realData) + const rawData = [globalNode, ...realData]; + rawTreeData.value = rawData; tableData.value = transformData(rawData); } @@ -468,13 +479,8 @@ const handleSave = async () => { // 2. 操作权限 (crossDomain 不依赖页面可读) if (row.hasWrite && row.operationCode) { if (row.operationCode === 'crossDomain' || row.hasRead) { - if (row.operationCode === 'crossDomain') { - console.log('[DEBUG crossDomain] hasWrite=true, 将被加入提交列表. row.code=', row.code) - } permissions.push(row.operationCode) } - } else if (row.operationCode === 'crossDomain') { - console.log('[DEBUG crossDomain] hasWrite=', row.hasWrite, ', hasRead=', row.hasRead, ', 不会被加入提交列表') } // 3. 字段权限 (只有当页面可读时才有效)