From 0039429882f8434000a0f61d6995324f1589633a Mon Sep 17 00:00:00 2001
From: seatonwan9 <seatonwan9@163.com>
Date: 星期日, 30 五月 2021 13:36:06 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop

---
 src/components/panel/RightSearchPanel.vue |  124 +++++++++++++++++++++++++++-------------
 1 files changed, 83 insertions(+), 41 deletions(-)

diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue
index 6df7286..e0b822c 100644
--- a/src/components/panel/RightSearchPanel.vue
+++ b/src/components/panel/RightSearchPanel.vue
@@ -12,7 +12,7 @@
                     </div>
                 </li>
             </ul> -->
-            <ul v-for="item in topicList" :key="item.name"
+            <ul v-for="item in list" :key="item.name"
                 :class="item.checked?'module-wrap map-btn-active':'module-wrap map-btn-unactive'"
                 @click="()=>{selected(item)}" v-show="item.isShow">
               <el-tooltip :popper-class="'map-tooltip'" effect="dark" :content="item.name" placement="left">
@@ -51,7 +51,7 @@
 <script>
 import EnvRiskSearch from './topicSearch/EnvRiskSearch'
 import DischargeSearch from './topicSearch/DischargeSearch'
-import { TopicList } from '../../conf/Topic'
+import { topicList } from '../../conf/Topic'
 
 import GasWasteSearch from '@components/panel/topicSearch/GasWasteSearch'
 import WaterWasteSearch from '@components/panel/topicSearch/WaterWasteSearch'
@@ -61,8 +61,6 @@
 import PipeChangesSearch from '@components/panel/topicSearch/pipeChangesSearch.vue'
 import PipeInformationSearch from '@components/panel/topicSearch/pipeInformationSearch.vue'
 import EnterpriseEmergencySearch from './topicSearch/EnterpriseEmergencySearch'
-
-import bus from '@/eventBus'
 
 export default {
   name: 'MonitorPanel',
@@ -78,7 +76,7 @@
     return {
       isShow: true,
       topicMenu: [],
-      topicList: TopicList,
+      list: topicList,
       topicCheckedList: [],
       isPanelVisible: false,
       gcComp: SewersSearch,
@@ -91,7 +89,11 @@
       selectGroup: false
     }
   },
-  computed: {},
+  computed: {
+    serviceLayers () {
+      return this.$store.state.map.serviceLayers.LayerSewersLine
+    }
+  }, /*
   watch: {
     '$store.state.map.topic.topicCheckedList': function (newVal, oldVal) {
       console.log(oldVal)
@@ -106,26 +108,46 @@
         })
       })
     }
-  },
+  }, */
   methods: {
     handleClose (done) {
       console.log(done)
     },
     setSearchPanelChange () {
+      // 鎼滅储闈㈡澘娌℃湁鏄剧ず鏃讹紝灏嗘墍鏈変富棰橀�夋嫨鐘舵�佽缃负false
       this.selectGroup = !this.selectGroup
       if (!this.selectGroup) {
-        this.topicList.forEach((itm) => {
+        this.list.forEach((itm) => {
           itm.checked = false
         })
       }
     },
+    unselected (val) {
+      // console.log(val)
+      this.selectGroup = true
+      this.list.forEach((itm) => {
+        if (itm.name === val.name) {
+          console.log(val.name)
+          itm.checked = false
+          itm.isShow = false
+        }
+      })
+    },
     selected (val) {
       // console.log(val)
-      this.title = val.name
       this.selectGroup = true
-      this.topicList.forEach((itm) => {
-        itm.checked = val.name === itm.name
+      this.list.forEach((itm) => {
+        if (itm.name === val.name) {
+          itm.isShow = true
+          itm.checked = true
+        } else {
+          itm.checked = false
+        }
       })
+      this.setComp(val)
+    },
+    setComp (val) {
+      this.title = val.name
       switch (val.name) {
         case '姹℃煋婧�':
           this.gcComp = DischargeSearch
@@ -160,9 +182,6 @@
       }
     },
     handlePage (page) {
-    },
-    handleGd () {
-      this.title = '绠¢亾淇℃伅鏌ヨ'
     },
     toggleMonitorPanel () {
       this.isCollapse = !this.isCollapse
@@ -204,37 +223,60 @@
       //     })
       //   }
     },
-    defaultLastOne () {
-      let v = {}
-      this.topicList.forEach((item) => {
-        if (item.isShow) {
-          v = item
+    containsLayer (layer) {
+      if (layer) {
+        for (let i = 0; i < layer.length; i++) {
+          const lay = layer[i]
+          const checked = lay.checked
+
+          for (let j = 0; j < this.list.length; j++) {
+            const topic = this.list[j]
+            if (lay.name === topic.name) {
+              if (lay.layers) {
+                const isChecked = this.isChecked(lay.layers)
+                if (isChecked) {
+                  this.selected(topic)
+                } else {
+                  this.unselected(topic)
+                }
+              } else if (checked) {
+                this.selected(topic)
+              }
+              break
+            }
+          }
+          this.containsLayer(lay.layers)
         }
-      })
-      this.selected(v)
+      }
+    },
+    isChecked (layers) {
+      for (let i = 0; i < layers.length; i++) {
+        const layer = layers[i]
+        const checked = layer.checked
+        if (checked) {
+          return true
+        }
+        if (layer.layers) {
+          return this.isChecked(layer.layers)
+        }
+      }
+      return false
     }
   },
   mounted () {
-    const that = this
-    bus.$on('changeSearchBar', function (obj) {
-      that.gcComp = ''
-      that.topicList.forEach((item) => {
-        if (item.name === obj.name) {
-          if (obj.type > 0) {
-            item.isShow = true
-          } else {
-            item.isShow = false
-          }
-          // item.isShow = obj.checked
-          if (item.isShow) {
-            that.selected(item)
-          } else {
-            that.defaultLastOne()
-          }
-        }
-      })
-    })
-  //  console.log(that.topicList)
+    /* bus.$on('changeSearchBar', (obj) => {
+      const topic = this.search(this.serviceLayers, obj)
+      console.log('====' + JSON.stringify(topic))
+    }) */
+  },
+  watch: {
+    serviceLayers: {
+      handler: function (newVal, oldVal) {
+        this.containsLayer(newVal)
+      },
+      immediate: true,
+      deep: true
+    }
   }
 }
 </script>

--
Gitblit v1.8.0