From 46cc7c88372610a2602fe96d9c01009c73eb604a Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 16 Jun 2021 17:15:12 +0800
Subject: [PATCH] 部分文件进行调整

---
 widgets/LeftNavigationBar/Widget.js |  175 ++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 115 insertions(+), 60 deletions(-)

diff --git a/widgets/LeftNavigationBar/Widget.js b/widgets/LeftNavigationBar/Widget.js
index 2dc7d4f..5249e41 100644
--- a/widgets/LeftNavigationBar/Widget.js
+++ b/widgets/LeftNavigationBar/Widget.js
@@ -121,7 +121,7 @@
 									if (d[k].who == 'father') {
 										that.father = d[k].id;
 									}
-									if (d[k].title.indexOf(val) != -1) { //选中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) {
@@ -134,11 +134,12 @@
 										})
 										// }
 									}
-									if (d[k].children) {
+									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', {
@@ -230,7 +231,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
 							}
 
@@ -249,14 +254,14 @@
 							} else {
 
 								if (that[a.id]) {
-									that.map.imageryLayers.remove(that[a.id]);
+									that[a.id].show = false
 								}
 
 							}
 
 							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)
@@ -265,18 +270,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 != '') {
 
@@ -288,12 +281,47 @@
 
 							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);
+										} else {
+
+											if (that[small.id]) {
+												that[small.id].show = true
+											} else {
+												$.ajax({
+													url: small.src + '/maps.json',
+													type: 'get',
+													dataType: 'JSON',
+													success: function (res) {
+
+														that[small.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
+															url: res[0].path,
+														}));
+														that[small.id].alpha = small.alpha
+
+													}
+												})
+											}
+
+
+										}
+									}
+
+									if (data[i].children[j].title && data[i].children[j].title.indexOf(type) == -1) {
 										data[i].children.splice(j, 1);
 										deWeight();
 										break;
 
 									}
+
 								}
 							}
 
@@ -341,7 +369,7 @@
 							if (data[i].children[j].id == keyId) {
 								data[i].children[j].checked = true
 							}
-							 
+
 						}
 					}
 				}
@@ -387,9 +415,7 @@
 						},
 						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) {
@@ -439,26 +465,31 @@
 									} 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
+											if (that[item.id]) {
+												that[item.id].show = true
+											} else {
+												$.ajax({
+													url: item.src + '/maps.json',
+													type: 'get',
+													dataType: 'JSON',
+													success: function (res) {
 
-													if (keyId && keyId != "") {
-														that[item.id].getViewableRectangle().then(function (rectangle) {
-															return that.map.camera.flyTo({
-																destination: rectangle
+														that[item.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
+															url: res[0].path,
+														}));
+														that[item.id].alpha = item.alpha
+
+														if (keyId && keyId != "") {
+															that[item.id].getViewableRectangle().then(function (rectangle) {
+																return that.map.camera.flyTo({
+																	destination: rectangle
+																});
 															});
-														});
+														}
 													}
-												}
-											})
+												})
+											}
 										});
 
 
@@ -478,7 +509,7 @@
 										});
 									} else {
 										obj.data.children.forEach(item => {
-											if (that[item.id]) that.map.imageryLayers.remove(that[item.id]);
+											if (that[item.id]) that[item.id].show = false
 										});
 
 									}
@@ -531,26 +562,30 @@
 
 									} 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
-
-												if (keyId && keyId != "") {
-													that[obj.data.id].getViewableRectangle().then(function (rectangle) {
-														return that.map.camera.flyTo({
-															destination: rectangle
+										if (that[obj.data.id]) {
+											that[obj.data.id].show = true
+										} 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
+	
+													if (keyId && keyId != "") {
+														that[obj.data.id].getViewableRectangle().then(function (rectangle) {
+															return that.map.camera.flyTo({
+																destination: rectangle
+															});
 														});
-													});
+													}
 												}
-											}
-										})
+											})
+										}
 
 									}
 
@@ -563,7 +598,8 @@
 										})
 
 									} else {
-										that.map.imageryLayers.remove(that[obj.data.id]);
+
+										if (that[obj.data.id]) that[obj.data.id].show = false
 
 									}
 
@@ -571,6 +607,27 @@
 
 								}
 
+
+							}
+
+							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
+										}
+
+									}
+								}
 
 							}
 						},
@@ -584,8 +641,6 @@
 							if (type == 'add') {
 
 								$(".jimu-widget-LeftNavigationBar .tree-layer-opcity ul").empty();
-
-								// console.log(type, data, elem, depId, parentId)
 
 								if (data.children) {
 

--
Gitblit v1.9.3