From 11b3fee3b15e3facf39e5ce9570b65b838b919c4 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期三, 11 十月 2023 17:16:04 +0800
Subject: [PATCH] yxh

---
 src/views/project/travelexpenseapply/travelexpensedetail/index.vue |  223 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 128 insertions(+), 95 deletions(-)

diff --git a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
index cac3740..4373323 100644
--- a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
+++ b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -84,7 +84,7 @@
               />
             </el-form-item>
           </el-col>
-          <el-col :span="10">
+          <el-col :span="7">
             <el-form-item label="澶у啓閲戦" prop="bigstrmoney">
               <el-input
                 :disabled="true"
@@ -92,7 +92,7 @@
                 placeholder="鎶ラ攢澶у啓閲戦"
               />
             </el-form-item> </el-col
-          ><el-col :span="5">
+          ><el-col :span="4">
             <el-form-item label="瀹℃牳鐘舵��" prop="flowlevel">
               <el-select
                 v-model="form.recordstatus"
@@ -107,6 +107,23 @@
                   :label="dict.label"
                   :value="dict.value"
                 />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="5">
+            <el-form-item label="棰勫鐘舵��" prop="infoid">
+              <el-select
+                v-model="form.checkstatus"
+                filterable
+                placeholder="璇烽�夋嫨棰勫鐘舵��"
+              >
+                <el-option
+                  v-for="item in baselisttages"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                >
+                </el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -900,6 +917,25 @@
           v-if="operationType == 'check'"
         >
           <el-col :span="7">
+            <el-form-item label="棰勫鐘舵��" prop="infoid">
+              <el-radio-group
+                v-model="form.checkstatus"
+                align="left"
+                :disabled="userprofile.nickName != '闄堟厱鍗�'"
+              >
+                <el-radio label="1">寰呴瀹�</el-radio>
+                <el-radio label="2">棰勫閫氳繃绛夊緟鏉愭枡</el-radio>
+                <el-radio label="3">宸叉敹鍒版姤閿�鏉愭枡</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row
+          style="margin-top: 25px; margin-bottom: 5px"
+          v-if="operationType == 'check'"
+        >
+          <el-col :span="7">
             <el-form-item label="瀹℃牳缁撴灉" align="left">
               <el-radio-group v-model="checkObj.flowlevelone" align="left">
                 <el-radio label="1">閫氳繃</el-radio>
@@ -920,13 +956,13 @@
         <el-button
           type="primary"
           @click="submitForm"
-          v-if="operationType == 'edit'"
+          v-if="operationType == 'edit' || beforehandType == '1'"
           >淇� 瀛�</el-button
         >
         <el-button
           type="primary"
           @click="checksubmit"
-          v-if="operationType == 'check'"
+          v-if="operationType == 'check' && beforehandType != '1'"
           >鎻� 浜�</el-button
         >
         <!--<el-button @click="cancel">閫� 鍑�</el-button>-->
@@ -943,23 +979,23 @@
     >
       <div>
         <el-table :data="tableDatatop" style="width: 100%">
-          <el-table-column prop="persontype" label="浜哄憳绫诲埆" width="130">
+          <el-table-column prop="orderno" label="搴忓彿"> </el-table-column>
+          <el-table-column prop="personname" label="璐圭敤浜哄憳">
           </el-table-column>
-          <el-table-column prop="personname" label="璐圭敤浜哄憳" width="130">
-          </el-table-column>
+          <el-table-column prop="starttime" label="寮�濮嬫棩鏈�"> </el-table-column>
+          <el-table-column prop="endtime" label="缁撴潫鏃ユ湡"> </el-table-column>
           <el-table-column prop="departure" label="鍑哄彂鍦�"> </el-table-column>
           <el-table-column prop="destination" label="鍒拌揪鍦�"> </el-table-column>
           <el-table-column prop="days" label="澶╂暟"> </el-table-column>
+        </el-table>
+        <el-table :data="tableDatatop" style="width: 100%">
           <el-table-column prop="traffictype" label="鍑哄彂浜ら�氬伐鍏�">
           </el-table-column>
           <el-table-column prop="traffictype2" label="杩斿洖浜ら�氬伐鍏�">
           </el-table-column>
-        </el-table>
-        <el-table :data="tableDatatop" style="width: 100%">
-          <el-table-column prop="trafficexpense" label="浜ら�氳垂" width="130">
+          <el-table-column prop="trafficexpense" label="浜ら�氳垂">
           </el-table-column>
-          <el-table-column prop="cityfee" label="甯傚唴浜ら�氳垂" width="130">
-          </el-table-column>
+          <el-table-column prop="cityfee" label="甯傚唴浜ら�氳垂"> </el-table-column>
           <el-table-column prop="hotelexpense" label="浣忓璐�">
           </el-table-column>
           <el-table-column prop="foodallowance" label="浼欓琛ュ姪">
@@ -1089,7 +1125,8 @@
 import {
   listReimbursementpayee,
   addReimbursementpayee,
-  updateReimbursementpayee
+  updateReimbursementpayee,
+  delReimbursementpayee
 } from "@/api/project/reimbursementpayee";
 import {
   listReimbursement,
@@ -1225,6 +1262,8 @@
       queryParamsPayee: {
         rbid: null
       },
+      // 褰撳墠鐢ㄦ埛淇℃伅
+      userprofile: {},
       // 琛ㄥ崟鍙傛暟
       form: {},
       reimbursementList: [],
@@ -1252,6 +1291,20 @@
       rbDetails: [],
       rbPayees: [],
       arrr2: [],
+      baselisttages: [
+        {
+          id: 1,
+          name: "寰呴瀹�"
+        },
+        {
+          id: 2,
+          name: "棰勫閫氳繃绛夊緟鏉愭枡"
+        },
+        {
+          id: 3,
+          name: "宸叉敹鍒版姤閿�鏉愭枡"
+        }
+      ],
       baselist: [],
       donatorList: [],
       standardlevel: 0,
@@ -1269,7 +1322,7 @@
       persontype: null,
       //鍒拌揪鍦�
       arriveAddr: null,
-
+      beforehandType: null,
       headers: {
         Authorization: "Bearer " + getToken()
       },
@@ -1298,6 +1351,7 @@
 
     //鑾峰彇鐧诲綍鑰呬俊鎭�
     getUserProfile().then(response => {
+      this.userprofile = response.data;
       this.defaultperson = response.data;
       this.standardlevel = response.data.standardlevel;
       console.log("this.defaultperson", this.defaultperson);
@@ -1325,10 +1379,13 @@
   },
 
   mounted() {
+    window.addEventListener("beforeunload", e => this.beforeunloadHandler(e));
+
     //閫夋嫨涓氬姟绫诲瀷:1銆佹柊澧烇紱2銆佷慨鏀癸紱3銆佹煡鐪�
     let curId = this.$route.query.id;
     let pos = this.$route.query.pos;
     this.defaultperson = this.$route.query.routerparam;
+    this.beforehandType = this.$route.query.beforehandType;
     if (pos == 1) {
       this.handleAdd(curId);
     } else if (pos == 2) {
@@ -1344,8 +1401,29 @@
       this.$refs["table"].doLayout();
     });
   },
+  destroyed() {
+    window.removeEventListener("beforeunload", e => this.beforeunloadFn(e));
+  }, //鐢熷懡鍛ㄦ湡 - 閿�姣佸畬鎴�
 
   methods: {
+    // 娴忚鍣ㄩ〉闈㈠叧闂垨鍒锋柊鎻愮ず
+    beforeunloadHandler(e) {
+      if (
+        (JSON.stringify(this.form) == sessionStorage.getItem("apiform") &&
+          JSON.stringify(this.rbDetails) ==
+            sessionStorage.getItem("apifunddetail")) ||
+        !sessionStorage.getItem("apifunddetail")
+      ) {
+      } else {
+        this._beforeUnload_time = new Date().getTime();
+        e = e || window.event;
+        if (e) {
+          e.returnValue = "鍏抽棴鎻愮ず";
+        }
+        return "鍏抽棴鎻愮ず";
+      }
+    },
+
     handleUploadError() {},
     // 鑾峰彇璇锋眰澶�
     Getnetworkheader() {
@@ -1898,12 +1976,15 @@
       //鑾峰彇鎶ラ攢涓讳俊鎭�
       getReimbursement(curId).then(response => {
         this.form = response.data;
+
         this.fileListto = this.form.annexfiles
           ? this.form.annexfiles
               .split(",")
               .map(item => ({ url: item, name: item }))
           : [];
         this.form.recordstatus = response.data.recordstatus + "";
+        sessionStorage.removeItem("apiform");
+        sessionStorage.setItem("apiform", JSON.stringify(this.form));
 
         //鑾峰彇鎶ラ攢鏄庣粏淇℃伅
         getReimbursementdetaillist(curId).then(res => {
@@ -1912,20 +1993,16 @@
           if (this.rbDetails.length == 0) {
             this.addDetailRow(0);
           }
-
           //瀹炴椂鍚堣閲戦
           //this.sumTotalFee();
           for (let i = 0; i < this.rbDetails.length; i++) {
             this.sumRowFee(this.rbDetails[i]);
-            //瑙f瀽鍑哄樊鍦板潃
-            /*
-              this.rbDetails[i].index = i;
-              this.rbDetails[i].searchAddress = {
-                sheng: this.rbDetails[i].travelprovincename,
-                shi: this.rbDetails[i].travelcityname,
-                qu: this.rbDetails[i].traveltownname,
-              }; */
           }
+          sessionStorage.removeItem("apifunddetail");
+          sessionStorage.setItem(
+            "apifunddetail",
+            JSON.stringify(this.rbDetails)
+          );
         });
 
         //鑾峰彇鎶ラ攢鎵撴淇℃伅
@@ -2007,6 +2084,8 @@
             this.addPayeeRow(0);
           }
         });
+        sessionStorage.removeItem("apiform");
+        sessionStorage.setItem("apiform", JSON.stringify(this.form));
       });
     },
 
@@ -2022,6 +2101,7 @@
 
       getReimbursement(id).then(response => {
         this.form = response.data;
+
         //绁ㄦ嵁
         this.fileListto = this.form.annexfiles
           ? this.form.annexfiles
@@ -2071,11 +2151,17 @@
             this.addPayeeRow(0);
           }
         });
+        sessionStorage.removeItem("apiform");
+        sessionStorage.setItem("apiform", JSON.stringify(this.form));
       });
     },
 
     //鎻愪氦瀹℃牳鎰忚
     checksubmit() {
+      if (this.form.checkstatus != 3 && this.userprofile.nickName == "闄堟厱鍗�") {
+        this.$modal.msgError("璇风‘璁ゆ敹鍒版潗鏂欏悗鍐嶆彁浜ゅ鏍革紒");
+        return;
+      }
       let checkfundobj = {
         flowconclusion: this.checkObj.flowlevelone,
         flowcontent: this.checkObj.flowconclusion,
@@ -2105,75 +2191,16 @@
     submitForm: debounce(function(data) {
       this.$refs["form"].validate(valid => {
         if (valid) {
-          // idisabled=true;
-          /**
-           let indexErrTime = this.rbDetails.findIndex((item) => {
-             if (item.endtime && item.starttime) {
-               let d = this.$moment(item.endtime).diff(this.$moment(item.starttime), "d");
-               if (d < 0) {
-                 return true;
-               } else {
-                 return false;
-               }
-             } else {
-               false;
-             }
-           });
-
-           if (indexErrTime > -1) {
-             this.$message({
-               message: "绗�" + (indexErrTime + 1) + "琛屽埌杈炬棩鏈熸棭浜庡嚭鍙戞棩鏈�",
-               type: "warning",
-             });
-             return;
-           }
-
-           let emptyStartTimeindex = this.rbDetails.findIndex(
-             (item) => item.starttime == null || item.starttime == undefined || item.starttime == ""
-           );
-
-           if (emptyStartTimeindex > -1) {
-             this.$message({
-               message: "绗�" + (emptyStartTimeindex + 1) + "琛屽嚭鍙戞棩鏈熶负绌�",
-               type: "warning",
-             });
-             return;
-           }
-
-           let emptyEndTimeindex = this.rbDetails.findIndex(
-             (item) => item.endtime == null || item.endtime == undefined || item.endtime == ""
-           );
-
-           if (emptyEndTimeindex > -1) {
-             this.$message({
-               message: "绗�" + (emptyEndTimeindex + 1) + "琛屽埌杈炬棩鏈熶负绌�",
-               type: "warning",
-             });
-             return;
-           }
-
-          //璐圭敤褰掑睘
-          let belongArr = this.dict.type.sys_travelexpensebelong;
-          let costtypeindex = belongArr.findIndex(
-            (item) => this.form.costtype == item.value
-          );
-          if (costtypeindex > -1) {
-            this.form.costtypename = belongArr[costtypeindex].label;
-          }
-          */
-
           //绁ㄦ嵁鏂囦欢澶勭悊
+          const addnumber = this.rbPayees.reduce(
+            (amount, item) => amount + Number(item.amount),
+            0
+          );
           let list = this.fileListto;
           console.log(list);
 
           //鏍¢獙璇锋閲戦鍚堣鏄惁绛変簬鎶ラ攢鍗曢噾棰�
-          if (
-            this.form.amountrequested !=
-            this.rbPayees.reduce(
-              (amount, item) => amount + Number(item.amount),
-              0.0
-            )
-          ) {
+          if (this.form.amountrequested != addnumber) {
             this.$message({
               message:
                 "鎶ラ攢璇锋琛ㄤ腑鍚堣閲戦涓嶇瓑浜庢姤閿�鍗曠殑鎶ラ攢閲戦锛岃鏇存鍚庡啀淇濆瓨锛�",
@@ -2239,6 +2266,11 @@
                   rbPayees[i].rbid = response.data;
                   addReimbursementpayee(rbPayees[i]);
                 }
+                sessionStorage.setItem(
+                  "apifunddetail",
+                  JSON.stringify(this.rbDetails)
+                );
+                sessionStorage.setItem("apiform", JSON.stringify(this.form));
 
                 this.$modal.msgSuccess("鏂板鎶ラ攢鍗曚繚瀛樻垚鍔�!");
                 this.open = false;
@@ -2297,6 +2329,11 @@
       this.Savereminder = false;
       this.Reminderquantity = 0;
       this.totalquantity = 0;
+      const addnumber = this.rbPayees.reduce(
+        (amount, item) => amount + Number(item.amount),
+        0
+      );
+      console.log(addnumber, "addnumber");
       this.$refs["form"].validate(valid => {
         if (valid) {
           //绁ㄦ嵁鏂囦欢澶勭悊
@@ -2304,13 +2341,7 @@
           console.log(list);
 
           //鏍¢獙璇锋閲戦鍚堣鏄惁绛変簬鎶ラ攢鍗曢噾棰�
-          if (
-            this.form.amountrequested !=
-            this.rbPayees.reduce(
-              (amount, item) => amount + Number(item.amount),
-              0.0
-            )
-          ) {
+          if (this.form.amountrequested != addnumber) {
             this.$message({
               message:
                 "鎶ラ攢璇锋琛ㄤ腑鍚堣閲戦涓嶇瓑浜庢姤閿�鍗曠殑鎶ラ攢閲戦锛岃鏇存鍚庡啀淇濆瓨锛�",
@@ -2513,8 +2544,10 @@
       })
         .then(() => {
           console.log(row);
+          let arrow = [];
+          arrow.push(row.id);
           if (row.id !== null) {
-            delReimbursementdetail(row.id).then(res => {
+            delReimbursementpayee(arrow).then(res => {
               this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
               rows.splice(index, 1);
               this.recountOrderNo2();

--
Gitblit v1.9.3