From 5b26f73b191ca95f12df24ec3e3d7930b4590be7 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 12 八月 2026 09:11:26 +0800
Subject: [PATCH] srm维护

---
 src/views/project/fund/performancedetails/index.vue |  199 ++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 147 insertions(+), 52 deletions(-)

diff --git a/src/views/project/fund/performancedetails/index.vue b/src/views/project/fund/performancedetails/index.vue
index 00a33d7..d80fa8d 100644
--- a/src/views/project/fund/performancedetails/index.vue
+++ b/src/views/project/fund/performancedetails/index.vue
@@ -14,7 +14,7 @@
                 type="date"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 placeholder="鐢宠鏃ユ湡"
-                disabled="true"
+                :disabled="true"
               >
               </el-date-picker>
             </el-form-item>
@@ -141,6 +141,8 @@
             max-height="800"
             border
             highlight-current-row
+            :summary-method="getSummaries"
+            show-summary
           >
             <el-table-column
               prop="orderno"
@@ -203,8 +205,8 @@
                 ></el-cascader> -->
               </template>
             </el-table-column>
-            <el-table-column
-              prop="amount"
+            <!-- <el-table-column
+              prop="jxrq"
               align="center"
               label="缁╂晥鏃ユ湡"
               width="260"
@@ -217,7 +219,7 @@
                 >
                 </el-date-picker>
               </template>
-            </el-table-column>
+            </el-table-column> -->
             <el-table-column
               prop="amount"
               align="center"
@@ -228,11 +230,21 @@
                 <el-input
                   v-model="scope.row.amount"
                   placeholder="绋庡墠閲戦"
-                  @blur="
-                    val => {
-                      calculateTax(scope.row, 'A');
-                    }
-                  "
+                  @blur="chargeSum"
+                />
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="taxamount"
+              align="center"
+              label="鎵g◣閲戦"
+              width="120"
+            >
+              <template slot-scope="scope">
+                <el-input
+                  @blur="chargeSum"
+                  v-model="scope.row.taxamount"
+                  placeholder="鎵g◣閲戦"
                 />
               </template>
             </el-table-column>
@@ -246,27 +258,11 @@
                 <el-input
                   v-model="scope.row.taxedamount"
                   placeholder="绋庡悗閲戦"
-                  @blur="
-                    val => {
-                      calculateTax(scope.row, 'B');
-                    }
-                  "
+                  @blur="queenchargeSum"
                 />
               </template>
             </el-table-column>
-            <el-table-column
-              prop="taxamount"
-              align="center"
-              label="鎵g◣閲戦"
-              width="120"
-            >
-              <template slot-scope="scope">
-                <el-input
-                  v-model="scope.row.taxamount"
-                  placeholder="鎵g◣閲戦"
-                />
-              </template>
-            </el-table-column>
+
             <el-table-column
               prop="beneficiaryname"
               align="center"
@@ -665,16 +661,18 @@
               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>
+                @click="handleImageClick(0)"
+              />
+              <custom-image-viewer
+                :url-list="pdfimgsrcList"
+                :initial-index="currentIndex"
+                :visible="viewerVisible"
+                @update:visible="viewerVisible = $event"
+                @close="handleViewerClose"
+              />
             </div>
             <div v-else class="pdfimgmins">{{ hintitle }}</div>
           </div>
@@ -768,16 +766,18 @@
               v-if="this.previewpdf && invoicepdfimgsrcList.length"
               class="pdfimgmin"
             >
-              <!-- <img :src="pdfimg" /> -->
               <el-image
                 style="width: 95%; height: 90%"
                 :src="invoicepdfimg"
-                :preview-src-list="invoicepdfimgsrcList"
-              >
-                <!-- <div slot="error" class="image-slot">
-              <i class="el-icon-picture-outline"></i>
-            </div> -->
-              </el-image>
+                @click="invoiceHandleImageClick(0)"
+              />
+              <custom-image-viewer
+                :url-list="invoicepdfimgsrcList"
+                :initial-index="invoiceCurrentIndex"
+                :visible="invoiceViewerVisible"
+                @update:visible="invoiceViewerVisible = $event"
+                @close="invoiceHandleViewerClose"
+              />
             </div>
             <div v-else class="pdfimgmins">{{ hintitle }}</div>
           </div>
@@ -876,12 +876,14 @@
 import Li_area_select from "@/components/Address";
 import OrgSelecter from "@/views/project/components/orgselect";
 import { getToken } from "@/utils/auth";
+import CustomImageViewer from "@/components/CustomImageViewer";
 
 export default {
   //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
   components: {
     Li_area_select,
-    OrgSelecter
+    OrgSelecter,
+    CustomImageViewer
   },
   name: "fundApply",
 
@@ -1182,6 +1184,10 @@
       pdfimgsrcList: [],
       pdfVisible: false,
       previewpdf: false,
+      viewerVisible: false,
+      currentIndex: 0,
+      invoiceViewerVisible: false,
+      invoiceCurrentIndex: 0,
       hintitle: "璇蜂笂浼犳枃浠跺悗鏌ョ湅",
       atpresent: "",
       Savereminder: false, //鎻愰啋淇濆瓨寮规
@@ -1793,12 +1799,21 @@
       };
       this.$modal.loading("姝e湪鎻愪氦瀹℃牳锛岃绋嶅�欙紒");
       checkfund(checkFundObj).then(res => {
-        //鍏抽棴绐楀彛
-        this.reset();
-        this.$modal.closeLoading();
-        this.$modal.msgSuccess("瀹℃牳瀹屾垚!");
-        this.$store.dispatch("tagsView/delView", this.$route);
-        this.$router.go(-1);
+        if (res.code == 200) {
+          //鍏抽棴绐楀彛
+          this.reset();
+          this.$modal.closeLoading();
+          this.$modal.msgSuccess("瀹℃牳瀹屾垚!");
+          this.$store.dispatch("tagsView/delView", this.$route);
+          this.$router.go(-1);
+        } else {
+          this.$modal.closeLoading();
+          if (res.msg) {
+            this.$modal.msgError("鎿嶄綔澶辫");
+          } else {
+            this.$modal.msgError(res.msg);
+          }
+        }
       });
     },
 
@@ -1816,7 +1831,7 @@
         this.standardlevel = res.data.standardlevel;
         if (
           this.userprofile.userName == "admin" ||
-          this.userprofile.userName == "001" ||
+          this.userprofile.userName == "053" ||
           this.userprofile.userName == "047"
         ) {
           this.ismanager = true;
@@ -2050,17 +2065,39 @@
       }
     },
 
-    //璁$畻閲戦
-    calculateTax(row, type) {
+    //绋庡墠鎵g◣绠楃◣鍚�
+    chargeSum(row, type) {
       let targetValue = 0;
       for (let i = 0; i < this.rbDetails.length; i++) {
         if (!this.rbDetails[i].amount) {
           this.rbDetails[i].amount = 0;
         }
+        if (!this.rbDetails[i].taxamount) {
+          this.rbDetails[i].taxamount = 0;
+        }
+        this.rbDetails[i].taxedamount = (
+          parseFloat(this.rbDetails[i].amount) -
+          parseFloat(this.rbDetails[i].taxamount)
+        ).toFixed(2);
         targetValue += parseFloat(this.rbDetails[i].amount); // 鍋囪姣忎釜瀵硅薄涓殑鐗瑰畾鍊煎瓨鍌ㄥ湪'specificValue'灞炴�т笅
+        console.log(this.rbDetails[i].taxedamount, "鍚堣");
       }
       console.log(targetValue, "鍚堣");
       this.form.pretaxcost = targetValue;
+    },
+    //绋庡悗鎵g◣绠楃◣鍓�
+    queenchargeSum(row, type) {
+      for (let i = 0; i < this.rbDetails.length; i++) {
+        if (!this.rbDetails[i].amount) {
+          this.rbDetails[i].amount = 0;
+        }
+        if (!this.rbDetails[i].taxamount) {
+          this.rbDetails[i].taxamount = 0;
+        }
+        this.rbDetails[i].amount =
+          parseFloat(this.rbDetails[i].taxamount) +
+          parseFloat(this.rbDetails[i].taxedamount);
+      }
     },
 
     unsave() {
@@ -2807,6 +2844,48 @@
     Downloadfile(row) {
       console.log(row);
       window.location.href = this.Networkheader + "/prod-api" + row.url;
+    },
+    //琛ㄦ牸鍚堣
+    getSummaries(param) {
+      const { columns, data } = param;
+      const sums = [];
+      var columnnames = [
+        "applytype",
+        "itemid",
+        // "jxrq",
+        "beneficiaryname",
+        "idcardno",
+        "depositbank",
+        "bankcardno",
+        "remark"
+      ];
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = "鍚堣";
+          return;
+        }
+
+        //鍘婚櫎閮ㄥ垎瀛楁璁$畻
+        if (columnnames.indexOf(column.property) > -1) {
+          return;
+        }
+
+        const values = data.map(item => Number(item[column.property]));
+        if (!values.every(value => isNaN(value))) {
+          sums[index] = values.reduce((prev, curr) => {
+            const value = Number(curr);
+            if (!isNaN(value)) {
+              return prev + curr;
+            } else {
+              return prev;
+            }
+          }, 0);
+          sums[index] = sums[index].toFixed(2); // 淇濈暀2浣嶅皬鏁帮紝瑙e喅灏忔暟鍚堣鍒�;
+        } else {
+          sums[index] = "";
+        }
+      });
+      return sums;
     }
   },
 
@@ -2830,7 +2909,23 @@
   destroyed() {
     window.removeEventListener("beforeunload", e => this.beforeunloadFn(e));
   }, //鐢熷懡鍛ㄦ湡 - 閿�姣佸畬鎴�
-  activated() {} //濡傛灉椤甸潰鏈塳eep-alive缂撳瓨鍔熻兘锛岃繖涓嚱鏁颁細瑙﹀彂
+  activated() {}, //濡傛灉椤甸潰鏈塳eep-alive缂撳瓨鍔熻兘锛岃繖涓嚱鏁颁細瑙﹀彂
+
+  // 鍥剧墖棰勮
+  handleImageClick(index) {
+    this.currentIndex = index;
+    this.viewerVisible = true;
+  },
+  handleViewerClose() {
+    this.viewerVisible = false;
+  },
+  invoiceHandleImageClick(index) {
+    this.invoiceCurrentIndex = index;
+    this.invoiceViewerVisible = true;
+  },
+  invoiceHandleViewerClose() {
+    this.invoiceViewerVisible = false;
+  },
 };
 </script>
 

--
Gitblit v1.9.3