From 4fc9abfa57e81e83b74bdbd2e2f6d71d3500ef66 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期二, 19 九月 2023 11:26:07 +0800
Subject: [PATCH] 11

---
 src/views/project/travelexpenseapply/travelexpensedetail/index.vue |  628 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 514 insertions(+), 114 deletions(-)

diff --git a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
index cd24f2c..b2a3e5a 100644
--- a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
+++ b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -208,13 +208,25 @@
           </el-col>
           </el-row>
           -->
+        <el-row v-if="jurisdiction">
+          <!-- <el-alert title="褰撳墠涓烘煡鐪嬬姸鎬侊紝涓嶆敮鎸佷慨鏀瑰瓨鍌ㄣ��" type="warning">
+          </el-alert> -->
+          <el-alert
+            title="褰撳墠涓烘煡鐪嬬姸鎬侊紝涓嶆敮鎸佷慨鏀瑰瓨鍌ㄣ��"
+            type="warning"
+            show-icon
+          >
+          </el-alert>
+        </el-row>
         <el-row style="margin-top: 25px; margin-bottom: 5px">
-          <el-col :span="20">鎶ラ攢鏄庣粏褰曞叆锛�</el-col>
+          <el-col :span="20">鎶ラ攢鏄庣粏</el-col>
         </el-row>
         <el-row>
           <el-table
             :data="rbDetails"
+            ref="table"
             border
+            max-height="800"
             highlight-current-row
             :summary-method="getSummaries"
             show-summary
@@ -225,7 +237,7 @@
               label="搴忓彿"
               align="center"
               fixed
-              width="65"
+              width="88"
             >
               <template slot-scope="scope">
                 <el-input v-model="scope.row.orderno" placeholder="搴忓彿" />
@@ -411,7 +423,12 @@
                 </el-select>
               </template>
             </el-table-column>
-            <el-table-column prop="days" label="澶╂暟" width="65" align="center">
+            <el-table-column
+              prop="days"
+              label="澶╂暟"
+              width="100"
+              align="center"
+            >
               <template slot-scope="scope">
                 <el-input
                   v-model="scope.row.days"
@@ -464,7 +481,7 @@
               prop="trafficexpense"
               label="浜ら�氳垂"
               align="center"
-              width="80"
+              width="120"
             >
               <template slot-scope="scope">
                 <el-input
@@ -478,23 +495,30 @@
                 />
               </template>
             </el-table-column>
-            <!--
-            <el-table-column prop="cityfee" label="甯傚唴浜ら�氳垂" align="center" width="100">
+            <el-table-column
+              prop="cityfee"
+              label="甯傚唴浜ら�氳垂"
+              align="center"
+              width="120"
+            >
               <template slot-scope="scope">
-                <el-input v-model="scope.row.cityfee" placeholder="甯傚唴浜ら�氳垂" @blur="
-                  (val) => {
-                    sumRowFee(scope.row);
-                  }
-                ">{{ Number(scope.row.cityfee).toFixed(2) }}
+                <el-input
+                  v-model="scope.row.cityfee"
+                  placeholder="甯傚唴浜ら�氳垂"
+                  @blur="
+                    val => {
+                      sumRowFee(scope.row);
+                    }
+                  "
+                  >{{ Number(scope.row.cityfee).toFixed(2) }}
                 </el-input>
               </template>
             </el-table-column>
-                                                                                                                                      -->
             <el-table-column
               prop="hotelexpense"
               label="浣忓璐�"
               align="center"
-              width="80"
+              width="120"
             >
               <template slot-scope="scope">
                 <el-input
@@ -509,14 +533,14 @@
               </template>
             </el-table-column>
 
-            <el-table-column
+            <!-- <el-table-column
               prop="foodexpenses"
               label="椁愯垂鎶ラ攢"
               align="center"
-              width="80"
+              width="120"
             >
               <template slot-scope="scope">
-                <el-input
+                <el-input 
                   v-model="scope.row.foodexpenses"
                   placeholder="浼欓璐规姤閿�"
                   @blur="
@@ -526,12 +550,12 @@
                   "
                 />
               </template>
-            </el-table-column>
+            </el-table-column> -->
             <el-table-column
               prop="foodallowance"
               label="浼欓琛ュ姪"
               align="center"
-              width="80"
+              width="120"
             >
               <template slot-scope="scope">
                 <el-input
@@ -549,7 +573,7 @@
               prop="otherexpense"
               label="鍏潅璐硅ˉ鍔�"
               align="center"
-              width="80"
+              width="120"
             >
               <template slot-scope="scope">
                 <el-input
@@ -568,7 +592,7 @@
               prop="otherfeeamount"
               label="鍏朵粬璐圭敤"
               align="center"
-              width="90"
+              width="120"
             >
               <template slot-scope="scope">
                 <el-input
@@ -619,7 +643,7 @@
                   type="text"
                   size="mini"
                   @click="addDetailRow(scope.$index)"
-                  v-if="dialogType == 'edit'"
+                  v-if="operationType == 'edit'"
                   >鏂板</el-button
                 >
                 <el-button
@@ -628,7 +652,7 @@
                   "
                   type="text"
                   size="small"
-                  v-if="dialogType == 'edit'"
+                  v-if="operationType == 'edit'"
                   >鍒犻櫎</el-button
                 >
                 <el-button
@@ -644,12 +668,13 @@
           </el-table>
         </el-row>
         <el-row style="margin-top: 25px; margin-bottom: 5px">
-          <el-col :span="20">鎶ラ攢璇锋鏄庣粏锛�</el-col>
+          <el-col :span="20">鎵撴鏄庣粏</el-col>
         </el-row>
-        <el-row style="margin-top: 30px">
+        <el-row style="margin-top: 5px">
           <el-table
             :data="rbPayees"
             border
+            max-height="400"
             highlight-current-row
             :summary-method="getSummaries"
             show-summary
@@ -810,7 +835,7 @@
               label="鎿嶄綔"
               align="center"
               width="100"
-              v-if="dialogType == 'edit'"
+              v-if="operationType == 'edit'"
             >
               <template slot-scope="scope">
                 <el-button
@@ -832,32 +857,36 @@
             </el-table-column>
           </el-table>
         </el-row>
-
-        <el-row v-if="dialogType == 'detail' || dialogType == 'check'">
+        <el-row
+          style="margin-top: 25px; margin-bottom: 5px"
+          v-if="operationType != 'edit'"
+        >
+          <el-col :span="20">瀹℃牳璁板綍</el-col>
+        </el-row>
+        <el-row v-if="operationType != 'add'">
           <el-table :data="fundflowList" border>
-            <el-table-column
-              label="瀹℃牳浜�"
-              align="center"
-              width="120"
-              prop="checkusername"
-            />
             <el-table-column
               label="瀹℃牳鏃ユ湡"
               align="center"
-              width="160"
+              width="200"
               prop="createTime"
+            />
+            <el-table-column
+              label="瀹℃牳浜�"
+              align="center"
+              width="150"
+              prop="checkusername"
             />
             <el-table-column
               label="瀹℃牳缁撴灉"
               align="center"
               width="200"
               prop="flowconclusion"
-              ><template slot-scope="scope"
-                ><span v-if="scope.row.flowconclusion == 1">閫氳繃</span
-                ><span v-if="scope.row.flowconclusion == 2"
-                  >涓嶉�氳繃</span
-                ></template
-              >
+            >
+              <template slot-scope="scope">
+                <span v-if="scope.row.flowconclusion == 1">閫氳繃</span>
+                <span v-if="scope.row.flowconclusion == 2">涓嶉�氳繃</span>
+              </template>
             </el-table-column>
             <el-table-column
               label="瀹℃牳澶囨敞"
@@ -868,7 +897,7 @@
         </el-row>
         <el-row
           style="margin-top: 25px; margin-bottom: 5px"
-          v-if="dialogType == 'check'"
+          v-if="operationType == 'check'"
         >
           <el-col :span="7">
             <el-form-item label="瀹℃牳缁撴灉" align="left">
@@ -879,7 +908,7 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row v-if="dialogType == 'check'">
+        <el-row v-if="operationType == 'check'">
           <el-col :span="17">
             <el-form-item label="瀹℃牳澶囨敞" align="left">
               <el-input v-model="checkObj.flowconclusion" placeholder="澶囨敞" />
@@ -891,20 +920,57 @@
         <el-button
           type="primary"
           @click="submitForm"
-          v-if="dialogType == 'edit'"
+          v-if="operationType == 'edit'"
           >淇� 瀛�</el-button
         >
         <el-button
           type="primary"
           @click="checksubmit"
-          v-if="dialogType == 'check'"
+          v-if="operationType == 'check'"
           >鎻� 浜�</el-button
         >
         <!--<el-button @click="cancel">閫� 鍑�</el-button>-->
       </div>
     </div>
 
-    <el-dialog :title="pdftitle" :visible.sync="pdfVisible" width="50%">
+    <el-dialog
+      v-dialogDrags
+      :modal="false"
+      :close-on-click-modal="false"
+      :title="pdftitle"
+      :visible.sync="pdfVisible"
+      width="60%"
+    >
+      <div>
+        <el-table :data="tableDatatop" style="width: 100%">
+          <el-table-column prop="orderno" label="搴忓彿"> </el-table-column>
+          <el-table-column prop="personname" label="璐圭敤浜哄憳">
+          </el-table-column>
+          <el-table-column prop="createTime" 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-column prop="trafficexpense" label="浜ら�氳垂">
+          </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="浼欓琛ュ姪">
+          </el-table-column>
+          <el-table-column prop="otherexpense" label="鍏潅璐硅ˉ鍔�">
+          </el-table-column>
+          <el-table-column prop="otherfeeamount" label="鍏朵粬璐圭敤">
+          </el-table-column>
+        </el-table>
+      </div>
       <div class="pdfimg">
         <div class="box-pdf">
           <div>
@@ -913,43 +979,105 @@
               class="upload-demo"
               :action="uploadFileUrl"
               :file-list="fileListto"
+              :show-file-list="false"
               multiple
-              :limit="20"
+              drag
               :headers="headers"
               :on-success="
                 (response, file, fileList) =>
                   uploadSccess(response, file, fileList)
               "
               :on-preview="downFile"
-              :disabled="dialogType == 'detail'"
+              :disabled="operationType == 'detail'"
               :on-error="handleUploadError"
-              :on-exceed="handleExceed"
               :on-remove="remove"
               accept="image/*,.pdf"
             >
-              <el-button
-                :disabled="dialogType == 'detail'"
-                size="small"
-                type="primary"
-                >涓婁紶</el-button
-              >
+              <i class="el-icon-upload"></i>
+              <div class="el-upload__text">
+                灏嗙エ鎹嫋鍒版澶勶紝鎴�
+                <em
+                  ><el-button
+                    :disabled="operationType == 'detail'"
+                    size="small"
+                    type="primary"
+                    >鐐瑰嚮涓婁紶</el-button
+                  ></em
+                >
+              </div>
             </el-upload>
+            <el-table
+              :data="fileListto"
+              @row-click="downFile"
+              style="width: 100%"
+              height="400"
+            >
+              <el-table-column
+                prop="name"
+                :show-overflow-tooltip="true"
+                label="鍚嶇О"
+              >
+                <template slot-scope="scope">
+                  <i style="color:#409EFF" class=" el-icon-s-order" />{{
+                    scope.row.name
+                  }}
+                </template>
+              </el-table-column>
+
+              <el-table-column
+                prop="name"
+                width="180"
+                :show-overflow-tooltip="true"
+                label="鍔熻兘"
+              >
+                <template slot-scope="scope">
+                  <el-button
+                    type="primary"
+                    size="mini"
+                    @click.native.prevent.stop="deletedowfile(scope.row)"
+                    >鍒犻櫎</el-button
+                  >
+                  <el-button
+                    type="primary"
+                    size="mini"
+                    @click.native.prevent.stop="moveupdowfile(scope.row)"
+                    >涓婄Щ</el-button
+                  >
+                </template>
+              </el-table-column>
+            </el-table>
           </div>
-          <!-- <div
-            class="pdftit"
-            @click="pdffn(item)"
-            v-for="item in fileList"
-            :key="item.name"
-          >
-            {{ item.name }}
-          </div> -->
         </div>
 
-        <div v-if="this.previewpdf" class="pdfimgmin">
-          <img :src="pdfimg" />
+        <div v-if="this.previewpdf && pdfimgsrcList.length" class="pdfimgmin">
+          <!-- <img :src="pdfimg" /> -->
+          <el-image
+            style="width: 95%; height: 90%"
+            :src="pdfimg"
+            :preview-src-list="pdfimgsrcList"
+          >
+            <!-- <div slot="error" class="image-slot">
+              <i class="el-icon-picture-outline"></i>
+            </div> -->
+          </el-image>
         </div>
         <div v-else class="pdfimgmins">{{ hintitle }}</div>
       </div>
+    </el-dialog>
+    <el-dialog title="鎻愮ず" :visible.sync="Savereminder" width="30%">
+      <el-alert
+        :title="
+          '鎮ㄥ凡娣诲姞' +
+            totalquantity +
+            '鏉℃暟鎹紝涓洪槻姝㈡暟鎹涪澶辨槸鍚︽彁浜や繚瀛樺啀缁х画娣诲姞銆�'
+        "
+        type="warning"
+      >
+      </el-alert>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="unsave">鍙� 娑�</el-button>
+        <el-button type="primary" @click="Savenow">纭� 瀹�</el-button>
+      </span>
     </el-dialog>
   </div>
 </template>
@@ -962,7 +1090,8 @@
 import {
   listReimbursementpayee,
   addReimbursementpayee,
-  updateReimbursementpayee
+  updateReimbursementpayee,
+  delReimbursementpayee
 } from "@/api/project/reimbursementpayee";
 import {
   listReimbursement,
@@ -993,6 +1122,7 @@
 import { getSubsidy } from "@/api/project/travelcity";
 import { listReportname, listUser } from "@/api/project/organization";
 import { getToken } from "@/utils/auth";
+import debounce from "lodash/debounce";
 export default {
   components: {
     Treeselect,
@@ -1035,6 +1165,10 @@
         value: 0,
         label: ""
       },
+      pdfimgsrcList: [],
+      Savereminder: false, //鎻愰啋淇濆瓨寮规
+      Reminderquantity: 0, //鎻愰啋鏁伴噺
+      totalquantity: 0, //鎬绘暟閲�
 
       hintitle: "閫変腑宸︿晶宸蹭笂浼犳枃浠堕瑙堟煡鐪�",
       atpresent: "",
@@ -1052,6 +1186,11 @@
       loading: true,
       // 瀵煎嚭閬僵灞�
       exportLoading: false,
+      // 缃戠粶璇锋眰澶�
+      Networkheader: null,
+
+      // 褰撳墠鍗曟嵁ID
+      curId: 0,
       // 閫変腑鏁扮粍
       ids: [],
       // 闈炲崟涓鐢�
@@ -1077,6 +1216,13 @@
         starttime: null,
         endtime: null
       },
+      tableDatatop: [
+        {
+          date: "2016-05-02",
+          name: "鐜嬪皬铏�",
+          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�"
+        }
+      ],
       //鏌ヨ浠樻
       queryParamsPayee: {
         rbid: null
@@ -1114,7 +1260,7 @@
       defaultperson: {},
       fundflowList: [],
       showApproveRecordDialog: false,
-      dialogType: "edit",
+      operationType: "edit",
 
       //涓婁紶鍙戠エ鏂囦欢璺緞
       uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload",
@@ -1136,6 +1282,7 @@
         flowconclusion: null,
         fundid: null
       },
+      jurisdiction: false,
 
       //淇濆瓨鎸夐挳鎺у埗
       idisabled: false
@@ -1143,6 +1290,8 @@
   },
 
   created() {
+    this.Getnetworkheader();
+
     //鑾峰彇璁板綍鍒楄〃
     // this.getList();
 
@@ -1178,24 +1327,62 @@
   },
 
   mounted() {
+    window.addEventListener("beforeunload", e => this.beforeunloadHandler(e));
+
     //閫夋嫨涓氬姟绫诲瀷:1銆佹柊澧烇紱2銆佷慨鏀癸紱3銆佹煡鐪�
-    let ids = this.$route.query.id;
+    let curId = this.$route.query.id;
     let pos = this.$route.query.pos;
     this.defaultperson = this.$route.query.routerparam;
     if (pos == 1) {
-      this.handleAdd(ids);
+      this.handleAdd(curId);
     } else if (pos == 2) {
-      this.handleUpdate(ids);
+      this.handleUpdate(curId);
     } else if (pos == 3) {
-      this.handleDetail(ids);
+      this.handleDetail(curId);
     } else if (pos == 4) {
-      this.handleCheck(ids);
+      this.handleCheck(curId);
     }
+  },
+  updated() {
+    this.$nextTick(() => {
+      this.$refs["table"].doLayout();
+    });
   },
 
   methods: {
-    handleUploadError() {},
+    // 娴忚鍣ㄩ〉闈㈠叧闂垨鍒锋柊鎻愮ず
+    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() {
+      console.log(window.location.href);
+      let string = window.location.href;
+      if (string.includes("9091")) {
+        const index = string.indexOf("9091");
+        this.Networkheader = string.slice(0, index + 4); // 鎴彇9091鍙婂叾鍓嶉儴瀛楃
+        console.log(this.Networkheader);
+      } else {
+        const index = string.indexOf("8032");
+        this.Networkheader = string.slice(0, index + 4); // 鎴彇8032鍙婂叾鍓嶉儴瀛楃
+        console.log(this.Networkheader);
+      }
+    },
     remove(file, fileList) {
       const rbDetails = [...this.rbDetails];
       this.fileListto.splice(this.fileListto.indexOf(file), 1);
@@ -1209,13 +1396,21 @@
     //鏂囦欢涓婁紶鎴愬姛鍥炶皟
     uploadSccess(response, file, fileList) {
       this.rbDetails;
-
       //鑾峰彇绁ㄦ嵁淇℃伅浣嶇疆
       if (response.code == 200) {
         this.form.filename = file.raw.name;
-
+        this.previewpdf = true;
         this.$modal.msgSuccess(response.msg);
-        this.fileListto.push({ name: file.name, url: response.url });
+        this.fileListto.push({
+          name: file.name,
+          url: response.fileName
+        });
+        this.pdfimgsrcList.push(
+          this.Networkheader + "/prod-api" + response.fileName
+        );
+        console.log(this.pdfimgsrcList);
+        this.pdftitle = "鍏�" + this.pdfimgsrcList.length + "椤�";
+        this.pdfimg = this.Networkheader + "/prod-api" + response.fileName;
         this.rbDetails[this.atpresent].annexfilesList = this.fileListto;
       } else {
         console.log(response.msg);
@@ -1223,10 +1418,24 @@
     },
     // 鐐瑰嚮绁ㄦ嵁
     Filepopup(index, rows, row) {
+      this.tableDatatop = [];
+      this.pdfimgsrcList = [];
+      this.tableDatatop.push(row);
+      // console.log(row);
       this.atpresent = index;
       this.pdfVisible = true;
+      console.log(this.rbDetails[index]);
       if (this.rbDetails[index].annexfilesList) {
+        this.previewpdf = true;
         this.fileListto = this.rbDetails[index].annexfilesList;
+        console.log(this.fileListto);
+        this.pdfimg = this.Networkheader + "/prod-api" + this.fileListto[0].url;
+        this.fileListto.forEach(item => {
+          this.pdfimgsrcList.push(this.Networkheader + "/prod-api" + item.url);
+        });
+        console.log(this.pdfimgsrcList);
+        console.log(this.pdfimg);
+        this.pdftitle = "鍏�" + this.pdfimgsrcList.length + "椤�";
       } else {
         this.fileListto = [];
         this.pdfimg = "";
@@ -1236,8 +1445,9 @@
 
     // 鐐瑰嚮宸蹭笂浼犳枃浠�
     downFile(item) {
-      console.log(item);
-      this.pdftitle = item.name;
+      console.log(item, "鐐瑰嚮鏂囦欢鎷縤tem");
+      this.pdftitle =
+        "鍏�" + this.pdfimgsrcList.length + "椤癸紝褰撳墠閫変腑" + item.name;
       let name = item.name.split(".");
       if (name[1] == "pdf") {
         this.$modal.msgWarning("褰撳墠鏂囦欢鏆備笉鏀寔棰勮");
@@ -1246,9 +1456,16 @@
       } else if (name[1] == "jpg" || "png") {
         this.previewpdf = true;
         if (item.url) {
-          this.pdfimg = item.url;
+          this.pdfimg = this.Networkheader + "/prod-api" + item.url;
+
+          // if (!this.pdfimgsrcList.includes(this.pdfimg)) {
+          //   this.pdfimgsrcList.push(this.pdfimg);
+          //   console.log("鍔犲叆");
+          // }
+          console.log(this.pdfimg, "pdfimg");
+          console.log(this.pdfimgsrcList, "imglist");
         } else {
-          this.pdfimg = item.response.url;
+          this.pdfimg = this.Networkheader + "/prod-api" + item.response.url;
         }
       } else {
         this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
@@ -1256,12 +1473,39 @@
         this.previewpdf = false;
       }
     },
+    getIndexInArray(arr, obj) {
+      return arr.indexOf(obj);
+    },
+    // 鐐瑰嚮鍒犻櫎
+    deletedowfile(row) {
+      console.log(this.fileListto);
+      console.log(row);
+      const indexlist = this.getIndexInArray(
+        this.pdfimgsrcList,
+        this.Networkheader + "/prod-api" + row.url
+      );
+      console.log(indexlist);
+      this.pdfimgsrcList.splice(indexlist, 1);
+      const index = this.getIndexInArray(this.fileListto, row);
+      this.fileListto.splice(index, 1);
+      console.log(index);
+      console.log(this.pdfimgsrcList);
+    },
+    // 鐐瑰嚮涓婄Щ
+    moveupdowfile(row) {
+      const index = this.getIndexInArray(this.fileListto, row);
+      const item = this.fileListto.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
+      this.fileListto.splice(index - 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
+    },
 
     /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
     getTreeselect() {
       treeselect().then(response => {
         this.deptOptions = response.data;
       });
+    },
+    cellCilicksa(row) {
+      console.log(row);
     },
 
     //鑾峰彇浜哄憳鍒楄〃
@@ -1391,7 +1635,17 @@
         }
 
         //浼欓璐硅ˉ鍔╋細鍩庡競锛堣タ钘忥紝鏂扮枂锛岄潚娴�.120锛夛紙鍏朵粬100锛�
-        row.foodallowance = (parseInt(row.days) * 100).toString();
+        if (tempStr == "鏉窞") {
+          row.foodallowance = "";
+        } else if (
+          tempStr == "瑗胯棌" ||
+          tempStr == "鏂扮枂" ||
+          tempStr == "闈掓捣"
+        ) {
+          row.foodallowance = (parseInt(row.days) * 120).toString();
+        } else {
+          row.foodallowance = (parseInt(row.days) * 100).toString();
+        }
 
         //璁$畻鍚堣
         this.sumRowFee(row);
@@ -1536,6 +1790,7 @@
       this.loading = true;
       listReimbursement(this.queryParams).then(response => {
         this.reimbursementList = response.rows;
+        console.log(this.reimbursementList);
         this.total = response.total;
         this.loading = false;
       });
@@ -1635,7 +1890,7 @@
       this.reset();
       // this.open = true;
       this.title = "鏂板宸梾鐢宠鍗�";
-      this.dialogType = "edit";
+      this.operationType = "edit";
       this.fundflowList = [];
 
       console.log(this.title, this.defaultperson);
@@ -1651,67 +1906,75 @@
     },
 
     /** 淇敼鎸夐挳鎿嶄綔 */
-    handleUpdate(ids) {
+    handleUpdate(curId) {
       // this.$router.push({
       //   path: "/finance/travelexpenseslist/Modifydetails/",
       //   query: { id: ids }
       // });
 
-      this.dialogType = "edit";
+      this.operationType = "edit";
       this.reset();
       // this.open = true;
       this.title = "鎶ラ攢鐢宠淇敼";
 
       //鑾峰彇鎶ラ攢涓讳俊鎭�
-      const id = ids || this.ids;
-      getReimbursement(id).then(response => {
+      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));
 
-        let ids = response.data.id;
         //鑾峰彇鎶ラ攢鏄庣粏淇℃伅
-        getReimbursementdetaillist(ids).then(res => {
+        getReimbursementdetaillist(curId).then(res => {
           this.rbDetails = res.data;
           console.log(this.rbDetails);
           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)
+          );
         });
 
         //鑾峰彇鎶ラ攢鎵撴淇℃伅
-        this.queryParamsPayee.rbid = ids;
+        this.queryParamsPayee.rbid = curId;
         listReimbursementpayee(this.queryParamsPayee).then(res => {
           this.rbPayees = res.rows;
           if (this.rbPayees.length == 0) {
             this.addPayeeRow(0);
           }
         });
+
+        //瀹℃牳鐘舵��
+        this.form.recordstatus = response.data.recordstatus + "";
+        let listFundflowparams = {
+          fundid: curId,
+          fundtype: 1
+        };
+        listFundflow(listFundflowparams).then(res => {
+          this.fundflowList = res.rows;
+        });
       });
     },
 
     /** 鏌ョ湅鎸夐挳鎿嶄綔 */
     handleDetail(ids) {
-      this.dialogType = "detail";
+      this.operationType = "detail";
       this.title = "鎶ラ攢鐢宠璇︽儏";
+      this.jurisdiction = true;
 
       this.reset();
       this.open = true;
@@ -1765,12 +2028,14 @@
             this.addPayeeRow(0);
           }
         });
+        sessionStorage.removeItem("apiform");
+        sessionStorage.setItem("apiform", JSON.stringify(this.form));
       });
     },
 
     /** 瀹℃牳鎸夐挳鎿嶄綔 */
     handleCheck(ids) {
-      this.dialogType = "check";
+      this.operationType = "check";
       this.title = "鎶ラ攢鐢宠璇︽儏";
 
       this.reset();
@@ -1780,6 +2045,7 @@
 
       getReimbursement(id).then(response => {
         this.form = response.data;
+
         //绁ㄦ嵁
         this.fileListto = this.form.annexfiles
           ? this.form.annexfiles
@@ -1829,6 +2095,8 @@
             this.addPayeeRow(0);
           }
         });
+        sessionStorage.removeItem("apiform");
+        sessionStorage.setItem("apiform", JSON.stringify(this.form));
       });
     },
 
@@ -1852,13 +2120,15 @@
       checkfund(checkfundobj).then(res => {
         this.reset();
         this.open = false;
-        this.getList();
         this.$modal.msgSuccess("鎻愪氦瀹℃牳鎴愬姛!");
+        // 鍏抽棴绐楀彛
+        this.$store.dispatch("tagsView/delView", this.$route);
+        this.$router.go(-1);
       });
     },
 
     /** 鎻愪氦淇濆瓨鎸夐挳 */
-    submitForm() {
+    submitForm: debounce(function(data) {
       this.$refs["form"].validate(valid => {
         if (valid) {
           // idisabled=true;
@@ -1919,17 +2189,15 @@
           */
 
           //绁ㄦ嵁鏂囦欢澶勭悊
+          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:
                 "鎶ラ攢璇锋琛ㄤ腑鍚堣閲戦涓嶇瓑浜庢姤閿�鍗曠殑鎶ラ攢閲戦锛岃鏇存鍚庡啀淇濆瓨锛�",
@@ -1970,7 +2238,9 @@
             this.open = false;
 
             // 鍏抽棴绐楀彛
+            this.$store.dispatch("tagsView/delView", this.$route);
             this.$router.go(-1);
+
             // this.getList();
             // })
             // .catch(err => {
@@ -1993,11 +2263,17 @@
                   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;
 
                 // 鍏抽棴绐楀彛
+                this.$store.dispatch("tagsView/delView", this.$route);
                 this.$router.go(-1);
               })
               .catch(err => {
@@ -2006,7 +2282,7 @@
           }
         }
       });
-    },
+    }, 500),
 
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
@@ -2040,9 +2316,104 @@
         })
         .catch(() => {});
     },
+    // 鍙栨秷鎻愰啋
+    unsave() {
+      this.Savereminder = false;
+      this.Reminderquantity = 0;
+    },
+    // 鎺ュ彈鎻愰啋绔嬪埢淇濆瓨
+    Savenow() {
+      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) {
+          //绁ㄦ嵁鏂囦欢澶勭悊
+          let list = this.fileListto;
+          console.log(list);
+
+          //鏍¢獙璇锋閲戦鍚堣鏄惁绛変簬鎶ラ攢鍗曢噾棰�
+          if (this.form.amountrequested != addnumber) {
+            this.$message({
+              message:
+                "鎶ラ攢璇锋琛ㄤ腑鍚堣閲戦涓嶇瓑浜庢姤閿�鍗曠殑鎶ラ攢閲戦锛岃鏇存鍚庡啀淇濆瓨锛�",
+              type: "warning"
+            });
+            return;
+          }
+
+          const rbDetails = [...this.rbDetails];
+          const rbPayees = [...this.rbPayees];
+          if (this.form.id != null) {
+            console.log(this.form);
+            updateReimbursement(this.form);
+            //   .then(res => {
+            //淇濆瓨鏄庣粏
+            for (let i = 0; i < rbDetails.length; i++) {
+              if (rbDetails[i].rbid != null) {
+                updateReimbursementdetail(rbDetails[i]);
+              } else {
+                //rbid鍏宠仈涓昏〃Id
+                rbDetails[i].rbid = this.form.id;
+                addReimbursementdetail(rbDetails[i]);
+              }
+            }
+
+            //淇濆瓨璐︽埛
+            for (let i = 0; i < rbPayees.length; i++) {
+              if (rbPayees[i].rbid != null) {
+                updateReimbursementpayee(rbPayees[i]);
+              } else {
+                //rbid鍏宠仈涓昏〃Id
+                rbPayees[i].rbid = this.form.id;
+                addReimbursementpayee(rbPayees[i]);
+              }
+            }
+
+            this.$modal.msgSuccess("淇敼鎶ラ攢鍗曚繚瀛樻垚鍔�!");
+
+            // this.getList();
+            // })
+            // .catch(err => {
+            //   this.$modal.msgError("淇敼鎶ラ攢鍗曚繚瀛樺け璐ワ紒");
+            // });
+          } else {
+            this.form.recordstatus = -1;
+            addReimbursement(this.form)
+              .then(response => {
+                //淇濆瓨鏄庣粏
+                for (let i = 0; i < rbDetails.length; i++) {
+                  //rbid鍏宠仈涓昏〃Id
+                  rbDetails[i].rbid = response.data;
+                  addReimbursementdetail(rbDetails[i]);
+                }
+
+                //淇濆瓨璐﹀彿
+                for (let i = 0; i < rbPayees.length; i++) {
+                  //rbid鍏宠仈涓昏〃Id
+                  rbPayees[i].rbid = response.data;
+                  addReimbursementpayee(rbPayees[i]);
+                }
+
+                this.$modal.msgSuccess("鏂板鎶ラ攢鍗曚繚瀛樻垚鍔�!");
+              })
+              .catch(err => {
+                this.$modal.msgError("鏂板鎶ラ攢鍗曚繚瀛樺け璐ワ紒");
+              });
+          }
+        }
+      });
+    },
 
     //鏂板涓�琛�
     addDetailRow(rowIndex) {
+      console.log(rowIndex);
+
       let rowData = {
         //index: this.rbDetails.length,
         searchAddress: {
@@ -2057,6 +2428,8 @@
         endtime: null,
         destination: null,
         days: null,
+        persontype: null,
+        personname: null,
         trafficexpense: 0,
         traffictype: null,
         traffictype2: null,
@@ -2080,14 +2453,25 @@
         total: 0,
         orderno: null,
         personname2: null,
-        personname: null,
         destination: null
       };
+      if (this.rbDetails.length) {
+        console.log(this.rbDetails[rowIndex].persontype);
+        console.log(this.rbDetails[rowIndex].personname);
+        rowData.persontype = this.rbDetails[rowIndex].persontype;
+        rowData.personname = this.rbDetails[rowIndex].personname;
+      }
+      // if (this.Reminderquantity >= 5) {
+      //   this.Savereminder = true;
+      //   return;
+      // }
       if (rowIndex == undefined || rowIndex == null || rowIndex < 0) {
         this.rbDetails.push(rowData);
       } else {
         this.rbDetails.splice(rowIndex + 1, 0, rowData);
       }
+      this.Reminderquantity++;
+      this.totalquantity++;
       for (let i = 0; i < this.rbDetails.length; i++) {
         this.rbDetails[i].orderno = i + 1;
       }
@@ -2106,11 +2490,17 @@
         personname: null,
         amount: null
       };
+      // if (this.Reminderquantity >= 5) {
+      //   this.Savereminder = true;
+      //   return;
+      // }
       if (rowIndex == undefined || rowIndex == null || rowIndex <= 0) {
         this.rbPayees.push(rowData);
       } else {
         this.rbPayees.splice(rowIndex + 1, 0, rowData);
       }
+      this.Reminderquantity++;
+      this.totalquantity++;
       for (let i = 0; i < this.rbPayees.length; i++) {
         this.rbPayees[i].orderno = i + 1;
       }
@@ -2151,8 +2541,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();
@@ -2243,7 +2635,7 @@
       if (!isNaN(parseFloat(row.otherfeeamount))) {
         totalFee += parseFloat(row.otherfeeamount);
       }
-      row.total = totalFee;
+      row.total = totalFee.toFixed(2);
 
       /*
       if (!isNaN(parseFloat(this.rbDetails[rowIndex].trafficexpense))) {
@@ -2446,6 +2838,10 @@
           sums[index] = "鍚堣";
           return;
         }
+        if (index === 18) {
+          sums[index] = this.form.amountrequested;
+          return;
+        }
         //鍘婚櫎閮ㄥ垎瀛楁璁$畻
         if (columnnames.indexOf(column.property) > -1) {
           return;
@@ -2461,7 +2857,7 @@
               return prev;
             }
           }, 0);
-          sums[index] += "";
+          sums[index] = sums[index].toFixed(2); // 淇濈暀2浣嶅皬鏁帮紝瑙e喅灏忔暟鍚堣鍒�;
         } else {
           sums[index] = "";
         }
@@ -2507,7 +2903,7 @@
   height: 600px;
 
   .box-pdf {
-    width: 200px;
+    width: 400px;
     padding-top: 20px;
     margin-right: 30px;
     border: 1px solid #dcdfe6;
@@ -2546,4 +2942,8 @@
   line-height: 36px;
   text-align: center;
 }
+::v-deep .el-alert__title {
+  font-size: 20px;
+  line-height: 20px;
+}
 </style>

--
Gitblit v1.9.3