@@ -142,6 +142,7 @@ const props = defineProps({
142
142
id: String ,
143
143
type: String
144
144
})
145
+ const prefix = inject (' prefix' )
145
146
const userTaskForm = ref ({
146
147
candidateStrategy: undefined , // 分配规则
147
148
candidateParam: [] // 分配选项
@@ -154,12 +155,39 @@ const deptTreeOptions = ref() // 部门树
154
155
const postOptions = ref <PostApi .PostVO []>([]) // 岗位列表
155
156
const userOptions = ref <UserApi .UserVO []>([]) // 用户列表
156
157
const userGroupOptions = ref <UserGroupApi .UserGroupVO []>([]) // 用户组列表
158
+ const otherExtensions = ref ()
157
159
158
160
const resetTaskForm = () => {
159
161
const businessObject = bpmnElement .value .businessObject
160
162
if (! businessObject ) {
161
163
return
162
164
}
165
+
166
+ const extensionElements = businessObject ?.extensionElements ?? []
167
+ userTaskForm .value .candidateStrategy = extensionElements .values ?.filter (
168
+ (ex ) => ex .$type === ` ${prefix }:CandidateStrategy `
169
+ )?.[0 ]?.value
170
+ const candidateParamStr = extensionElements .values ?.filter (
171
+ (ex ) => ex .$type === ` ${prefix }:CandidateParam `
172
+ )?.[0 ]?.value
173
+ if (candidateParamStr && candidateParamStr .length > 0 ) {
174
+ if (userTaskForm .value .candidateStrategy === 60 ) {
175
+ // 特殊:流程表达式,只有一个 input 输入框
176
+ userTaskForm .value .candidateParam = [candidateParamStr ]
177
+ } else {
178
+ userTaskForm .value .candidateParam = candidateParamStr .split (' ,' ).map ((item ) => item )
179
+ }
180
+ } else {
181
+ userTaskForm .value .candidateParam = []
182
+ }
183
+
184
+ otherExtensions .value =
185
+ extensionElements .values ?.filter (
186
+ (ex ) => ex .$type !== ` ${prefix }:CandidateStrategy ` && ex .$type !== ` ${prefix }:CandidateParam `
187
+ ) ?? []
188
+
189
+ // 改用通过extensionElements来存储数据
190
+ return
163
191
if (businessObject .candidateStrategy != undefined ) {
164
192
userTaskForm .value .candidateStrategy = parseInt (businessObject .candidateStrategy ) as any
165
193
} else {
@@ -187,6 +215,23 @@ const changeCandidateStrategy = () => {
187
215
188
216
/** 选中某个 options 时候,更新 bpmn 图 */
189
217
const updateElementTask = () => {
218
+ const extensions = bpmnInstances ().moddle .create (' bpmn:ExtensionElements' , {
219
+ values: [
220
+ ... otherExtensions .value ,
221
+ bpmnInstances ().moddle .create (` ${prefix }:CandidateStrategy ` , {
222
+ value: userTaskForm .value .candidateStrategy
223
+ }),
224
+ bpmnInstances ().moddle .create (` ${prefix }:CandidateParam ` , {
225
+ value: userTaskForm .value .candidateParam .join (' ,' )
226
+ })
227
+ ]
228
+ })
229
+ bpmnInstances ().modeling .updateProperties (toRaw (bpmnElement .value ), {
230
+ extensionElements: extensions
231
+ })
232
+
233
+ // 改用通过extensionElements来存储数据
234
+ return
190
235
bpmnInstances ().modeling .updateProperties (toRaw (bpmnElement .value ), {
191
236
candidateStrategy: userTaskForm .value .candidateStrategy ,
192
237
candidateParam: userTaskForm .value .candidateParam .join (' ,' )
0 commit comments