| | |
| | | <template> |
| | | <div class="spaceBox"> |
| | | <el-select v-model="menuTopFrom.queryLayer" placeholder="请选择..."> |
| | | <el-select |
| | | v-model="menuTopFrom.queryLayer" |
| | | @change="menuTreeCheck" |
| | | placeholder="请选择..." |
| | | filterable |
| | | ref="selectTree1" |
| | | > |
| | | <el-option |
| | | :value="menuTopFrom.queryLayer" |
| | | style="overflow: auto; height: 100%" |
| | | style="height: 100%" |
| | | > |
| | | <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 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 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 { inquiry_SelectTabs } from '../../api/api.js'; |
| | | 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: '', |
| | | queryLayer: "", |
| | | }, |
| | | layerData: [ |
| | | { |
| | | id: 1, |
| | | tabDesc: '基础数据', |
| | | value: 'BD', |
| | | children: [], |
| | | }, |
| | | { |
| | | id: 2, |
| | | tabDesc: '业务数据', |
| | | value: 'BS', |
| | | children: [], |
| | | }, |
| | | |
| | | ], |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'tabDesc', |
| | | children: "children", |
| | | label: "label", |
| | | }, |
| | | mapSpaceQueryLayer: null, |
| | | }; |
| | |
| | | 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 inquiry_SelectTabs(); |
| | | const data = await dataLib_selectTabed({ |
| | | hasGeom: "false", |
| | | name: null, |
| | | }); |
| | | |
| | | if (data.code != 200) { |
| | | this.$message.error('列表调用失败'); |
| | | this.$message.error("列表调用失败"); |
| | | } |
| | | var option = data.result; |
| | | this.layerData = getTreeData(option) |
| | | // var option = data.result; |
| | | // this.layerData = option.filter((res) => { |
| | | |
| | | for (var i in option) { |
| | | var val_Data = option[i]; |
| | | val_Data.id = '1' + i; |
| | | if (option[i].ns == 'bd') { |
| | | this.layerData[0].children.push(val_Data); |
| | | } else { |
| | | this.layerData[1].children.push(val_Data); |
| | | } |
| | | } |
| | | // 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.$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(node, list) { |
| | | if (list.checkedNodes.length > 0) { |
| | | this.menuTopFrom.queryLayer = node.tabDesc; |
| | | this.mapSpaceQueryLayer = node.entity; |
| | | if (list.checkedKeys.length == 2) { |
| | | //单选实现 |
| | | this.$refs.treeForm.setCheckedKeys([node.id]); |
| | | menuTreeCheck(value) { |
| | | this.mapSpaceQueryLayer = value; |
| | | this.layerData.forEach(item => { |
| | | if (this.menuTopFrom.queryLayer == item.entity) { |
| | | this.$store.state.propertiesName = item; |
| | | } |
| | | } else { |
| | | this.menuid = null; |
| | | } |
| | | }) |
| | | this.getCheckedNodes(); |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | overflow: hidden; |
| | | } |
| | | </style> |
| | | <style lang="less"> |
| | | .el-tree .el-tree-node .is-leaf + .el-checkbox .el-checkbox__inner { |
| | | display: inline-block; |
| | | } |
| | | .el-tree .el-tree-node .el-checkbox .el-checkbox__inner { |
| | | display: none; |
| | | } |
| | | </style> |
| | | <style lang="less" scoped></style> |