流程退回可选审批人
流程图显示更多流程信息(节点审批人/当前审批节点) 流程配置过滤不存在的元素的配置 支持子流程多实例的审批(传参isEnd)
This commit is contained in:
@ -24,6 +24,16 @@
|
||||
<a-select-option v-for="(item, index) in rejectNodeList" :key="index" :value="item.activityId">{{ item.activityName }}</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<template v-for="node in rejectNodeList">
|
||||
<a-form-item v-if="_action === 'reject'&&rejectNodeId===node.activityId" label="审批人">
|
||||
<a-select v-show="node.chooseAssign" v-model:value="node.assignees" :options="node.nextAssignees"
|
||||
:placeholder="'请选择' + node.activityName + '的审批人'" max-tag-count="responsive" mode="multiple"
|
||||
:filterOption="search"
|
||||
></a-select>
|
||||
<span v-show="!node.chooseAssign">{{ getAssigneeText(node) }}</span>
|
||||
</a-form-item>
|
||||
</template>
|
||||
|
||||
<a-form-item label="审批意见" name="opinion">
|
||||
<a-textarea v-model:value="formState.opinion" :maxlength="200" :rows="3" placeholder="请输入审批意见,不超过200字" />
|
||||
</a-form-item>
|
||||
@ -123,9 +133,36 @@
|
||||
}
|
||||
|
||||
async function loadRejectNodeList() {
|
||||
rejectNodeId.value='';
|
||||
let res = await getRejectNodeList(_processId, _taskId);
|
||||
if (res && Array.isArray(res) && res.length > 0) {
|
||||
rejectNodeList.value = res;
|
||||
dialogTitle.value = `退回`;
|
||||
if (res?.length) {
|
||||
res.forEach((nNode) => {
|
||||
if (!nNode.userList?.length) {
|
||||
return;
|
||||
}
|
||||
const selected = [];
|
||||
nNode.nextAssignees = nNode.userList.map((item) => {
|
||||
if (item.checked || nNode.userList.length === 1) {
|
||||
// 只有一个人的时候必须选他
|
||||
selected.push(item['F_UserId']);
|
||||
}
|
||||
return {
|
||||
value: item['F_UserId'],
|
||||
label: item['F_RealName']+(item.remarks?"("+item.remarks+")":""),
|
||||
item:item
|
||||
};
|
||||
});
|
||||
nNode.assignees = selected;
|
||||
if (!nNode.chooseAssign) {
|
||||
// 不需要选审批人的时候 所有备选人都要放到下个节点
|
||||
nNode.assignees = nNode.userList.map((item) => item['F_UserId']);
|
||||
}
|
||||
nNode.chooseAssign = nNode.chooseAssign;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -140,12 +177,24 @@
|
||||
nextTaskUser[nNode.activityId] = isEnd.value ? '' : nNode.assignees.join(',');
|
||||
});
|
||||
}
|
||||
if (_action.value === 'reject') {
|
||||
const isChoose = rejectNodeList.value.find((node) => node.activityId==rejectNodeId.value&&node.assignees?.length);
|
||||
if (!isChoose) {
|
||||
return message.error('请选择审批人');
|
||||
}
|
||||
rejectNodeList.value.forEach((nNode) => {
|
||||
if(nNode.activityId==rejectNodeId.value){
|
||||
nextTaskUser[nNode.activityId] = isEnd.value ? '' : nNode.assignees.join(',');
|
||||
}
|
||||
});
|
||||
}
|
||||
if (_callback && typeof _callback === 'function') {
|
||||
loading.value = true;
|
||||
_callback({
|
||||
opinion: formState.opinion,
|
||||
rejectNodeId: rejectNodeId.value,
|
||||
nextTaskUser
|
||||
nextTaskUser,
|
||||
isEnd
|
||||
});
|
||||
} else {
|
||||
isOpen.value = false;
|
||||
|
||||
Reference in New Issue
Block a user