绑定区域

master
xy 1 year ago
parent ebea67e841
commit 19967dd775

@ -19,7 +19,7 @@
</div>
<div style="overflow: auto;" :style="{height:height+'px'}">
<el-scrollbar style="flex: 1">
<el-tabs tab-position="left" v-model="activeUser" @tab-click="getAdminAreas(),getAdminTypes(),checkNewTreeNodes()">
<el-tabs tab-position="left" v-model="activeUser" @tab-click="switchTab">
<el-tab-pane v-for="item in users" :label="item.name" :name="String(item.id)"></el-tab-pane>
</el-tabs>
</el-scrollbar>
@ -61,6 +61,7 @@
<h4 style="padding: 16px 0;">区域权限</h4>
<el-tree :data="list"
:key="newElTreeTag"
ref="newElTree"
node-key="code"
lazy
@ -113,28 +114,43 @@ export default {
originalArea:[],
originalType:[],
list:[],
newElTreeTag: 0,
}
},
methods: {
async loadNode (node, resolve) {
const list = await this.getList(node?.data?.code || 0)
const list = await this.getList(node?.data?.code || 0,node?.data?.level || 0)
resolve(list)
},
checkNewTreeNodes () {
switchTab () {
++this.newElTreeTag;
this.getAdminAreas();
this.getAdminTypes();
this.checkNewTreeNodes();
},
checkNewTreeNodes (level = 0) {
this.$nextTick(() => {
this.$refs['newElTree'].setCheckedKeys([])
if (level === 0) {
this.$refs['newElTree'].setCheckedKeys([])
}
let user = this.users.find(i => i.id == this.activeUser)
if (user && user.village) {
this.$refs['newElTree'].setCheckedKeys(user.village.map(i => Number(i.village_code)))
let village = new Map()
user.village.filter(i => i.level === level+1).forEach(item => {
village.set(item.village_code,item)
})
this.$refs['newElTree'].setCheckedKeys([...village.values()].map(i => Number(i.village_code)))
}
})
},
async getList(pcode = 0){
async getList(pcode = 0,level = 0){
const res = await getVillages({ pcode });
this.checkNewTreeNodes()
this.checkNewTreeNodes(level)
if (pcode === 0) {
this.list = res.list
return []
@ -257,6 +273,7 @@ export default {
this.$message.warning("用户不存在")
return
}
delete submitUser.village
submitUser.village_code = this.$refs['newElTree']?.getCheckedNodes()?.filter(i => i.level === 5)?.map(i => i.code)?.toString()
Promise.all([...areaPromiseAll,...typePromiseAll,save(submitUser)]).then(res => {
this.getAdminTypes()

Loading…
Cancel
Save