xiangpei
2025-04-10 69b975aad77dea4c6c10a21b278248ce091f54eb
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: '',