From 6314b7eb35893a83630a569cc8798fd01ba157e0 Mon Sep 17 00:00:00 2001
From: ye1023 <12588209+ye1023@user.noreply.gitee.com>
Date: Wed, 13 May 2026 14:46:28 +0800
Subject: [PATCH] =?UTF-8?q?yxk-20260513-=E5=85=9A=E5=A7=94=E4=BC=9A?=
=?UTF-8?q?=E6=B5=81=E7=A8=8B=E8=A1=A8=E5=8D=95=20=E5=AE=9E=E7=8E=B0?=
=?UTF-8?q?=E7=82=B9=E5=87=BB=E5=8A=9E=E7=90=86=E4=B9=8B=E5=89=8D=EF=BC=8C?=
=?UTF-8?q?=E8=87=AA=E5=8A=A8=E4=BF=9D=E5=AD=98=E5=9F=BA=E7=A1=80=E4=BF=A1?=
=?UTF-8?q?=E6=81=AF=EF=BC=88=E4=B8=9A=E5=8A=A1=E8=A1=A8=E5=8D=95=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=EF=BC=89=E5=92=8C=E6=B5=81=E7=A8=8B=E4=BF=A1=E6=81=AF?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=88=E6=98=AF=E5=90=A6=E5=8A=9E=E7=BB=93?=
=?UTF-8?q?=E3=80=81=E9=83=A8=E9=97=A8=E7=BB=8F=E5=8A=9E=E4=BA=BA=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/BgPartymatterBPMForm.vue | 56 +++++++++++++++----
.../myHandleTask/content/MyHandleContent.vue | 17 ++++++
.../content/TaskHandleInnerContent.vue | 5 ++
3 files changed, 67 insertions(+), 11 deletions(-)
diff --git a/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue b/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue
index 7082d82..fb4f30f 100644
--- a/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue
+++ b/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue
@@ -146,7 +146,7 @@
- 保存
+ 保存
@@ -154,6 +154,7 @@
@@ -317,6 +318,11 @@
}
async function submitForm() {
+ return saveMainForm();
+ }
+
+ async function saveMainForm(options: { showMessage?: boolean; emitOk?: boolean } = {}) {
+ const { showMessage = true, emitOk = true } = options;
savingMain.value = true;
try {
const processInstanceId = processInfo.value.processInstanceId;
@@ -327,16 +333,37 @@
formData: { ...mainForm },
});
if (res.success) {
- createMessage.success(res.message || '保存成功');
- emit('ok');
- } else {
- createMessage.warning(res.message || '保存失败');
+ if (showMessage) {
+ createMessage.success(res.message || '保存成功');
+ }
+ if (emitOk) {
+ emit('ok');
+ }
+ return true;
}
+ createMessage.warning(res.message || '保存失败');
+ return false;
+ } catch (error) {
+ createMessage.warning('保存失败');
+ return false;
} finally {
savingMain.value = false;
}
}
+ async function saveMainFormBeforeProcessHandle() {
+ if (!mainDisabled.value) {
+ const mainSaved = await saveMainForm({ showMessage: false, emitOk: false });
+ if (!mainSaved) {
+ return false;
+ }
+ }
+ if (showSubApproveUser.value) {
+ return saveSubApproveUserVariable({ showSuccessMessage: false });
+ }
+ return true;
+ }
+
function openFeedbackModal() {
if (!mainForm.id) {
createMessage.warning('主表数据不存在,无法新增反馈');
@@ -350,17 +377,18 @@
feedbackModalRef.value?.open(mainForm.id, mainForm.secretLevel, processInstanceId);
}
- async function saveSubApproveUserVariable() {
+ async function saveSubApproveUserVariable(options: { showSuccessMessage?: boolean } = {}) {
+ const { showSuccessMessage = true } = options;
const processInstanceId = processInfo.value.processInstanceId;
const isEndValue = String(isEnd.value);
const usernameValue = normalizeUsernameList(subApproveUser.value);
if (!processInstanceId) {
createMessage.warning('流程实例ID不能为空');
- return;
+ return false;
}
if (isEndValue !== '1' && !usernameValue) {
createMessage.warning('请选择部门经办人');
- return;
+ return false;
}
savingSubApproveUser.value = true;
@@ -368,17 +396,23 @@
const isEndResult = await saveProcessVariable('isEnd', isEndValue);
if (!isEndResult?.success) {
createMessage.warning(isEndResult.message || '保存失败');
- return;
+ return false;
}
if (isEndValue !== '1') {
const subApproveUserResult = await saveProcessVariable('subApproveUser', usernameValue);
if (!subApproveUserResult?.success) {
createMessage.warning(subApproveUserResult.message || '保存失败');
- return;
+ return false;
}
}
- createMessage.success('保存成功');
+ if (showSuccessMessage) {
+ createMessage.success('保存成功');
+ }
+ return true;
+ } catch (error) {
+ createMessage.warning('保存失败');
+ return false;
} finally {
savingSubApproveUser.value = false;
}
diff --git a/src/views/super/bpm/process/personalOffice/myHandleTask/content/MyHandleContent.vue b/src/views/super/bpm/process/personalOffice/myHandleTask/content/MyHandleContent.vue
index 1109d4e..91ad534 100644
--- a/src/views/super/bpm/process/personalOffice/myHandleTask/content/MyHandleContent.vue
+++ b/src/views/super/bpm/process/personalOffice/myHandleTask/content/MyHandleContent.vue
@@ -172,6 +172,10 @@
selnextUserStatus:{
type: Boolean,
default: true,
+ },
+ beforeHandle: {
+ type: Function,
+ default: undefined,
}
},
emits: ['success'],
@@ -372,6 +376,11 @@
params.fileList = isString(params.fileList) ? params.fileList : JSON.stringify(params.fileList);
}
try {
+ const canHandle = await runBeforeHandle();
+ if (!canHandle) {
+ loading.value = false;
+ return;
+ }
console.log('流程提交->params', params);
let json = await taskComplete(params);
console.log('流程提交-result', json);
@@ -383,6 +392,14 @@
}
}
+ async function runBeforeHandle() {
+ if (typeof props.beforeHandle !== 'function') {
+ return true;
+ }
+ const result = await props.beforeHandle();
+ return result !== false;
+ }
+
async function initDict() {
const dictData = await initDictOptions('approval_remarks');
console.log('dic', dictData);
diff --git a/src/views/super/bpm/process/personalOffice/myHandleTask/content/TaskHandleInnerContent.vue b/src/views/super/bpm/process/personalOffice/myHandleTask/content/TaskHandleInnerContent.vue
index 4bd712e..02c9783 100644
--- a/src/views/super/bpm/process/personalOffice/myHandleTask/content/TaskHandleInnerContent.vue
+++ b/src/views/super/bpm/process/personalOffice/myHandleTask/content/TaskHandleInnerContent.vue
@@ -19,6 +19,7 @@
:allowAddSign="allowAddSign"
:allowCounterSignAddUser="allowCounterSignAddUser"
:allowReject="allowReject"
+ :beforeHandle="beforeHandle"
:currentTaskName="currentNode.taskName">
@@ -55,6 +56,10 @@
claim:{
type: Boolean,
default: false
+ },
+ beforeHandle: {
+ type: Function,
+ default: undefined
}
},
emits: ['success', 'claimSuccess'],