feat:流程自动审批功能
1.如果触发了自动审批,重新get过当前流程的taskList 重新执行isPrevChooseApprove来回吐出新的result ,给前端 并且把该次是否执行过isAutoAgree 回调给前端 2.前端接收到isAutoAgree,需要在result 中获取新的task 来调用原本的onApproveClick 来重新弹框给客户预选审批人 3.在返回值中。已approveUserIds 和当前的userStore.userInfo.id对比,是否是新的taskId节点的待审人,是就继续弹层触发选人逻辑,不是的话flowSuccess
This commit is contained in:
@ -83,7 +83,9 @@
|
||||
import ProcessInformation from '/@/views/workflow/task/components/flow/ProcessInformation.vue';
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import { useUserStore } from '/@/store/modules/user';
|
||||
|
||||
const userStore = useUserStore();
|
||||
const { t } = useI18n();
|
||||
const { notification } = useMessage();
|
||||
|
||||
@ -187,8 +189,10 @@
|
||||
tabStore.closeTab(currentRoute, router);
|
||||
}
|
||||
|
||||
async function onApproveClick() {
|
||||
await submit();
|
||||
async function onApproveClick(isAutoAgreeBreak = false) {
|
||||
if (!isAutoAgreeBreak) {
|
||||
await submit();
|
||||
}
|
||||
if (!validateSuccess.value) {
|
||||
return;
|
||||
}
|
||||
@ -196,6 +200,10 @@
|
||||
const nextNodes = await postGetNextTaskMaybeArrival(params);
|
||||
approvalData.approvedType = ApproveType.AGREE;
|
||||
approvalData.approvedResult = ApproveCode.AGREE;
|
||||
//如果是自动同意触发的,关闭弹层的loading
|
||||
if (isAutoAgreeBreak) {
|
||||
opinionDlg.value.stopLoading()
|
||||
}
|
||||
opinionDlg.value.toggleDialog({
|
||||
action: 'agree',
|
||||
nextNodes,
|
||||
@ -422,9 +430,22 @@
|
||||
try {
|
||||
if (validateSuccess.value || values === 'reject' || values === 'finish') {
|
||||
let params = await getApproveParams();
|
||||
await postApproval(params);
|
||||
flowSuccess();
|
||||
data.submitLoading = false;
|
||||
let response = await postApproval(params);
|
||||
// 判断返回值是否带有isAutoAgree 来判断中间是否有自动审批的业务,如有执行判断
|
||||
if (response != null && response.length != 0 && response[0].isAutoAgree == true) {
|
||||
// 判断待审人员是否包含自己,不包含就直接flowSuccess
|
||||
if (response[0].approveUserIds.includes(userStore.getUserInfo.id)) {
|
||||
taskId.value = response[0].taskId;
|
||||
data.submitLoading = false;
|
||||
onApproveClick(false, true);
|
||||
} else {
|
||||
flowSuccess();
|
||||
data.submitLoading = false;
|
||||
}
|
||||
} else {
|
||||
flowSuccess();
|
||||
data.submitLoading = false;
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
flowFail();
|
||||
|
||||
Reference in New Issue
Block a user