소스 검색

bug 修复

lilei 4 년 전
부모
커밋
34f5e88f4d
1개의 변경된 파일16개의 추가작업 그리고 2개의 파일을 삭제
  1. 16 2
      src/views/dealerManagement/marketingDivisionSet/editModal.vue

+ 16 - 2
src/views/dealerManagement/marketingDivisionSet/editModal.vue

@@ -23,15 +23,16 @@
             id="marketingDivisionSetEdit-subareaName"
             :maxLength="30"
             v-model="form.subareaName"
+            @change="filterEmpty"
             placeholder="请输入分区名称(最多30个字符)"
             allowClear />
         </a-form-model-item>
         <a-form-model-item label="省份/市">
-          <div class="tree-node">
+          <div class="tree-node" id="treeNode">
             <div class="tree-box" v-for="item in addrProvinceList" :key="item.id">
               <div class="tree-parent">
                 <span>
-                  <a-checkbox style="width: 100%;" v-model="item.checked" @change="onChange(item,$event)">
+                  <a-checkbox style="width: 100%;" :indeterminate="item.indeterminate" v-model="item.checked" @change="onChange(item,$event)">
                     {{ item.name }}
                     <!-- <i style="font-size: 12px;color: #999;font-style: normal;">(已选 {{ item.children | hasCheckChild }} 个市区)</i> -->
                   </a-checkbox>
@@ -111,6 +112,13 @@ export default {
     }
   },
   methods: {
+    filterEmpty () {
+      let str = this.form.subareaName
+      str = str.replace(/\ +/g, '')
+      str = str.replace(/[ ]/g, '')
+      str = str.replace(/[\r\n]/g, '')
+      this.form.subareaName = str
+    },
     onChange (item, e, parent) {
       console.log(item, `checked = ${e.target.checked}`)
       item.checked = e.target.checked
@@ -120,6 +128,7 @@ export default {
         item.children && item.children.map(d => {
           d.checked = item.checked
         })
+        item.indeterminate = false
       }
       // 子级
       if (item.type == 3) {
@@ -128,6 +137,7 @@ export default {
         // 是否全选
         parent.checked = hasCheckd.length == parent.children.length
         parent.children.map(d => d.noSave = parent.checked)
+        parent.indeterminate = !parent.checked
       }
       this.addrProvinceList = JSON.parse(JSON.stringify(this.addrProvinceList))
     },
@@ -156,11 +166,13 @@ export default {
               item.noSave = true
               item.checked = false
               item.children = []
+              item.indeterminate = false
             })
             // 编辑时获取已选数据
             if (this.itemId) {
               this.getChecked()
             }
+            document.getElementById('treeNode').scrollTop = 0
           } else if (leve == 'city') {
             item.children = res.data || []
             item.children.map(d => {
@@ -179,6 +191,7 @@ export default {
               this.addrProvinceList = JSON.parse(JSON.stringify(this.addrProvinceList))
             } else {
               item.isOpen = 1
+              item.indeterminate = true
             }
           }
         } else {
@@ -252,6 +265,7 @@ export default {
       this.addrProvinceList.map(item => {
         item.checked = !!this.subareaAreaList.find(d => d.areaSn == item.areaSn)
         item.noSave = false
+        item.indeterminate = false
       })
       // 市回显
       const hasCity = this.nowData.subareaAreaList.filter(item => item.citySubareaAreaList && item.citySubareaAreaList.length)