From 69b975aad77dea4c6c10a21b278248ce091f54eb Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 10 四月 2025 16:33:51 +0800
Subject: [PATCH] 项目金额相关都改成数字输入筐

---
 src/views/projectEngineering/projectLibrary/component/investmentFunds.vue |  162 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 110 insertions(+), 52 deletions(-)

diff --git a/src/views/projectEngineering/projectLibrary/component/investmentFunds.vue b/src/views/projectEngineering/projectLibrary/component/investmentFunds.vue
index 5a81186..5c7962b 100644
--- a/src/views/projectEngineering/projectLibrary/component/investmentFunds.vue
+++ b/src/views/projectEngineering/projectLibrary/component/investmentFunds.vue
@@ -1,18 +1,18 @@
 <template>
   <div class="basic-info">
-    <el-form ref="demoFormRef" :disabled="disabled" :model="investmentFundsForm" class="dialog_form">
+    <el-form ref="demoFormRef" :disabled="disabled" :model="investmentFundsForm" :rules="rules" class="dialog_form">
       <!-- 淇濇寔鍘熸湁妯℃澘鍐呭涓嶅彉 -->
       <el-row :gutter="20">
         <el-col :span="6">
-          <el-form-item label="椤圭洰鎬绘姇璧勯" label-width="130px" prop="fundsType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.totalInvestment" class="item" clearable maxlength="255" style="width: 90%"
+          <el-form-item label="椤圭洰鎬绘姇璧勯" label-width="130px" prop="totalInvestment" required style="width: 100%">
+            <el-input v-model.trim="totalInvestment" class="item" clearable disabled style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
         </el-col>
         <el-col :span="6">
           <el-form-item label="椤圭洰鏈噾" label-width="130px" prop="investmentType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.principal" class="item" clearable maxlength="255" style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.principal" type="number" class="item" clearable maxlength="255" style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
@@ -21,7 +21,7 @@
       <el-row :gutter="20">
         <el-col :span="18">
           <el-form-item label="涓�銆佹斂搴滄姇璧�" label-width="130px" prop="projectType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.governmentInvestmentTotal" class="item" clearable style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.governmentInvestmentTotal" type="number" class="item" clearable style="width: 90%"
                       maxlength="255" placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
@@ -30,7 +30,7 @@
       <el-row :gutter="20">
         <el-col :span="18">
           <el-form-item label="锛堜竴锛変腑澶姇璧�" label-width="130px" prop="projectType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.centralInvestmentTotal" class="item" clearable maxlength="255" style="width: 90%"
+            <el-input v-model.trim="centralInvestmentTotal" class="item" clearable disabled style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
@@ -38,15 +38,15 @@
       </el-row>
       <el-row :gutter="20">
         <el-col :span="6">
-          <el-form-item label="1.涓ぎ棰勭畻鎶曡祫" label-width="130px" prop="fundsType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.centralBudgetInvestment" class="item" clearable maxlength="255" style="width: 90%"
+          <el-form-item label="1.涓ぎ棰勭畻鎶曡祫" label-width="160px" prop="fundsType" style="width: 100%">
+            <el-input v-model.trim="investmentFundsForm.centralBudgetInvestment" type="number" class="item" clearable maxlength="255" style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
         </el-col>
         <el-col :span="6">
           <el-form-item label="2.涓ぎ璐㈡斂" label-width="130px" prop="investmentType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.centralFiscalInvestment" class="item" clearable maxlength="255" style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.centralFiscalInvestment" type="number" class="item" clearable maxlength="255" style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
@@ -54,17 +54,31 @@
         <el-col :span="6">
           <el-form-item class="items" label="3.涓ぎ涓撻」鍊哄埜绛归泦鐨勪笓椤瑰缓璁捐祫閲�" label-width="130px" prop="investmentType"
                         style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.centralSpecialBondInvestment" class="item" clearable style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.centralSpecialBondInvestment" type="number" class="item" clearable style="width: 90%"
                       maxlength="255" placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
         </el-col>
       </el-row>
       <el-row :gutter="20">
-        <el-col :span="18">
-          <el-form-item label="4.涓ぎ涓撻」寤鸿鍩洪噾" label-width="130px" prop="engineering" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.centralSpecialFundInvestment" class="item" clearable style="width: 90%"
+        <el-col :span="6">
+          <el-form-item label="4.涓ぎ涓撻」寤鸿鍩洪噾" label-width="180px" prop="engineering" style="width: 100%">
+            <el-input v-model.trim="investmentFundsForm.centralSpecialFundInvestment" type="number" class="item" clearable style="width: 90%"
                       maxlength="255" placeholder="璇疯緭鍏�"/>
+            <span class="money">涓囧厓</span>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="5.瓒呴暱鏈熺壒鍒浗鍊鸿祫閲�" label-width="150px" prop="engineering" style="width: 100%">
+            <el-input v-model.trim="investmentFundsForm.nationalDebt" class="item" type="number" clearable maxlength="255" style="width: 90%"
+                      placeholder="璇疯緭鍏�"/>
+            <span class="money">涓囧厓</span>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="6.2023骞村鍙戝浗鍊鸿祫閲�" label-width="150px" prop="engineering" style="width: 100%">
+            <el-input v-model.trim="investmentFundsForm.additionalNationalDebt" type="number" class="item" clearable maxlength="255" style="width: 90%"
+                      placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
         </el-col>
@@ -72,30 +86,30 @@
       <el-row :gutter="20">
         <el-col :span="18">
           <el-form-item label="锛堜簩锛夌渷绾ф姇璧�" label-width="130px" prop="engineering" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.provincialInvestmentTotal" class="item" clearable style="width: 90%"
-                      maxlength="255" placeholder="璇疯緭鍏�"/>
+            <el-input v-model.trim="provincialInvestmentTotal" class="item" type="number" clearable disabled style="width: 90%"
+                      placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
         </el-col>
       </el-row>
       <el-row :gutter="20">
         <el-col :span="6">
-          <el-form-item label="1.鐪侀绠楀唴鎶曡祫" label-width="130px" prop="fundsType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.provincialBudgetInvestment" class="item" clearable style="width: 90%"
+          <el-form-item label="1.鐪侀绠楀唴鎶曡祫" label-width="160px" prop="fundsType" style="width: 100%">
+            <el-input v-model.trim="investmentFundsForm.provincialBudgetInvestment" type="number" class="item" clearable style="width: 90%"
                       maxlength="255" placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
         </el-col>
         <el-col :span="6">
           <el-form-item label="2.鐪佽储鏀挎�у缓璁炬姇璧�" label-width="130px" prop="investmentType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.provincialFiscalInvestment" class="item" clearable style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.provincialFiscalInvestment" type="number" class="item" clearable style="width: 90%"
                       maxlength="255" placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
         </el-col>
         <el-col :span="6">
           <el-form-item label="3.鐪佷笓椤瑰缓璁捐祫閲�" label-width="130px" prop="investmentType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.provincialSpecialFundInvestment" class="item" clearable style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.provincialSpecialFundInvestment" type="number" class="item" clearable style="width: 90%"
                       maxlength="255" placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
@@ -104,7 +118,7 @@
       <el-row :gutter="20">
         <el-col :span="18">
           <el-form-item label="锛堜笁锛夊競(宸�)鎶曡祫" label-width="130px" prop="engineering" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.cityInvestmentTotal" class="item" clearable maxlength="255" style="width: 90%"
+            <el-input v-model.trim="cityInvestmentTotal" class="item" type="number" clearable disabled style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
@@ -112,22 +126,22 @@
       </el-row>
       <el-row :gutter="20">
         <el-col :span="6">
-          <el-form-item label="1.甯�(宸�)棰勭畻鍐呮姇璧�" label-width="130px" prop="fundsType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.cityBudgetInvestment" class="item" clearable maxlength="255" style="width: 90%"
+          <el-form-item label="1.甯�(宸�)棰勭畻鍐呮姇璧�" label-width="170px" prop="fundsType" style="width: 100%">
+            <el-input v-model.trim="investmentFundsForm.cityBudgetInvestment" type="number" class="item" clearable maxlength="255" style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
         </el-col>
         <el-col :span="6">
           <el-form-item label="2.甯�(宸�)璐㈡斂鎬ф姇璧�" label-width="130px" prop="investmentType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.cityFiscalInvestment" class="item" clearable maxlength="255" style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.cityFiscalInvestment" type="number" class="item" clearable maxlength="255" style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
         </el-col>
         <el-col :span="6">
           <el-form-item label="3.甯�(宸�)涓撻」璧勯噾" label-width="130px" prop="investmentType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.citySpecialFundInvestment" class="item" clearable style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.citySpecialFundInvestment" type="number" class="item" clearable style="width: 90%"
                       maxlength="255" placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
@@ -136,7 +150,7 @@
       <el-row :gutter="20">
         <el-col :span="18">
           <el-form-item label="锛堝洓锛夊幙(甯傘�佸尯)鎶曡祫" label-width="130px" prop="engineering" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.countyInvestmentTotal" class="item" clearable maxlength="255" style="width: 90%"
+            <el-input v-model.trim="countyInvestmentTotal" class="item" type="number" disabled style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
@@ -144,24 +158,32 @@
       </el-row>
       <el-row :gutter="20">
         <el-col :span="6">
-          <el-form-item label="1.鍖�(鍘�)棰勭畻鍐呮姇璧�" label-width="130px" prop="fundsType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.countyBudgetInvestment" class="item" clearable maxlength="255" style="width: 90%"
+          <el-form-item label="1.鍖�(鍘�)棰勭畻鍐呮姇璧�" label-width="180px" prop="fundsType" style="width: 100%">
+            <el-input v-model.trim="investmentFundsForm.countyBudgetInvestment" type="number" class="item" clearable style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item class="items" label="2.鍖猴紙鍘匡級璐㈡斂鎬у缓璁捐祫閲�" label-width="130px" prop="investmentType"
+          <el-form-item label="2.鍖猴紙鍘匡級璐㈡斂鎬у缓璁捐祫閲�" label-width="170px" prop="investmentType"
                         style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.countyFiscalInvestment" class="item" clearable maxlength="255" style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.countyFiscalInvestment" type="number" class="item" clearable style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
         </el-col>
         <el-col :span="6">
           <el-form-item label="3.鍖�(鍘�)涓撻」璧勯噾" label-width="130px" prop="investmentType" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.countySpecialFundInvestment" class="item" clearable style="width: 90%"
-                      maxlength="255" placeholder="璇疯緭鍏�"/>
+            <el-input v-model.trim="investmentFundsForm.countySpecialFundInvestment" type="number" class="item" clearable style="width: 90%" placeholder="璇疯緭鍏�"/>
+            <span class="money">涓囧厓</span>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="20">
+        <el-col :span="6">
+          <el-form-item label="4.鍦版柟鏀垮簻涓撻」鍊哄埜" label-width="180px" prop="engineering" style="width: 100%">
+            <el-input v-model.trim="investmentFundsForm.deptBond" type="number" class="item" clearable style="width: 90%"
+                      placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
         </el-col>
@@ -169,7 +191,7 @@
       <el-row :gutter="20">
         <el-col :span="18">
           <el-form-item label="浜屻�佸浗鍐呰捶娆�" label-width="130px" prop="engineering" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.domesticLoanTotal" class="item" clearable maxlength="255" style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.domesticLoanTotal" type="number" class="item" clearable maxlength="255" style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
@@ -178,7 +200,7 @@
       <el-row :gutter="20">
         <el-col :span="18">
           <el-form-item label="閾惰璐锋" label-width="130px" prop="engineering" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.bankLoan" class="item" clearable maxlength="255" style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.bankLoan" type="number" class="item" clearable maxlength="255" style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
@@ -187,7 +209,7 @@
       <el-row :gutter="20">
         <el-col :span="18">
           <el-form-item label="涓夈�佸鍟嗘姇璧�" label-width="130px" prop="engineering" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.foreignInvestmentTotal" class="item" clearable maxlength="255" style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.foreignInvestmentTotal" type="number" class="item" clearable maxlength="255" style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
@@ -196,7 +218,7 @@
       <el-row :gutter="20">
         <el-col :span="18">
           <el-form-item label="鍥涖�佷紒涓氳嚜绛�" label-width="130px" prop="engineering" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.enterpriseSelfRaisedTotal" class="item" clearable style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.enterpriseSelfRaisedTotal" type="number" class="item" clearable style="width: 90%"
                       maxlength="255" placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
@@ -205,28 +227,13 @@
       <el-row :gutter="20">
         <el-col :span="18">
           <el-form-item label="浜斻�佸叾浠栨姇璧�" label-width="130px" prop="engineering" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.otherInvestmentTotal" class="item" clearable maxlength="255" style="width: 90%"
+            <el-input v-model.trim="investmentFundsForm.otherInvestmentTotal" type="number" class="item" clearable maxlength="255" style="width: 90%"
                       placeholder="璇疯緭鍏�"/>
             <span class="money">涓囧厓</span>
           </el-form-item>
         </el-col>
       </el-row>
-      <el-row :gutter="20">
-        <el-col :span="6">
-          <el-form-item label="3.鍦版柟鏀垮簻涓撻」鍊哄埜" label-width="130px" prop="engineering" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.deptBond" class="item" clearable maxlength="255" style="width: 90%"
-                      placeholder="璇疯緭鍏�"/>
-            <span class="money">涓囧厓</span>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="瓒呴暱鏈熺壒鍒浗鍊�" label-width="130px" prop="engineering" style="width: 100%">
-            <el-input v-model.trim="investmentFundsForm.nationalDebt" class="item" clearable maxlength="255" style="width: 90%"
-                      placeholder="璇疯緭鍏�"/>
-            <span class="money">涓囧厓</span>
-          </el-form-item>
-        </el-col>
-      </el-row>
+
     </el-form>
   </div>
 </template>
@@ -249,9 +256,60 @@
       required: true
     },
   },
+  computed: {
+    totalInvestment() {
+      this.investmentFundsForm.totalInvestment =
+        parseFloat(this.investmentFundsForm.governmentInvestmentTotal ? this.investmentFundsForm.governmentInvestmentTotal : 0) +
+        this.centralInvestmentTotal +
+        this.provincialInvestmentTotal +
+        this.cityInvestmentTotal +
+        this.countyInvestmentTotal +
+        parseFloat(this.investmentFundsForm.domesticLoanTotal ? this.investmentFundsForm.domesticLoanTotal : 0) +
+        parseFloat(this.investmentFundsForm.bankLoan ? this.investmentFundsForm.bankLoan : 0) +
+        parseFloat(this.investmentFundsForm.foreignInvestmentTotal ? this.investmentFundsForm.foreignInvestmentTotal : 0) +
+        parseFloat(this.investmentFundsForm.enterpriseSelfRaisedTotal ? this.investmentFundsForm.enterpriseSelfRaisedTotal : 0) +
+        parseFloat(this.investmentFundsForm.otherInvestmentTotal ? this.investmentFundsForm.otherInvestmentTotal : 0)
+      return this.investmentFundsForm.totalInvestment;
+    },
+    centralInvestmentTotal() {
+      this.investmentFundsForm.centralInvestmentTotal =
+        parseFloat(this.investmentFundsForm.centralBudgetInvestment ? this.investmentFundsForm.centralBudgetInvestment : 0) +
+        parseFloat(this.investmentFundsForm.centralFiscalInvestment ? this.investmentFundsForm.centralFiscalInvestment : 0) +
+        parseFloat(this.investmentFundsForm.centralSpecialBondInvestment ? this.investmentFundsForm.centralSpecialBondInvestment : 0) +
+        parseFloat(this.investmentFundsForm.centralSpecialFundInvestment ? this.investmentFundsForm.centralSpecialFundInvestment : 0) +
+        parseFloat(this.investmentFundsForm.nationalDebt ? this.investmentFundsForm.nationalDebt : 0) +
+        parseFloat(this.investmentFundsForm.additionalNationalDebt ? this.investmentFundsForm.additionalNationalDebt : 0)
+      return this.investmentFundsForm.centralInvestmentTotal;
+    },
+    provincialInvestmentTotal() {
+      this.investmentFundsForm.provincialInvestmentTotal =
+        parseFloat(this.investmentFundsForm.provincialBudgetInvestment ? this.investmentFundsForm.provincialBudgetInvestment : 0) +
+        parseFloat(this.investmentFundsForm.provincialFiscalInvestment ? this.investmentFundsForm.provincialFiscalInvestment : 0) +
+        parseFloat(this.investmentFundsForm.provincialSpecialFundInvestment ? this.investmentFundsForm.provincialSpecialFundInvestment : 0)
+      return this.investmentFundsForm.provincialInvestmentTotal;
+    },
+    cityInvestmentTotal() {
+      this.investmentFundsForm.cityInvestmentTotal =
+        parseFloat(this.investmentFundsForm.cityBudgetInvestment ? this.investmentFundsForm.cityBudgetInvestment : 0) +
+        parseFloat(this.investmentFundsForm.cityFiscalInvestment ? this.investmentFundsForm.cityFiscalInvestment : 0) +
+        parseFloat(this.investmentFundsForm.citySpecialFundInvestment ? this.investmentFundsForm.citySpecialFundInvestment : 0)
+      return this.investmentFundsForm.cityInvestmentTotal;
+    },
+    countyInvestmentTotal() {
+      this.investmentFundsForm.countyInvestmentTotal =
+        parseFloat(this.investmentFundsForm.countyBudgetInvestment ? this.investmentFundsForm.countyBudgetInvestment : 0) +
+        parseFloat(this.investmentFundsForm.countyFiscalInvestment ? this.investmentFundsForm.countyFiscalInvestment : 0) +
+        parseFloat(this.investmentFundsForm.countySpecialFundInvestment ? this.investmentFundsForm.countySpecialFundInvestment : 0) +
+        parseFloat(this.investmentFundsForm.deptBond ? this.investmentFundsForm.deptBond : 0)
+      return this.investmentFundsForm.countyInvestmentTotal;
+    }
+  },
   data() {
     return {
       projectForm: {},
+      rules: {
+
+      },
       investmentFundsForm: {
         // id: '',
         // projectId: '',

--
Gitblit v1.8.0