fix: 修复无需选人时新版审批对话框无法显示审批人的bug

This commit is contained in:
gaoyunqi
2024-04-02 11:47:11 +08:00
parent 730ca5ec3e
commit 6fa16313cc

View File

@ -10,7 +10,8 @@
<span>{{ formState.nextNodeName }}</span>
</a-form-item>
<a-form-item v-if="_action === 'agree' && !isEnd" label="审批人">
<a-select v-model:value="formState.assignees" :options="nextAssignees" max-tag-count="responsive" mode="multiple" placeholder="请选择审批人"></a-select>
<a-select v-show="chooseAssign" v-model:value="formState.assignees" :options="nextAssignees" max-tag-count="responsive" mode="multiple" placeholder="请选择审批人"></a-select>
<span v-show="!chooseAssign">{{ getAssigneeText() }}</span>
</a-form-item>
<a-form-item v-if="_action === 'reject'" label="退回至" name="rejectNode">
<a-select v-model:value="rejectNodeId">
@ -38,6 +39,7 @@
const nextAssignees = ref([]);
const loading = ref(false);
const isEnd = ref(false);
const chooseAssign = ref(true);
let _action = ref('agree');
let _processId = '';
@ -52,6 +54,14 @@
opinionList: ['同意。', '请领导审批。']
});
function getAssigneeText() {
// 注意这里用的是下拉框的数据结构 所以字段是value和label
return (nextAssignees.value || [])
.filter((item) => formState.assignees.includes(item.value))
.map((item) => item.label)
.join('、');
}
function toggleDialog({ isClose, action, callback, processId, taskId, nextNodes } = {}) {
if (isClose) {
isOpen.value = false;
@ -71,7 +81,7 @@
const nNode = nextNodes[0];
formState.nextNodeName = nNode.activityName;
isEnd.value = nNode.isEnd;
if (nNode.chooseAssign) {
if (nNode.userList?.length) {
const selected = [];
nextAssignees.value = nNode.userList.map((item) => {
if (item.checked || nNode.userList.length === 1) {
@ -84,7 +94,12 @@
};
});
formState.assignees = selected;
if (!nNode.chooseAssign) {
// 不需要选审批人的时候 所有备选人都要放到下个节点
formState.assignees = nNode.userList.map((item) => item['F_UserId']);
}
}
chooseAssign.value = nNode.chooseAssign;
}
if (action === 'reject') {
loadRejectNodeList();