|
@@ -23,18 +23,16 @@
|
|
|
|
|
|
<template>
|
|
|
<div class="jt-layer">
|
|
|
- <el-tree :data="treeData" :default-expanded-keys="expandedKeys" :default-checked-keys="checkedkeys"
|
|
|
- node-key="id" class="tree-line" :expand-on-click-node="false" ref="treeRef"
|
|
|
- @check-change="handleCheckChange" @node-click="handleClick">
|
|
|
+ <!-- :default-checked-keys="checkedkeys" 默认勾选的节点的 key 的数组-->
|
|
|
+ <!-- :default-expanded-keys="expandedKeys" 默认展开的节点的 key 的数组-->
|
|
|
+ <!-- @node-click 节点单击事件 -->
|
|
|
+ <el-tree :data="treeData" :default-expanded-keys="expandedKeys" :default-checked-keys="checkedkeys" node-key="id" class="tree-line" ref="treeRef" >
|
|
|
<template #default="{ node, data }">
|
|
|
<!-- 复选框 -->
|
|
|
- <el-checkbox v-if="data.ischeck == '1' && store.userport == 'PC'" v-model="node.checked"
|
|
|
- :indeterminate="node.indeterminate" :disabled="!!node.disabled"
|
|
|
- @change="handleCheckBoxChange($event, data, node)">
|
|
|
+ <el-checkbox v-if="data.ischeck == '1' && store.userport == 'PC'" v-model="node.checked" :indeterminate="node.indeterminate" :disabled="!!node.disabled" @change="handleCheckBoxChange($event, data, node)">
|
|
|
</el-checkbox>
|
|
|
- <el-switch v-else-if="data.ischeck == 1 && store.userport == 'APP'" width="30rem" size="small"
|
|
|
- v-model="node.checked" @change="handleCheckBoxChange($event, data, node)" />
|
|
|
- <span class="custom-tree-node">
|
|
|
+ <el-switch v-else-if="data.ischeck == 1 && store.userport == 'APP'" width="30rem" size="small" v-model="node.checked" @change="handleCheckBoxChange($event, data, node)" />
|
|
|
+ <span class="custom-tree-node" @click="handleClick(data)">
|
|
|
<!-- 字体、图标 -->
|
|
|
<!-- <span>
|
|
|
<img src="@/assets/images/logo16x16.ico" />
|
|
@@ -56,8 +54,7 @@
|
|
|
<!-- 透明度 -->
|
|
|
<template v-if="node.checked && data.opacity >0">
|
|
|
<div style="width: 80rem; padding: 0 20rem; position: absolute; right: 0">
|
|
|
- <el-slider v-model="data.opacity" @input="handleSliderChange($event, data)" :max="1" :min="0.1"
|
|
|
- :step="0.1" />
|
|
|
+ <el-slider v-model="data.opacity" @input="handleSliderChange($event, data)" :max="1" :min="0.1" :step="0.1" />
|
|
|
</div>
|
|
|
</template>
|
|
|
</template>
|
|
@@ -76,20 +73,19 @@
|
|
|
treeData: [],
|
|
|
inittree: [], //初始化图层数组
|
|
|
expandedKeys: [], //对应要展开的节点id
|
|
|
- currentKey: [], //默认打开节点的id
|
|
|
- checkedkeys: []
|
|
|
+ checkedkeys: [] //默认打开节点的id
|
|
|
}
|
|
|
},
|
|
|
|
|
|
/* 方法 */
|
|
|
methods: {
|
|
|
-
|
|
|
/**
|
|
|
* el-tree 当节点被点击的时候触发
|
|
|
* 控制地图服务的显示及隐藏
|
|
|
* @param {Object} data 传递给 data 属性的数组中该节点所对应的对象
|
|
|
*/
|
|
|
async handleClick(data) {
|
|
|
+ console.log('操作', '单击定位')
|
|
|
let _self = this;
|
|
|
|
|
|
let _serviceId = "service_" + data.layercode + data.layerorder;
|
|
@@ -166,13 +162,15 @@
|
|
|
|
|
|
break;
|
|
|
case "Cesium3DTileset": //加载3DTileset地图服务--实景
|
|
|
- jt3d._viewer.flyTo(window[_serviceId], {
|
|
|
- offset: {
|
|
|
- heading: Cesium.Math.toRadians(20.0), //方向
|
|
|
- pitch: Cesium.Math.toRadians(-90), //倾斜角度
|
|
|
- range: 1000
|
|
|
- }
|
|
|
- });
|
|
|
+ if (window[_serviceId]) {
|
|
|
+ jt3d._viewer.flyTo(window[_serviceId], {
|
|
|
+ offset: {
|
|
|
+ heading: Cesium.Math.toRadians(20.0), //方向
|
|
|
+ pitch: Cesium.Math.toRadians(-90), //倾斜角度
|
|
|
+ range: 1000
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
break;
|
|
|
case "Cesium3DTileset_BM": //加载3DTileset地图服务--白膜
|
|
|
|
|
@@ -182,23 +180,97 @@
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * el-slider 值改变时触发
|
|
|
+ * 地图服务的透明度调整
|
|
|
+ */
|
|
|
+ handleSliderChange($event, data) {
|
|
|
+ let _serviceId = "service_" + data.layercode + data.layerorder;
|
|
|
+ if (data.loadtype === "Cesium3DTileset") {
|
|
|
+ //设置实景透明度
|
|
|
+ jt3d.layer.set3DTileStyle({
|
|
|
+ serviceId: _serviceId,
|
|
|
+ alpha: $event,
|
|
|
+ });
|
|
|
+ } else if (data.loadtype === "CrImageServerLayer") {
|
|
|
+ let floatLayer = window[_serviceId];
|
|
|
+ floatLayer.setOpacity($event)
|
|
|
+ } else if (data.loadtype === "PolygonImageMaterial") {
|
|
|
+ //设置透明度
|
|
|
+ jt3d.layer.setPolygonImageMaterial({
|
|
|
+ serviceId: _serviceId,
|
|
|
+ alpha: $event,
|
|
|
+ });
|
|
|
+ } else if (data.loadtype === "entitiesGltf") {
|
|
|
+ //设置透明度
|
|
|
+ jt3d.layer.setModelStyle({
|
|
|
+ serviceId: _serviceId,
|
|
|
+ alpha: $event,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ jt3d.layer.setLayersStyle({
|
|
|
+ serviceId: _serviceId,
|
|
|
+ alpha: $event,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * el-checkbox 当绑定值变化时触发的事件
|
|
|
+ * @param {Object} checked 复选框状态
|
|
|
+ * @param {Object} data 对应于节点点击的节点对象
|
|
|
+ * @param {Object} node TreeNode 的 node 属性
|
|
|
+ */
|
|
|
+ handleCheckBoxChange(checked, data, node) {
|
|
|
+
|
|
|
+ let _node = this.$refs.treeRef.getNode(data);
|
|
|
+ if (_node.isLeaf) {
|
|
|
+ this.setLayerControl(data, checked);
|
|
|
+ this.$refs.treeRef.setChecked(_node, checked); //是否设置子节点,默认为false,利用tree组件渲染后带有的isLeaf(是否为叶子节点)属性,如果为叶子节点就选中。利用tree的API就实现了正确的回显效果
|
|
|
+
|
|
|
+ } else {
|
|
|
+ //控制子节点
|
|
|
+ this.childNodesChange(node, checked);
|
|
|
+ }
|
|
|
+ },
|
|
|
|
|
|
+ /**
|
|
|
+ * 控制子节点
|
|
|
+ * @param {Object} node
|
|
|
+ * @param {Object} checked
|
|
|
+ */
|
|
|
+ childNodesChange(node, checked) {
|
|
|
+ let _self = this;
|
|
|
+ node.childNodes.forEach(item => {
|
|
|
+ _self.setLayerControl(item.data, checked);
|
|
|
+ _self.$refs.treeRef.setChecked(item, checked);
|
|
|
+ _self.childNodesChange(item, checked);
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
- * el-tree 当复选框被点击的时候触发
|
|
|
* 控制地图服务的显示及隐藏
|
|
|
* @param {Object} data 传递给 data 属性的数组中该节点所对应的对象
|
|
|
* @param {Object} checked 节点本身是否被选中
|
|
|
*/
|
|
|
- async handleCheckChange(data, checked) {
|
|
|
- console.log('进入图层控制')
|
|
|
+ async setLayerControl(data, checked) {
|
|
|
+ console.log('操作', '图层控制')
|
|
|
+
|
|
|
let _self = this;
|
|
|
|
|
|
let _serviceId = "service_" + data.layercode + data.layerorder;
|
|
|
let layername = data.layername;
|
|
|
let layertype = data.layertype;
|
|
|
|
|
|
+ // //修改默认选中参数,用于单击定位
|
|
|
+ // if (checked) {
|
|
|
+ // data.isinit = '1';
|
|
|
+ // } else {
|
|
|
+ // data.isinit = '0';
|
|
|
+ // }
|
|
|
+
|
|
|
//透明度
|
|
|
let _opacity = null;
|
|
|
if (data.opacity == null) {
|
|
@@ -238,6 +310,8 @@
|
|
|
switch (data.loadtype) {
|
|
|
case "GeoJsonPoint": //GeoJsonPoint
|
|
|
if (checked) {
|
|
|
+ data.isinit = '1';
|
|
|
+
|
|
|
//设置参数
|
|
|
let _options = {
|
|
|
id: _serviceId,
|
|
@@ -264,11 +338,15 @@
|
|
|
} else {
|
|
|
jt3d.layer.removeDataSources({
|
|
|
serviceId: _serviceId,
|
|
|
+ }).then(res => {
|
|
|
+ data.isinit = '0';
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
|
case "GeoJsonPolyline": //GeoJsonPolyline
|
|
|
if (checked) {
|
|
|
+ data.isinit = '1';
|
|
|
+
|
|
|
//设置参数
|
|
|
let _options = {
|
|
|
id: _serviceId,
|
|
@@ -314,11 +392,15 @@
|
|
|
} else {
|
|
|
jt3d.layer.removeDataSources({
|
|
|
serviceId: _serviceId,
|
|
|
+ }).then(res => {
|
|
|
+ data.isinit = '0';
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
|
case "entitiesGltf": //gltf/glb
|
|
|
if (checked) {
|
|
|
+ data.isinit = '1';
|
|
|
+
|
|
|
//设置参数
|
|
|
let _options = {
|
|
|
id: _serviceId,
|
|
@@ -367,11 +449,15 @@
|
|
|
} else {
|
|
|
jt3d.layer.removeEntity({
|
|
|
serviceId: _serviceId,
|
|
|
+ }).then(res => {
|
|
|
+ data.isinit = '0';
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
|
case "PolygonImageMaterial": //图片材质
|
|
|
if (checked) {
|
|
|
+ data.isinit = '1';
|
|
|
+
|
|
|
if (parameterset) {
|
|
|
if (parameterset.points) {
|
|
|
jt3d.layer.addPolygonImageMaterial({
|
|
@@ -391,11 +477,15 @@
|
|
|
} else {
|
|
|
jt3d.layer.removeEntity({
|
|
|
serviceId: _serviceId,
|
|
|
+ }).then(res => {
|
|
|
+ data.isinit = '0';
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
|
case "CrImageServerLayer": //贴地所有地形、模型的规划图、网格地图
|
|
|
if (checked) {
|
|
|
+ data.isinit = '1';
|
|
|
+
|
|
|
let floatLayer = new this.jt3dSDK.CrImageServerLayer({
|
|
|
viewer: window["viewer"],
|
|
|
url: data.datasource,
|
|
@@ -407,10 +497,13 @@
|
|
|
// window[_serviceId].show();
|
|
|
} else {
|
|
|
window[_serviceId].hide();
|
|
|
+ data.isinit = '0';
|
|
|
}
|
|
|
break;
|
|
|
case "DEM": //地形服务(DEM)
|
|
|
if (checked) {
|
|
|
+ data.isinit = '1';
|
|
|
+
|
|
|
//设置参数
|
|
|
let _options = {
|
|
|
url: data.datasource,
|
|
@@ -422,11 +515,15 @@
|
|
|
}
|
|
|
jt3d.layer.addTerrain(_options);
|
|
|
} else {
|
|
|
- jt3d.layer.removeTerrain();
|
|
|
+ jt3d.layer.removeTerrain().then(res => {
|
|
|
+ data.isinit = '0';
|
|
|
+ });
|
|
|
}
|
|
|
break;
|
|
|
case "UrlTemplateImageryProvider": //加载URL模板服务
|
|
|
if (checked) {
|
|
|
+ data.isinit = '1';
|
|
|
+
|
|
|
//设置参数
|
|
|
let _options = {
|
|
|
id: _serviceId,
|
|
@@ -452,17 +549,17 @@
|
|
|
_self.setLayerNumber(serviceId)
|
|
|
});
|
|
|
} else {
|
|
|
- let removeLayer = jt3d.layer.removeImageryProvider({
|
|
|
+ jt3d.layer.removeImageryProvider({
|
|
|
serviceId: _serviceId
|
|
|
- });
|
|
|
- removeLayer.then(function() {
|
|
|
- console.log('成功移除')
|
|
|
+ }).then(res => {
|
|
|
+ data.isinit = '0';
|
|
|
});
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
case "WebMapTileServiceImageryProvider": // WMTS地图服务
|
|
|
if (checked) {
|
|
|
+ data.isinit = '1';
|
|
|
|
|
|
//设置参数
|
|
|
let _options = {
|
|
@@ -514,11 +611,15 @@
|
|
|
} else {
|
|
|
jt3d.layer.removeImageryProvider({
|
|
|
serviceId: _serviceId
|
|
|
+ }).then(res => {
|
|
|
+ data.isinit = '0';
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
|
case "WebMapServiceImageryProvider": //WMS地图服务
|
|
|
if (checked) {
|
|
|
+ data.isinit = '1';
|
|
|
+
|
|
|
//设置参数
|
|
|
let _options = {
|
|
|
id: _serviceId,
|
|
@@ -551,11 +652,15 @@
|
|
|
} else {
|
|
|
jt3d.layer.removeImageryProvider({
|
|
|
serviceId: _serviceId
|
|
|
+ }).then(res => {
|
|
|
+ data.isinit = '0';
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
|
case "ArcGisMapServerImageryProvider": // ArcGIS Online和Server的相关服务
|
|
|
if (checked) {
|
|
|
+ data.isinit = '1';
|
|
|
+
|
|
|
//设置参数
|
|
|
let _options = {
|
|
|
id: _serviceId,
|
|
@@ -577,11 +682,15 @@
|
|
|
} else {
|
|
|
jt3d.layer.removeImageryProvider({
|
|
|
serviceId: _serviceId
|
|
|
+ }).then(res => {
|
|
|
+ data.isinit = '0';
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
|
case "TileMapServiceImageryProvider": // 2.5维度地图
|
|
|
if (checked) {
|
|
|
+ data.isinit = '1';
|
|
|
+
|
|
|
//设置参数
|
|
|
let _options = {
|
|
|
id: _serviceId,
|
|
@@ -605,62 +714,86 @@
|
|
|
} else {
|
|
|
jt3d.layer.removeImageryProvider({
|
|
|
serviceId: _serviceId
|
|
|
+ }).then(res => {
|
|
|
+ data.isinit = '0';
|
|
|
});
|
|
|
}
|
|
|
break;
|
|
|
case "Cesium3DTileset": //加载3DTileset地图服务--实景
|
|
|
- if (data.datasource == '#') return
|
|
|
- let datasource = data.datasource.split("#")
|
|
|
- console.log('datasource', datasource)
|
|
|
+
|
|
|
if (checked) {
|
|
|
- //加载实景
|
|
|
- //设置参数
|
|
|
- let _options = {
|
|
|
- id: _serviceId,
|
|
|
- url: datasource[0],
|
|
|
- }
|
|
|
- if (parameterset) {
|
|
|
- if (parameterset.height) {
|
|
|
- _options.height = parameterset.height;
|
|
|
+ data.isinit = '1';
|
|
|
+
|
|
|
+ if (window[_serviceId]) {
|
|
|
+ window[_serviceId].show = true;
|
|
|
+ } else {
|
|
|
+ //设置参数
|
|
|
+ let _options = {
|
|
|
+ id: _serviceId,
|
|
|
+ url: data.datasource,
|
|
|
}
|
|
|
- if (parameterset.alpha) {
|
|
|
- _options.alpha = parameterset.alpha;
|
|
|
+ if (parameterset) {
|
|
|
+ if (parameterset.height) {
|
|
|
+ _options.height = parameterset.height;
|
|
|
+ }
|
|
|
+ if (parameterset.alpha) {
|
|
|
+ _options.alpha = parameterset.alpha;
|
|
|
+ }
|
|
|
}
|
|
|
+ //加载实景
|
|
|
+ jt3d.layer.addCesium3DTileset(_options, function(serviceId) {
|
|
|
+ window[_serviceId].show = true;
|
|
|
+ });
|
|
|
}
|
|
|
- jt3d.layer.addCesium3DTileset(_options, function(serviceId) {
|
|
|
- console.log('添加')
|
|
|
- window[_serviceId] = window[serviceId];
|
|
|
- });
|
|
|
-
|
|
|
-
|
|
|
} else {
|
|
|
- jt3d.layer.removeScenePrimitives({
|
|
|
- serviceId: _serviceId
|
|
|
- });
|
|
|
+ if (window[_serviceId]) {
|
|
|
+ //3DTileset数据量比较大,会报很多cesium错误
|
|
|
+ // jt3d.layer.removeScenePrimitives({
|
|
|
+ // serviceId: _serviceId
|
|
|
+ // }).then(res => {
|
|
|
+ // data.isinit = '0';
|
|
|
+ // });
|
|
|
+
|
|
|
+ window[_serviceId].show = false;
|
|
|
+ data.isinit = '0';
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
case "Cesium3DTileset_BM": //加载3DTileset地图服务--白膜
|
|
|
if (checked) {
|
|
|
- //设置参数
|
|
|
- let _options = {
|
|
|
- id: _serviceId,
|
|
|
- url: data.datasource,
|
|
|
- }
|
|
|
- if (parameterset) {
|
|
|
- if (parameterset.color) {
|
|
|
- _options.color = parameterset.color;
|
|
|
- }
|
|
|
- }
|
|
|
+ data.isinit = '1';
|
|
|
|
|
|
- //加载白膜
|
|
|
- jt3d.layer.addCesium3DTilesetBm(_options, function(serviceId) {
|
|
|
+ if (window[_serviceId]) {
|
|
|
+ window[_serviceId].show = true;
|
|
|
+ } else {
|
|
|
+ //设置参数
|
|
|
+ let _options = {
|
|
|
+ id: _serviceId,
|
|
|
+ url: data.datasource,
|
|
|
+ }
|
|
|
+ if (parameterset) {
|
|
|
+ if (parameterset.color) {
|
|
|
+ _options.color = parameterset.color;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- });
|
|
|
+ //加载白膜
|
|
|
+ jt3d.layer.addCesium3DTilesetBm(_options, function(serviceId) {
|
|
|
+ window[_serviceId].show = true;
|
|
|
+ });
|
|
|
+ }
|
|
|
} else {
|
|
|
- jt3d.layer.removeScenePrimitives({
|
|
|
- serviceId: _serviceId
|
|
|
- });
|
|
|
+ if (window[_serviceId]) {
|
|
|
+ // jt3d.layer.removeScenePrimitives({
|
|
|
+ // serviceId: _serviceId
|
|
|
+ // }).then(res => {
|
|
|
+ // data.isinit = '0';
|
|
|
+ // });
|
|
|
+
|
|
|
+ window[_serviceId].show = false;
|
|
|
+ data.isinit = '0';
|
|
|
+ }
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
@@ -670,114 +803,10 @@
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
- * el-slider 值改变时触发(使用鼠标拖曳时,只在松开鼠标后触发)
|
|
|
- * 地图服务的透明度调整
|
|
|
- */
|
|
|
- handleSliderChange($event, data) {
|
|
|
- let _serviceId = "service_" + data.layercode + data.layerorder;
|
|
|
- if (data.loadtype === "Cesium3DTileset") {
|
|
|
- let datasource = data.datasource.split("#")
|
|
|
- datasource.forEach((res, index) => {
|
|
|
- let tileset = window[_serviceId + index];
|
|
|
-
|
|
|
- //设置实景透明度
|
|
|
- jt3d.layer.set3DTileStyle({
|
|
|
- serviceId: _serviceId + index,
|
|
|
- alpha: $event,
|
|
|
- });
|
|
|
- })
|
|
|
- } else if (data.loadtype === "CrImageServerLayer") {
|
|
|
- let floatLayer = window[_serviceId];
|
|
|
- floatLayer.setOpacity($event)
|
|
|
- } else if (data.loadtype === "PolygonImageMaterial") {
|
|
|
- //设置透明度
|
|
|
- jt3d.layer.setPolygonImageMaterial({
|
|
|
- serviceId: _serviceId,
|
|
|
- alpha: $event,
|
|
|
- });
|
|
|
- } else if (data.loadtype === "entitiesGltf") {
|
|
|
- //设置透明度
|
|
|
- jt3d.layer.setModelStyle({
|
|
|
- serviceId: _serviceId,
|
|
|
- alpha: $event,
|
|
|
- });
|
|
|
- } else {
|
|
|
- jt3d.layer.setLayersStyle({
|
|
|
- serviceId: _serviceId,
|
|
|
- alpha: $event,
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- /**
|
|
|
- * el-checkbox 当绑定值变化时触发的事件
|
|
|
- * @param {Object} checked 复选框状态
|
|
|
- * @param {Object} data 对应于节点点击的节点对象
|
|
|
- * @param {Object} node TreeNode 的 node 属性
|
|
|
- */
|
|
|
- handleCheckBoxChange(checked, data, node) {
|
|
|
-
|
|
|
- let _node = this.$refs.treeRef.getNode(data);
|
|
|
- if (_node.isLeaf) {
|
|
|
- this.$refs.treeRef.setChecked(_node,
|
|
|
- checked); //是否设置子节点,默认为false,利用tree组件渲染后带有的isLeaf(是否为叶子节点)属性,如果为叶子节点就选中。利用tree的API就实现了正确的回显效果
|
|
|
- }
|
|
|
-
|
|
|
- //控制子节点
|
|
|
- this.childNodesChange(node, checked);
|
|
|
- },
|
|
|
- /**
|
|
|
- * 控制子节点
|
|
|
- * @param {Object} node
|
|
|
- * @param {Object} checked
|
|
|
- */
|
|
|
- childNodesChange(node, checked) {
|
|
|
- let _self = this;
|
|
|
- node.childNodes.forEach(item => {
|
|
|
- _self.$refs.treeRef.setChecked(item, checked);
|
|
|
- _self.childNodesChange(item, checked);
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- /**
|
|
|
- * 初始化复选框选中状态
|
|
|
- * @param {Object} datas
|
|
|
- */
|
|
|
- setNodesChecked(datas) {
|
|
|
- let _self = this;
|
|
|
- console.log('datas', datas)
|
|
|
- datas.forEach((data, index) => {
|
|
|
- var node = _self.$refs.treeRef.getNode(data);
|
|
|
- //node.isLeaf是否是叶子节点
|
|
|
- if (node.isLeaf) {
|
|
|
- let checked = false;
|
|
|
- if (data.isinit === '1') {
|
|
|
- checked = true;
|
|
|
- _self.checkedkeys.push(data.id)
|
|
|
- console.log('默认勾选', _self.checkedkeys)
|
|
|
- }
|
|
|
- data.opacity = Number(data.opacity)
|
|
|
- // _self.$refs.treeRef.setChecked(node, checked);
|
|
|
- // _self.handleCheckChange(data,checked)
|
|
|
- // _self.childNodesChange(node, checked);
|
|
|
- // _self.$refs.treeRef.setCurrentKey(data.id)
|
|
|
- }
|
|
|
-
|
|
|
- if (data.children) {
|
|
|
- _self.setNodesChecked(data.children);
|
|
|
- }
|
|
|
- });
|
|
|
- _self.$nextTick(() => {
|
|
|
- _self.$refs.treeRef.setCheckedKeys(_self.checkedkeys,true)
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- /**
|
|
|
* 设置图层顺序
|
|
|
* @param {Object} options
|
|
|
*/
|
|
|
setLayerNumber(serviceId) {
|
|
|
- // let layerList = window["viewer"].imageryLayers._layers
|
|
|
var imageryLayers = window["viewer"].imageryLayers;
|
|
|
if (store.markID) {
|
|
|
console.log('标注id', store.markID)
|
|
@@ -803,8 +832,6 @@
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
-
|
|
|
-
|
|
|
},
|
|
|
|
|
|
mounted() {
|
|
@@ -826,14 +853,18 @@
|
|
|
res.layerorder = '0' + res.layerorder
|
|
|
}
|
|
|
|
|
|
- //显示2级
|
|
|
- if (res.parentid === null) {
|
|
|
+ //透明度
|
|
|
+ res.opacity = Number(res.opacity);
|
|
|
+
|
|
|
+ //默认展开
|
|
|
+ if (res.isexpand === '1') {
|
|
|
_this.expandedKeys.push(res.id);
|
|
|
}
|
|
|
|
|
|
- //其它级别展开
|
|
|
- if (res.isExpand === '1') {
|
|
|
- _this.expandedKeys.push(res.id);
|
|
|
+ // 复选框默认选中
|
|
|
+ if (res.isinit === '1') {
|
|
|
+ _this.checkedkeys.push(res.id);
|
|
|
+ _this.setLayerControl(res, true);
|
|
|
}
|
|
|
})
|
|
|
_this.treeData = deepTree(_this.inittree)
|
|
@@ -841,22 +872,23 @@
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//获取图集
|
|
|
this.$http.get('/getTableList', {
|
|
|
tableName: 'sys_map_atlas_layers', //表名
|
|
|
- sqlWhere: atlasLayersSqlWhere, //
|
|
|
- orderByField: ''
|
|
|
+ sqlWhere: atlasLayersSqlWhere, //查询条件
|
|
|
+ orderByField: '' //排序字段
|
|
|
}).then(res => {
|
|
|
console.log('所有图层', res)
|
|
|
//初始图层列表
|
|
|
this.inittree = res.data
|
|
|
init(res.data).then(item => {
|
|
|
- //图层初始化打开状态
|
|
|
- _this.setNodesChecked(item);
|
|
|
console.log('图层控制树列表', _this.treeData)
|
|
|
- })
|
|
|
|
|
|
+ //复选框初始化选中
|
|
|
+ _this.$nextTick(() => {
|
|
|
+ _this.$refs.treeRef.setCheckedKeys(_this.checkedkeys, true);
|
|
|
+ });
|
|
|
+ })
|
|
|
})
|
|
|
},
|
|
|
};
|