From c75027743ea7c3ecc2d0885f01d11d2ad78679a3 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期五, 23 十月 2026 14:23:26 +0800
Subject: [PATCH] Merge branch 'yxh' of http://116.62.18.175:6699/r/~yxh/opo-web

---
 src/views/project/fundcheck/ethicalExpertFeeCheck/index.vue |  130 +++++++++++++++++++++++-------------------
 1 files changed, 71 insertions(+), 59 deletions(-)

diff --git a/src/views/project/fundcheck/ethicalExpertFeeCheck/index.vue b/src/views/project/fundcheck/ethicalExpertFeeCheck/index.vue
index 901b4c7..4b31bfd 100644
--- a/src/views/project/fundcheck/ethicalExpertFeeCheck/index.vue
+++ b/src/views/project/fundcheck/ethicalExpertFeeCheck/index.vue
@@ -1,6 +1,7 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px">
+    <el-form
+      class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px">
       <el-row>
         <el-col :span="5">
           <el-form-item label="鎹愮尞妗堜緥" prop="donorname" style="float: left">
@@ -41,9 +42,9 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="鐢宠鏃ユ湡" prop="applyTime">
-            <el-date-picker format="yyyy-MM-dd" @change="selectapplication" value-format="yyyy-MM-dd" v-model="applyTime"
-              type="daterange" range-separator="鑷�" start-placeholder="鐢宠寮�濮嬫棩鏈�" end-placeholder="鐢宠缁撴潫鏃ユ湡"
-              @keyup.enter.native="flowconclusion">
+            <el-date-picker format="yyyy-MM-dd" @change="selectapplication" value-format="yyyy-MM-dd HH:mm:ss"
+              v-model="applyTime" type="daterange" range-separator="鑷�" start-placeholder="鐢宠寮�濮嬫棩鏈�"
+              end-placeholder="鐢宠缁撴潫鏃ユ湡" @keyup.enter.native="flowconclusion">
             </el-date-picker>
           </el-form-item>
         </el-col>
@@ -75,30 +76,30 @@
               <span>{{ parseTime(scope.row.applyTime, "{y}-{m}-{d}") }}</span>
             </template>
           </el-table-column>
-          <el-table-column label="鐢宠閲戦" align="center" prop="pretaxcost" width="200px" />
-          <el-table-column label="缁忓姙浜�" align="center" prop="username" width="150px" />
-          <el-table-column label="鐢宠鏉愭枡鐘舵��" width="140" align="center" prop="checkFlag">
+          <el-table-column label="鐢宠閲戦" align="center" prop="pretaxcost" width="120px" />
+          <el-table-column label="缁忓姙浜�" align="center" prop="username" width="90px" />
+          <el-table-column label="鏉愭枡棰勫鐘舵��" width="140px" align="center" prop="checkFlag">
             <template slot-scope="scope">
               <dict-tag :options="dict.type.sys_stage_type" :value="scope.row.checkstatus" />
             </template>
           </el-table-column>
-          <el-table-column label="瀹℃牳鐘舵��" align="center" prop="recordstatus" width="200">
+          <el-table-column label="瀹℃牳鐘舵��" align="center" prop="recordstatus" width="140px">
             <template slot-scope="scope">
               <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" />
             </template>
           </el-table-column>
-          <el-table-column label="涓◣璁$畻鎯呭喌" align="center" prop="recordstatus" width="200">
+          <!-- <el-table-column label="涓◣璁$畻鎯呭喌" align="center" prop="recordstatus" width="120px">
             <template slot-scope="scope">
               <dict-tag :options="dict.type.sys_tax" :value="scope.row.istax" />
             </template>
-          </el-table-column>
-          <el-table-column label="鎵�灞炵粍鍒�" align="center" prop="deptmentname" width="200px" />
-          <el-table-column label="缁勯暱" align="center" prop="managername" width="150px" />
-          <el-table-column label="鎹愮尞鑰�" align="center" prop="donorname" width="120px" />
+          </el-table-column> -->
+          <el-table-column label="鎵�灞炵粍鍒�" align="center" prop="deptmentname" width="140px" />
+          <el-table-column label="缁勯暱" align="center" prop="managername" width="90px" />
+          <el-table-column label="鎹愮尞鑰�" align="center" prop="donorname" width="90px" />
           <el-table-column label="澶囨敞" align="center" prop="remark" />
           <!--<el-table-column label="鎹愮尞缂栧彿" align="center" prop="donorno" />
           <el-table-column label="璐㈠姟瀹℃牳" align="center" prop="financechecher" width="140" />-->
-          <el-table-column label="鎿嶄綔" fixed="right" align="center" class-name="small-padding fixed-width" width="260px">
+          <el-table-column label="鎿嶄綔" fixed="right" align="center" class-name="small-padding fixed-width" width="200px">
             <template slot-scope="scope">
               <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.checkFlag == 0"
                 @click="handleDetail(scope.row)">璇︽儏</el-button>
@@ -106,7 +107,8 @@
               <el-button v-if="scope.row.checkFlag == 1" size="mini" type="text" icon="el-icon-edit"
                 @click="handleCheck(scope.row)">瀹℃牳</el-button>
               <!-- v-hasPermi="['project:donateconsolationfund:edit']" -->
-              <el-button size="mini" type="text" icon="el-icon-download" @click="totaldayin(scope.row.id)">涓嬭浇</el-button>
+              <el-button size="mini" type="text" icon="el-icon-download"
+                @click="totaldayin(scope.row.id)">涓嬭浇</el-button>
               <!-- <el-popover placement="right" width="400" trigger="click">
                 <el-table :data="gridData">
                   <el-table-column
@@ -137,8 +139,8 @@
           </el-table-column>
         </el-table>
 
-        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
-          @pagination="getlistbypower" />
+        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize" @pagination="getlistbypower" />
       </el-row>
     </el-form>
 
@@ -197,7 +199,8 @@
         </el-row>
 
         <el-row style="margin-top: 5px; margin-bottom: 5px">
-          <el-table :data="fundDetailArr" :summary-method="getSummaries" border highlight-current-row v-loading="loading">
+          <el-table :data="fundDetailArr" :summary-method="getSummaries" border highlight-current-row
+            v-loading="loading">
             <el-table-column prop="orderno" align="center" label="鎺掑簭" width="80">
               <template slot-scope="scope">
                 <el-input v-model="scope.row.orderno" placeholder="鎺掑簭" />
@@ -230,17 +233,19 @@
               <template slot-scope="scope">
                 <el-select filterable allow-create ref="getReportname" default-first-option
                   @change="selectpersonmsg(scope.row)" v-model="scope.row.beneficiaryname" placeholder="璇烽�夋嫨">
-                  <el-option v-for="item in arrr3" :key="item.reportNo" :label="item.reportName" :value="item.reportName">
+                  <el-option v-for="item in arrr3" :key="item.reportNo" :label="item.reportName"
+                    :value="item.reportName">
                   </el-option>
                 </el-select>
               </template>
             </el-table-column>
             <el-table-column prop="amount" align="center" label="绋庡墠閲戦" width="150">
               <template slot-scope="scope">
-                <el-input v-model="scope.row.amount" @blur="val => {
-                  sumTotalFee();
-                }
-                  " placeholder="绋庡墠閲戦" />
+                <el-input v-model="scope.row.amount" @blur="
+                  val => {
+                    sumTotalFee();
+                  }
+                " placeholder="绋庡墠閲戦" />
               </template>
             </el-table-column>
             <!-- <el-table-column
@@ -255,10 +260,11 @@
             </el-table-column> -->
             <el-table-column prop="taxedamount" align="center" label="绋庡悗閲戦" width="150">
               <template slot-scope="scope">
-                <el-input v-model="scope.row.taxedamount" placeholder="绋庡悗閲戦" @blur="val => {
-                  sumTotalFee();
-                }
-                  " />
+                <el-input v-model="scope.row.taxedamount" placeholder="绋庡悗閲戦" @blur="
+                  val => {
+                    sumTotalFee();
+                  }
+                " />
               </template>
             </el-table-column>
             <el-table-column prop="unitno" align="center" label="鍗曚綅" width="180">
@@ -306,7 +312,7 @@
           <el-col :span="7">
             <el-form-item label="鐢宠鏃ユ湡" prop="applyTime">
               <!-- <el-input v-model="form.donorno" placeholder="璇疯緭鍏ョ敵璇锋棩鏈�" /> -->
-              <el-date-picker clearable style="width: 100%" v-model="form.applyTime" type="date"
+              <el-date-picker clearable style="width: 100%" v-model="form.applyTime" type="date" format="yyyy-MM-dd"
                 value-format="yyyy-MM-dd HH:mm:ss" placeholder="鐢宠鏃ユ湡">
               </el-date-picker>
             </el-form-item>
@@ -357,7 +363,7 @@
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="dundcheck" v-if="dialogType == 'edit'">瀹℃牳</el-button>
+        <el-button type="primary" :loading="checkSubmitLoading" :disabled="checkSubmitLoading" @click="dundcheck" v-if="dialogType == 'edit'">瀹℃牳</el-button>
         <el-button @click="cancel">鍙栨秷</el-button>
       </div>
     </el-dialog>
@@ -432,6 +438,7 @@
 
 // 瀵煎叆鏈湴瀛樺偍鐨勬柟娉�
 import { setItem, grtItem, removeItem } from "@/utils/storage.js";
+import { moneySum, moneyAdd, moneySub, moneyMul, moneyRound } from "@/utils/money";
 
 export default {
   components: {
@@ -455,6 +462,7 @@
   ],
   data() {
     return {
+      checkSubmitLoading: false,
       arrr2: [],
       arrr3: [],
       //璐圭敤绫诲瀷鏁扮粍
@@ -560,7 +568,7 @@
         },
         {
           value: 2,
-          label: "瀹℃煡閫氳繃绛夊緟閭瘎绾歌川鏉愭枡"
+          label: "瀹℃煡閫氳繃绛夊緟绾歌川鏉愭枡"
         },
         {
           value: 3,
@@ -687,6 +695,7 @@
       });
     },
     dundcheck() {
+      if (this.checkSubmitLoading) return;
       // this.$em
 
       //console.log("1234567", this.form.flowlevelone, this.form.flowconclusion);
@@ -703,12 +712,19 @@
         this.$modal.msgError("璇烽�夋嫨瀹℃牳缁撹!");
         return;
       }
+      this.checkSubmitLoading = true;
       checkfund(checkfundobj).then(res => {
-        console.log("瀹℃牳璐圭敤", res);
-        this.dialogOpen = false;
-        this.reset();
-        this.$modal.msgSuccess("瀹℃牳瀹屾垚!");
-        this.getlistbypower();
+        this.checkSubmitLoading = false;
+        if (res.code == 200) {
+          console.log("瀹℃牳璐圭敤", res);
+          this.dialogOpen = false;
+          this.reset();
+          this.$modal.msgSuccess("瀹℃牳瀹屾垚!");
+          this.getlistbypower();
+        } else {
+          this.dialogOpen = false;
+          this.$modal.msgError(res.msg || "鎿嶄綔澶辫触");
+        }
       });
     },
     getlistUser() {
@@ -774,7 +790,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();
@@ -1455,49 +1471,45 @@
       });
     },
 
-    //璁$畻鎬婚噾棰�
+    //璁$畻鎬婚噾棰濓紙閲戦涓�寰嬭蛋绮剧‘杩愮畻锛岀姝� parseFloat 绱姞锛�
     sumTotalFee() {
-      let allSum = 0;
+      const detailsArr = [];
       let preTaxSum = 0;
       let taxedSum = 0;
       if (this.form.applytype != null) {
         for (let i = 0; i < this.fundDetailArr.length; i++) {
+          const detail = this.fundDetailArr[i];
           let totalFee = 0;
-          let taxFee = 0;
           if (this.form.applytype == 1 || this.form.applytype == 2) {
-            //璁$畻褰撳墠鎶ラ攢鍐呭璐圭敤鍚堣
-            if (!isNaN(parseFloat(this.fundDetailArr[i].amount))) {
-              totalFee += parseFloat(this.fundDetailArr[i].amount);
-              taxFee += parseFloat(this.fundDetailArr[i].amount);
-              preTaxSum += parseFloat(this.fundDetailArr[i].amount);
+            //璁$畻褰撳墠鎶ラ攢鍐呭璐圭敤鍚堣锛氱◣鍓� - 鎵g◣
+            if (!isNaN(parseFloat(detail.amount))) {
+              totalFee = moneyAdd(totalFee, detail.amount);
+              preTaxSum = moneyAdd(preTaxSum, detail.amount);
             }
-            if (!isNaN(parseFloat(this.fundDetailArr[i].taxamount))) {
-              totalFee -= parseFloat(this.fundDetailArr[i].taxamount);
-              taxFee -= parseFloat(this.fundDetailArr[i].taxamount);
+            if (!isNaN(parseFloat(detail.taxamount))) {
+              totalFee = moneySub(totalFee, detail.taxamount);
             }
             //taxedamount
-            if (!isNaN(parseFloat(this.fundDetailArr[i].taxedamount))) {
-              taxedSum += parseFloat(this.fundDetailArr[i].taxedamount);
+            if (!isNaN(parseFloat(detail.taxedamount))) {
+              taxedSum = moneyAdd(taxedSum, detail.taxedamount);
             }
           } else if (this.form.applytype == 3) {
             if (
-              !isNaN(parseFloat(this.fundDetailArr[i].price)) &&
-              !isNaN(parseFloat(this.fundDetailArr[i].quantity))
+              !isNaN(parseFloat(detail.price)) &&
+              !isNaN(parseFloat(detail.quantity))
             ) {
-              totalFee +=
-                parseFloat(this.fundDetailArr[i].price) *
-                parseFloat(this.fundDetailArr[i].quantity);
+              totalFee = moneyMul(detail.price, detail.quantity);
             }
           }
           // if (!isNaN(parseFloat(taxFee))) {
           //   this.fundDetailArr[i].taxedamount = taxFee.toFixed(2);
           // }
-          allSum += totalFee;
+          detailsArr.push(totalFee);
         }
       }
-      this.form.amountrequested = allSum.toFixed(2);
-      this.form.pretaxcost = preTaxSum.toFixed(2);
-      this.form.taxedcost = taxedSum.toFixed(2);
+      this.form.amountrequested = moneyRound(moneySum(detailsArr)).toFixed(2);
+      this.form.pretaxcost = moneyRound(preTaxSum).toFixed(2);
+      this.form.taxedcost = moneyRound(taxedSum).toFixed(2);
       this.$forceUpdate();
       console.log(this.form);
     },
@@ -1508,7 +1520,7 @@
         // this.defaultperson = response.data;
         // this.standardlevel = response.data.standardlevel;
         if (
-          response.data.userName === "001" ||
+          response.data.userName === "053" ||
           response.data.userName === "002" ||
           response.data.userName === "admin"
         ) {

--
Gitblit v1.9.3