|
@@ -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')
|
|
}
|
|
}
|