fix(bpm): 修正超级管理员匹配方式(simple-list 不返回 username)
问题:/system/user/simple-list 只返回 {id, nickname, avatar, sex, deptId},
没有 username 字段,原来用 user.username === 'admin' 判断永远匹配不到:
- 流程设计里默认审批人拿不到候选人 → showText 为空 → 节点校验不通过
- 流程管理员也定位不到超级管理员
改动:三处统一改为 user.id === 1 || user.nickname === '超级管理员'
(内置超级管理员 id=1,昵称兜底)
- simple-process-designer.vue:默认审批人指到超级管理员
- index.vue:流程管理员写入超级管理员
- basic-info.vue:流程管理员强制回写超级管理员
| | |
| | | if (!processNodeTree.value) { |
| | | // 默认流程结构:发起人 → 审批人 → 结束 |
| | | // 审批人默认指定为超级管理员,保证新建/修改后三节点齐全且可直接保存(用户可自行调整审批人) |
| | | // simple-list 接口只返回 id/nickname(不含 username),所以用内置超管 id=1 匹配、昵称兜底 |
| | | const adminUser = userOptions.value.find( |
| | | (user: SystemUserApi.User) => user.username === 'admin', |
| | | (user: SystemUserApi.User) => |
| | | user.id === 1 || user.nickname === '超级管理员', |
| | | ); |
| | | const approveNode: SimpleFlowNode = { |
| | | id: `Activity_${Date.now()}_${Math.floor(Math.random() * 10000)}`, |
| | |
| | | // 流程管理员固定为超级管理员(客户要求,界面上不给选择)。 |
| | | // 同时把「当前操作人」一并写入:后端 updateModel 是「先校验管理员、后写入」, |
| | | // 只写超管的话,换一个账号再修改就会报「你不是该流程的管理员」,且无法自愈。 |
| | | // simple-list 接口只返回 id/nickname(不含 username),所以用内置超管 id=1 匹配、昵称兜底 |
| | | const adminUser = userList.value.find( |
| | | (user: SystemUserApi.User) => user.username === 'admin', |
| | | (user: SystemUserApi.User) => |
| | | user.id === 1 || user.nickname === '超级管理员', |
| | | ); |
| | | const currentUserId = userStore.userInfo?.id; |
| | | const managerIds: number[] = []; |
| | |
| | | // 注意:同时把「当前操作人」一并写入。因为后端 updateModel 是「先校验管理员、后写入」, |
| | | // 一旦模型被保存成只包含超管,用其他账号再次修改就会报 |
| | | // 「操作流程失败,原因:你不是该流程(xxx)的管理员」,且无法自愈。 |
| | | // simple-list 接口只返回 id/nickname(不含 username),所以用内置超管 id=1 匹配、昵称兜底 |
| | | const admin = props.userList.find( |
| | | (user: SystemUserApi.User) => user.username === 'admin', |
| | | (user: SystemUserApi.User) => |
| | | user.id === 1 || user.nickname === '超级管理员', |
| | | ); |
| | | const currentUserId = userStore.userInfo?.id; |
| | | const managerIds: number[] = []; |