scorpio 2 years ago
parent
commit
51a4ad1b47
1 changed files with 189 additions and 197 deletions
  1. 189 197
      src/views/home/component/params/params1.vue

+ 189 - 197
src/views/home/component/params/params1.vue

@@ -3,35 +3,35 @@
     <div class="flex flex-center full-width flex-justify-between mt-10 mb-10">
       <span class="full-width text-left bold">{{ info.dictValue }}</span>
       <el-button
-          v-if="detail.can_update"
-          type="primary"
-          @click="disabled = !disabled"
-      >{{ disabled ? '编 辑' : '保 存' }}
+        v-if="detail.can_update"
+        type="primary"
+        @click="disabled = !disabled"
+        >{{ disabled ? '编 辑' : '保 存' }}
       </el-button>
     </div>
     <div class="mt-10" style="width: 90%">
       <el-form
-          v-if="form"
-          :model="form"
-          label-width="240px"
-          :disabled="disabled"
-          label-position="left"
-          class="form-content flex flex-col"
+        v-if="form"
+        :model="form"
+        label-width="240px"
+        :disabled="disabled"
+        label-position="left"
+        class="form-content flex flex-col"
       >
         <div class="flex flex-justify-start">
           <el-form-item label="项目名称" style="flex: 1">
-            <el-input v-model="form.name" placeholder="项目名称"/>
+            <el-input v-model="form.name" placeholder="项目名称" />
           </el-form-item>
           <el-form-item
-              label="总投资金额(万元)"
-              style="flex: 1"
-              class="ml-20 full-width"
+            label="总投资金额(万元)"
+            style="flex: 1"
+            class="ml-20 full-width"
           >
             <div class="full-width">
               <el-input
-                  v-model="form.total_amount"
-                  placeholder="总投资金额(万元)"
-                  class="full-width"
+                v-model="form.total_amount"
+                placeholder="总投资金额(万元)"
+                class="full-width"
               />
             </div>
           </el-form-item>
@@ -40,37 +40,25 @@
           <el-form-item label="县(区)" style="flex: 1">
             <div class="full-width">
               <avue-input-tree
-                  v-model="form.county"
-                  class="full-width"
-                  placeholder="请选择县(区)"
-                  :dic="areaDic"
+                v-model="form.county"
+                class="full-width"
+                placeholder="请选择县(区)"
+                :dic="areaDic"
               ></avue-input-tree>
             </div>
           </el-form-item>
-          <el-form-item label="责任单位" style="flex: 1" class="ml-20" v-if="detail.tags === 1">
+          <el-form-item label="责任单位" style="flex: 1" class="ml-20">
             <div class="full-width">
               <avue-input-tree
-                  default-expand-all
-                  v-model="form.responsible_unit"
-                  placeholder="责任单位"
-                  :dic="deptDic"
-                  class="full-width"
-                  v-if="!disabled"
+                default-expand-all
+                v-model="form.responsible_unit"
+                placeholder="责任单位"
+                :dic="detail.tags === 1 ? deptDic : compDic"
+                class="full-width"
+                v-if="!disabled"
+                @change="handlerReponsible"
               ></avue-input-tree>
-              <el-input v-model="form.unit_name" v-else/>
-            </div>
-          </el-form-item>
-          <el-form-item label="责任单位" style="flex: 1" class="ml-20" v-else>
-            <div class="full-width">
-              <avue-input-tree
-                  default-expand-all
-                  v-model="form.responsible_unit"
-                  placeholder="责任单位"
-                  :dic="compDic"
-                  class="full-width"
-                  v-if="!disabled"
-              ></avue-input-tree>
-              <el-input v-model="form.unit_name" v-else/>
+              <el-input v-model="form.unit_name" v-else />
             </div>
           </el-form-item>
         </div>
@@ -79,98 +67,101 @@
           <el-form-item label="主管单位" style="flex: 1">
             <div class="full-width">
               <avue-input-tree
-                  default-expand-all
-                  v-model="form.competent_unit"
-                  placeholder="主管单位"
-                  :dic="deptDic"
-                  class="full-width"
+                default-expand-all
+                v-model="form.competent_unit"
+                placeholder="主管单位"
+                :dic="deptDic"
+                class="full-width"
+                v-if="!disabled"
+                @change="handlerCompetent"
               ></avue-input-tree>
+              <el-input v-model="form.competent_unit_name" v-else />
             </div>
           </el-form-item>
           <el-form-item label="责任领导" style="flex: 1" class="ml-20">
             <el-input
-                v-model="form.responsible_leader"
-                placeholder="责任领导"
+              v-model="form.responsible_leader"
+              placeholder="责任领导"
             />
           </el-form-item>
         </div>
         <div class="full-width flex">
           <el-form-item label="项目负责人及联系电话" style="flex: 1">
             <el-input
-                v-model="form.construction_unit"
-                placeholder="项目负责人及联系电话"
+              v-model="form.construction_unit"
+              placeholder="项目负责人及联系电话"
             />
           </el-form-item>
         </div>
 
         <div class="full-width flex">
           <el-form-item
-              label="行业分类"
-              class="flex-child-average"
-              style="flex: 1"
+            label="行业分类"
+            class="flex-child-average"
+            style="flex: 1"
           >
-            <el-input v-model="form.industry"/>
+            <el-input v-model="form.industry" />
           </el-form-item>
           <el-form-item label="建设起止时间" class="flex-child-average ml-20">
             <el-input
-                v-if="disabled"
-                v-model="form.construction_start_and_end"
+              v-if="disabled"
+              v-model="form.construction_start_and_end"
             />
             <el-date-picker
-                v-else
-                v-model="form.construction_start_and_end_new"
-                @change="changeDate"
-                type="daterange"
-                range-separator="至"
-                start-placeholder="开始日期"
-                end-placeholder="截止日期"
-                style="width: 100%"
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
+              v-else
+              v-model="form.construction_start_and_end_new"
+              @change="changeDate"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="截止日期"
+              style="width: 100%"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
             />
           </el-form-item>
         </div>
 
         <div class="full-width flex" v-if="detail.tags === 2">
           <el-form-item
-              label="备案号"
-              class="flex-child-average"
-              style="flex: 1"
+            label="备案号"
+            class="flex-child-average"
+            style="flex: 1"
           >
-            <el-input v-model="form.record_id"/>
+            <el-input v-model="form.record_id" />
           </el-form-item>
           <el-form-item label="备案时间" class="flex-child-average ml-20">
-            <el-input v-if="disabled" v-model="form.record_date"/>
+            <el-input v-if="disabled" v-model="form.record_date" />
             <el-date-picker
-                v-else
-                v-model="form.record_date"
-                @change="changeDate"
-                placeholder="备案时间"
-                style="width: 100%"
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
+              v-else
+              v-model="form.record_date"
+              @change="changeDate"
+              placeholder="备案时间"
+              style="width: 100%"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
             />
           </el-form-item>
         </div>
 
         <div class="full-width flex" v-if="detail.tags === 1">
           <el-form-item
-              label="可研批复号"
-              class="flex-child-average"
-              style="flex: 1"
+            label="可研批复号"
+            class="flex-child-average"
+            style="flex: 1"
           >
-            <el-input v-model="form.available_approval_id"/>
+            <el-input v-model="form.available_approval_id" />
           </el-form-item>
           <el-form-item label="可研批复时间" class="flex-child-average ml-20">
-            <el-input v-if="disabled" v-model="form.available_approval_date"/>
+            <el-input v-if="disabled" v-model="form.available_approval_date" />
             <el-date-picker
-                v-else
-                v-model="form.available_approval_date"
-                @change="changeDate"
-                placeholder="可研批复时间"
-                style="width: 100%"
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
+              v-else
+              v-model="form.available_approval_date"
+              @change="changeDate"
+              placeholder="可研批复时间"
+              style="width: 100%"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
             />
           </el-form-item>
         </div>
@@ -178,66 +169,66 @@
         <div class="full-width flex">
           <el-form-item label="计划开工时间" style="flex: 1" class="full-width">
             <el-date-picker
-                v-model="form.plan_commencement_time"
-                type="date"
-                style="width: 100%"
-                placeholder="计划开工时间"
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
+              v-model="form.plan_commencement_time"
+              type="date"
+              style="width: 100%"
+              placeholder="计划开工时间"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
             />
           </el-form-item>
           <el-form-item label="实际开工时间" style="flex: 1" class="ml-20">
             <el-date-picker
-                v-model="form.start_time"
-                type="date"
-                style="width: 100%"
-                placeholder="实际开工时间"
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
+              v-model="form.start_time"
+              type="date"
+              style="width: 100%"
+              placeholder="实际开工时间"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
             />
           </el-form-item>
         </div>
         <div class="full-width flex">
           <el-form-item label="计划入库时间" style="flex: 1">
             <el-date-picker
-                v-model="form.plan_storage_time"
-                type="date"
-                style="width: 100%"
-                placeholder="计划入库时间"
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
+              v-model="form.plan_storage_time"
+              type="date"
+              style="width: 100%"
+              placeholder="计划入库时间"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
             />
           </el-form-item>
           <el-form-item label="实际入库时间" style="flex: 1" class="ml-20">
             <el-date-picker
-                v-model="form.storage_time"
-                type="date"
-                style="width: 100%"
-                placeholder="实际入库时间"
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
+              v-model="form.storage_time"
+              type="date"
+              style="width: 100%"
+              placeholder="实际入库时间"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
             />
           </el-form-item>
         </div>
         <div class="full-width flex">
           <el-form-item label="计划竣工时间" style="flex: 1">
             <el-date-picker
-                v-model="form.plan_completion_time"
-                type="date"
-                style="width: 100%"
-                placeholder="计划竣工时间"
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
+              v-model="form.plan_completion_time"
+              type="date"
+              style="width: 100%"
+              placeholder="计划竣工时间"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
             />
           </el-form-item>
           <el-form-item label="实际竣工时间" style="flex: 1" class="ml-20">
             <el-date-picker
-                v-model="form.completion_time"
-                type="date"
-                style="width: 100%"
-                placeholder="实际竣工时间"
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
+              v-model="form.completion_time"
+              type="date"
+              style="width: 100%"
+              placeholder="实际竣工时间"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
             />
           </el-form-item>
         </div>
@@ -245,15 +236,15 @@
           <el-form-item label="是否入库" style="flex: 1">
             <div class="full-width">
               <el-select
-                  v-model="form.is_storage"
-                  placeholder="是否入库"
-                  class="full-width"
+                v-model="form.is_storage"
+                placeholder="是否入库"
+                class="full-width"
               >
                 <el-option
-                    v-for="item in yesOrNo"
-                    :key="item.label"
-                    :label="item.label"
-                    :value="item.value"
+                  v-for="item in yesOrNo"
+                  :key="item.label"
+                  :label="item.label"
+                  :value="item.value"
                 />
               </el-select>
             </div>
@@ -261,15 +252,15 @@
           <el-form-item label="是否开工" style="flex: 1" class="ml-20">
             <div class="full-width">
               <el-select
-                  v-model="form.is_start"
-                  placeholder="是否开工"
-                  class="full-width"
+                v-model="form.is_start"
+                placeholder="是否开工"
+                class="full-width"
               >
                 <el-option
-                    v-for="item in yesOrNo"
-                    :key="item.label"
-                    :label="item.label"
-                    :value="item.value"
+                  v-for="item in yesOrNo"
+                  :key="item.label"
+                  :label="item.label"
+                  :value="item.value"
                 />
               </el-select>
             </div>
@@ -279,35 +270,35 @@
           <el-form-item label="是否纳入省重点项目" style="flex: 1">
             <div class="full-width">
               <el-select
-                  v-model="form.is_provincial_key"
-                  placeholder="是否纳入省重点项目"
-                  class="full-width"
+                v-model="form.is_provincial_key"
+                placeholder="是否纳入省重点项目"
+                class="full-width"
               >
                 <el-option
-                    v-for="item in yesOrNo"
-                    :key="item.label"
-                    :label="item.label"
-                    :value="item.value"
+                  v-for="item in yesOrNo"
+                  :key="item.label"
+                  :label="item.label"
+                  :value="item.value"
                 />
               </el-select>
             </div>
           </el-form-item>
           <el-form-item
-              label="是否纳入省集中开工项目"
-              style="flex: 1"
-              class="ml-20"
+            label="是否纳入省集中开工项目"
+            style="flex: 1"
+            class="ml-20"
           >
             <div class="full-width">
               <el-select
-                  v-model="form.is_provincial_level_construction"
-                  placeholder="是否纳入省集中开工项目"
-                  class="full-width"
+                v-model="form.is_provincial_level_construction"
+                placeholder="是否纳入省集中开工项目"
+                class="full-width"
               >
                 <el-option
-                    v-for="item in yesOrNo"
-                    :key="item.label"
-                    :label="item.label"
-                    :value="item.value"
+                  v-for="item in yesOrNo"
+                  :key="item.label"
+                  :label="item.label"
+                  :value="item.value"
                 />
               </el-select>
             </div>
@@ -315,16 +306,16 @@
         </div>
         <div class="full-width">
           <el-form-item label="项目建设详细地址">
-            <el-input v-model="form.address" placeholder="项目建设详细地址"/>
+            <el-input v-model="form.address" placeholder="项目建设详细地址" />
           </el-form-item>
         </div>
         <div class="full-width">
           <el-form-item label="主要建设内容及规模">
             <el-input
-                v-model="form.construction_content"
-                type="textarea"
-                placeholder="主要建设内容及规模"
-                :rows="4"
+              v-model="form.construction_content"
+              type="textarea"
+              placeholder="主要建设内容及规模"
+              :rows="4"
             />
           </el-form-item>
         </div>
@@ -334,7 +325,7 @@
 </template>
 
 <script>
-import {useStore} from '@/store/user.js'
+import { useStore } from '@/store/user.js'
 
 export default {
   name: 'params1',
@@ -350,7 +341,7 @@ export default {
   },
   setup() {
     const user = useStore()
-    return {user}
+    return { user }
   },
   watch: {
     detail: {
@@ -361,8 +352,8 @@ export default {
         if (this.form.name) {
           const xian = this.form.name.indexOf('县')
           this.form.name = this.dev
-              ? this.form.name.substring(xian + 1)
-              : this.form.name
+            ? this.form.name.substring(xian + 1)
+            : this.form.name
         }
       },
       immediate: true
@@ -382,8 +373,8 @@ export default {
       form: {},
       areaDic: [],
       yesOrNo: [
-        {label: '否', value: 0},
-        {label: '是', value: 1}
+        { label: '否', value: 0 },
+        { label: '是', value: 1 }
       ],
       deptDic: [],
       compDic: [],
@@ -404,49 +395,45 @@ export default {
       }
       this.deptDic.push(local)
       this.$api.system
-          .getDeptLazy({parentId: this.user.info.deptId, deptCategory: 3})
-          .then(res => {
-            if (res.code === 200) {
-              const tmp = res.data.map(ele => {
-                const item = {label: ele.deptName, value: ele.id}
-                return item
-              })
-              this.deptDic = this.deptDic.concat(tmp)
-            }
-          })
+        .getDeptLazy({ parentId: this.user.info.deptId, deptCategory: 3 })
+        .then(res => {
+          if (res.code === 200) {
+            const tmp = res.data.map(ele => {
+              const item = { label: ele.deptName, value: ele.id }
+              return item
+            })
+            this.deptDic = this.deptDic.concat(tmp)
+          }
+        })
     },
     getCompList() {
-      this.$api.system
-          .getDeptLazy({deptCategory: 4})
-          .then(res => {
-            if (res.code === 200) {
-              const tmp = res.data.map(ele => {
-                const item = {label: ele.deptName, value: ele.id}
-                return item
-              })
-              this.compDic = this.compDic.concat(tmp)
-            }
+      this.$api.system.getDeptLazy({ deptCategory: 4 }).then(res => {
+        if (res.code === 200) {
+          const tmp = res.data.map(ele => {
+            const item = { label: ele.deptName, value: ele.id }
+            return item
           })
+          this.compDic = this.compDic.concat(tmp)
+        }
+      })
     },
     areaList() {
-      this.$api.common.region({code: ''}).then(res => {
+      this.$api.common.region({ code: '' }).then(res => {
         if (res.code === 200) {
           this.areaDic = res.data.map(item => this.mapTree(item))
         }
       })
-    }
-    ,
+    },
     mapTree(item) {
       const haveChildren =
-          Array.isArray(item.children) && item.children.length > 0
+        Array.isArray(item.children) && item.children.length > 0
       return {
         key: item.id,
         value: item.id,
         label: item.title,
         children: haveChildren ? item.children.map(i => this.mapTree(i)) : []
       }
-    }
-    ,
+    },
     updata() {
       this.form.projectId = this.detail.id
       this.form.total_amount = Number.parseFloat(this.detail.total_amount)
@@ -459,14 +446,19 @@ export default {
           this.$message.error(res.msg)
         }
       })
-    }
-    ,
+    },
     changeDate(res) {
       if (res) {
         this.form.construction_start_and_end = res.join(',')
       } else {
         this.form.construction_start_and_end = ''
       }
+    },
+    handlerReponsible(res) {
+      this.form.unit_name = res.item.label
+    },
+    handlerCompetent(res) {
+      this.form.competent_unit_name = res.item.label
     }
   }
 }