|
@@ -17,7 +17,13 @@
|
|
|
<el-input v-model="form.content" type="textarea" placeholder="请输入内容" maxlength="64" show-word-limit> </el-input>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item v-if="nodeModelsData.length" label="下一节点审批人" prop="assigneeMap" required :rules="[{ required: true, message: '请选择下一节点审批人' }]">
|
|
|
+ <el-form-item
|
|
|
+ v-if="nodeModelsData.length"
|
|
|
+ label="下一节点审批人"
|
|
|
+ prop="assigneeMap"
|
|
|
+ required
|
|
|
+ :rules="[{ required: true, message: '请选择下一节点审批人' }]"
|
|
|
+ >
|
|
|
<div v-for="(item, index) in nodeModelsData" :key="index" class="flex">
|
|
|
<div v-if="item.selectMode" class="mr-2">
|
|
|
<el-tooltip content="添加用户" placement="bottom">
|
|
@@ -125,7 +131,8 @@ const datas = reactive({
|
|
|
active_selectOpts: {},
|
|
|
useSelectRef: null,
|
|
|
active_assigneeKey: null,
|
|
|
- maxSelectedLength: 1
|
|
|
+ maxSelectedLength: 1,
|
|
|
+ nodeTypeData: null
|
|
|
})
|
|
|
const {
|
|
|
formRef,
|
|
@@ -136,7 +143,8 @@ const {
|
|
|
active_selectOpts,
|
|
|
useSelectRef,
|
|
|
active_assigneeKey,
|
|
|
- maxSelectedLength
|
|
|
+ maxSelectedLength,
|
|
|
+ nodeTypeData
|
|
|
} = toRefs(datas)
|
|
|
const $myEmit = defineEmits(['update:modelValue', 'successCb'])
|
|
|
|
|
@@ -170,8 +178,9 @@ const appendToApprovalComments = label => {
|
|
|
}
|
|
|
|
|
|
const getNextNodesEv = async params => {
|
|
|
- const { nodeModels } = await nextNodesApi(params)
|
|
|
+ const { nodeModels, nodeType } = await nextNodesApi(params)
|
|
|
nodeModelsData.value = nodeModels || []
|
|
|
+ nodeTypeData.value = nodeType
|
|
|
/**
|
|
|
* "nodeModels": [
|
|
|
{
|
|
@@ -181,6 +190,10 @@ const getNextNodesEv = async params => {
|
|
|
{
|
|
|
"id": "0",
|
|
|
"name": "CEO"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": "1",
|
|
|
+ "name": "CEO1"
|
|
|
}
|
|
|
],
|
|
|
"selectMode": 1
|
|
@@ -216,7 +229,7 @@ const selectHandler = (item, type) => {
|
|
|
|
|
|
const submitForm = debounce(() => {
|
|
|
const isAgree = props.currentType === 'agree'
|
|
|
- if (isAgree) {
|
|
|
+ if (isAgree && nodeModelsData.value.length) {
|
|
|
const areAllAssigneeListsValid = validateNodeAssigneeLists()
|
|
|
form.assigneeMap = !areAllAssigneeListsValid ? null : nodeModelsData.value
|
|
|
}
|
|
@@ -229,6 +242,13 @@ const submitForm = debounce(() => {
|
|
|
let data = null
|
|
|
if (isAgree) {
|
|
|
// 同意
|
|
|
+ formData.termination = false
|
|
|
+ if (nodeModelsData.value.length) {
|
|
|
+ formData.assigneeMap = nodeModelsData.value.reduce((acc, node) => {
|
|
|
+ acc[node.nodeKey] = { assigneeList: node.nodeAssigneeList, type: nodeTypeData.value }
|
|
|
+ return acc
|
|
|
+ }, {}) // 组装成后台需要的格式
|
|
|
+ }
|
|
|
data = await processConsentTaskApi(formData)
|
|
|
} else {
|
|
|
// 拒绝
|