From 0e10e10157b90002b99996914eaf1e5574924ddf Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期一, 12 十月 2026 11:15:50 +0800
Subject: [PATCH] 修改了报销校验

---
 src/views/project/fund/medicalCostApply/index.vue |  109 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 81 insertions(+), 28 deletions(-)

diff --git a/src/views/project/fund/medicalCostApply/index.vue b/src/views/project/fund/medicalCostApply/index.vue
index 944deeb..d1212ab 100644
--- a/src/views/project/fund/medicalCostApply/index.vue
+++ b/src/views/project/fund/medicalCostApply/index.vue
@@ -124,6 +124,7 @@
                 v-loading="loading"
                 border
                 :data="donateconsolationfundList"
+                :row-class-name="rowClassName"
               >
                 <el-table-column
                   label="鐢宠鏃ユ湡"
@@ -174,7 +175,7 @@
                   </template>
                 </el-table-column>
                 <el-table-column
-                  label="鐢宠鏉愭枡鐘舵��"
+                  label="鏉愭枡棰勫鐘舵��"
                   width="140"
                   align="center"
                   prop="checkstatus"
@@ -218,7 +219,6 @@
                       type="text"
                       icon="el-icon-edit"
                       @click="handleUpdate(scope.row)"
-                      v-hasPermi="['project:medicalfund:edit']"
                       >淇敼</el-button
                     >
                     <el-button
@@ -235,18 +235,36 @@
                       "
                       size="mini"
                       type="text"
-                      icon="el-icon-delete"
                       @click="handleDelete(scope.row)"
-                      v-hasPermi="['project:medicalfund:delete']"
-                      >鍒犻櫎</el-button
+                      ><span class="button-delete"
+                        ><i class="el-icon-delete"></i>鍒犻櫎</span
+                      ></el-button
                     >
                     <el-button
                       size="mini"
                       type="text"
                       icon="el-icon-download"
                       @click="mixExport(scope.row.id)"
-                      v-hasPermi="['project:medicalfund:download']"
                       >涓嬭浇</el-button
+                    >
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  fixed="right"
+                  align="center"
+                  width="120"
+                  label="鍔熻兘"
+                >
+                  <template slot-scope="scope">
+                    <el-button size="mini" v-if="scope.row.uploadStates == 1"
+                      >绾夸笅宸叉姤閿�</el-button
+                    >
+                    <el-button
+                      size="mini"
+                      type="success"
+                      v-else-if="scope.row.uploadStates == 0"
+                      @click="Dooffline(scope.$index, scope.row)"
+                      >绾夸笅鎶ラ攢</el-button
                     >
                   </template>
                 </el-table-column>
@@ -317,6 +335,7 @@
 import { getUserProfile } from "@/api/system/user";
 import { listFundflow } from "@/api/project/fundflow";
 import { getToken } from "@/utils/auth";
+import { moneySum, moneyAdd, moneySub, moneyMul, moneyRound } from "@/utils/money";
 
 export default {
   //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
@@ -488,6 +507,17 @@
       this.resetForm("queryForm");
       this.handleQuery();
     },
+    Dooffline(a, value) {
+      value.uploadStates = 1;
+      value.notes = "绾夸笅宸叉姤閿�";
+      addorupdateFund(value).then(res => {
+        if (res.code == 200) {
+          this.$modal.msgSuccess("璁板綍鎴愬姛");
+        } else {
+          this.$modal.msgError(res.msg);
+        }
+      });
+    },
 
     /** 鏌ヨ鎹愮尞浜洪亾鎱伴棶閲戝垪琛� */
     getList() {
@@ -516,7 +546,7 @@
             id: 0,
             businessType: "3",
             operationType: "add",
-            curCase: this.curCase
+            curCase: this.curCase,
           }
         });
       } else {
@@ -689,8 +719,20 @@
         .then(() => {
           //鏌ユ壘鏄惁瀛樺湪鐧昏瀹屾垚璁板綍
           //鍒ゆ柇鏄惁瀛樺湪涓婃姤璁板綍
-          row.recordstatus = 0;var currenttime = new Date();
-          row.applyTime = currenttime.getFullYear() + "-" + (currenttime.getMonth()+1) + "-" + currenttime.getDate() + " " + currenttime.getHours() + ":" + currenttime.getMinutes() + ":" + currenttime.getSeconds();
+          row.recordstatus = 0;
+          var currenttime = new Date();
+          row.applyTime =
+            currenttime.getFullYear() +
+            "-" +
+            (currenttime.getMonth() + 1) +
+            "-" +
+            currenttime.getDate() +
+            " " +
+            currenttime.getHours() +
+            ":" +
+            currenttime.getMinutes() +
+            ":" +
+            currenttime.getSeconds();
           updateFund(row).then(response => {
             if (response.code == 200) {
               this.$message({
@@ -1149,41 +1191,40 @@
         });
     },
 
-    //璁$畻鎬婚噾棰�
+    //璁$畻鎬婚噾棰濓紙閲戦涓�寰嬭蛋绮剧‘杩愮畻锛岀姝� parseFloat 绱姞锛�
     sumTotalFee(row) {
-      let allSum = 0;
+      const detailsArr = [];
       if (this.form.applytype != null) {
         for (let i = 0; i < this.fundDetails.length; i++) {
+          const detail = this.fundDetails[i];
           let totalFee = 0;
           let taxFee = 0;
           if (this.form.applytype == 1 || this.form.applytype == 2) {
-            //璁$畻褰撳墠鎶ラ攢鍐呭璐圭敤鍚堣
-            if (!isNaN(parseFloat(this.fundDetails[i].amount))) {
-              totalFee += parseFloat(this.fundDetails[i].amount);
-              taxFee += parseFloat(this.fundDetails[i].amount);
+            //璁$畻褰撳墠鎶ラ攢鍐呭璐圭敤鍚堣锛氱◣鍓� - 鎵g◣
+            if (!isNaN(parseFloat(detail.amount))) {
+              totalFee = moneyAdd(totalFee, detail.amount);
+              taxFee = moneyAdd(taxFee, detail.amount);
             }
-            if (!isNaN(parseFloat(this.fundDetails[i].taxamount))) {
-              totalFee -= parseFloat(this.fundDetails[i].taxamount);
-              taxFee -= parseFloat(this.fundDetails[i].taxamount);
+            if (!isNaN(parseFloat(detail.taxamount))) {
+              totalFee = moneySub(totalFee, detail.taxamount);
+              taxFee = moneySub(taxFee, detail.taxamount);
             }
           } else if (this.form.applytype == 3) {
             if (
-              !isNaN(parseFloat(this.fundDetails[i].price)) &&
-              !isNaN(parseFloat(this.fundDetails[i].quantity))
+              !isNaN(parseFloat(detail.price)) &&
+              !isNaN(parseFloat(detail.quantity))
             ) {
-              totalFee +=
-                parseFloat(this.fundDetails[i].price) *
-                parseFloat(this.fundDetails[i].quantity);
+              totalFee = moneyMul(detail.price, detail.quantity);
             }
           }
           if (!isNaN(parseFloat(taxFee))) {
-            this.fundDetails[i].taxedamount = taxFee.toFixed(2);
+            this.fundDetails[i].taxedamount = moneyRound(taxFee).toFixed(2);
           }
-          allSum += totalFee;
+          detailsArr.push(totalFee);
         }
       }
       //this.form.amountrequested = allSum.toFixed(2);
-      this.$set(this.form, "amountrequested", allSum.toFixed(2));
+      this.$set(this.form, "amountrequested", moneyRound(moneySum(detailsArr)).toFixed(2));
       //this.$forceUpdate();
     },
 
@@ -1297,7 +1338,7 @@
             console.log(url);
             const link = document.createElement("a");
             link.href = url;
-            const name=fileUrl["downloadName"]
+            const name = fileUrl["downloadName"];
             link.setAttribute("download", name); // 鏇挎崲file.pdf涓哄疄闄呯殑鏂囦欢鍚�
             document.body.appendChild(link);
             link.click();
@@ -1423,10 +1464,22 @@
         this.$modal.msgWarning("褰撳墠鏂囦欢鏆備笉鏀寔棰勮");
         this.previewpdf = false;
       }
+    },
+    rowClassName({ row, column, rowIndex, columnIndex }) {
+      if (row.recordstatus == -1 && row.backflowlevel != null) {
+        return "error-row";
+      }
+      return "";
     }
   }
 };
 </script>
-<style scoped>
+<style lang="scss" scoped>
 /* @import url(); 寮曞叆鍏叡css绫� */
+.button-delete {
+  color: rgb(236, 69, 69);
+}
+::v-deep.el-table .error-row {
+  background: #fcebeb;
+}
 </style>

--
Gitblit v1.9.3