From 10e3aae03e62df2cd8a20510fc0bc2e54d53d3a8 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期二, 26 十一月 2024 21:31:51 +0800 Subject: [PATCH] 项目投资管理页面+项目投资及资金来源页面 --- src/views/projectEngineering/projectLibrary/component/investmentFunds.vue | 252 +++++++++++++++++++++++++ src/views/projectEngineering/projectLibrary/component/BasicInfo.vue | 1 src/views/projectEngineering/projectLibrary/component/InvestInfo.vue | 295 +++++++++++++++++++++++++++++ src/views/projectEngineering/projectLibrary/projectDetails.vue | 8 4 files changed, 551 insertions(+), 5 deletions(-) diff --git a/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue b/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue index 5b3a7ce..54d9aca 100644 --- a/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue +++ b/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"/> diff --git a/src/views/projectEngineering/projectLibrary/component/InvestInfo.vue b/src/views/projectEngineering/projectLibrary/component/InvestInfo.vue new file mode 100644 index 0000000..ef82734 --- /dev/null +++ b/src/views/projectEngineering/projectLibrary/component/InvestInfo.vue @@ -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="寤虹骞冲彴浠g爜" 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> diff --git a/src/views/projectEngineering/projectLibrary/component/investmentFunds.vue b/src/views/projectEngineering/projectLibrary/component/investmentFunds.vue new file mode 100644 index 0000000..c0ae3d7 --- /dev/null +++ b/src/views/projectEngineering/projectLibrary/component/investmentFunds.vue @@ -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> diff --git a/src/views/projectEngineering/projectLibrary/projectDetails.vue b/src/views/projectEngineering/projectLibrary/projectDetails.vue index 42b76f0..b688ebd 100644 --- a/src/views/projectEngineering/projectLibrary/projectDetails.vue +++ b/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: '椤圭洰(娉曚汉)鍗曚綅鐧昏淇℃伅', -- Gitblit v1.8.0