From fb16e99d60035949b870d0bed7f38b452458000a Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期四, 15 十月 2026 15:10:00 +0800
Subject: [PATCH] 修改了专家费校验和附件名字校验

---
 src/views/project/fund/expertFeeApply/index.vue |  115 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 62 insertions(+), 53 deletions(-)

diff --git a/src/views/project/fund/expertFeeApply/index.vue b/src/views/project/fund/expertFeeApply/index.vue
index 66168d2..1f11134 100644
--- a/src/views/project/fund/expertFeeApply/index.vue
+++ b/src/views/project/fund/expertFeeApply/index.vue
@@ -20,7 +20,7 @@
             >
               <el-form-item label="濮撳悕" prop="name">
                 <el-input
-                  v-model="queryParams.donorname"
+                  v-model="queryParams.name"
                   placeholder="璇疯緭鍏ュ鍚�"
                   clearable
                   size="small"
@@ -190,7 +190,7 @@
                   </template>
                 </el-table-column>
                 <el-table-column
-                  label="鐢宠鏉愭枡鐘舵��"
+                  label="鏉愭枡棰勫鐘舵��"
                   width="140"
                   align="center"
                   prop="checkstatus"
@@ -202,10 +202,10 @@
                     />
                   </template>
                 </el-table-column>
-                <!-- 
-                <el-table-column label="鐢宠閲戦" align="center" prop="amountrequested" width="120px" />    
+                <!--
+                <el-table-column label="鐢宠閲戦" align="center" prop="amountrequested" width="120px" />
                 <el-table-column label="鑱旂郴鐢佃瘽" align="center" prop="phone" width="150px" />
-                <el-table-column label="宸ヤ綔鍗曚綅" align="center" prop="unitname" width="220px" /> 
+                <el-table-column label="宸ヤ綔鍗曚綅" align="center" prop="unitname" width="220px" />
                 -->
                 <el-table-column
                   label="鎿嶄綔"
@@ -317,7 +317,7 @@
                 clearable
                 style="width: 100%"
                 v-model="form.applyTime"
-                type="date"
+                type="date" format="yyyy-MM-dd"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 placeholder="鐢宠鏃ユ湡"
               >
@@ -786,14 +786,14 @@
           </el-table>
         </el-row>
         <!--
-        <el-row>   
+        <el-row>
           <el-col :span="7">
             <el-form-item label="棰勬敮閲戦" prop="prepaidamount">
               <el-input v-model="form.prepaidamount" placeholder="鐢宠閲戦" />
             </el-form-item>
-          </el-col>          
-        </el-row>       
-        <el-row>          
+          </el-col>
+        </el-row>
+        <el-row>
           <el-col :span="7">
             <el-form-item label="OPO涓績绛惧瓧" prop="opochecker">
               <el-input v-model="form.opochecker" placeholder="opo涓績绛惧瓧" />
@@ -1026,7 +1026,7 @@
                   :value="dict.value"></el-option>
               </el-select>
             </el-form-item>
-          </el-col>          
+          </el-col>
         </el-row>
       -->
         <el-row>
@@ -1112,7 +1112,8 @@
   getdownloadYX,
   getdownloadBX,
   addorupdateFund,
-  getdetailsByItemId
+  getdetailsByItemId,
+  validateExpertFee
 } from "@/api/project/fund";
 
 import {
@@ -1159,6 +1160,7 @@
 import OrgSelecter from "@/views/project/components/orgselect";
 import elementIcons from "../../../components/icons/element-icons";
 import { getToken } from "@/utils/auth";
+import { moneySum, moneyAdd, moneySub, moneyMul, moneyRound } from "@/utils/money";
 
 export default {
   //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
@@ -1745,7 +1747,7 @@
             }
             this.fundDetails[i] = tempDetail;
             /*
-            //璁$畻涓◣            
+            //璁$畻涓◣
             //if (isNaN(parseFloat(tempDetail.taxedamount)))
             //鑾峰彇鍙傛暟
             this.taxParam.beneficiaryNo = tempDetail.beneficiaryno;
@@ -1824,21 +1826,37 @@
             // });
           }
 
-          addorupdateFund(this.form).then(response => {
-            if (response.code === 200) {
-              this.selectDonotor(this.curCase);
-              this.$modal.msgSuccess("涓撳鍔冲姟璐逛繚瀛樻垚鍔燂紒");
-            } else {
-              this.$modal.msgError("涓撳鍔冲姟璐逛繚瀛樺け璐ワ細" + response.msg);
-            }
-          });
+          // 淇濆瓨鍓嶅厛鍋氫笓瀹跺姵鍔¤垂 9 鏉¤垂鐢ㄦ帶鍒舵牎楠岋紙鍚屼竴妗堜緥绱锛�
+          validateExpertFee(this.form).then(valid => {
+            const errors = (valid && valid.errors) || [];
+            const warnings = (valid && valid.warnings) || [];
 
-          //鍏抽棴绐楀彛
-          this.loading = false;
-          this.dialogOpen = false;
-          // this.getfundList();
-          this.getList();
-          this.selectDonotor(this.curCase);
+            // warnings锛堣鍒� 5銆�6锛変粎鎻愮ず锛屼笉闃绘柇淇濆瓨
+            if (warnings.length > 0) {
+              this.$modal.msgWarning(warnings.join("锛�"));
+            }
+
+            // errors 闃绘柇淇濆瓨锛屼繚鐣欑獥鍙h缁忓姙浜哄厛淇
+            if (errors.length > 0) {
+              this.$modal.msgError(errors.join("锛�"));
+              this.loading = false;
+              return;
+            }
+
+            addorupdateFund(this.form).then(response => {
+              if (response.code === 200) {
+                //鍏抽棴绐楀彛
+                this.loading = false;
+                this.dialogOpen = false;
+                this.selectDonotor(this.curCase);
+                this.$modal.msgSuccess("涓撳鍔冲姟璐逛繚瀛樻垚鍔燂紒");
+                this.getList();
+              } else {
+                this.$modal.msgError("涓撳鍔冲姟璐逛繚瀛樺け璐ワ細" + response.msg);
+                this.loading = false;
+              }
+            });
+          });
         }
       });
     },
@@ -2028,7 +2046,7 @@
         this.standardlevel = response.data.standardlevel;
         if (
           this.defaultperson.createBy == "admin" ||
-          this.defaultperson.createBy == "001" ||
+          this.defaultperson.createBy == "053" ||
           this.defaultperson.createBy == "002"
         ) {
           this.ismanager = true;
@@ -2451,43 +2469,34 @@
     //璁$畻涓◣
     calculateTax() {},
 
-    //璁$畻鎬婚噾棰�
+    //璁$畻鎬婚噾棰濓紙閲戦涓�寰嬭蛋绮剧‘杩愮畻锛�
     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);
             }
-            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);
             }
           } 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);
-          // }
-
-          allSum += totalFee;
+          detailsArr.push(totalFee);
         }
       }
-      // this.form.amountrequested = allSum.toFixed(2);
+      // 鍚堣浠嶅湪纭鍙e緞鍚庡惎鐢紱鍏堜繚璇佽绠楁湰韬槸绮剧‘鐨�
+      // this.form.amountrequested = moneyRound(moneySum(detailsArr)).toFixed(2);
       // this.$forceUpdate();
     },
 
@@ -2616,7 +2625,7 @@
       }
     },
     rowClassName({ row, column, rowIndex, columnIndex }) {
-      if (row.recordstatus == -1 && row.backflowlevel >= 0) {
+      if (row.recordstatus == -1 && row.backflowlevel != null) {
         return "error-row";
       }
       return "";
@@ -2626,7 +2635,7 @@
 </script>
 <style lang="scss" scoped>
 /* @import url(); 寮曞叆鍏叡css绫� */
-.button-delete{
+.button-delete {
   color: rgb(236, 69, 69);
 }
 ::v-deep.el-table .error-row {

--
Gitblit v1.9.3