From ec8ff4f6259404460a0b4437e29a40986c2c4b9d Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 12 十月 2026 18:31:43 +0800
Subject: [PATCH] feat(workflow): 集成自动化审批功能并优化多个业务模块

---
 src/views/bpm/oa/leave/create.vue |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/views/bpm/oa/leave/create.vue b/src/views/bpm/oa/leave/create.vue
index 8abc90c..b3772c2 100644
--- a/src/views/bpm/oa/leave/create.vue
+++ b/src/views/bpm/oa/leave/create.vue
@@ -18,6 +18,7 @@
 import { getApprovalDetail as getApprovalDetailApi } from '#/api/bpm/processInstance';
 import { $t } from '#/locales';
 import { router } from '#/router';
+import { automaticApproval } from '#/store/audit-policy';
 import ProcessInstanceTimeline from '#/views/bpm/processInstance/detail/modules/time-line.vue';
 
 import { useFormSchema } from './data';
@@ -67,7 +68,7 @@
     return;
   }
   // 1.2 瀹℃壒鐩稿叧锛氭牎楠屾寚瀹氬鎵逛汉
-  if (startUserSelectTasks.value?.length > 0) {
+  if (!automaticApproval.value && startUserSelectTasks.value?.length > 0) {
     for (const userTask of startUserSelectTasks.value) {
       const assignees = startUserSelectAssignees.value[userTask.id];
       if (Array.isArray(assignees) && assignees.length === 0) {
@@ -79,7 +80,7 @@
   // 鎻愪氦琛ㄥ崟
   const data = (await formApi.getValues()) as LeaveCreateData;
   // 瀹℃壒鐩稿叧锛氳缃寚瀹氬鎵逛汉
-  if (startUserSelectTasks.value?.length > 0) {
+  if (!automaticApproval.value && startUserSelectTasks.value?.length > 0) {
     data.startUserSelectAssignees = startUserSelectAssignees.value;
   }
   // 鏍煎紡鍖栧紑濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫��
@@ -118,6 +119,7 @@
 
 /** 瀹℃壒鐩稿叧锛氳幏鍙栧鎵硅鎯� */
 async function getApprovalDetail() {
+  if (automaticApproval.value) return;
   processTimeLineLoading.value = true;
   try {
     const data = await getApprovalDetailApi({
@@ -144,7 +146,7 @@
         BpmCandidateStrategyEnum.START_USER_SELECT === node.candidateStrategy,
     );
     // 鎭㈠涔嬪墠鐨勯�夋嫨瀹℃壒浜�
-    if (startUserSelectTasks.value?.length > 0) {
+    if (!automaticApproval.value && startUserSelectTasks.value?.length > 0) {
       for (const node of startUserSelectTasks.value) {
         const tempAssignees = tempStartUserSelectAssignees.value[node.id];
         startUserSelectAssignees.value[node.id] = tempAssignees?.length
@@ -212,6 +214,10 @@
 
 /** 鍒濆鍖� */
 onMounted(async () => {
+  if (automaticApproval.value) {
+    if (query.id) await getDetail(Number(query.id));
+    return;
+  }
   const processDefinitionDetail: any = await getProcessDefinition(
     undefined,
     processDefineKey,

--
Gitblit v1.9.3