From d12e030d8a7690d79c5786bc2a786b6c21a24433 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Fri, 18 Jun 2021 16:31:13 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/pyhmap
---
widgets/LeftNavigationBar/Widget.js | 404 +++++++++++++++++++++++++++++++--------------------------
1 files changed, 219 insertions(+), 185 deletions(-)
diff --git a/widgets/LeftNavigationBar/Widget.js b/widgets/LeftNavigationBar/Widget.js
index de6441b..d12bce2 100644
--- a/widgets/LeftNavigationBar/Widget.js
+++ b/widgets/LeftNavigationBar/Widget.js
@@ -37,7 +37,7 @@
$('.left-navigation-bar-but').click(() => {
this.changeImg = !this.changeImg;
if (this.changeImg) {
- $('.l-n-b-b-img').attr("src", "../../images/addL/xzuo.png"); //打开
+ $('.l-n-b-b-img').attr("src", "./images/addL/xzuo.png"); //打开
$('.jimu-widget-LeftNavigationBar').css({
'left': '0px'
});
@@ -45,7 +45,7 @@
'left': '260px'
});
} else {
- $('.l-n-b-b-img').attr("src", "../../images/addL/xyou.png"); //关闭
+ $('.l-n-b-b-img').attr("src", "./images/addL/xyou.png"); //关闭
$('.jimu-widget-LeftNavigationBar').css({
'left': '-250px'
});
@@ -61,65 +61,7 @@
});
$('#left-navigation-bar-main-search').click(() => { //搜索事件
- var val = $('#left-navigation-bar-main-input').val();
- if (val != '') {
- var clearOur = () => {
- let dom = $(`[data-id]`);
- dom.removeClass('layui-tree-spread');
- let domDiv = dom.find('.layui-tree-pack');
- domDiv.css({
- 'display': 'none'
- })
- },
- a, useit = (d) => {
- for (var k in d) {
- if (d[k].who == 'father') {
- that.father = d[k].id;
- }
- if (d[k].title.indexOf(val) != -1) { //选中id
- a = '' + d[k].id;
- // var b = a.split('');
- // for (var i in b) {
- let id = that.father; //选中项的所有父级id
- let dom = $(`[data-id='${id}']`);
- dom.addClass('layui-tree-spread');
- let domDiv = dom.find('.layui-tree-pack').eq(0);
- domDiv.css({
- 'display': 'block'
- })
- // }
- }
- if (d[k].children) {
- useit(d[k].children);
- }
- }
- };
- that.changeData(that.dataAllArray, val); //重写数据
- layui.use('tree', function () {
- layui.tree.reload('demoId1', {
- data: that.data
- });
- var jqDom = $("#left-tree-list > .layui-tree > div");
-
- for (var i = 0; i < jqDom.length; i++) {
- if ($(jqDom[i]).text().indexOf("三维倾斜数据") != -1) {
- $(jqDom[i]).find('.layui-btn-group').remove()
- }
-
- var textList = $(jqDom[i]).find('.layui-tree-txt');
-
- for (var j = 0; j < textList.length; j++) {
- $(textList[j]).attr('title', $(textList[j]).text())
-
- }
-
- }
-
- clearOur();
- useit(that.data);
- })
-
- } else {}
+ leftSearchItemLayer()
})
$(".jimu-widget-LeftNavigationBar input[type='search']").bind('input propertychange', function () {
@@ -136,9 +78,6 @@
var jqDom = $("#left-tree-list > .layui-tree > div");
for (var i = 0; i < jqDom.length; i++) {
- if ($(jqDom[i]).text().indexOf("三维倾斜数据") != -1) {
- $(jqDom[i]).find('.layui-btn-group').remove()
- }
var textList = $(jqDom[i]).find('.layui-tree-txt');
@@ -153,9 +92,71 @@
})
- $(".jimu-widget-LeftNavigationBar .tree-layer-opcity .close").click(function () {
- $(".jimu-widget-LeftNavigationBar .tree-layer-opcity").stop().hide();
+ $(".jimu-widget-LeftNavigationBar input[type='search']").keyup(function (e) {
+ if (e.keyCode == 13) {
+ leftSearchItemLayer()
+ }
})
+
+ function leftSearchItemLayer() {
+ var val = $('#left-navigation-bar-main-input').val();
+ if (val != '') {
+ var clearOur = () => {
+ let dom = $(`[data-id]`);
+ dom.removeClass('layui-tree-spread');
+ let domDiv = dom.find('.layui-tree-pack');
+ domDiv.css({
+ 'display': 'none'
+ })
+ },
+ a, useit = (d) => {
+ for (var k in d) {
+ if (d[k].who == 'father') {
+ that.father = d[k].id;
+ }
+ if (d[k].title && d[k].title.indexOf(val) != -1) { //选中id
+ a = '' + d[k].id;
+ // var b = a.split('');
+ // for (var i in b) {
+ let id = that.father; //选中项的所有父级id
+ let dom = $(`[data-id='${id}']`);
+ dom.addClass('layui-tree-spread');
+ let domDiv = dom.find('.layui-tree-pack').eq(0);
+ domDiv.css({
+ 'display': 'block'
+ })
+ // }
+ }
+ if (d[k].children && d[k].children.length > 0) {
+ useit(d[k].children);
+ }
+ }
+ };
+
+ that.changeData(that.dataAllArray, val); //重写数据
+ layui.use('tree', function () {
+ layui.tree.reload('demoId1', {
+ data: that.data
+ });
+ var jqDom = $("#left-tree-list > .layui-tree > div");
+
+ for (var i = 0; i < jqDom.length; i++) {
+
+ var textList = $(jqDom[i]).find('.layui-tree-txt');
+
+ for (var j = 0; j < textList.length; j++) {
+ $(textList[j]).attr('title', $(textList[j]).text())
+
+ }
+
+ }
+
+ clearOur();
+ useit(that.data);
+ })
+
+ }
+ }
},
closeToolBox: function (item) {},
@@ -198,6 +199,7 @@
})
},
changeData: function (val, type) { //重写数据
+ var that = this;
var data = [],
i = 1,
inits = (d, childData) => {
@@ -219,7 +221,11 @@
checked: d[k].menuStatus
}
- if (d[k].serviceUrl.indexOf('.openrealspace') != -1) {
+ if (that[d[k].id]) {
+ a.alpha = that[d[k].id].alpha
+ }
+
+ if (d[k].serviceUrl && d[k].serviceUrl.length > 0 && d[k].serviceUrl.indexOf('.openrealspace') != -1) {
a.model = true
}
@@ -227,10 +233,21 @@
a.model = true
}
+ if (a.model) {
+
+ if (that[a.id]) {
+ Cesium.when(that[a.id], function (layer) {
+ that.map.scene.layers.remove(layer[0].name)
+ })
+ }
+
+ }
+
+
b.push(a);
i++;
- if (d[k].children.length != 0) {
+ if (d[k].children && d[k].children.length > 0) {
b[k].children = [];
b[k].who = 'father';
inits(d[k].children, b[k].children)
@@ -239,18 +256,6 @@
};
inits(val, data);
-
- // var i = 0,
- // ccinit = (a) => {
- // i++;
- // for (let k in a) {
- // if (a[k].children) {
- // a[k].who = i;
- // ccinit(a[k].children)
- // }
- // }
- // };
- // ccinit(this.data);
if (type != '') {
@@ -262,12 +267,26 @@
function deWeight() {
for (var j = 0; j < data[i].children.length; j++) {
- if (data[i].children[j].title.indexOf(type) == -1) {
+
+ if (data[i].children[j].checked == true) {
+ var small = data[i].children[j];
+ if (small.model) {
+ that.map.scene.globe.depthTestAgainstTerrain = false;
+ var host = that.returnStr(small.src).host;
+ var scene = that.map.scene;
+ var partOfUrl = that.returnStr(small.src).partOfUrl;
+ //添加S3M图层服务
+ that[small.id] = scene.open(host + partOfUrl);
+ }
+ }
+
+ if (data[i].children[j].title && data[i].children[j].title.indexOf(type) == -1) {
data[i].children.splice(j, 1);
deWeight();
break;
}
+
}
}
@@ -299,6 +318,25 @@
}
}
+ }
+
+ var keyId = this.getUrlKeyId("serviceId");
+
+ if (keyId && keyId != "") {
+ for (var i = 0; i < data.length; i++) {
+
+ if (data[i].id == keyId) {
+ data[i].checked = true
+ }
+
+ for (var j = 0; j < data[i].children.length; j++) {
+
+ if (data[i].children[j].id == keyId) {
+ data[i].children[j].checked = true
+ }
+
+ }
+ }
}
@@ -342,9 +380,8 @@
},
showLine: false, //是否开启连接线
oncheck: function (obj) {
- // console.log(obj.data.id, '--', obj.checked, obj); //得到当前点击的节点数据
- // console.log(obj.checked); //得到当前节点的展开状态:open、close、normal
- // console.log(obj.elem); //得到当前节点元素
+
+ var keyId = that.getUrlKeyId("serviceId");
if (obj.data.children && obj.data.children.length > 0) {
@@ -391,20 +428,38 @@
});
});
} else {
- obj.data.children.forEach(item => {
- $.ajax({
- url: item.src + '/maps.json',
- type: 'get',
- dataType: 'JSON',
- success: function (res) {
- that[item.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
- url: res[0].path,
- }));
- that[item.id].alpha = item.alpha
- }
- })
+ obj.data.children.forEach(item => {
+
+ if (that[item.id]) {
+ that[item.id].show = true
+ topic.publish('appendItem', 'Layermanagement', item, that[item.id]);
+ } else {
+ $.ajax({
+ url: item.src + '/maps.json',
+ type: 'get',
+ dataType: 'JSON',
+ success: function (res) {
+
+
+ that[item.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
+ url: res[0].path,
+ }));
+ topic.publish('appendItem', 'Layermanagement', item, that[item.id]);
+ that[item.id].alpha = item.alpha
+
+ if (keyId && keyId != "") {
+ that[item.id].getViewableRectangle().then(function (rectangle) {
+ return that.map.camera.flyTo({
+ destination: rectangle
+ });
+ });
+ }
+ }
+ })
+ }
});
+
}
@@ -422,7 +477,10 @@
});
} else {
obj.data.children.forEach(item => {
- if (that[item.id]) that.map.imageryLayers.remove(that[item.id]);
+ if (that[item.id]) {
+ topic.publish('removeItem', 'Layermanagement', item);
+ that[item.id].show = false;
+ }
});
}
@@ -438,12 +496,14 @@
if (obj.checked == true) {
if (obj.data.model) {
+ that.map.scene.globe.depthTestAgainstTerrain = false;
var host = that.returnStr(obj.data.src).host;
var scene = that.map.scene;
var partOfUrl = that.returnStr(obj.data.src).partOfUrl;
//添加S3M图层服务
that[obj.data.id] = scene.open(host + partOfUrl);
//定位到场景
+
Cesium.loadJson(host + partOfUrl + '/scenes.json').then(function (scenes) {
// var sname = scenes[0].name;
// Cesium.loadJson(host + partOfUrl + '/scenes/' + sname + '.json').then(function (jsonData) {
@@ -473,18 +533,37 @@
} else {
- $.ajax({
- url: obj.data.src + '/maps.json',
- type: 'get',
- dataType: 'JSON',
- success: function (res) {
+ if (that[obj.data.id]) {
+ that[obj.data.id].show = true;
+ topic.publish('appendItem', 'Layermanagement', obj.data, that[obj.data.id]);
+ } else {
+ $.ajax({
+ url: obj.data.src + '/maps.json',
+ type: 'get',
+ dataType: 'JSON',
+ success: function (res) {
- that[obj.data.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
- url: res[0].path,
- }));
- that[obj.data.id].alpha = obj.data.alpha
- }
- })
+
+ that[obj.data.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
+ url: res[0].path,
+ }));
+
+ topic.publish('appendItem', 'Layermanagement', obj.data, that[obj.data.id]);
+
+ that[obj.data.id].alpha = obj.data.alpha
+
+ if (keyId && keyId != "") {
+ that[obj.data.id].getViewableRectangle().then(function (rectangle) {
+ return that.map.camera.flyTo({
+ destination: rectangle
+ });
+ });
+ }
+ }
+ })
+ }
+
+
}
@@ -497,7 +576,11 @@
})
} else {
- that.map.imageryLayers.remove(that[obj.data.id]);
+
+ if (that[obj.data.id]) {
+ topic.publish('removeItem', 'Layermanagement', obj.data);
+ that[obj.data.id].show = false;
+ }
}
@@ -507,90 +590,35 @@
}
+
+ for (var i = 0; i < that.dataAllArray.length; i++) {
+
+ if (obj.data.id == that.dataAllArray[i].id) {
+ that.dataAllArray[i].menuStatus = 1;
+ break
+ }
+
+ if (that.dataAllArray[i].children && that.dataAllArray[i].children.length > 0) {
+
+ for (var j = 0; j < that.dataAllArray[i].children.length; j++) {
+
+ if (obj.data.id == that.dataAllArray[i].children[j].id) {
+ that.dataAllArray[i].children[j].menuStatus = 1;
+ break
+ }
+
+ }
+ }
+
+ }
},
- edit: ['add'],
operate: function (obj) {
var type = obj.type; //得到操作类型: add、edit、 del
var data = obj.data; //得到当前节点的数据
var elem = obj.elem; //得到当前节点元素var deptId = data.id;//得到节点索引var parentId = data.parentId;l/父节点
var depId = data.id;
var parentId = data.parentId;
- if (type == 'add') {
- $(".jimu-widget-LeftNavigationBar .tree-layer-opcity ul").empty();
-
- // console.log(type, data, elem, depId, parentId)
-
- if (data.children) {
-
- data.children.forEach(item => {
- var liC = `<li>
- <div title="${item.title}">
- ${item.title}
- </div>
- <div id="${item.id + 'Layer'}">
-
- </div>
- </li>`;
-
- $(".jimu-widget-LeftNavigationBar .tree-layer-opcity ul").append(liC)
-
- $(".jimu-widget-LeftNavigationBar .tree-layer-opcity").stop().show();
- slider.render({
- elem: '#' + item.id + 'Layer',
- min: 0,
- max: 10,
- value: item.alpha * 10,
- step: 1,
- theme: '#1E9FFF',
- setTips: function (value) { //自定义提示文本
- return value / 10;
- },
- change: function (value) {
- item.alpha = value / 10
- if (that[item.id]) {
- that[item.id].alpha = item.alpha
- }
- }
- });
- })
-
- } else {
- var liC = `<li>
- <div title="${data.title}">
- ${data.title}
- </div>
- <div id="${data.id + 'Layer'}">
-
- </div>
- </li>`;
-
- $(".jimu-widget-LeftNavigationBar .tree-layer-opcity ul").append(liC)
-
- $(".jimu-widget-LeftNavigationBar .tree-layer-opcity").stop().show();
- slider.render({
- elem: '#' + data.id + 'Layer',
- min: 0,
- max: 10,
- value: data.alpha * 10,
- step: 1,
- theme: '#1E9FFF',
- setTips: function (value) { //自定义提示文本
- return value / 10;
- },
- change: function (value) {
- data.alpha = value / 10
- if (that[data.id]) {
- that[data.id].alpha = data.alpha
- }
- }
- });
-
-
- }
-
-
- }
}
});
@@ -934,6 +962,12 @@
}]
}],
}],
+ getUrlKeyId: function (name) {
+ var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+ var r = window.location.search.substr(1).match(reg);
+ if (r != null) return decodeURI(r[2]);
+ return null;
+ },
destroy: function () {
//销毁的时候触发
//todo
--
Gitblit v1.9.3