|
@@ -1,31 +1,34 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <el-dialog :title="title" center width="70%" @close="agencymng.isClose=true;" :visible.sync="agencymngShow"
|
|
|
|
|
- :destroy-on-close="true" :modal-append-to-body="true" :append-to-body="true">
|
|
|
|
|
- <div style="margin-top:-15px;padding-bottom:20px;display:flex;cursor: pointer">
|
|
|
|
|
- <span style="font-size:14px">管理:</span>
|
|
|
|
|
- <el-breadcrumb separator-class="el-icon-arrow-right">
|
|
|
|
|
- <el-breadcrumb-item v-for="(item,index) in breadcrumbList" :key="index">
|
|
|
|
|
- <span @click="breadcrumbClick(item,index)"
|
|
|
|
|
- style="color:#3b8ff4;font-size:16px;cursor: pointer">{{item.label}}</span>
|
|
|
|
|
- </el-breadcrumb-item>
|
|
|
|
|
- </el-breadcrumb>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="full">
|
|
|
|
|
- <el-row :gutter="0">
|
|
|
|
|
- <el-col :span="4">
|
|
|
|
|
- <tree ref="tree" @nodeClick="nodeClick" v-if="$isNotEmpty(agencymng.agencyId)&&!this.agencymng.isClose">
|
|
|
|
|
- </tree>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="20">
|
|
|
|
|
- <residential v-if="listShow(0)"></residential>
|
|
|
|
|
- <building v-if="listShow(1)"></building>
|
|
|
|
|
- <unit v-if="listShow(2)"></unit>
|
|
|
|
|
- <floor v-if="listShow(3)"></floor>
|
|
|
|
|
- <room ref="room" v-show="agencymng.level==4||agencymng.level==5"></room>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- </div>
|
|
|
|
|
- </el-dialog>
|
|
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <el-dialog :title="title" center width="70%" @close="agencymng.isClose=true;" :visible.sync="agencymngShow"
|
|
|
|
|
+ :destroy-on-close="true" :modal-append-to-body="true" :append-to-body="true">
|
|
|
|
|
+ <div @click="hideMenu" style="margin-top:-15px;padding-bottom:20px;display:flex;cursor: pointer">
|
|
|
|
|
+ <span style="font-size:14px">管理:</span>
|
|
|
|
|
+ <el-breadcrumb separator-class="el-icon-arrow-right">
|
|
|
|
|
+ <el-breadcrumb-item v-for="(item,index) in breadcrumbList" :key="index">
|
|
|
|
|
+ <span @click.stop="breadcrumbClick(item,index)"
|
|
|
|
|
+ style="color:#3b8ff4;font-size:16px;cursor: pointer">{{item.label}}</span>
|
|
|
|
|
+ </el-breadcrumb-item>
|
|
|
|
|
+ </el-breadcrumb>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="full" @click="hideMenu">
|
|
|
|
|
+ <el-row :gutter="0">
|
|
|
|
|
+ <el-col :span="4">
|
|
|
|
|
+ <tree ref="tree" @nodeClick="nodeClick"
|
|
|
|
|
+ v-if="$isNotEmpty(agencymng.agencyId)&&!this.agencymng.isClose&&!isReload">
|
|
|
|
|
+ </tree>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="20">
|
|
|
|
|
+ <residential ref="residential" v-show="listShow(0)"></residential>
|
|
|
|
|
+ <building ref="building" v-show="listShow(1)"></building>
|
|
|
|
|
+ <unit ref="unit" v-show="listShow(2)"></unit>
|
|
|
|
|
+ <floor ref="floor" v-show="listShow(3)"></floor>
|
|
|
|
|
+ <room ref="room" v-show="agencymng.level==4||agencymng.level==5"></room>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-dialog>
|
|
|
|
|
+ </div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
@@ -54,6 +57,10 @@
|
|
|
},
|
|
},
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
|
|
+ isReload: false,
|
|
|
|
|
+
|
|
|
|
|
+ parentNode: {},
|
|
|
|
|
+
|
|
|
breadcrumbList: [],
|
|
breadcrumbList: [],
|
|
|
agencymng: {
|
|
agencymng: {
|
|
|
isClose: false,
|
|
isClose: false,
|
|
@@ -81,12 +88,17 @@
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- destroyed() {
|
|
|
|
|
- console.log("我已经摧毁了");
|
|
|
|
|
- },
|
|
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ reload() {
|
|
|
|
|
+ this.isReload = true
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.isReload = false
|
|
|
|
|
+ }, 20)
|
|
|
|
|
+ },
|
|
|
|
|
+ hideMenu() {
|
|
|
|
|
+ this.$refs.tree.hideMenu()
|
|
|
|
|
+ },
|
|
|
breadcrumbClick(item, index) {
|
|
breadcrumbClick(item, index) {
|
|
|
- console.log(item, "breadcrumbClick");
|
|
|
|
|
let list = this.breadcrumbList.reverse()
|
|
let list = this.breadcrumbList.reverse()
|
|
|
list.splice(0, list.length - index - 1)
|
|
list.splice(0, list.length - index - 1)
|
|
|
this.breadcrumbList = list.reverse()
|
|
this.breadcrumbList = list.reverse()
|
|
@@ -146,7 +158,8 @@
|
|
|
this.updateAgencymng(level, id)
|
|
this.updateAgencymng(level, id)
|
|
|
},
|
|
},
|
|
|
showDialog(item) {
|
|
showDialog(item) {
|
|
|
- this.agencymng.isClose=false
|
|
|
|
|
|
|
+ this.parentNode = {}
|
|
|
|
|
+ this.agencymng.isClose = false
|
|
|
this.breadcrumbList = []
|
|
this.breadcrumbList = []
|
|
|
this.agencymngShow = true
|
|
this.agencymngShow = true
|
|
|
this.title = item.name
|
|
this.title = item.name
|
|
@@ -161,6 +174,110 @@
|
|
|
level: 0
|
|
level: 0
|
|
|
}
|
|
}
|
|
|
this.breadcrumbList.unshift(obj)
|
|
this.breadcrumbList.unshift(obj)
|
|
|
|
|
+ },
|
|
|
|
|
+ //右键增删改查
|
|
|
|
|
+ menuClick(evt) {
|
|
|
|
|
+ let data = evt.data
|
|
|
|
|
+ let node = evt.node
|
|
|
|
|
+ this.parentNode = node
|
|
|
|
|
+ let index = evt.index
|
|
|
|
|
+ let level = node.level
|
|
|
|
|
+ let refName = this.getRefName(level, index)
|
|
|
|
|
+ switch (index) {
|
|
|
|
|
+ case 0:
|
|
|
|
|
+ this.$refs[refName].showDetail(data)
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 1:
|
|
|
|
|
+ this.$refs[refName].showAdd(data, node)
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 2:
|
|
|
|
|
+ this.$refs[refName].showEdit(data)
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 3:
|
|
|
|
|
+ this.clear(refName, data, level)
|
|
|
|
|
+ break;
|
|
|
|
|
+ default:
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ clear(refName, data, level) {
|
|
|
|
|
+ let content = `确定清除【${data.name}】?`
|
|
|
|
|
+ switch (level) {
|
|
|
|
|
+ case 1:
|
|
|
|
|
+ content = content + `及其所有子节点:【楼栋/单元/楼层/房间】,操作成功后数据不可恢复!`
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 2:
|
|
|
|
|
+ content = content + `及其所有子节点:【单元/楼层/房间】,操作成功后数据不可恢复!`
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 3:
|
|
|
|
|
+ content = content + `及其所有子节点:【楼层/房间】,操作成功后数据不可恢复!`
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 4:
|
|
|
|
|
+ content = content + `及其所有子节点:【房间】,操作成功后数据不可恢复!`
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 5:
|
|
|
|
|
+ content = content + '操作成功后数据不可恢复!'
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ this.$confirm(content, {
|
|
|
|
|
+ confirmButtonText: "确定",
|
|
|
|
|
+ cancelButtonText: "取消",
|
|
|
|
|
+ type: "warning"
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(async () => {
|
|
|
|
|
+ let flag = await this.$refs[refName].delConfirm(data.id)
|
|
|
|
|
+ return flag;
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ this.reload()
|
|
|
|
|
+ this.isReload = true
|
|
|
|
|
+ // this.$refs.tree.remove(data)
|
|
|
|
|
+ this.$message({
|
|
|
|
|
+ type: "success",
|
|
|
|
|
+ message: "清除成功!"
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ getRefName(level, index) {
|
|
|
|
|
+ let refName;
|
|
|
|
|
+ switch (level) {
|
|
|
|
|
+ case 1:
|
|
|
|
|
+ if (index == 1) {
|
|
|
|
|
+ //新增楼栋
|
|
|
|
|
+ refName = 'building'
|
|
|
|
|
+ } else {
|
|
|
|
|
+ refName = 'residential'
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 2:
|
|
|
|
|
+ if (index == 1) {
|
|
|
|
|
+ //新增单元
|
|
|
|
|
+ refName = 'unit'
|
|
|
|
|
+ } else {
|
|
|
|
|
+ refName = 'building'
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 3:
|
|
|
|
|
+ if (index == 1) {
|
|
|
|
|
+ //新增楼层
|
|
|
|
|
+ refName = 'floor'
|
|
|
|
|
+ } else {
|
|
|
|
|
+ refName = 'unit'
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 4:
|
|
|
|
|
+ if (index == 1) {
|
|
|
|
|
+ //新增房间
|
|
|
|
|
+ refName = 'room'
|
|
|
|
|
+ } else {
|
|
|
|
|
+ refName = 'floor'
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 5:
|
|
|
|
|
+ refName = 'room'
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ return refName
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|