From 5e093dcc9f4177bfd5f9ab2927914d2bf852770b Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期五, 21 八月 2026 15:45:03 +0800
Subject: [PATCH] 连续审批

---
 src/views/project/fund/applyDetail/index.vue                       |   79 +++++++++++++++++++++++++-
 src/views/project/travelexpenseapply/travelexpensedetail/index.vue |   80 +++++++++++++++++++++++++-
 2 files changed, 150 insertions(+), 9 deletions(-)

diff --git a/src/views/project/fund/applyDetail/index.vue b/src/views/project/fund/applyDetail/index.vue
index 9497b6f..60c5e5c 100644
--- a/src/views/project/fund/applyDetail/index.vue
+++ b/src/views/project/fund/applyDetail/index.vue
@@ -735,7 +735,8 @@
   getdownloadBX,
   addorupdateFund,
   ManualCalculation,
-  getdetailsByItemId
+  getdetailsByItemId,
+  listbypower
 } from "@/api/project/fund";
 
 import {
@@ -813,7 +814,7 @@
     "sys_professionaltitle"
   ],
 
-  data() {  
+  data() {
     // 鑷畾涔夎韩浠借瘉鍙锋牎楠屽櫒
     const validateIdCard = (rule, value, callback) => {
       // 1. 濡傛灉涓虹┖锛屼氦缁� required 瑙勫垯鍘诲鐞嗭紝杩欓噷鐩存帴鏀捐
@@ -1029,6 +1030,8 @@
         flowconclusion: null,
         fundid: null
       },
+      // 杩炵画瀹℃壒锛氬緟瀹℃壒鍗曟嵁鍒楄〃
+      pendingList: [],
 
       // 鏌ヨ鍙傛暟
       queryParams: {
@@ -1385,6 +1388,14 @@
     handleCheck() {
       this.isopen = 0;
       this.reset();
+      // 閲嶇疆瀹℃壒淇℃伅锛岄伩鍏嶄笂涓�鍗曠殑瀹℃壒缁撴灉甯﹀叆涓嬩竴鍗�
+      this.checkObj = {
+        flowlevelone: null,
+        flowconclusion: null,
+        fundid: null
+      };
+      // 杩炵画瀹℃壒锛氬姞杞藉綋鍓嶄笟鍔$被鍨嬩笅鐨勫緟瀹℃壒鍒楄〃
+      this.getPendingList();
 
       getFund(this.curId).then(response => {
         this.form = response.data;
@@ -1760,6 +1771,66 @@
 
       this.Savenow();
       console.log("淇濆瓨骞跺鎵�");
+    },
+
+    // 杩炵画瀹℃壒锛氳幏鍙栧綋鍓嶄笟鍔$被鍨嬩笅鐨勫緟瀹℃壒鍒楄〃
+    getPendingList() {
+      return listbypower({
+        pageNum: 1,
+        pageSize: 1000,
+        CHECKFLAG: 1,
+        APPLYTYPE: this.businessType
+      })
+        .then(res => {
+          this.pendingList = res.rows || [];
+        })
+        .catch(() => {
+          this.pendingList = [];
+        });
+    },
+
+    // 杩炵画瀹℃壒锛氬鎵瑰畬鎴愬悗璇㈤棶鏄惁缁х画瀹℃壒涓嬩竴鍗�
+    continueOrExit() {
+      // 閲嶆柊鎷夊彇寰呭鎵瑰垪琛紙褰撳墠鍗曟嵁宸插鎵瑰畬鎴愯绉诲嚭鍒楄〃锛�
+      this.getPendingList().then(() => {
+        const list = this.pendingList || [];
+        const next = list[0] || null;
+        if (next) {
+          this.$confirm("瀹℃壒宸插畬鎴愶紝鏄惁缁х画瀹℃壒涓嬩竴寮犲緟瀹℃壒鍗曟嵁锛�", "鎻愮ず", {
+            confirmButtonText: "缁х画瀹℃壒",
+            cancelButtonText: "杩斿洖鍒楄〃",
+            type: "info"
+          })
+            .then(() => {
+              // 鍦ㄥ綋鍓嶉〉闈㈢洿鎺ュ姞杞戒笅涓�寮犲緟瀹℃壒鍗曟嵁
+              this.curId = next.id;
+              this.handleCheck();
+              // 鍚屾鏇存柊鍦板潃鏍忥紝閬垮厤鍒锋柊鍚庡洖鍒颁笂涓�鍗�
+              this.$router
+                .replace({
+                  path: this.$route.path,
+                  query: {
+                    id: next.id,
+                    businessType: this.businessType,
+                    operationType: "check"
+                  }
+                })
+                .catch(() => {});
+            })
+            .catch(() => {
+              this.exitToPage();
+            });
+        } else {
+          this.$modal.msgSuccess("宸叉棤寰呭鎵瑰崟鎹紝杩斿洖鍒楄〃");
+          this.exitToPage();
+        }
+      });
+    },
+
+    // 杩斿洖鍒楄〃椤�
+    exitToPage() {
+      this.$store.dispatch("tagsView/delView", this.$route);
+      this.$router.go(-1);
     },
 
     // 鍙栨秷鎸夐挳
@@ -2270,8 +2341,8 @@
                     //鍏抽棴绐楀彛
                     this.$modal.closeLoading();
                     this.$modal.msgSuccess("瀹℃牳瀹屾垚!");
-                    this.$store.dispatch("tagsView/delView", this.$route);
-                    this.$router.go(-1);
+                    // 杩炵画瀹℃壒锛氳闂槸鍚︾户缁鎵逛笅涓�鍗�
+                    this.continueOrExit();
                   } else {
                     this.$modal.closeLoading();
 
diff --git a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
index 1851048..4a13d16 100644
--- a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
+++ b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -1282,7 +1282,8 @@
   exportReimbursement,
   getdownload,
   checkfund,
-  fundSubmit
+  fundSubmit,
+  listbypowerone
 } from "@/api/project/reimbursement";
 import {
   addReimbursementdetail,
@@ -1492,6 +1493,8 @@
         flowconclusion: null,
         fundid: null
       },
+      //杩炵画瀹℃壒锛氬緟瀹℃壒鍒楄〃
+      pendingList: [],
       jurisdiction: false,
 
       //淇濆瓨鎸夐挳鎺у埗
@@ -2575,7 +2578,15 @@
       this.reset();
       this.open = true;
       const id = ids || this.ids;
-      this.checkObj.fundid = id;
+      // 閲嶇疆瀹℃壒淇℃伅锛岄伩鍏嶄笂涓�鍗曠殑瀹℃壒缁撴灉甯﹀叆涓嬩竴鍗�
+      this.checkObj = {
+        flowlevelone: null,
+        flowconclusion: null,
+        fundid: id
+      };
+
+      // 杩炵画瀹℃壒锛氬姞杞藉綋鍓嶇敤鎴风殑寰呭鎵瑰垪琛�
+      this.getPendingList();
 
       getReimbursement(id).then(response => {
         this.form = response.data;
@@ -2665,9 +2676,8 @@
         if (res.code == 200) {
           this.$modal.closeLoading();
           this.$modal.msgSuccess("鎻愪氦瀹℃牳鎴愬姛!");
-          // 鍏抽棴绐楀彛
-          this.$store.dispatch("tagsView/delView", this.$route);
-          this.$router.go(-1);
+          // 杩炵画瀹℃壒锛氳闂槸鍚︾户缁鎵逛笅涓�鍗�
+          this.continueOrExit();
         } else {
           this.$modal.closeLoading();
           if (res.msg) {
@@ -2679,6 +2689,66 @@
       });
     },
 
+    // 鑾峰彇褰撳墠鐢ㄦ埛寰呭鎵瑰垪琛紙鐢ㄤ簬杩炵画瀹℃壒锛�
+    getPendingList() {
+      listbypowerone({
+        pageNum: 1,
+        pageSize: 1000,
+        CHECKFLAG: 1
+      })
+        .then(res => {
+          this.pendingList = res.rows || [];
+        })
+        .catch(() => {
+          this.pendingList = [];
+        });
+    },
+
+    // 瀹℃壒瀹屾垚鍚庯細璇㈤棶鏄惁缁х画瀹℃壒涓嬩竴鍗�
+    continueOrExit() {
+      const list = this.pendingList || [];
+      const curId = String(this.checkObj.fundid);
+      const idx = list.findIndex(item => String(item.id) === curId);
+      let next = null;
+      if (idx > -1 && idx + 1 < list.length) {
+        next = list[idx + 1];
+      } else {
+        // 褰撳墠宸叉槸鏈綅锛堟垨浠庝腑闂村紑濮嬶級锛屽彇鍓╀綑鍒楄〃涓涓�鏉¢潪褰撳墠鍗曟嵁
+        next = list.find(item => String(item.id) !== curId) || null;
+      }
+
+      if (next) {
+        this.$confirm("瀹℃壒宸插畬鎴愶紝鏄惁缁х画瀹℃壒涓嬩竴寮犲緟瀹℃壒鍗曟嵁锛�", "鎻愮ず", {
+          confirmButtonText: "缁х画瀹℃壒",
+          cancelButtonText: "杩斿洖鍒楄〃",
+          type: "info"
+        })
+          .then(() => {
+            // 鐩存帴鍦ㄥ綋鍓嶉〉闈㈠姞杞戒笅涓�寮犲緟瀹℃壒鍗曟嵁
+            this.handleCheck(next.id);
+            // 鍚屾鏇存柊鍦板潃鏍忥紝閬垮厤鍒锋柊鍚庡洖鍒颁笂涓�鍗�
+            this.$router
+              .replace({
+                path: this.$route.path,
+                query: { id: next.id, pos: 4 }
+              })
+              .catch(() => {});
+          })
+          .catch(() => {
+            this.exitToPage();
+          });
+      } else {
+        this.$modal.msgSuccess("宸叉棤寰呭鎵瑰崟鎹紝杩斿洖鍒楄〃");
+        this.exitToPage();
+      }
+    },
+
+    // 杩斿洖鍒楄〃椤�
+    exitToPage() {
+      this.$store.dispatch("tagsView/delView", this.$route);
+      this.$router.go(-1);
+    },
+
     /** 鎻愪氦淇濆瓨鎸夐挳 */
     submitForm: debounce(function (data) {
       this.$refs["form"].validate(valid => {

--
Gitblit v1.9.3