fuliqi
2024-11-26 10e3aae03e62df2cd8a20510fc0bc2e54d53d3a8
项目投资管理页面+项目投资及资金来源页面
2个文件已修改
2个文件已添加
556 ■■■■■ 已修改文件
src/views/projectEngineering/projectLibrary/component/BasicInfo.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectEngineering/projectLibrary/component/InvestInfo.vue 295 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectEngineering/projectLibrary/component/investmentFunds.vue 252 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectEngineering/projectLibrary/projectDetails.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectEngineering/projectLibrary/component/BasicInfo.vue
@@ -114,7 +114,6 @@
              clearable
              placeholder="请选择"
              style="width: 100%"
              collapse-tags
              >
              <el-option v-for="item in dict.type.sys_administrative_divisions" :key="item.value" :label="item.label"
                         :value="item.value"/>
src/views/projectEngineering/projectLibrary/component/InvestInfo.vue
New file
@@ -0,0 +1,295 @@
<template>
  <div class="basic-info">
    <el-form ref="demoFormRef" :disabled="disabled" :model="investment" class="dialog_form">
      <el-row :gutter="20">
        <el-col :span="6">
          <el-form-item label="建设地点是否跨域" label-width="120px" prop="fundsType" style="width: 100%">
            <el-select
              v-model="investment.beCrossRegion"
              clearable
              placeholder="请选择"
              style="width: 100%"
            >
              <el-option v-for="item in dict.type.sys_cross_domain" :key="item.value" :label="item.label"
                         :value="item.value"/>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="项目建设地点" label-width="120px" prop="investmentType" style="width: 100%">
            <el-select
              v-model="investment.constructionLocation"
              clearable
              placeholder="请选择"
              style="width: 100%"
            >
              <el-option v-for="item in dict.type.sys_administrative_divisions" :key="item.value" :label="item.label"
                         :value="item.value"/>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="建设详细地址" label-width="120px" prop="fundsType" style="width: 100%">
            <el-input v-model.trim="investment.detailedAddress" class="item" clearable disabled maxlength="255" placeholder="请输入" />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="6">
          <el-form-item label="是否是补码项目" label-width="120px" prop="projectType" style="width: 100%">
            <el-select
              v-model="investment.beCompensationProject"
              clearable
              placeholder="请选择"
              style="width: 100%"
            >
              <el-option v-for="item in dict.type.sys_whether_project" :key="item.value" :label="item.label"
                         :value="item.value"/>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="补码原因" label-width="120px" prop="projectstatus" style="width: 100%">
            <el-input v-model.trim="investment.compensationReason" 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="计划开工时间" label-width="120px" prop="plannedStartDate" style="width: 100%">
            <!--            <el-date-picker v-model="plannedStartDate" placeholder="选择时间" style="width: 100%" type="date" @change="chaneStartWork" />-->
            <el-input v-model.trim="plannedStartDate" class="item" clearable disabled maxlength="255" placeholder="请输入" />
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="拟建成时间" label-width="120px" prop="expectedCompletionDate" style="width: 100%">
            <!--            <el-date-picker v-model="expectedCompletionDate" placeholder="选择时间" style="width: 100%" type="date" @change="chaneCompleted" />-->
            <el-input v-model.trim="expectedCompletionDate" class="item" clearable disabled maxlength="255" placeholder="请输入" />
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="国际行业分类" label-width="120px" prop="engineering" style="width: 100%">
            <el-select
              v-model="investment.nationalIndustryClassification"
              clearable
              placeholder="请选择"
              style="width: 100%"
            >
              <el-option v-for="item in dict.type.sys_whether_project" :key="item.value" :label="item.label"
                         :value="item.value"/>
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="6">
          <el-form-item label="所属行业分类" label-width="120px" prop="department" style="width: 100%">
            <el-input v-model.trim="investment.industryClassification" class="item" clearable maxlength="255" placeholder="请输入" />
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="项目建成性质" label-width="120px" prop="design" style="width: 100%">
            <el-select
              v-model="investment.projectNature"
              clearable
              placeholder="请选择"
              style="width: 100%"
            >
              <el-option v-for="item in dict.type.sys_industry_belong" :key="item.value" :label="item.label"
                         :value="item.value"/>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="项目属性" label-width="120px" prop="putUnder" style="width: 100%">
            <el-select
              v-model="investment.projectAttribute"
              clearable
              placeholder="请选择"
              style="width: 100%"
            >
              <el-option v-for="item in dict.type.sys_project_attributes" :key="item.value" :label="item.label"
                         :value="item.value"/>
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="18">
          <el-form-item label="是否使用土地" label-width="120px" prop="approvalType" style="width: 100%">
            <el-select
              v-model="investment.useEarth"
              clearable
              placeholder="请选择"
              style="width: 100%"
            >
              <el-option v-for="item in dict.type.sys_whether_project" :key="item.value" :label="item.label"
                         :value="item.value"/>
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="18">
          <el-form-item class="item" label="主要建设内容及规模" label-width="120px" prop="content">
            <el-input v-model.trim="investment.contentScale" class="item" clearable maxlength="255" placeholder="请输入" type="textarea" />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="18">
          <el-form-item class="item" label="建管平台代码" label-width="120px" prop="content">
            <el-input v-model.trim="investment.code" class="item" clearable maxlength="255" placeholder="请输入" type="textarea" />
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
  </div>
</template>
<script>
import { formatDate } from '@/utils';
export default {
  dicts: ['sys_cross_domain','sys_administrative_divisions','sys_whether_project','sys_industry_belong'
  ,'sys_project_attributes'],
  name: 'InvestmentForm',
  props: {
    disabled: {
      type: Boolean,
      default: false,
      required: true
    }
  },
  data() {
    return {
      investment: {
        beCrossRegion: '',
        constructionLocation: '',
        detailedAddress: '',
        beCompensationProject: '',
        compensationReason: '',
        plannedStartDate: '',
        expectedCompletionDate: '',
        nationalIndustryClassification: '',
        industryClassification: '',
        projectNature: '',
        projectAttribute: '',
        useEarth: '',
        contentScale: '',
        code: '',
        projectId: ''
      },
      projectForm: {
        projectName: '',
        projectCode: '',
        projectType: '',
        projectStatus: '1',
        fundType: '',
        investType: '',
        importanceType: '',
        projectPhase: '储备规划阶段',
        tag: '',
        competentDepartment: '',
        projectLocation: '',
        longitude: '',
        latitude: '',
        managementCentralization: '',
        projectApplicationPhase: '',
        projectApprovalType: '',
        investmentCatalogue: '',
        approvalPlan: '',
        isSetProject: '',
        setTime: '',
        assignmentStatus: '',
        area: '',
        winTime: '',
        winUnit: '',
        winAmount: '',
        address: '',
        engineeringIdList: [],
        content: '',
        contact: '',
        projectOwnerUnit: '',
        planStartTime: '',
        planCompleteTime: '',
        projectContactPerson: '',
        fileIdList: [],
        sysOssVos: [],
        engineeringInfos: [],
        year: '',
        yearInvestAmount: '',
        competentDepartmentList: [],
        managementCentralizationList: []
      },
      plannedStartDate: '',
      expectedCompletionDate: '',
      sys_cross_domain: [],
      sys_industry_classification: [],
      sys_industry_belong: [],
      sys_project_attributes: [],
      sys_whether_project: [],
      sys_administrative_divisions: []
    };
  },
  mounted() {
    this.updateFormData();
  },
  methods: {
    chaneCompleted(val) {
      if (!val) return;
      this.investment.expectedCompletionDate = formatDate(val);
    },
    chaneStartWork(val) {
      if (!val) return;
      this.investment.plannedStartDate = formatDate(val);
    },
    updateFormData() {
      if(this.projectForm) {
        this.plannedStartDate = this.projectForm.planStartTime.slice(0, 10);
        this.expectedCompletionDate = this.projectForm.planCompleteTime.slice(0, 10);
        this.investment.constructionLocation = this.projectForm.area;
        this.investment.detailedAddress = this.projectForm.address;
      }
    }
  },
  watch: {
    projectForm: {
      deep: true,
      handler() {
        this.updateFormData();
      }
    }
  }
};
</script>
<style lang="scss" scoped>
.item {
  width: 100%;
}
.input-row {
  display: flex;
  width: 100%;
  .input-item {
    width: 100%;
  }
}
.map-btn {
  width: 32px;
  height: 32px;
  background: #c6d6ff;
  border: 1px solid #3369ff;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  img {
    width: 20px;
  }
}
</style>
src/views/projectEngineering/projectLibrary/component/investmentFunds.vue
New file
@@ -0,0 +1,252 @@
<template>
  <div class="basic-info">
    <el-form ref="demoFormRef" :disabled="disabled" :model="investmentFunds" 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-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-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-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-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-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-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>
        </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-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-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-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-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-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-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-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-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-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-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-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>
        </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-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-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-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-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-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-form-item>
        </el-col>
      </el-row>
    </el-form>
  </div>
</template>
<script>
export default {
  name: 'InvestmentFundsForm',
  props: {
    disabled: {
      type: Boolean,
      default: false,
      required: true
    }
  },
  data() {
    return {
      investmentFunds: {
        totalInvestment: '',
        principal: '',
        governmentInvestmentTotal: '',
        centralInvestmentTotal: '',
        centralBudgetInvestment: '',
        centralFiscalInvestment: '',
        centralSpecialBondInvestment: '',
        centralSpecialFundInvestment: '',
        provincialInvestmentTotal: '',
        provincialBudgetInvestment: '',
        provincialFiscalInvestment: '',
        provincialSpecialFundInvestment: '',
        cityInvestmentTotal: '',
        cityBudgetInvestment: '',
        cityFiscalInvestment: '',
        citySpecialFundInvestment: '',
        countyInvestmentTotal: '',
        countyBudgetInvestment: '',
        countyFiscalInvestment: '',
        countySpecialFundInvestment: '',
        domesticLoanTotal: '',
        bankLoan: '',
        foreignInvestmentTotal: '',
        enterpriseSelfRaisedTotal: '',
        otherInvestmentTotal: ''
      }
    };
  },
  methods: {
  },
  created() {
  },
}
</script>
<style lang="scss" scoped>
.item {
  width: 100%;
}
.input-row {
  display: flex;
  width: 100%;
  .input-item {
    width: 100%;
  }
}
.map-btn {
  width: 32px;
  height: 32px;
  background: #c6d6ff;
  border: 1px solid #3369ff;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  img {
    width: 20px;
  }
}
.items {
  ::v-deep  .el-form-item__label {
    line-height: 16px;
    text-align: right;
  }
}
</style>
src/views/projectEngineering/projectLibrary/projectDetails.vue
@@ -30,8 +30,8 @@
<script>
import BasicInfo from '@/views/projectEngineering/projectLibrary/component/BasicInfo';
// import InvestInfo from '@/components/InvestInfo.vue';
// import InvestmentFunds from '@/components/investmentFunds.vue';
import InvestInfo from '@/views/projectEngineering/projectLibrary/component/InvestInfo';
import InvestmentFunds from '@/views/projectEngineering/projectLibrary/component/investmentFunds.vue';
// import LegalPerson from '@/components/legalPerson.vue';
// import PolicyInfo from '@/components/PolicyInfo.vue';
// import DocumentsInfo from '@/components/DocumentsInfo.vue';
@@ -53,12 +53,12 @@
        {
          label: '投资管理基础信息',
          value: '任务下发',
          componentName: 'InvestInfo'
          componentName: InvestInfo
        },
        {
          label: ' 项目投资及资金来源',
          value: '项目投资及资金来源',
          componentName: 'InvestmentFunds'
          componentName: InvestmentFunds
        },
        {
          label: '项目(法人)单位登记信息',