Skip to content

Commit abdaf2e

Browse files
committed
refactor: 通过extensionElements来存储候选审批人
1 parent eb6f3a3 commit abdaf2e

File tree

1 file changed

+45
-0
lines changed
  • src/components/bpmnProcessDesigner/package/penal/task/task-components

1 file changed

+45
-0
lines changed

src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ const props = defineProps({
142142
id: String,
143143
type: String
144144
})
145+
const prefix = inject('prefix')
145146
const userTaskForm = ref({
146147
candidateStrategy: undefined, // 分配规则
147148
candidateParam: [] // 分配选项
@@ -154,12 +155,39 @@ const deptTreeOptions = ref() // 部门树
154155
const postOptions = ref<PostApi.PostVO[]>([]) // 岗位列表
155156
const userOptions = ref<UserApi.UserVO[]>([]) // 用户列表
156157
const userGroupOptions = ref<UserGroupApi.UserGroupVO[]>([]) // 用户组列表
158+
const otherExtensions = ref()
157159
158160
const resetTaskForm = () => {
159161
const businessObject = bpmnElement.value.businessObject
160162
if (!businessObject) {
161163
return
162164
}
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
163191
if (businessObject.candidateStrategy != undefined) {
164192
userTaskForm.value.candidateStrategy = parseInt(businessObject.candidateStrategy) as any
165193
} else {
@@ -187,6 +215,23 @@ const changeCandidateStrategy = () => {
187215
188216
/** 选中某个 options 时候,更新 bpmn 图 */
189217
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
190235
bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {
191236
candidateStrategy: userTaskForm.value.candidateStrategy,
192237
candidateParam: userTaskForm.value.candidateParam.join(',')

0 commit comments

Comments
 (0)