Browse Source

bug 修复

lilei 4 years ago
parent
commit
1aaf7261ef
1 changed files with 22 additions and 7 deletions
  1. 22 7
      src/views/dealerManagement/marketingDivisionSet/editModal.vue

+ 22 - 7
src/views/dealerManagement/marketingDivisionSet/editModal.vue

@@ -32,7 +32,8 @@
               <div class="tree-parent">
               <div class="tree-parent">
                 <span>
                 <span>
                   <a-checkbox style="width: 100%;" v-model="item.checked" @change="onChange(item,$event)">
                   <a-checkbox style="width: 100%;" v-model="item.checked" @change="onChange(item,$event)">
-                    {{ item.checked }}{{ item.name }}
+                    {{ item.name }}
+                    <!-- <i style="font-size: 12px;color: #999;font-style: normal;">(已选 {{ item.children | hasCheckChild }} 个市区)</i> -->
                   </a-checkbox>
                   </a-checkbox>
                 </span>
                 </span>
                 <span @click="expend(item)"><a-icon :title="item.isOpen==0?'展开':'收起'" :type="item.isOpen==0?'plus-square':'minus-square'" /></span>
                 <span @click="expend(item)"><a-icon :title="item.isOpen==0?'展开':'收起'" :type="item.isOpen==0?'plus-square':'minus-square'" /></span>
@@ -42,7 +43,7 @@
               <div v-show="item.isOpen==1" class="tree-child">
               <div v-show="item.isOpen==1" class="tree-child">
                 <div v-for="child in item.children" :key="child.id">
                 <div v-for="child in item.children" :key="child.id">
                   <a-checkbox v-model="child.checked" style="width: 100%;" @change="onChange(child,$event,item)">
                   <a-checkbox v-model="child.checked" style="width: 100%;" @change="onChange(child,$event,item)">
-                    {{ child.checked }}{{ child.name }}
+                    {{ child.name }}
                   </a-checkbox>
                   </a-checkbox>
                 </div>
                 </div>
               </div>
               </div>
@@ -85,6 +86,11 @@ export default {
       return (this.itemId ? '编辑' : '新增') + '分区'
       return (this.itemId ? '编辑' : '新增') + '分区'
     }
     }
   },
   },
+  filters: {
+    hasCheckChild: function (value) {
+      return value.filter(item => item.checked).length
+    }
+  },
   data () {
   data () {
     return {
     return {
       isShow: this.openModal, //  是否打开弹框
       isShow: this.openModal, //  是否打开弹框
@@ -129,13 +135,13 @@ export default {
     expend (item) {
     expend (item) {
       if (item.children && item.children.length == 0) {
       if (item.children && item.children.length == 0) {
         item.isOpen = 1
         item.isOpen = 1
-        this.getArea('city', item)
+        this.getArea('city', item, 1)
       } else {
       } else {
         item.isOpen = !item.isOpen
         item.isOpen = !item.isOpen
       }
       }
     },
     },
     //  省/市/区
     //  省/市/区
-    getArea (leve, item, isOpen) {
+    getArea (leve, item, openType) {
       let params
       let params
       if (leve == 'province') {
       if (leve == 'province') {
         params = { type: '2' }
         params = { type: '2' }
@@ -159,7 +165,7 @@ export default {
             item.children = res.data || []
             item.children = res.data || []
             item.children.map(d => {
             item.children.map(d => {
               // 编辑时回显
               // 编辑时回显
-              if (this.itemId) {
+              if (this.itemId && openType == 0) {
                 d.checked = !!this.subareaAreaList.find(o => o.areaSn == d.areaSn)
                 d.checked = !!this.subareaAreaList.find(o => o.areaSn == d.areaSn)
                 d.noSave = false
                 d.noSave = false
               } else {
               } else {
@@ -167,7 +173,13 @@ export default {
                 d.noSave = true
                 d.noSave = true
               }
               }
             })
             })
-            this.addrProvinceList = JSON.parse(JSON.stringify(this.addrProvinceList))
+
+            // 首次加载子级
+            if (openType == 1) {
+              this.addrProvinceList = JSON.parse(JSON.stringify(this.addrProvinceList))
+            } else {
+              item.isOpen = 1
+            }
           }
           }
         } else {
         } else {
           if (leve == 'province') {
           if (leve == 'province') {
@@ -248,7 +260,7 @@ export default {
         // 省
         // 省
         const pre = this.addrProvinceList.find(k => k.areaSn == item.areaSn)
         const pre = this.addrProvinceList.find(k => k.areaSn == item.areaSn)
         // 获取子级
         // 获取子级
-        this.expend(pre)
+        this.getArea('city', pre, 0)
       })
       })
     }
     }
   },
   },
@@ -261,6 +273,9 @@ export default {
     isShow (newValue, oldValue) {
     isShow (newValue, oldValue) {
       if (!newValue) {
       if (!newValue) {
         this.$emit('close')
         this.$emit('close')
+        this.form.subareaName = ''
+        this.form.subareaSn = ''
+        delete this.form.id
       } else {
       } else {
         this.getArea('province')
         this.getArea('province')
       }
       }