|
|
|
|
@ -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()
|
|
|
|
|
|