<template>
|
<div class="spaceBox">
|
<el-select
|
v-model="menuTopFrom.queryLayer"
|
@change="menuTreeCheck"
|
placeholder="请选择数据..."
|
filterable
|
ref="selectTree1"
|
>
|
<el-option
|
:value="menuTopFrom.queryLayer"
|
style="height: 100%"
|
>
|
<div style="height: 200px; overflow: auto">
|
<el-tree
|
:data="layerData"
|
node-key="id"
|
ref="tree"
|
@node-click="handleNodeClick"
|
highlight-current
|
:props="defaultProps"
|
>
|
</el-tree>
|
</div>
|
</el-option>
|
</el-select>
|
<!-- <el-select
|
v-model="menuTopFrom.queryLayer"
|
placeholder="请选择..."
|
>
|
<el-option
|
:value="menuTopFrom.queryLayer"
|
style="height: 100%"
|
>
|
<div style="height: 200px; overflow: auto">
|
<el-tree
|
:data="layerData"
|
:props="defaultProps"
|
:show-checkbox="true"
|
:check-on-click-node="true"
|
:check-strictly="true"
|
node-key="id"
|
@check="menuTreeCheck"
|
ref="treeForm"
|
:default-expanded-keys="[1]"
|
accordion
|
>
|
</el-tree>
|
</div>
|
<div style="margin-top: 5px">
|
<el-button
|
size="mini"
|
plain
|
@click="getCheckedNodes"
|
>确认</el-button>
|
<el-button
|
size="mini"
|
type="info"
|
plain
|
@click="resetCheckedNodes"
|
>重置</el-button>
|
</div>
|
</el-option>
|
</el-select> -->
|
<queryinfo ref="queryinfo" />
|
</div>
|
</template>
|
|
<script>
|
import queryinfo from "../../views/Tools/queryinfo.vue";
|
import { inquiry_SelectTabs, dataLib_selectTabed } from "../../api/api.js";
|
import {
|
getTreeData
|
} from "../../utils/treeData.js"
|
export default {
|
components: { queryinfo },
|
data() {
|
return {
|
menuTopFrom: {
|
queryLayer: "",
|
},
|
layerData: [
|
|
],
|
defaultProps: {
|
children: "children",
|
label: "label",
|
},
|
mapSpaceQueryLayer: null,
|
};
|
},
|
mounted() {
|
this.getAllTable();
|
},
|
methods: {
|
handleNodeClick(data) {
|
if (data.children) return;
|
this.menuTopFrom.queryLayer = data.tabDesc
|
this.$refs.selectTree1.blur();
|
this.mapSpaceQueryLayer = data.entity;
|
this.$store.state.propertiesName = data;
|
this.getCheckedNodes();
|
|
},
|
async getAllTable() {
|
// const data = await inquiry_SelectTabs();
|
const data = await dataLib_selectTabed({
|
hasGeom: "false",
|
name: null,
|
});
|
|
if (data.code != 200) {
|
this.$message.error("列表调用失败");
|
}
|
var option = data.result;
|
this.layerData = getTreeData(option)
|
// var option = data.result;
|
// this.layerData = option.filter((res) => {
|
|
// return res;
|
|
// });
|
// this.layerData = getTreeData(option)
|
// var val = data.result
|
// var std = [];
|
// val.filter((item) => {
|
// if (std.indexOf(item.bak) == -1) {
|
// std.push(item.bak);
|
// this.layerData.push(
|
// {
|
// val: item.bak,
|
// label: item.bak,
|
// children: [],
|
// }
|
// )
|
// }
|
// });
|
// for (var i in this.layerData) {
|
// var item = this.layerData[i];
|
// for (var j in val) {
|
// var res = val[j];
|
|
// if (item.val === res.bak) {
|
|
// res.label = res.tabDesc
|
// this.layerData[i].children.push(res)
|
// }
|
// }
|
// }
|
|
// for (var i in option) {
|
// // console.log(option[i].tableType)
|
// var val_Data = option[i];
|
// val_Data.id = '1' + i;
|
// val_Data.label = val_Data.tabDesc;
|
// if (option[i].ns == 'bd') {
|
// this.layerData[0].children.push(val_Data);
|
// } else {
|
// this.layerData[1].children.push(val_Data);
|
// }
|
// }
|
},
|
getCheckedNodes() {
|
this.$store.state.mapSpaceQueryLayer = this.mapSpaceQueryLayer;
|
// this.$store.state.mapPopBoolean = true;
|
this.$store.state.mapPopBoxFlag = "2";
|
this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.close();
|
this.$refs &&
|
this.$refs.queryinfo &&
|
this.$refs.queryinfo.open("属性", null, {
|
close: () => {
|
if (this.$store.state.primitLayer != null) {
|
sgworld.Creator.DeleteObject(this.$store.state.primitLayer);
|
this.$store.state.primitLayer = null;
|
}
|
|
if (window.Viewer.scene.primitives.length != 0) {
|
window.Viewer.scene.primitives.removeAll();
|
}
|
},
|
});
|
},
|
resetCheckedNodes() {
|
this.menuTopFrom.queryLayer = null;
|
this.$refs.treeForm.setCheckedKeys([]);
|
},
|
menuTreeCheck(value) {
|
this.mapSpaceQueryLayer = value;
|
this.layerData.forEach(item => {
|
if (this.menuTopFrom.queryLayer == item.entity) {
|
this.$store.state.propertiesName = item;
|
}
|
})
|
this.getCheckedNodes();
|
},
|
},
|
};
|
</script>
|
|
<style scoped lang="less">
|
.spaceBox {
|
width: 98%;
|
height: 100%;
|
margin: 0;
|
padding: 0;
|
overflow: hidden;
|
}
|
</style>
|
<style lang="less" scoped></style>
|