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 []