19
19
v-model =" detailForm.value"
20
20
:option =" detailForm.option"
21
21
@submit =" submitForm"
22
- >
23
- <!-- <template #type-startUserSelect>
24
- <el-col :span="24">
25
- <el-card class="mb-10px">
26
- <template #header>指定审批人</template>
27
- <el-form
28
- :model="startUserSelectAssignees"
29
- :rules="startUserSelectAssigneesFormRules"
30
- ref="startUserSelectAssigneesFormRef"
31
- >
32
- <el-form-item
33
- v-for="userTask in startUserSelectTasks"
34
- :key="userTask.id"
35
- :label="`任务【${userTask.name}】`"
36
- :prop="userTask.id"
37
- >
38
- <el-select
39
- v-model="startUserSelectAssignees[userTask.id]"
40
- multiple
41
- placeholder="请选择审批人"
42
- >
43
- <el-option
44
- v-for="user in userList"
45
- :key="user.id"
46
- :label="user.nickname"
47
- :value="user.id"
48
- />
49
- </el-select>
50
- </el-form-item>
51
- </el-form>
52
- </el-card>
53
- </el-col>
54
- </template> -->
55
- </form-create >
22
+ />
56
23
</el-col >
57
24
58
25
<el-col :span =" 6" :offset =" 1" >
62
29
:activity-nodes =" activityNodes"
63
30
:show-status-icon =" false"
64
31
:startUserSelectTasks =" startUserSelectTasks"
32
+ :startUserSelectAssignees =" startUserSelectAssignees"
33
+ @select-user-confirm =" selectUserConfirm"
65
34
/>
66
35
</el-col >
67
36
</el-row >
@@ -104,8 +73,7 @@ import type { ApiAttrs } from '@form-create/element-ui/types/config'
104
73
import { useTagsViewStore } from ' @/store/modules/tagsView'
105
74
import * as ProcessInstanceApi from ' @/api/bpm/processInstance'
106
75
import * as DefinitionApi from ' @/api/bpm/definition'
107
- // import * as UserApi from '@/api/system/user'
108
- import { activityNodes as aN , startUserSelectTasks as sUs } from ' ./mock'
76
+ // import { activityNodes as aN, startUserSelectTasks as sUs } from './mock'
109
77
110
78
defineOptions ({ name: ' ProcessDefinitionDetail' })
111
79
const props = defineProps <{
@@ -122,11 +90,8 @@ const detailForm: any = ref({
122
90
}) // 流程表单详情
123
91
const fApi = ref <ApiAttrs >()
124
92
// 指定审批人
125
- const startUserSelectAssigneesFormRef = ref () // 发起人选择审批人的表单 Ref
126
93
const startUserSelectTasks: any = ref ([]) // 发起人需要选择审批人的用户任务列表
127
94
const startUserSelectAssignees = ref ({}) // 发起人选择审批人的数据
128
- const startUserSelectAssigneesFormRules = ref ({}) // 发起人选择审批人的表单 Rules
129
- // const userList = ref<any[]>([]) // 用户列表
130
95
const bpmnXML: any = ref (null ) // BPMN 数据
131
96
/** 当前的Tab */
132
97
const activeTab = ref (' form' )
@@ -139,7 +104,6 @@ const initProcessInfo = async (row: any, formVariables?: any) => {
139
104
// 重置指定审批人
140
105
startUserSelectTasks .value = []
141
106
startUserSelectAssignees .value = {}
142
- startUserSelectAssigneesFormRules .value = {}
143
107
144
108
// 情况一:流程表单
145
109
if (row .formType == 10 ) {
@@ -164,25 +128,13 @@ const initProcessInfo = async (row: any, formVariables?: any) => {
164
128
if (processDefinitionDetail ) {
165
129
bpmnXML .value = processDefinitionDetail .bpmnXml
166
130
startUserSelectTasks .value = processDefinitionDetail .startUserSelectTasks
167
- startUserSelectTasks .value = sUs
168
131
// 设置指定审批人
169
- // if (startUserSelectTasks.value?.length > 0) {
170
- // detailForm.value.rule.push({
171
- // type: 'startUserSelect',
172
- // props: {
173
- // title: '指定审批人'
174
- // }
175
- // })
176
- // // 设置校验规则
177
- // for (const userTask of startUserSelectTasks.value) {
178
- // startUserSelectAssignees.value[userTask.id] = []
179
- // startUserSelectAssigneesFormRules.value[userTask.id] = [
180
- // { required: true, message: '请选择审批人', trigger: 'blur' }
181
- // ]
182
- // }
183
- // // 加载用户列表
184
- // userList.value = await UserApi.getSimpleUserList()
185
- // }
132
+ if (startUserSelectTasks .value ?.length > 0 ) {
133
+ for (const userTask of startUserSelectTasks .value ) {
134
+ // 初始化数据
135
+ startUserSelectAssignees .value [userTask .id ] = []
136
+ }
137
+ }
186
138
}
187
139
// 情况二:业务表单
188
140
} else if (row .formCustomCreatePath ) {
@@ -206,19 +158,23 @@ const getApprovalDetail = async (row: any) => {
206
158
}
207
159
// 获取审批节点,显示 Timeline 的数据
208
160
activityNodes .value = data .activityNodes
209
- activityNodes .value = aN
210
161
} finally {
211
162
}
212
163
}
213
164
/** 提交按钮 */
214
165
const submitForm = async (formData : any ) => {
215
- debugger
216
166
if (! fApi .value || ! props .selectProcessDefinition ) {
217
167
return
218
168
}
219
169
// 如果有指定审批人,需要校验
220
170
if (startUserSelectTasks .value ?.length > 0 ) {
221
- await startUserSelectAssigneesFormRef .value .validate ()
171
+ for (const userTask of startUserSelectTasks .value ) {
172
+ if (
173
+ Array .isArray (startUserSelectAssignees .value [userTask .id ]) &&
174
+ startUserSelectAssignees .value [userTask .id ].length === 0
175
+ )
176
+ return message .warning (` 请选择${userTask .name }的审批人 ` )
177
+ }
222
178
}
223
179
224
180
// 提交请求
@@ -245,6 +201,10 @@ const handleCancel = () => {
245
201
emit (' cancel' )
246
202
}
247
203
204
+ const selectUserConfirm = (id , userList ) => {
205
+ startUserSelectAssignees .value [id ] = userList ?.map ((item ) => item .id )
206
+ }
207
+
248
208
defineExpose ({ initProcessInfo })
249
209
</script >
250
210
0 commit comments