From 86ae4fb2a1e7226b9dfb70addfe0bcd08e37c0d9 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Thu, 1 Oct 2026 14:03:03 +0800 Subject: [PATCH] =?UTF-8?q?feat(gerp):=20=E6=96=B0=E5=A2=9E=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E6=8A=8A=E9=83=A8=E9=97=A8=E5=91=98=E5=B7=A5=E5=85=B3?= =?UTF-8?q?=E8=81=94=E9=80=89=E6=8B=A9=E5=99=A8=E7=BD=AE=E9=A1=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 DEPT_EMPLOYEE_FIRST_TABLES(UserRoleWorkgroup / EmployeeProfile)并在 get_columns 收尾处把「部门员工关联」列移到表单最前:先选它即可带出员工/部门/角色,其余字段(职务/类型等)为派生或可选。实测顺序:工作组成员新增 = 部门员工关联 → 职务 → 类型。 --- gvsds/apps/gerp/form_service.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gvsds/apps/gerp/form_service.py b/gvsds/apps/gerp/form_service.py index f5b802a7..40e018ca 100644 --- a/gvsds/apps/gerp/form_service.py +++ b/gvsds/apps/gerp/form_service.py @@ -242,6 +242,9 @@ class FormService(FormServiceBase): # 订单系列表:由 OrderManager 统一管理(状态机保护),禁止裸增删改 ORDER_MANAGED_TABLES = {'Order', 'OrderItem'} + # 表单里「部门员工关联」选择器需置顶的表:先选它即可带出员工/部门/角色, + # 其余字段都是派生的或可选的(工作组成员新增:先选人 → 再选职务/类型) + DEPT_EMPLOYEE_FIRST_TABLES = {'UserRoleWorkgroup', 'EmployeeProfile'} # Order 表受保护字段:只能通过状态机/专用接口修改,禁止通用表单直改 ORDER_PROTECTED_FIELDS = { 'OrderStatus', 'OrderNO', 'ConfirmTime', 'PayTime', @@ -1130,6 +1133,14 @@ class FormService(FormServiceBase): 'required': False, 'visible': False, # 仅表单可见:列表已有"员工/部门"真实列 }] + columns + # 表单字段顺序:「部门员工关联」选择器置顶 —— 新增时先选它,员工/部门/角色随之确定, + # 其余字段(职务/类型等)都是派生或可选的 + if table_name in self.DEPT_EMPLOYEE_FIRST_TABLES: + for _i, _col in enumerate(columns): + if _col.get('field') in ('UserRoleUUID', 'UserRoleDepartmentUUID') and _col.get('entityPicker'): + if _i > 0: + columns = [_col] + columns[:_i] + columns[_i + 1:] + break return columns except Exception: return []