From 7b618c81e16cd7e8870eb36d6f0090a1658db525 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 26 十一月 2024 22:58:46 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/projectEngineering/projectLibrary/component/PolicyInfo.vue | 259 +++++++++++++++++++++++++++++++++++++ src/views/projectEngineering/projectLibrary/projectDetails.vue | 16 - src/views/projectEngineering/projectLibrary/component/DocumentsInfo.vue | 89 ++++++++++++ 3 files changed, 353 insertions(+), 11 deletions(-) diff --git a/src/views/projectEngineering/projectLibrary/component/DocumentsInfo.vue b/src/views/projectEngineering/projectLibrary/component/DocumentsInfo.vue new file mode 100644 index 0000000..f599c38 --- /dev/null +++ b/src/views/projectEngineering/projectLibrary/component/DocumentsInfo.vue @@ -0,0 +1,89 @@ +<template> + <div class="policy-info"> + <el-form ref="demoFormRef" :disabled="disabled" :model="fileIdList" class="dialog_form"> + <el-row :gutter="0"> + <el-col :span="20"> + <el-form-item label="闄勪欢:" label-width="100px" prop="appendix" style="width: 100%"> + <div style="display: flex;gap: 10px"> + <file-upload v-model="documentsInfoList" + :fileType="accept" + :isShowTip="false"/> + <div v-if="documentsInfoList.length === 0" style="color: #a9afbc">鏀寔涓婁紶PDF鏍煎紡鏂囦欢</div> + </div> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> +</template> + +<script> + +export default { + props: { + disabled: { + required: true, + type: Boolean, + default: false + } + }, + data() { + return { + fileIdList: [], + documentsInfoList: [], + accept: ['pdf', 'docx', 'xlsx', 'jpg','jpeg'], + }; + }, + watch: { + // 鐩戝惉 documentsInfoList 鐨勫彉鍖栵紝骞舵洿鏂� fileIdList + documentsInfoList(newVal) { + this.fileIdList = newVal.map(item => item.fileId); + } + }, + methods: { + handleRemove(file) { + if (file) { + this.fileIdList = this.documentsInfoList.map(item => item.fileId); + localStorage.setItem('fileIdList', JSON.stringify(file)); + } + }, + handleAdd(file) { + if (file && file.length > 0) { + localStorage.setItem('fileIdList', JSON.stringify(file)); + } + } + }, + + mounted() { + } +}; +</script> + +<style lang="scss" scoped> +.item { + width: 100%; +} + +.documents-info-items { + display: inline-block; + width: 100%; + height: 130px; + border: 1px solid #dbdeea; + background-color: #f3f7fc; + + .upload-files-items { + margin-top: 10px; + margin-left: 50px; + } +} + +.input-row { + display: flex; + width: 100%; + + .input-item { + width: 100%; + } +} + +</style> diff --git a/src/views/projectEngineering/projectLibrary/component/PolicyInfo.vue b/src/views/projectEngineering/projectLibrary/component/PolicyInfo.vue new file mode 100644 index 0000000..33598ab --- /dev/null +++ b/src/views/projectEngineering/projectLibrary/component/PolicyInfo.vue @@ -0,0 +1,259 @@ +<template> + <div class="policy-info"> + <el-form + ref="demoFormRef" + :disabled="disabled" + :model="investmentProjectPolicyComplianceDTO" + :rules="rules" + > + <el-row :gutter="0"> + <el-col :span="20"> + <el-form-item label="绗﹀悎琛屼笟鏀跨瓥:" label-width="180px" prop="industryPolicy" style="width: 100%"> + <div style="display: flex"> + <file-upload v-model="fileList" + :fileType="accept" + :isShowTip="false"/> + <div v-if="fileList.length === 0" style="color: #a9afbc; margin-left: 10px"> + 鏀寔涓嬭浇PDF鏍煎紡鏂囦欢 + </div> + </div> + </el-form-item> + </el-col> + + <el-col :span="20"> + <el-form-item class="custom-form-item" label=" " label-position="right" label-width="180px" style="width: 100%; margin-top: -20px"> + <div class="input-row policy-items"> + <el-radio-group v-model="investmentProjectPolicyComplianceDTO.belongsToIndustryAdjustmentDirectory" class="radio-item"> + <el-radio size="large" style="margin-bottom: 25px" :label="true">灞炰簬銆婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬩笅鐨勯」鐩� </el-radio> + <el-radio size="large" :label="false">灞炰簬鏈垪鍏ャ�婁骇涓氱粨鏋勮皟鏁存寚瀵肩洰褰曘�嬬殑鍏佽绫婚」鐩�</el-radio> + </el-radio-group> + </div> + </el-form-item> + </el-col> + + <el-col :span="20"> + <el-form-item class="custom-form-item" label=" " label-width="180px" style="width: 100%; margin-top: -20px; height: 50px"> + <div class="input-row policy-items"> + <el-checkbox + v-model="investmentProjectPolicyComplianceDTO.belongsToWesternEncouragedDirectory" + label="灞炰簬銆婅タ閮ㄥ湴鍖洪紦鍔辩被浜т笟鐩綍銆嬬殑椤圭洰" + size="large" + style="margin-right: 70px" + /> + </div> + </el-form-item> + </el-col> + <el-col :span="20"> + <el-form-item class="custom-form-item" label=" " label-width="180px" style="width: 100%; margin-top: -20px; height: 30px"> + <div class="input-row policy-items" style="height: 52px"> + <el-checkbox + v-model="investmentProjectPolicyComplianceDTO.notBannedOrControlledProject" + disabled + label="涓嶅睘浜庝骇涓氭斂绛栫姝㈡姇璧勫缓璁炬垨瀹炶鏍稿噯銆佸鎵圭鐞嗙殑椤圭洰" + size="large" + style="margin-right: 70px" + :value="true" + /> + </div> + </el-form-item> + </el-col> + <el-col :span="20"> + <el-form-item class="custom-form-item" label="濉姤淇℃伅鐪熷疄" label-width="180px" style="width: 100%; margin-top: 20px"> + <div class="policy-items"> + <div style="color: #a9afbc">澶囨鑰呮壙璇�:</div> + <el-checkbox + v-model="investmentProjectPolicyComplianceDTO.informationIsTrue" + disabled + label="鎵�鎻愪緵鐨勫妗堜俊鎭槸鐪熷疄銆佸噯纭�佸畬鏁村拰鏈夋晥鐨�,鏃犻殣鐬掋�佽櫄鍋囧拰閲嶅ぇ閫犳紡涔嬪锛屽澶囨椤圭洰淇℃伅鐨勭湡瀹炴�ц礋璐�" + size="large" + style="margin-right: 70px" + :value="true" + /> + </div> + </el-form-item> + </el-col> + <el-col :span="20"> + <el-form-item label="涓撻」瑙勫垝绗﹀悎鎯呭喌:" label-width="180px" prop="specialPlanningCompliance" style="width: 100%"> + <div class="input-row"> + <el-input + v-model.trim="investmentProjectPolicyComplianceDTO.specialPlanningCompliance" + class="input-item" + maxlength="200" + placeholder="璇疯緭鍏�" + type="textarea" + ></el-input> + </div> + </el-form-item> + </el-col> + <el-col :span="20"> + <el-form-item label="椤圭洰鑳借�楁儏鍐�:" label-width="180px" prop="projectEnergyConsumption" style="width: 100%"> + <div class="policy-items" style="height: 320px"> + <div style="line-height: 20px;color: #a9afbc"> + 骞寸患鍚堣兘婧愭秷璐归噺涓嶆弧1000鍚ㄦ爣鍑嗙叅锛屼笖骞寸數鍔涙秷鑰楅噺涓嶆弧500涓囧崈鐡︽椂鐨勫浘瀹氳祫浜ф姇璧勯」鐩�佷互鍙婄敤鑳藉伐鑹虹畝鍗曘�佽妭鑳芥綔鍔涘皬鐨勮涓�(鎸夌収鍥藉鍙戞敼瑕佹寚瀹氬苟鍏竷鐨勫叿浣撹涓氱洰褰�)鐨勫洜瀹氳祫浜ф姇璧勯」鐩簲鎸夌収鐩稿叧鑺傝兘鏍囧噯銆佽鑼冨缓璁撅紝涓嶅啀鍗曠嫭杩涜鑺傝兘瀹℃煡銆� + </div> + <div style="display: flex;width: 100%;"> + <el-radio-group v-model="investmentProjectPolicyComplianceDTO.energyCheck" style="display: flex;flex-direction: column;margin-top: 10px"> + <el-radio size="large" style="margin-bottom: 20px" :label="true"> 闇�杩涜鑺傝兘瀹℃煡鐨勯」鐩紝涓嶅湪濉姤銆婇」鐩兘婧愭秷璐规儏鍐佃〃銆� </el-radio> + <el-radio size="large" style="margin-bottom: 10px" :label="false"> 涓嶅崟鐙繘琛岃妭鑳藉鏌ョ殑椤圭洰锛岄渶濉姤銆婇」鐩兘婧愭秷璐规儏鍐佃〃銆� </el-radio> + </el-radio-group> + </div> + <div style="display: flex;gap: 2px"> + <div style="width: 160px">1.椤圭洰骞寸患鍚堣兘婧愭秷璐归噺:</div> + <el-input + style="width: 300px" + v-model.trim="investmentProjectPolicyComplianceDTO.annualEnergyConsumption" + maxlength="255" + placeholder="璇疯緭鍏�" + ></el-input> + (鏍囧噯鐓ゅ綋閲忓��) + </div> + <div style="display: flex;gap: 2px;margin-top: 10px"> + <div style="width: 160px">2.椤圭洰骞寸數鍔涙秷鑰楅噺:</div> + <el-input + style="width: 300px" + v-model.trim="investmentProjectPolicyComplianceDTO.annualElectricityConsumption" + maxlength="255" + placeholder="璇疯緭鍏�" + ></el-input> + (鏍囧噯鐓ゅ綋閲忓��) + </div> + <div style="line-height: 20px;color: #a9afbc;margin-top: 5px">涓嶅啀鍗曠嫭杩涜鑺傝兘瀹℃煡鐨勭被鍨嬪涓�:</div> + <div class="input-row"> + <el-radio-group v-model="investmentProjectPolicyComplianceDTO.noOnlyCheckType" class="radio-item"> + <el-radio size="large" :label="1"> + 骞寸患鍚堣兘婧愭秷璐归噺涓嶆弧1000鍚ㄦ爣鍑嗙叅涓斿勾鐢靛姏娑堣垂閲忎笉婊�500涓囧崈鐡︽椂鐨勫浐瀹氳祫浜ф姇璧勯」鐩� + </el-radio> + <el-radio size="large" style="margin-top: 20px" :label="2"> + 鐢ㄨ兘宸ヨ壓绠�鍗曪紝鑺傝兘娼滃姏灏忕殑琛屼笟锛堝叿浣撹涓氱洰褰曠敱鍥藉鍙戝睍鏀归潻濮斿埗瀹氬叕甯冨苟閫傛椂鏇存柊锛夌殑鍥哄畾璧勪骇鎶曡祫椤圭洰 + </el-radio> + </el-radio-group> + </div> + </div> + </el-form-item> + </el-col> + <el-col :span="20"> + <el-form-item label="澶囨敞:" label-width="180px" prop="remark" style="width: 100%"> + <div class="input-row"> + <el-input + v-model.trim="investmentProjectPolicyComplianceDTO.remark" + class="item" + clearable + maxlength="255" + placeholder="璇疯緭鍏�" + type="textarea" + /> + </div> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> +</template> + +<script> + +export default { + name: 'PolicyComplianceForm', + props: { + disabled: { + type: Boolean, + default: false, + required: true + } + }, + data() { + return { + investmentProjectPolicyComplianceDTO: { + fileIdList: [], + belongsToIndustryAdjustmentDirectory: null, + belongsToWesternEncouragedDirectory: false, + notBannedOrControlledProject: true, + informationIsTrue: true, + specialPlanningCompliance: '', + energyCheck: null, + annualEnergyConsumption: '', + annualElectricityConsumption: '', + noOnlyCheckType: null, + remark: '' + }, + fileList: [], + accept: ['pdf'], + rules: { + industrialPolicyProhibition: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], + reportedInformation: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }] + } + }; + }, + watch: { + fileList: { + deep: true, + handler(newFileList) { + if (newFileList) { + this.investmentProjectPolicyComplianceDTO.fileIdList = newFileList.map(item => item.fileId); + } + } + } + }, + methods: { + handleRemove(file) { + if (file) { + this.investmentProjectPolicyComplianceDTO.fileIdList = this.fileList.map(item => item.fileId); + localStorage.setItem('fileList', JSON.stringify(file)); + } + }, + handleAdd(file) { + if (file) { + localStorage.setItem('fileList', JSON.stringify(file)); + } + } + } +}; +</script> + +<style lang="scss" scoped> +/* Styles remain the same as in the original component */ +.item { + width: 100%; +} + +.policy-info-items { + width: 100%; + height: 100px; + border: 1px solid #dbdeea; + background-color: #f3f7fc; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.policy-items { + width: 100%; + height: 100px; + padding-left: 10px; + border: 1px solid #dbdeea; + background-color: #fff; +} + +.radio-item { + margin-top: 15px; + display: flex; + flex-direction: column; +} + +.input-row { + display: flex; + width: 100%; + + .input-item { + width: 100%; + } +} + +.custom-form-item { + ::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 a1e5bf2..39a6a44 100644 --- a/src/views/projectEngineering/projectLibrary/projectDetails.vue +++ b/src/views/projectEngineering/projectLibrary/projectDetails.vue @@ -32,9 +32,9 @@ import BasicInfo from '@/views/projectEngineering/projectLibrary/component/BasicInfo'; import InvestInfo from '@/views/projectEngineering/projectLibrary/component/InvestInfo'; import InvestmentFunds from '@/views/projectEngineering/projectLibrary/component/investmentFunds'; -import LegalPerson from '@/views/projectEngineering/projectLibrary/component//legalPerson'; -// import PolicyInfo from '@/components/PolicyInfo.vue'; -// import DocumentsInfo from '@/components/DocumentsInfo.vue'; +import LegalPerson from '@/views/projectEngineering/projectLibrary/component/legalPerson'; +import PolicyInfo from '@/views/projectEngineering/projectLibrary/component/PolicyInfo'; +import DocumentsInfo from '@/views/projectEngineering/projectLibrary/component/DocumentsInfo'; import { addProject, getProject, updateProject, getProjectCode } from '@/api/projectInfo'; export default { @@ -68,17 +68,15 @@ { label: '鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌', value: '鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌', - componentName: 'PolicyInfo' + componentName: PolicyInfo }, { label: '鐩稿叧鏂囦功', value: '鐩稿叧鏂囦功', - componentName: 'DocumentsInfo' + componentName: DocumentsInfo } ], childRef: null, - // 鍋囪杩欎簺鐘舵�佹槸浠� Vuex 涓幏鍙栫殑锛屾垨鑰呬綘鍙互鐩存帴鍦� data 涓畾涔夊畠浠� - // projectForm, investment, investmentFunds, legalPerson, resetPlanLibrary, investmentProjectPolicyComplianceDTO, fileIdList, documentsInfoList, projectList, fileList }; }, methods: { @@ -188,8 +186,6 @@ } }); }, - // 鍋囪 resetPlanLibrary 鏄粠鏌愪釜鍦版柟寮曞叆鎴栧畾涔夌殑锛屼綘闇�瑕佺‘淇濆畠鍦ㄤ綘鐨勭粍浠朵腑鍙敤 - // resetPlanLibrary() { ... } }, created() { // 鍦ㄧ粍浠跺垱寤烘椂鑾峰彇椤圭洰淇℃伅锛屽鏋� id 瀛樺湪 @@ -197,8 +193,6 @@ this.getProjectInfo(this.id); } else { this.getProjectCodeApi(); - // 鍒濆鍖栨垨閲嶇疆鐘舵�� - // this.resetPlanLibrary(); } }, -- Gitblit v1.8.0