From b1c351f8a0d16008524d4f17bb1948f836f5a7b0 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 28 十一月 2024 17:02:47 +0800
Subject: [PATCH] 项目库增改

---
 src/views/projectEngineering/projectLibrary/component/PolicyInfo.vue |  151 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 99 insertions(+), 52 deletions(-)

diff --git a/src/views/projectEngineering/projectLibrary/component/PolicyInfo.vue b/src/views/projectEngineering/projectLibrary/component/PolicyInfo.vue
index 2aa6cf7..815c2dc 100644
--- a/src/views/projectEngineering/projectLibrary/component/PolicyInfo.vue
+++ b/src/views/projectEngineering/projectLibrary/component/PolicyInfo.vue
@@ -1,30 +1,31 @@
 <template>
   <div class="policy-info">
     <el-form
-      ref="demoFormRef"
+      ref="policyInfoFormRef"
       :disabled="disabled"
-      :model="investmentProjectPolicyComplianceDTO"
+      :model="policyInfoForm"
       :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"
+              <file-upload v-model="policyInfoForm.fileList"
                            :fileType="accept"
                            :isShowTip="false"/>
-              <div v-if="fileList.length === 0" style="color: #a9afbc; margin-left: 10px">
-                鏀寔涓嬭浇PDF鏍煎紡鏂囦欢
+              <div v-if="policyInfoForm.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">
+          <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-group v-model="policyInfoForm.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>
@@ -32,10 +33,11 @@
         </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">
+          <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"
+                v-model="policyInfoForm.belongsToWesternEncouragedDirectory"
                 label="灞炰簬銆婅タ閮ㄥ湴鍖洪紦鍔辩被浜т笟鐩綍銆嬬殑椤圭洰"
                 size="large"
                 style="margin-right: 70px"
@@ -44,10 +46,11 @@
           </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">
+          <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"
+                v-model="policyInfoForm.notBannedOrControlledProject"
                 disabled
                 label="涓嶅睘浜庝骇涓氭斂绛栫姝㈡姇璧勫缓璁炬垨瀹炶鏍稿噯銆佸鎵圭鐞嗙殑椤圭洰"
                 size="large"
@@ -58,11 +61,12 @@
           </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">
+          <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"
+                v-model="policyInfoForm.informationIsTrue"
                 disabled
                 label="鎵�鎻愪緵鐨勫妗堜俊鎭槸鐪熷疄銆佸噯纭�佸畬鏁村拰鏈夋晥鐨�,鏃犻殣鐬掋�佽櫄鍋囧拰閲嶅ぇ閫犳紡涔嬪锛屽澶囨椤圭洰淇℃伅鐨勭湡瀹炴�ц礋璐�"
                 size="large"
@@ -76,7 +80,7 @@
           <el-form-item label="涓撻」瑙勫垝绗﹀悎鎯呭喌:" label-width="180px" prop="specialPlanningCompliance" style="width: 100%">
             <div class="input-row">
               <el-input
-                v-model.trim="investmentProjectPolicyComplianceDTO.specialPlanningCompliance"
+                v-model.trim="policyInfoForm.specialPlanningCompliance"
                 class="input-item"
                 maxlength="200"
                 placeholder="璇疯緭鍏�"
@@ -88,20 +92,23 @@
         <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">
+              <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 v-model="policyInfoForm.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"
+                  v-model.trim="policyInfoForm.annualEnergyConsumption"
                   maxlength="255"
                   placeholder="璇疯緭鍏�"
                 ></el-input>
@@ -111,7 +118,7 @@
                 <div style="width: 160px">2.椤圭洰骞寸數鍔涙秷鑰楅噺:</div>
                 <el-input
                   style="width: 300px"
-                  v-model.trim="investmentProjectPolicyComplianceDTO.annualElectricityConsumption"
+                  v-model.trim="policyInfoForm.annualElectricityConsumption"
                   maxlength="255"
                   placeholder="璇疯緭鍏�"
                 ></el-input>
@@ -119,7 +126,7 @@
               </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-group v-model="policyInfoForm.noOnlyCheckType" class="radio-item">
                   <el-radio size="large" :label="1">
                     骞寸患鍚堣兘婧愭秷璐归噺涓嶆弧1000鍚ㄦ爣鍑嗙叅涓斿勾鐢靛姏娑堣垂閲忎笉婊�500涓囧崈鐡︽椂鐨勫浐瀹氳祫浜ф姇璧勯」鐩�
                   </el-radio>
@@ -135,7 +142,7 @@
           <el-form-item label="澶囨敞:" label-width="180px" prop="remark" style="width: 100%">
             <div class="input-row">
               <el-input
-                v-model.trim="investmentProjectPolicyComplianceDTO.remark"
+                v-model.trim="policyInfoForm.remarks"
                 class="item"
                 clearable
                 maxlength="255"
@@ -152,6 +159,13 @@
 
 <script>
 
+import Cookies from "js-cookie";
+import {
+  addProjectInvestmentPolicyCompliance,
+  editProjectInvestmentPolicyCompliance,
+  getProjectInvestmentPolicyComplianceById
+} from "@/api/projectEngineering/projectInvestmentPolicyCompliance";
+
 export default {
   name: 'PolicyComplianceForm',
   props: {
@@ -163,10 +177,12 @@
   },
   data() {
     return {
-      investmentProjectPolicyComplianceDTO: {
-        fileIdList: [],
+      policyInfoForm: {
+        id: '',
+        projectId: '',
+        fileList: [],
         belongsToIndustryAdjustmentDirectory: null,
-        belongsToWesternEncouragedDirectory: false,
+        belongsToWesternEncouragedDirectory: null,
         notBannedOrControlledProject: true,
         informationIsTrue: true,
         specialPlanningCompliance: '',
@@ -174,42 +190,73 @@
         annualEnergyConsumption: '',
         annualElectricityConsumption: '',
         noOnlyCheckType: null,
-        remark: ''
+        remarks: ''
       },
-      fileList: [],
       accept: ['pdf'],
       rules: {
-        industrialPolicyProhibition: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
-        reportedInformation: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }]
+        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);
+  mounted() {
+    this.policyInfoForm.projectId = this.$route.query.projectId;
+    const policyInfoForm = Cookies.get("policyInfoForm");
+    const projectForm = Cookies.get("projectForm");
+
+    const parsedPolicyInfoForm = policyInfoForm ? JSON.parse(policyInfoForm) : null;
+    const parsedProjectForm = projectForm ? JSON.parse(projectForm) : null;
+    if (parsedPolicyInfoForm) {
+      this.policyInfoForm = parsedPolicyInfoForm
+    }
+    if (parsedProjectForm) {
+      this.projectForm = parsedProjectForm
+    }
+    // 濡傛灉璺敱瀛樺湪id涓旀病鏈夌紦瀛�,瑙嗕负缂栬緫鎴栨煡鐪嬶紝璋冪敤api
+    if (this.policyInfoForm.projectId && !parsedPolicyInfoForm) {
+      this.getProjectInvestmentPolicyCompliance();
+    }
+  },
+  beforeDestroy() {
+    Cookies.set("policyInfoForm", JSON.stringify(this.policyInfoForm));
+  },
+  methods: {
+    getProjectInvestmentPolicyCompliance() {
+      getProjectInvestmentPolicyComplianceById(this.policyInfoForm.projectId).then(res => {
+        this.policyInfoForm = res.data;
+        if(!this.policyInfoForm.fileList) {
+          this.policyInfoForm.fileList = []
         }
+        this.policyInfoForm.notBannedOrControlledProject =true
+        this.policyInfoForm.informationIsTrue =true
+      });
+    },
+    submit() {
+      if (!this.projectForm.id) {
+        this.$message.error("璇峰厛淇濆瓨鎶曡祫绠$悊鍩烘湰淇℃伅")
+      } else {
+        this.$refs["policyInfoFormRef"].validate(valid => {
+          if (valid) {
+            this.policyInfoForm.projectId = this.projectForm.id;
+            if (this.policyInfoForm.id != null) {
+              editProjectInvestmentPolicyCompliance(this.policyInfoForm).then(response => {
+                this.$modal.msgSuccess("淇敼鎴愬姛");
+                //璺宠浆鍒颁笅涓粍浠�
+                this.$emit('toNext', 5);
+              });
+            } else {
+              addProjectInvestmentPolicyCompliance(this.policyInfoForm).then(response => {
+                this.$modal.msgSuccess("鏂板鎴愬姛");
+                this.policyInfoForm.id = response.data
+                //璺宠浆鍒颁笅涓粍浠�
+                this.$emit('toNext', 5);
+              });
+            }
+          }
+        });
       }
     }
   },
-  methods: {
-    submit() {
-      console.log("鏀跨瓥submit")
-    },
-    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>
 

--
Gitblit v1.8.0