liuyg
2021-06-22 1a2c1d005bf7de2528f73638fb24d31da812aad5
widgets/LeftNavigationBar/Widget.js
@@ -78,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');
@@ -101,10 +98,6 @@
               }
            })
            $(".jimu-widget-LeftNavigationBar .tree-layer-opcity .close").click(function () {
               $(".jimu-widget-LeftNavigationBar .tree-layer-opcity").stop().hide();
            })
            function leftSearchItemLayer() {
               var val = $('#left-navigation-bar-main-input').val();
               if (val != '') {
@@ -121,7 +114,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 +127,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', {
@@ -147,9 +141,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');
@@ -230,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
                     }
@@ -246,17 +241,13 @@
                           })
                        }
                     } else {
                        if (that[a.id]) {
                           that.map.imageryLayers.remove(that[a.id]);
                        }
                     }
                     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 +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 != '') {
@@ -288,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;
                           }
                        }
                     }
@@ -341,7 +334,7 @@
                     if (data[i].children[j].id == keyId) {
                        data[i].children[j].checked = true
                     }
                  }
               }
            }
@@ -387,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) {
@@ -436,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
                                                });
                                             });
                                          }
                                       }
                                    })
                                 }
                              });
                           }
@@ -467,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;
                                 }
                              });
                           }
@@ -520,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
                                             });
                                          });
                                       }
                                    }
                                 })
                              }
                           }
@@ -544,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;
                              }
                           }
@@ -554,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
                                 }
                              }
                           });
                        }
                     }
                  }
               });