fuliqi
2024-11-28 76fb875dc5aa7ded6d5737c3223951cd11ded366
src/views/projectEngineering/projectLibrary/component/investmentFunds.vue
@@ -1,161 +1,188 @@
<template>
  <div class="basic-info">
    <el-form ref="demoFormRef" :disabled="disabled" :model="investmentFunds" class="dialog_form">
    <el-form ref="demoFormRef" :disabled="disabled" :model="investmentFundsForm" 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="investmentFunds.totalInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.totalInvestment" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </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="investmentFunds.principal" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.principal" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </el-form-item>
        </el-col>
      </el-row>
      <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="investmentFunds.governmentInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.governmentInvestmentTotal" class="item" clearable
                      maxlength="255" placeholder="请输入"/>
          </el-form-item>
        </el-col>
      </el-row>
      <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="investmentFunds.centralInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.centralInvestmentTotal" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </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="investmentFunds.centralBudgetInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.centralBudgetInvestment" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </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="investmentFunds.centralFiscalInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.centralFiscalInvestment" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item class="items" label="3.中央专项债券筹集的专项建设资金" label-width="130px" prop="investmentType" style="width: 100%">
            <el-input v-model.trim="investmentFunds.centralSpecialBondInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
          <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
                      maxlength="255" placeholder="请输入"/>
          </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="investmentFunds.centralSpecialFundInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.centralSpecialFundInvestment" class="item" clearable
                      maxlength="255" placeholder="请输入"/>
          </el-form-item>
        </el-col>
      </el-row>
      <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="investmentFunds.provincialInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.provincialInvestmentTotal" class="item" clearable
                      maxlength="255" placeholder="请输入"/>
          </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="investmentFunds.provincialBudgetInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.provincialBudgetInvestment" class="item" clearable
                      maxlength="255" placeholder="请输入"/>
          </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="investmentFunds.provincialFiscalInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.provincialFiscalInvestment" class="item" clearable
                      maxlength="255" placeholder="请输入"/>
          </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="investmentFunds.provincialSpecialFundInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.provincialSpecialFundInvestment" class="item" clearable
                      maxlength="255" placeholder="请输入"/>
          </el-form-item>
        </el-col>
      </el-row>
      <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="investmentFunds.cityInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.cityInvestmentTotal" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </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="investmentFunds.cityBudgetInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.cityBudgetInvestment" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </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="investmentFunds.cityFiscalInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.cityFiscalInvestment" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </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="investmentFunds.citySpecialFundInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.citySpecialFundInvestment" class="item" clearable
                      maxlength="255" placeholder="请输入"/>
          </el-form-item>
        </el-col>
      </el-row>
      <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="investmentFunds.countyInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.countyInvestmentTotal" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </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="investmentFunds.countyBudgetInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.countyBudgetInvestment" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item class="items" label="2.区(县)财政性建设资金" label-width="130px" prop="investmentType" style="width: 100%">
            <el-input v-model.trim="investmentFunds.countyFiscalInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
          <el-form-item class="items" label="2.区(县)财政性建设资金" label-width="130px" prop="investmentType"
                        style="width: 100%">
            <el-input v-model.trim="investmentFundsForm.countyFiscalInvestment" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </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="investmentFunds.countySpecialFundInvestment" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.countySpecialFundInvestment" class="item" clearable
                      maxlength="255" placeholder="请输入"/>
          </el-form-item>
        </el-col>
      </el-row>
      <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="investmentFunds.domesticLoanTotal" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.domesticLoanTotal" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </el-form-item>
        </el-col>
      </el-row>
      <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="investmentFunds.bankLoan" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.bankLoan" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </el-form-item>
        </el-col>
      </el-row>
      <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="investmentFunds.foreignInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.foreignInvestmentTotal" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </el-form-item>
        </el-col>
      </el-row>
      <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="investmentFunds.enterpriseSelfRaisedTotal" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.enterpriseSelfRaisedTotal" class="item" clearable
                      maxlength="255" placeholder="请输入"/>
          </el-form-item>
        </el-col>
      </el-row>
      <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="investmentFunds.otherInvestmentTotal" class="item" clearable maxlength="255" placeholder="请输入" />
            <el-input v-model.trim="investmentFundsForm.otherInvestmentTotal" class="item" clearable maxlength="255"
                      placeholder="请输入"/>
          </el-form-item>
        </el-col>
      </el-row>
@@ -164,6 +191,13 @@
</template>
<script>
import Cookies from "js-cookie";
import {
  addProjectInvestmentFunding,
  editProjectInvestmentFunding,
  getProjectInvestmentFundingById
} from "@/api/projectEngineering/projectInvestmentFunding";
export default {
  name: 'InvestmentFundsForm',
  props: {
@@ -175,7 +209,10 @@
  },
  data() {
    return {
      investmentFunds: {
      projectForm: {},
      investmentFundsForm: {
        id: '',
        projectId: '',
        totalInvestment: '',
        principal: '',
        governmentInvestmentTotal: '',
@@ -205,14 +242,51 @@
    };
  },
  methods: {
    getInvestmentFunds() {
      getProjectInvestmentFundingById(this.investmentForm.projectId ).then(res => {
        this.investmentFundsForm = res.data;
      });
    },
    submit() {
      console.log("项目资金submit")
      if (!this.projectForm.id) {
        this.$message.error("请先保存投资管理基本信息")
      } else {
        this.investmentFundsForm.projectId = this.projectForm.id;
        if (this.investmentFundsForm.id != null) {
          editProjectInvestmentFunding(this.investmentFundsForm).then(response => {
            this.$modal.msgSuccess("修改成功");
            //跳转到下个组件
            this.$emit('toNext', 3);
          });
        } else {
          addProjectInvestmentFunding(this.investmentFundsForm).then(response => {
            this.$modal.msgSuccess("新增成功");
            this.investmentFundsForm.id = response.data
            //跳转到下个组件
            this.$emit('toNext', 3);
          });
        }
      }
    },
  },
  created() {
    this.investmentFundsForm.id = this.$route.query.projectId;
    const investmentFundsForm = Cookies.get("investmentFundsForm");
    const projectForm = Cookies.get("projectForm");
    const parsedInvestmentForm = investmentFundsForm ? JSON.parse(investmentFundsForm) : null;
    const parsedProjectForm = projectForm ? JSON.parse(projectForm) : null;
    this.investmentFundsForm = parsedInvestmentForm || {};
    this.projectForm = parsedProjectForm || {};
    // 如果路由存在id且没有缓存,视为编辑或查看,调用api
    if (this.investmentFundsForm.projectId && !parsedInvestmentForm) {
      this.getInvestmentFunds();
    }
  },
  beforeDestroy() {
    Cookies.set("investmentFundsForm", JSON.stringify(this.investmentFundsForm));
  },
}
</script>