scorpio 2 rokov pred
rodič
commit
593a48de40

+ 48 - 58
src/components/area-picker/index.vue

@@ -2,76 +2,66 @@
   <div class="full-width">
     <div>
       <el-cascader
+        :placeholder="placeholder"
         clearable
         class="full-width"
-        v-model="value"
-        :options="dic"
+        v-model="area"
+        :options="areaDic"
+        filterable
+        @change="changeArea"
       />
     </div>
   </div>
 </template>
 <script>
 export default {
+  props: {
+    placeholder: {
+      type: String,
+      default: ''
+    }
+  },
   data() {
     return {
-      treeOption: {
-        nodeKey: 'id',
-        lazy: true,
-        addBtn: false,
-        menu: false,
-        size: 'small',
-        props: {
-          labelText: '标题',
-          label: 'title',
-          value: 'value',
-          children: 'children'
-        }
-      },
       form: {},
-      dic: [
-        {
-          value: 'guide',
-          label: 'Guide',
-          children: [
-            {
-              value: 'disciplines',
-              label: 'Disciplines',
-              children: [
-                {
-                  value: 'consistency',
-                  label: 'Consistency'
-                },
-                {
-                  value: 'feedback',
-                  label: 'Feedback'
-                },
-                {
-                  value: 'efficiency',
-                  label: 'Efficiency'
-                },
-                {
-                  value: 'controllability',
-                  label: 'Controllability'
-                }
-              ]
-            },
-            {
-              value: 'navigation',
-              label: 'Navigation',
-              children: [
-                {
-                  value: 'side nav',
-                  label: 'Side Navigation'
-                },
-                {
-                  value: 'top nav',
-                  label: 'Top Navigation'
-                }
-              ]
-            }
-          ]
+      areaDic: [],
+      area: ''
+    }
+  },
+  mounted() {
+    this.getArea()
+  },
+  methods: {
+    getArea() {
+      const tmp = localStorage.getItem('area')
+      if (tmp) {
+        this.areaDic = JSON.parse(tmp)
+        return
+      }
+      this.$api.common.region({ code: '' }).then(res => {
+        if (res.code === 200) {
+          const list = res.data.filter(ele => ele.key !== '111111')
+          this.areaDic = list.map(item => this.mapTree(item))
+          localStorage.setItem('area', JSON.stringify(this.areaDic))
         }
-      ]
+      })
+    },
+    mapTree(item) {
+      const haveChildren =
+        Array.isArray(item.children) && item.children.length > 0
+      return {
+        key: item,
+        value: item,
+        label: item.title,
+        children: haveChildren ? item.children.map(i => this.mapTree(i)) : []
+      }
+    },
+    changeArea(res) {
+      const tmps = res.map(ele => {
+        return { key: ele.key, title: ele.title }
+      })
+      console.log(this.area)
+      this.$emit('change', tmps)
     }
   }
 }

+ 3 - 2
src/components/wt-card/index.vue

@@ -37,11 +37,12 @@ export default {
   },
   methods: {
     change() {
-      if (this.btnText == '保 存') {
+      if (this.btnText === '保 存') {
         this.$emit('save')
       }
+      console.log('fff')
       this.btnText = this.btnText === '编 辑' ? '保 存' : '编 辑'
-      this.$emit('change', this.btnText === '编 辑')
+      this.$emit('edit', this.btnText === '编 辑')
     }
   }
 }

+ 0 - 1
src/views/home/component/params/params1.vue

@@ -436,7 +436,6 @@ export default {
             if (tmp) {
               this.form.dict_value = tmp.dictValue
             }
-            console.log(tmp)
           }
         })
     },

+ 37 - 6
src/views/project/componens/info1.vue

@@ -1,5 +1,5 @@
 <template>
-  <wt-card title="基础信息" :edit-btn="true" @change="change" @save="save">
+  <wt-card title="基础信息" :edit-btn="true" @edit="change" @save="save">
     <el-form class="mt-20" :disabled="disabled">
       <div class="flex flex-justify-center" v-watermark="{ text: '33' }">
         <el-form-item class="full-width flex-child-average">
@@ -25,7 +25,16 @@
         <el-form-item class="full-width flex-child-average">
           <div class="flex flex-center full-width item">
             <span class="title">地区:</span>
-            <area-picker />
+            <area-picker
+              :placeholder="
+                form.province_name +
+                '/' +
+                form.city_name +
+                '/' +
+                form.district_name
+              "
+              @change="changeArea"
+            />
           </div>
         </el-form-item>
       </div>
@@ -45,7 +54,10 @@
         <el-form-item class="full-width flex-child-average">
           <div class="flex flex-center full-width item">
             <span class="title">责任领导:</span>
-            <el-input placeholder="请输入责任领导"></el-input>
+            <el-input
+              placeholder="请输入责任领导"
+              v-model="form.responsible_leader"
+            ></el-input>
           </div>
         </el-form-item>
       </div>
@@ -53,7 +65,10 @@
         <el-form-item class="full-width flex-child-average">
           <div class="flex flex-center full-width item">
             <span class="title">联系电话:</span>
-            <el-input placeholder="请输入责任领导联系电话"></el-input>
+            <el-input
+              placeholder="请输入责任领导联系电话"
+              v-model="form.responsible_leader_phone"
+            ></el-input>
           </div>
         </el-form-item>
         <el-form-item class="full-width flex-child-average">
@@ -93,7 +108,8 @@
             <span class="title-textarea">建设规模:</span>
             <el-input
               type="textarea"
-              placeholder="请输入建设规模"
+              placeholder="请输入建设规模(250 个字以内)"
+              v-model="form.construction_scale"
               :rows="5"
             ></el-input>
           </div>
@@ -108,8 +124,10 @@
             <span class="title-textarea">建设内容:</span>
             <el-input
               type="textarea"
-              placeholder="请输入建设内容"
+              placeholder="请输入建设内容(250 个字以内)"
+              :maxlength="250"
               :rows="5"
+              v-model="form.construction_content"
             ></el-input>
           </div>
         </el-form-item>
@@ -152,9 +170,22 @@ export default {
   methods: {
     save() {
       console.log('save')
+      this.$api.project.proUpdate(this.form).then(res => {
+        if (res.code === 200) {
+          console.log(res)
+        }
+      })
     },
     change(res) {
       this.disabled = res
+    },
+    changeArea(list) {
+      this.form.province_code = list[0].key
+      this.form.province_name = list[0].title
+      this.form.city_code = list[1].key
+      this.form.city_name = list[1].title
+      this.form.district_code = list[2].key
+      this.form.district_name = list[2].title
     }
   }
 }