@@ -108,7 +108,7 @@ const fApi = ref<ApiAttrs>()
108
108
// 指定审批人
109
109
const startUserSelectTasks: any = ref ([]) // 发起人需要选择审批人或抄送人的任务列表
110
110
const startUserSelectAssignees = ref ({}) // 发起人选择审批人的数据
111
- const hisStartUserSelectAssignees = ref ({}) // 历史发起人选择审批人的数据
111
+ const tempStartUserSelectAssignees = ref ({}) // 历史发起人选择审批人的数据,用于每次表单变更时,临时保存
112
112
const bpmnXML: any = ref (null ) // BPMN 数据
113
113
const simpleJson = ref <string | undefined >() // Simple 设计器数据 json 格式
114
114
@@ -156,17 +156,18 @@ const initProcessInfo = async (row: any, formVariables?: any) => {
156
156
}
157
157
}
158
158
159
- // 预测流程节点会因为输入的参数值而产生新的预测结果值,所以需重新预测一次
159
+ /** 预测流程节点会因为输入的参数值而产生新的预测结果值,所以需重新预测一次 */
160
160
watch (
161
161
detailForm .value ,
162
162
(newValue ) => {
163
163
if (newValue && Object .keys (newValue .value ).length > 0 ) {
164
- // 记录之前的节点审批人
165
- hisStartUserSelectAssignees .value = startUserSelectAssignees .value
164
+ // 记录之前的节点审批人
165
+ tempStartUserSelectAssignees .value = startUserSelectAssignees .value
166
166
startUserSelectAssignees .value = {}
167
+ // 加载最新的审批详情
167
168
getApprovalDetail ({
168
169
id: props .selectProcessDefinition .id ,
169
- processVariablesStr: newValue .value
170
+ processVariablesStr: JSON . stringify ( newValue .value ) // 解决 GET 无法传递对象的问题,后端 String 再转 JSON
170
171
})
171
172
}
172
173
},
@@ -178,11 +179,11 @@ watch(
178
179
/** 获取审批详情 */
179
180
const getApprovalDetail = async (row : any ) => {
180
181
try {
181
- // TODO 获取审批详情,设置 activityId 为发起人节点(为了获取字段权限。暂时只对 Simple 设计器有效)
182
+ // TODO 获取审批详情,设置 activityId 为发起人节点(为了获取字段权限。暂时只对 Simple 设计器有效);@jason:这里可以去掉 activityId 么?
182
183
const data = await ProcessInstanceApi .getApprovalDetail ({
183
184
processDefinitionId: row .id ,
184
185
activityId: NodeId .START_USER_NODE_ID ,
185
- processVariablesStr: JSON .stringify (row .processVariablesStr )
186
+ processVariablesStr: JSON .stringify (row .processVariablesStr ) // 解决 GET 无法传递对象的问题,后端 String 再转 JSON
186
187
})
187
188
188
189
if (! data ) {
@@ -196,17 +197,20 @@ const getApprovalDetail = async (row: any) => {
196
197
startUserSelectTasks .value = data .activityNodes ?.filter (
197
198
(node : ApprovalNodeInfo ) => CandidateStrategy .START_USER_SELECT === node .candidateStrategy
198
199
)
199
-
200
+ // 恢复之前的选择审批人
200
201
if (startUserSelectTasks .value ?.length > 0 ) {
201
202
for (const node of startUserSelectTasks .value ) {
202
- if (hisStartUserSelectAssignees .value [node .id ] && hisStartUserSelectAssignees .value [node .id ].length > 0 ) {
203
- startUserSelectAssignees .value [node .id ] = hisStartUserSelectAssignees .value [node .id ]
203
+ if (
204
+ tempStartUserSelectAssignees .value [node .id ] &&
205
+ tempStartUserSelectAssignees .value [node .id ].length > 0
206
+ ) {
207
+ startUserSelectAssignees .value [node .id ] = tempStartUserSelectAssignees .value [node .id ]
204
208
} else {
205
209
startUserSelectAssignees .value [node .id ] = []
206
210
}
207
211
}
208
212
}
209
-
213
+
210
214
// 获取表单字段权限
211
215
const formFieldsPermission = data .formFieldsPermission
212
216
// 设置表单字段权限
0 commit comments