From ecf548f84c5fa5a68c53041e37daf43053f40fa4 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 31 八月 2023 17:09:46 +0800
Subject: [PATCH] 11

---
 src/views/project/fund/applyDetail/index.vue                       |  296 ++++++++++++++++++++++++++++++++++++
 src/views/project/travelexpenseapply/travelexpensedetail/index.vue |  124 +++++++++++++++
 src/api/project/reimbursement.js                                   |    4 
 src/views/project/travelexpenseapply/index.vue                     |    1 
 4 files changed, 416 insertions(+), 9 deletions(-)

diff --git a/src/api/project/reimbursement.js b/src/api/project/reimbursement.js
index a44d4be..14cec00 100644
--- a/src/api/project/reimbursement.js
+++ b/src/api/project/reimbursement.js
@@ -62,8 +62,8 @@
 // 鍒犻櫎鎶ラ攢鐢宠
 export function delReimbursement(id) {
   return request({
-    url: '/project/reimbursement/' + id,
-    method: 'delete'
+    url: '/project/reimbursement/remove/' + id,
+    method: 'get'
   })
 }
 
diff --git a/src/views/project/fund/applyDetail/index.vue b/src/views/project/fund/applyDetail/index.vue
index 0f760c4..50aa3f1 100644
--- a/src/views/project/fund/applyDetail/index.vue
+++ b/src/views/project/fund/applyDetail/index.vue
@@ -894,6 +894,21 @@
         <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>
 
@@ -1031,6 +1046,8 @@
       unitList: [],
       //璐圭敤鎶ラ攢鏈烘瀯鍒楄〃
       feeUnitList: [],
+      // 缃戠粶璇锋眰澶�
+      Networkheader: null,
 
       itemlist: [],
 
@@ -1186,7 +1203,10 @@
       pdfVisible: false,
       previewpdf: false,
       hintitle: "閫変腑宸︿晶宸蹭笂浼犳枃浠堕瑙堟煡鐪�",
-      atpresent: ""
+      atpresent: "",
+      Savereminder: false, //鎻愰啋淇濆瓨寮规
+      Reminderquantity: 0, //鎻愰啋鏁伴噺
+      totalquantity: 0 //鎬绘暟閲�
     };
   },
   //鐩戝惉灞炴�� 绫讳技浜巇ata姒傚康
@@ -1243,6 +1263,20 @@
       this.resetForm("form");
       //娓呯┖闄勪欢
       this.fileList = [];
+    },
+    // 鑾峰彇璇锋眰澶�
+    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);
+      }
     },
     /** 閫氳繃鍙傛暟鑾峰彇涓氬姟绫诲瀷 */
     getroute() {
@@ -2117,6 +2151,245 @@
       // });
     },
 
+    unsave() {
+      this.Savereminder = false;
+      this.Reminderquantity = 0;
+    },
+    // 鎺ュ彈鎻愰啋绔嬪埢淇濆瓨
+    Savenow() {
+      this.Savereminder = false;
+      this.Reminderquantity = 0;
+      this.totalquantity = 0;
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.formData = this.form;
+          // let totalPreTaxAmount = 0.0;
+          // let totalAfterTaxAmount = 0.0;
+          // let totalAmount = 0.0;
+
+          //淇濆瓨鍓嶆牎楠屾暟鎹�
+          for (let k = 0; k < this.rbDetails.length; k++) {
+            let tempDetail = this.rbDetails[k];
+            if (tempDetail.itemid == null) {
+              this.$modal.msgWarning(
+                "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
+                  (k + 1).toString() +
+                  "琛岀殑鏈嶅姟椤圭洰鏈�夋嫨锛岃鍏堥�夋嫨鏈嶅姟椤圭洰鍚庡啀鎻愪氦淇濆瓨锛�"
+              );
+              return;
+            }
+
+            if (this.businessType == "1") {
+              if (tempDetail.servicesscope == null) {
+                this.$modal.msgWarning(
+                  "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
+                    (k + 1).toString() +
+                    "琛岀殑璐圭敤璇存槑鏈�夋嫨,璇烽�夋嫨璐圭敤璇存槑鍚庡啀鎻愪氦淇濆瓨锛�"
+                );
+                return;
+              }
+
+              if (
+                tempDetail.beneficiaryno == null ||
+                tempDetail.beneficiaryno == "鐐瑰嚮閫夋嫨"
+              ) {
+                this.$modal.msgWarning(
+                  "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
+                    (k + 1).toString() +
+                    "琛岀殑鏈嶅姟浜哄憳濮撳悕涓洪�夋嫨,璇烽�夋嫨浜哄憳鍚庡啀鎻愪氦淇濆瓨锛�"
+                );
+                return;
+              }
+            }
+
+            // //鍒ゆ柇鍗曚綅 unitSel
+            // try {
+            //   let unitIndex = this.unitList.findIndex(
+            //     (item) => tempDetail.unitno == item.organizationid
+            //   );
+            //   if (unitIndex > -1) {
+            //     tempDetail.unitname = this.unitList[unitIndex].organizationname;
+            //   } else {
+            //     tempDetail.unitname = tempDetail.unitno;
+            //   }
+            // } catch {
+            //   tempDetail.unitname = tempDetail.unitno;
+            // }
+          }
+
+          //闄勪欢澶勭悊
+          let list = this.fileList;
+          // if (list.length > 0) {
+          //   this.form.annexfiles = list.map(item => item.url).join(",");
+          // }
+
+          //澶勭悊鏄庣粏
+          for (let i = 0; i < this.rbDetails.length; i++) {
+            let tempDetail = this.rbDetails[i];
+            //鑾峰彇鏈嶅姟椤圭洰鏄庣粏
+            let tempitemlist = tempDetail.itemlist;
+            let itemIndex = tempitemlist.findIndex(
+              item => tempDetail.itemid == item.id
+            );
+            if (itemIndex > -1) {
+              tempDetail.itemname = tempitemlist[itemIndex].itemName;
+              tempDetail.itemid = tempitemlist[itemIndex].id;
+            }
+
+            //鑾峰彇applytypename銆佹湇鍔¤垂鐢ㄥぇ绫�
+            let applytypeIndex = this.rowfeeItemTypes.findIndex(
+              item => tempDetail.applytype == item.value
+            );
+            if (applytypeIndex > -1) {
+              tempDetail.applytypename = this.rowfeeItemTypes[
+                applytypeIndex
+              ].label;
+              tempDetail.subjecttype = this.rowfeeItemTypes[
+                applytypeIndex
+              ].subjecttype;
+              tempDetail.subjecttypename = this.rowfeeItemTypes[
+                applytypeIndex
+              ].subjecttypename;
+            }
+            this.rbDetails[i] = tempDetail;
+            /*
+            //璁$畻涓◣            
+            //if (isNaN(parseFloat(tempDetail.taxedamount)))
+            //鑾峰彇鍙傛暟
+            this.taxParam.beneficiaryNo = tempDetail.beneficiaryno;
+            this.taxParam.startTime = this.form.createTime.substring(0, 10);
+            // 璁$畻绋庡悗閲戦
+            if (tempDetail.taxedamount == undefined || tempDetail.taxedamount == null || tempDetail.taxedamount == 0 || tempDetail.taxedamount == '') {
+              //鑾峰彇鍙傛暟
+              this.taxParam.money = tempDetail.amount.toString();
+              getTaxByBeneFiciaryNo(this.taxParam).then((res) => {
+                if (res.code == 200) {
+                  tempDetail.taxamount = res.data;
+                  tempDetail.taxedamount = tempDetail.amount - tempDetail.taxamount;
+                  this.rbDetails[k] = tempDetail;
+           
+                  this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount);
+                  this.totalAmount += parseFloat(tempDetail.amount);
+                }
+              });
+            }
+           
+            // 璁$畻绋庡墠銆佺◣璐广�佺◣鍚庨噾棰�
+            if (tempDetail.amount == undefined || tempDetail.amount == null || tempDetail.amount == 0 || tempDetail.amount == '') {
+              //鑾峰彇鍙傛暟
+              this.taxParam.money = tempDetail.taxedamount.toString();
+              getTaxBeforeByAfterMoney(this.taxParam).then((res) => {
+                if (res.code == 200) {
+                  tempDetail.taxamount = res.data.nowTax;
+                  tempDetail.amount = parseFloat(res.data.nowTaxBeforeMoney);
+                  this.rbDetails[k] = tempDetail;
+           
+                  this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount);
+                  this.totalAmount += parseFloat(tempDetail.amount);
+                }
+              });
+            }
+            */
+          }
+          //璁$畻褰撳墠琛屾姤閿�鍐呭璐圭敤鍚堣锛岀◣鍓嶉噾棰濓紙amount锛夈�佹墸绋庨噾棰濓紙taxamount锛夈�佺◣鍚庨噾棰濓紙taxedamount锛�
+          if (this.businessType == "2") {
+            for (let j = 0; j < this.rbDetails.length; j++) {
+              let tempDetail = this.rbDetails[j];
+              if (
+                isNaN(parseFloat(tempDetail.amount)) ||
+                parseFloat(tempDetail.amount) == 0
+              ) {
+                this.$modal.msgWarning(
+                  "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
+                    (j + 1).toString() +
+                    "琛岀殑閲戦鏈緭鍏ワ紝璇峰厛杈撳叆閲戦鍚庡啀鎻愪氦淇濆瓨锛�"
+                );
+                return;
+              }
+            }
+          } else if (this.businessType == "3" || this.businessType == "4") {
+            for (let j = 0; j < this.rbDetails.length; j++) {
+              let tempDetail = this.rbDetails[j];
+              if (
+                isNaN(parseFloat(tempDetail.amount)) ||
+                parseFloat(tempDetail.amount) == 0
+              ) {
+                this.$modal.msgWarning(
+                  "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
+                    (j + 1).toString() +
+                    "琛岀殑閲戦鏈緭鍏ワ紝璇峰厛杈撳叆閲戦鍚庡啀鎻愪氦淇濆瓨锛�"
+                );
+                return;
+              }
+              if (
+                isNaN(parseFloat(tempDetail.taxamount)) ||
+                parseFloat(tempDetail.taxamount) == 0
+              ) {
+                tempDetail.taxedamount = tempDetail.amount;
+              } else {
+                tempDetail.taxedamount =
+                  tempDetail.amount + tempDetail.taxamount;
+              }
+            }
+          }
+
+          //璐圭敤鍚堣
+          // this.form.pretaxcost = parseFloat(this.totalPreTaxAmount).toFixed(2);
+          // this.form.taxedcost = parseFloat(this.totalAfterTaxAmount).toFixed(2);
+          // this.form.amountrequested = this.totalAmount.toFixed(2);
+
+          //淇濆瓨鏁版嵁
+          this.loading = true;
+          this.form.serviceFunddetails = 0;
+          this.rbDetails.map(item => {
+            this.form.serviceFunddetails += item.amount;
+          });
+          console.log(this.rbDetails);
+          this.form.serviceFunddetails = this.rbDetails;
+
+          if (this.form.id != null) {
+            // updateFund(this.form).then((response) => {
+            //   if (response.code === 200) {
+            //     this.loading = false;
+            //     for (let m = 0; m < this.rbDetails.length; m++) {
+            //       if (this.rbDetails[m].id > 0) {
+            //         updateFunddetail(this.rbDetails[m]).then((response2) => { if (response.code != 200) { this.$modal.msgError("涓撳鍔冲姟璐逛繚瀛樺け璐�1锛�" + response.msg); } });
+            //       } else {
+            //         addFunddetail(this.rbDetails[m]).then((response2) => { if (response.code != 200) { this.$modal.msgError("涓撳鍔冲姟璐逛繚瀛樺け璐�2锛�" + response.msg); } });
+            //       }
+            //     }
+            //     this.$modal.msgSuccess("涓撳鍔冲姟璐逛繚瀛樻垚鍔燂紒");
+            //   } else {
+            //     this.$modal.msgError("涓撳鍔冲姟璐逛繚瀛樺け璐ワ細" + response.msg);
+            //   }
+            // });
+          } else {
+            this.form.recordstatus = -1;
+
+            // addorupdateFund(this.form).then((response) => {
+            //   if (response.code === 200) {
+            //     this.selectDonotor(this.curCase);
+            //   } else {
+            //     this.$modal.msgError("涓撳鍔冲姟璐逛繚瀛樺け璐ワ細" + response.msg);
+            //   }
+            // });
+          }
+
+          addorupdateFund(this.form).then(response => {
+            if (response.code === 200) {
+              this.$modal.msgSuccess("鐢宠鍗曚繚瀛樻垚鍔燂紒");
+            } else {
+              this.$modal.msgError("鐢宠鍗曚繚瀛樺け璐ワ細" + response.msg);
+            }
+          });
+
+          //鍏抽棴绐楀彛
+          this.loading = false;
+          // this.getfundList();
+        }
+      });
+    },
+
     //鏂板涓�琛�
     addRow(rowIndex) {
       let rowData = {
@@ -2163,11 +2436,17 @@
         rowfeeblocks: [],
         annexfiles: 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;
       }
@@ -2358,22 +2637,23 @@
         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.rbDetails[this.atpresent].annexfilesList = this.fileListto;
       } else {
         console.log(response.msg);
       }
     },
 
-    // 鐐瑰嚮鏂囦欢
+    // 鐐瑰嚮绁ㄦ嵁
     Filepopup(index, rows, row) {
       this.atpresent = index;
       this.pdfVisible = true;
       if (this.rbDetails[index].annexfilesList) {
         this.fileListto = this.rbDetails[index].annexfilesList;
-        this.pdfimg = this.fileListto[0].url;
+        this.pdfimg = this.Networkheader + "/prod-api" + this.fileListto[0].url;
         this.pdfimgsrcList = [];
         this.pdfimgsrcList.push(this.pdfimg);
+        console.log(this.pdfimg);
       } else {
         this.fileListto = [];
         this.pdfimg = "";
@@ -2391,11 +2671,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(item.url);
+          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 = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
@@ -2556,6 +2837,7 @@
   //鐢熷懡鍛ㄦ湡 - 鍒涘缓瀹屾垚锛堝彲浠ヨ闂綋鍓峵his瀹炰緥锛�
   created() {
     //鑾峰彇璺敱鍙傛暟
+    this.Getnetworkheader();
     this.getroute();
     this.getExternalList();
   },
diff --git a/src/views/project/travelexpenseapply/index.vue b/src/views/project/travelexpenseapply/index.vue
index 3935a56..f378cc7 100644
--- a/src/views/project/travelexpenseapply/index.vue
+++ b/src/views/project/travelexpenseapply/index.vue
@@ -2129,6 +2129,7 @@
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
       const ids = row.id || this.ids;
+      console.log(ids);
       this.$modal
         .confirm("鏄惁纭鍒犻櫎璇ユ潯璁板綍锛�")
         .then(function() {
diff --git a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
index 8f943b0..9670383 100644
--- a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
+++ b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -972,6 +972,21 @@
         <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>
 
@@ -1057,6 +1072,9 @@
         label: ""
       },
       pdfimgsrcList: [],
+      Savereminder: false, //鎻愰啋淇濆瓨寮规
+      Reminderquantity: 0, //鎻愰啋鏁伴噺
+      totalquantity: 0, //鎬绘暟閲�
 
       hintitle: "閫変腑宸︿晶宸蹭笂浼犳枃浠堕瑙堟煡鐪�",
       atpresent: "",
@@ -2129,6 +2147,100 @@
         })
         .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("鏂板鎶ラ攢鍗曚繚瀛樺け璐ワ紒");
+              });
+          }
+        }
+      });
+    },
 
     //鏂板涓�琛�
     addDetailRow(rowIndex) {
@@ -2172,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;
       }
@@ -2195,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