From 1c678c6fc8bbb7974ceb57d95c96e3ed2f4c2676 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期五, 01 九月 2023 16:45:30 +0800
Subject: [PATCH] Merge branch 'master' of http://116.62.18.175:6699/r/~yxh/opo-web

---
 src/views/project/travelexpenseapply/travelexpensedetail/index.vue |  331 +++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 272 insertions(+), 59 deletions(-)

diff --git a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
index cd24f2c..9670383 100644
--- a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
+++ b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -209,11 +209,12 @@
           </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
             highlight-current-row
             :summary-method="getSummaries"
@@ -478,18 +479,25 @@
                 />
               </template>
             </el-table-column>
-            <!--
-            <el-table-column prop="cityfee" label="甯傚唴浜ら�氳垂" align="center" width="100">
+            <el-table-column
+              prop="cityfee"
+              label="甯傚唴浜ら�氳垂"
+              align="center"
+              width="100"
+            >
               <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="浣忓璐�"
@@ -619,7 +627,7 @@
                   type="text"
                   size="mini"
                   @click="addDetailRow(scope.$index)"
-                  v-if="dialogType == 'edit'"
+                  v-if="operationType == 'edit'"
                   >鏂板</el-button
                 >
                 <el-button
@@ -628,7 +636,7 @@
                   "
                   type="text"
                   size="small"
-                  v-if="dialogType == 'edit'"
+                  v-if="operationType == 'edit'"
                   >鍒犻櫎</el-button
                 >
                 <el-button
@@ -644,9 +652,9 @@
           </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
@@ -810,7 +818,7 @@
               label="鎿嶄綔"
               align="center"
               width="100"
-              v-if="dialogType == 'edit'"
+              v-if="operationType == 'edit'"
             >
               <template slot-scope="scope">
                 <el-button
@@ -832,32 +840,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 +880,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 +891,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,13 +903,13 @@
         <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>-->
@@ -921,14 +933,14 @@
                   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'"
+                :disabled="operationType == 'detail'"
                 size="small"
                 type="primary"
                 >涓婁紶</el-button
@@ -946,10 +958,34 @@
         </div>
 
         <div v-if="this.previewpdf" class="pdfimgmin">
-          <img :src="pdfimg" />
+          <!-- <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>
@@ -1035,6 +1071,10 @@
         value: 0,
         label: ""
       },
+      pdfimgsrcList: [],
+      Savereminder: false, //鎻愰啋淇濆瓨寮规
+      Reminderquantity: 0, //鎻愰啋鏁伴噺
+      totalquantity: 0, //鎬绘暟閲�
 
       hintitle: "閫変腑宸︿晶宸蹭笂浼犳枃浠堕瑙堟煡鐪�",
       atpresent: "",
@@ -1052,6 +1092,11 @@
       loading: true,
       // 瀵煎嚭閬僵灞�
       exportLoading: false,
+      // 缃戠粶璇锋眰澶�
+      Networkheader: null,
+
+      // 褰撳墠鍗曟嵁ID
+      curId: 0,
       // 閫変腑鏁扮粍
       ids: [],
       // 闈炲崟涓鐢�
@@ -1114,7 +1159,7 @@
       defaultperson: {},
       fundflowList: [],
       showApproveRecordDialog: false,
-      dialogType: "edit",
+      operationType: "edit",
 
       //涓婁紶鍙戠エ鏂囦欢璺緞
       uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload",
@@ -1143,6 +1188,8 @@
   },
 
   created() {
+    this.Getnetworkheader();
+
     //鑾峰彇璁板綍鍒楄〃
     // this.getList();
 
@@ -1179,23 +1226,41 @@
 
   mounted() {
     //閫夋嫨涓氬姟绫诲瀷: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() {},
-
+    // 鑾峰彇璇锋眰澶�
+    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 +1274,19 @@
     //鏂囦欢涓婁紶鎴愬姛鍥炶皟
     uploadSccess(response, file, fileList) {
       this.rbDetails;
-
       //鑾峰彇绁ㄦ嵁淇℃伅浣嶇疆
       if (response.code == 200) {
         this.form.filename = file.raw.name;
 
         this.$modal.msgSuccess(response.msg);
-        this.fileListto.push({ name: file.name, url: response.url });
+        this.fileListto.push({
+          name: file.name,
+          url: response.fileName
+        });
+        // this.fileListto.push({
+        //   name: file.name,
+        //   url: response.url
+        // });
         this.rbDetails[this.atpresent].annexfilesList = this.fileListto;
       } else {
         console.log(response.msg);
@@ -1225,8 +1296,14 @@
     Filepopup(index, rows, row) {
       this.atpresent = index;
       this.pdfVisible = true;
+      console.log(this.rbDetails[index]);
       if (this.rbDetails[index].annexfilesList) {
         this.fileListto = this.rbDetails[index].annexfilesList;
+        console.log(this.fileListto);
+        this.pdfimg = this.Networkheader + "/prod-api" + this.fileListto[0].url;
+        console.log(this.pdfimg);
+        this.pdfimgsrcList = [];
+        this.pdfimgsrcList.push(this.pdfimg);
       } else {
         this.fileListto = [];
         this.pdfimg = "";
@@ -1246,9 +1323,12 @@
       } else if (name[1] == "jpg" || "png") {
         this.previewpdf = true;
         if (item.url) {
-          this.pdfimg = item.url;
+          this.pdfimg = this.Networkheader + "/prod-api" + item.url;
+          this.pdfimgsrcList = [];
+          this.pdfimgsrcList.push(this.pdfimg);
+          console.log(this.pdfimg);
         } else {
-          this.pdfimg = item.response.url;
+          this.pdfimg = this.Networkheader + "/prod-api" + item.response.url;
         }
       } else {
         this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
@@ -1262,6 +1342,9 @@
       treeselect().then(response => {
         this.deptOptions = response.data;
       });
+    },
+    cellCilicksa(row) {
+      console.log(row);
     },
 
     //鑾峰彇浜哄憳鍒楄〃
@@ -1391,7 +1474,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 +1629,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 +1729,7 @@
       this.reset();
       // this.open = true;
       this.title = "鏂板宸梾鐢宠鍗�";
-      this.dialogType = "edit";
+      this.operationType = "edit";
       this.fundflowList = [];
 
       console.log(this.title, this.defaultperson);
@@ -1651,20 +1745,19 @@
     },
 
     /** 淇敼鎸夐挳鎿嶄綔 */
-    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
@@ -1673,9 +1766,8 @@
           : [];
         this.form.recordstatus = response.data.recordstatus + "";
 
-        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) {
@@ -1698,19 +1790,29 @@
         });
 
         //鑾峰彇鎶ラ攢鎵撴淇℃伅
-        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.reset();
@@ -1770,7 +1872,7 @@
 
     /** 瀹℃牳鎸夐挳鎿嶄綔 */
     handleCheck(ids) {
-      this.dialogType = "check";
+      this.operationType = "check";
       this.title = "鎶ラ攢鐢宠璇︽儏";
 
       this.reset();
@@ -1852,8 +1954,10 @@
       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);
       });
     },
 
@@ -1970,7 +2074,9 @@
             this.open = false;
 
             // 鍏抽棴绐楀彛
+            this.$store.dispatch("tagsView/delView", this.$route);
             this.$router.go(-1);
+
             // this.getList();
             // })
             // .catch(err => {
@@ -1998,6 +2104,7 @@
                 this.open = false;
 
                 // 鍏抽棴绐楀彛
+                this.$store.dispatch("tagsView/delView", this.$route);
                 this.$router.go(-1);
               })
               .catch(err => {
@@ -2039,6 +2146,100 @@
           this.exportLoading = false;
         })
         .catch(() => {});
+    },
+    // 鍙栨秷鎻愰啋
+    unsave() {
+      this.Savereminder = false;
+      this.Reminderquantity = 0;
+    },
+    // 鎺ュ彈鎻愰啋绔嬪埢淇濆瓨
+    Savenow() {
+      this.Savereminder = false;
+      this.Reminderquantity = 0;
+      this.totalquantity = 0;
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          //绁ㄦ嵁鏂囦欢澶勭悊
+          let list = this.fileListto;
+          console.log(list);
+
+          //鏍¢獙璇锋閲戦鍚堣鏄惁绛変簬鎶ラ攢鍗曢噾棰�
+          if (
+            this.form.amountrequested !=
+            this.rbPayees.reduce(
+              (amount, item) => amount + Number(item.amount),
+              0.0
+            )
+          ) {
+            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("鏂板鎶ラ攢鍗曚繚瀛樺け璐ワ紒");
+              });
+          }
+        }
+      });
     },
 
     //鏂板涓�琛�
@@ -2083,11 +2284,17 @@
         personname: null,
         destination: null
       };
+      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 +2313,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;
       }

--
Gitblit v1.9.3