shuishen
2021-06-10 dcb285ccc145fcbcb1302ca61c051b497df815a2
widgets/LeftNavigationBar/Widget.js
@@ -27,6 +27,7 @@
         baseClass: 'jimu-widget-LeftNavigationBar',
         name: 'LeftNavigationBar',
         layers: {},
         dataAllArray: [],
         startup: function () {
            // 暴露在外的接口
            // this.begin(this.data);
@@ -58,12 +59,12 @@
            $('.jimu-widget-instructions').css({
               'left': '260px'
            });
            $('#left-navigation-bar-main-search').click(() => { //搜索事件
               var val = $('#left-navigation-bar-main-input').val();
               if (val) {
               if (val != '') {
                  var clearOur = () => {
                        let dom = $(`[data-id]`);
                        // console.log(dom);
                        dom.removeClass('layui-tree-spread');
                        let domDiv = dom.find('.layui-tree-pack');
                        domDiv.css({
@@ -80,7 +81,6 @@
                              // var b = a.split('');
                              // for (var i in b) {
                              let id = that.father; //选中项的所有父级id
                              //    // console.log(id)
                              let dom = $(`[data-id='${id}']`);
                              dom.addClass('layui-tree-spread');
                              let domDiv = dom.find('.layui-tree-pack').eq(0);
@@ -88,18 +88,69 @@
                                 'display': 'block'
                              })
                              // }
                              console.log(a, that.father)
                           }
                           if (d[k].children) {
                              useit(d[k].children);
                           }
                        }
                     };
                  clearOur();
                  useit(that.data);
               } else {
                  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 {}
            })
            $(".jimu-widget-LeftNavigationBar input[type='search']").bind('input propertychange', function () {
               //做一些事情
               var val = $(this).val();
               if (val == '') {
                  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())
                        }
                     }
                  })
               }
            })
            $(".jimu-widget-LeftNavigationBar .tree-layer-opcity .close").click(function () {
@@ -130,6 +181,7 @@
         },
         getData: function () {
            var that = this;
            var url = 'http://171.34.76.171:8880/pyh-wetResource/GeoData/queryGeoDataTree',
               that = this;
@@ -139,17 +191,20 @@
               }
            }).then((res) => {
               if (res.data.code == '200') {
                  console.log(res, 'open', 898998)
                  that.changeData(res.data.data); //重写数据
                  that.dataAllArray = res.data.data;
                  that.changeData(res.data.data, ''); //重写数据
                  that.begin(this.data);
               }
            })
         },
         changeData: function (val) { //重写数据
         changeData: function (val, type) { //重写数据
            var data = [],
               i = 1,
               inits = (d, childData) => {
                  var b = childData || [];
                  for (var k in d) {
                     let a = {
                        title: d[k].name,
@@ -160,7 +215,8 @@
                        src: d[k].serviceUrl,
                        id: d[k].id,
                        serviceName: d[k].serviceName,
                        alpha: 1
                        alpha: 1,
                        checked: d[k].menuStatus
                     }
                     if (d[k].serviceUrl.indexOf('.openrealspace') != -1) {
@@ -183,7 +239,6 @@
               };
            inits(val, data);
            // console.log(data)
            // var i = 0,
            //    ccinit = (a) => {
@@ -191,15 +246,66 @@
            //       for (let k in a) {
            //          if (a[k].children) {
            //             a[k].who = i;
            //             // console.log(a[k].id)
            //             ccinit(a[k].children)
            //          }
            //       }
            //    };
            // ccinit(this.data);
            // console.log(this.data)
            if (type != '') {
               for (var i = 0; i < data.length; i++) {
                  if (data[i].children && data[i].children.length > 0) {
                     deWeight()
                     function deWeight() {
                        for (var j = 0; j < data[i].children.length; j++) {
                           if (data[i].children[j].title.indexOf(type) == -1) {
                              data[i].children.splice(j, 1);
                              deWeight();
                              break;
                           }
                        }
                     }
                  }
               }
               deParentWeight()
               function deParentWeight() {
                  for (var i = 0; i < data.length; i++) {
                     if (data[i].children && data[i].children.length == 0) {
                        data.splice(i, 1)
                        deParentWeight();
                        break;
                     }
                     if (data[i].children == undefined && data[i].title.indexOf(type) == -1) {
                        data.splice(i, 1)
                        deParentWeight();
                        break;
                     }
                  }
               }
            }
            this.data = data;
            this.begin(this.data);
         },
         begin: function (data) {
            var that = this;
@@ -223,7 +329,6 @@
                  click: function (obj) {
                     var data = obj.data; //获取当前点击的节点数据
                     // layer.msg('状态:' + obj.state + '<br>节点数据:' + JSON.stringify(data));
                     console.log(obj);
                     // 树点击三角形样式修改
                     // var ot = $('.layui-tree-iconArrow');
                     // ot.removeClass("left-navigation-bar-main-down");
@@ -237,7 +342,7 @@
                  },
                  showLine: false, //是否开启连接线
                  oncheck: function (obj) {
                     console.log(obj.data.id, '--', obj.checked, obj); //得到当前点击的节点数据
                     // console.log(obj.data.id, '--', obj.checked, obj); //得到当前点击的节点数据
                     // console.log(obj.checked); //得到当前节点的展开状态:open、close、normal
                     // console.log(obj.elem); //得到当前节点元素
@@ -296,7 +401,7 @@
                                       that[item.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
                                          url: res[0].path,
                                       }));
                                       that[obj.data.id].alpha = item.alpha
                                       that[item.id].alpha = item.alpha
                                    }
                                 })
                              });
@@ -373,7 +478,6 @@
                                 type: 'get',
                                 dataType: 'JSON',
                                 success: function (res) {
                                    console.log(res, 123)
                                    that[obj.data.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
                                       url: res[0].path,
@@ -415,9 +519,7 @@
                        $(".jimu-widget-LeftNavigationBar .tree-layer-opcity ul").empty();
                        console.log(type, data, elem, depId, parentId)
                        // console.log(type, data, elem, depId, parentId)
                        if (data.children) {
@@ -441,7 +543,9 @@
                                 value: item.alpha * 10,
                                 step: 1,
                                 theme: '#1E9FFF',
                                 showstep: true,
                                 setTips: function (value) { //自定义提示文本
                                    return value / 10;
                                 },
                                 change: function (value) {
                                    item.alpha = value / 10
                                    if (that[item.id]) {
@@ -471,7 +575,9 @@
                              value: data.alpha * 10,
                              step: 1,
                              theme: '#1E9FFF',
                              showstep: true,
                              setTips: function (value) { //自定义提示文本
                                 return value / 10;
                              },
                              change: function (value) {
                                 data.alpha = value / 10
                                 if (that[data.id]) {
@@ -489,14 +595,20 @@
               });
               console.log($("#left-tree-list > .layui-tree > div"))
               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())
                  }
               }
@@ -509,7 +621,6 @@
                     layer.alert(JSON.stringify(checkedData), {
                        shade: 0
                     });
                     console.log(checkedData);
                  },
                  setChecked: function () {
                     tree.setChecked('demoId1', [12, 114]); //勾选指定节点