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

---
 public/assets/images/map-pages/title_bg2.png                                            |    0 
 src/components/panel/RightSearchPanel.vue                                               |  124 ++++--
 src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue  |  174 ++++++--
 src/conf/Topic.js                                                                       |    4 
 src/components/helpers/MapManager.js                                                    |    5 
 src/views/popup/DynamicHeader/DynamicTable.vue                                          |   43 ++
 src/components/LayerController/modules/LcServiceLayer.vue                               |   44 ++
 public/assets/images/map-pages/title_bg.png                                             |    0 
 src/components/base-page/WasteWater/WasteWaterHoursChart.vue                            |  227 +++++++++--
 src/components/base-page/WasteWater/WasteWaterIndex.vue                                 |   21 
 src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue   |   40 +
 src/components/table/components/tabHandover.vue                                         |    7 
 src/conf/Constants.js                                                                   |   17 
 src/views/popup/DynamicHeader/TableColumn.vue                                           |   24 +
 src/components/base-page/PublicDataStandard.vue                                         |   13 
 src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue |  139 ++++--
 src/components/base-page/WasteWater/WasteWaterDayChart.vue                              |  243 +++++++++---
 src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue        |    4 
 src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue                    |    2 
 src/App.vue                                                                             |    6 
 20 files changed, 843 insertions(+), 294 deletions(-)

diff --git a/public/assets/images/map-pages/title_bg.png b/public/assets/images/map-pages/title_bg.png
new file mode 100644
index 0000000..0f0b6cd
--- /dev/null
+++ b/public/assets/images/map-pages/title_bg.png
Binary files differ
diff --git a/public/assets/images/map-pages/title_bg2.png b/public/assets/images/map-pages/title_bg2.png
new file mode 100644
index 0000000..642a42f
--- /dev/null
+++ b/public/assets/images/map-pages/title_bg2.png
Binary files differ
diff --git a/src/App.vue b/src/App.vue
index 6b056a7..a2535d8 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -29,5 +29,9 @@
   -ms-overflow-style: none;
   font-size: 12px;
 }
-
+.popoverBoxStyle{
+  border: 0.00521rem solid #00fff6;
+  box-shadow: 0 0 0.03rem #00fff6;
+  background-color: rgba(0, 16, 30, 0.7) !important;
+}
 </style>
diff --git a/src/components/LayerController/modules/LcServiceLayer.vue b/src/components/LayerController/modules/LcServiceLayer.vue
index acb38a6..eb0472f 100644
--- a/src/components/LayerController/modules/LcServiceLayer.vue
+++ b/src/components/LayerController/modules/LcServiceLayer.vue
@@ -7,17 +7,17 @@
                     <i class="downUp el-icon-caret-bottom" @click="item.isShow=!item.isShow" :class="item.isShow?'':'active'" ></i><!-- el-icon-arrow-down -->
                     <!-- 涓�绾у浘灞傞亶鍘� -->
                     <div style="padding-left:25px;padding-top:10px;color:#fff;font-size: 16px;">
-                        <input type="checkbox"  :class="item.type==1?'active':''" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" @change="swAllLayers(item)"/>{{ item.name }}
+                        <input type="checkbox" :class="{ 'active': item.type === 1 }" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" @change="swAllLayers(item)"/>{{ item.name }}
                     </div>
                     <div class="layerbox-item" v-show="item.isShow" >
                         <!-- 浜岀骇鍥惧眰閬嶅巻 -->
                         <div class="basemap-layer-item" v-for="(itm,index2) in item.layers" :key="index2" :class="!itm.layers?'felxs':''" >
-                            <input type="checkbox" :class="itm.type==1?'active':''" :name="'wmsSublayers_'+item.code+'_'+itm.code" :checked="itm.checked" :value="itm.code" @change="swAllLayers(itm)"/>{{ itm.name }}
+                            <input type="checkbox" :class="{ 'active': itm.type === 1 }" :name="'wmsSublayers_'+item.code+'_'+itm.code" :checked="itm.checked" :value="itm.code" @change="swAllLayers(itm)"/>{{ itm.name }}
                             <!-- 涓夌骇鍥惧眰閬嶅巻 -->
                             <div class="layerbox-item-3" v-show="itm.layers">
                                 <div class="basemap-layer-item" v-for="(layer,index3) in itm.layers" :key="index3">
                                     <input type="checkbox"
-                                           :class="layer.type==1?'active':''"
+                                           :class="{ 'active': layer.type === 1 }"
                                            :name="'wmsSublayers_'+item.code+'_'+layer.code"
                                            :checked="layer.checked"
                                            :value="layer.code"
@@ -36,7 +36,7 @@
 
 <script>
 import LcServiceLayerFilter from '@components/LayerController/modules/LcServiceLayerFilter'
-import bus from '@/eventBus'
+
 export default {
   name: 'LcServiceLayer',
   components: { LcServiceLayerFilter },
@@ -68,6 +68,8 @@
       } else {
         this.toggleLayer(item)
       }
+      /* <<<<<<< HEAD
+      bus.$emit('changeSearchBar', item)
       this.serviceLayers.forEach(function (item1, index1) {
         if (item1.layers) {
           item1.istrue = 0
@@ -112,6 +114,7 @@
           // console.log(item1.layers.length, item1.istrue, item1.isfalse, item1.type)
         }
       })
+>>>>>>> de7390c66ef3e3fe316e804495a78d05a01f0160 */
       // console.log(this.serviceLayers)
     },
     swLayers (configs, checked) {
@@ -126,6 +129,30 @@
         }
       }
     },
+    setLayerType (configs, checkedSum) {
+      if (configs) {
+        for (let i = 0, len = configs.length; i < len; ++i) {
+          const config = configs[i]
+          const checked = config.checked
+          if (config.layers) {
+            checkedSum = this.setLayerType(config.layers, checkedSum || 0)
+            if (checkedSum === config.layers.length) {
+              config.type = 2
+              config.checked = true
+            } else if (checkedSum === 0) {
+              config.type = 0
+              config.checked = false
+            } else {
+              config.type = 1
+            }
+            checkedSum = 0
+            continue
+          }
+          checkedSum = checkedSum + (checked ? 1 : 0)
+        }
+        return checkedSum
+      }
+    },
     toggleLayer (itm) {
       if (itm.checked) {
         window.layerFactory.show(itm)
@@ -134,6 +161,15 @@
       }
       // this.updateWms()
     }
+  },
+  watch: {
+    serviceLayers: {
+      handler: function (val) {
+        this.setLayerType(val, 0)
+      },
+      immediate: true,
+      deep: true
+    }
   }
 }
 </script>
diff --git a/src/components/base-page/PublicDataStandard.vue b/src/components/base-page/PublicDataStandard.vue
index df75eaf..164801f 100644
--- a/src/components/base-page/PublicDataStandard.vue
+++ b/src/components/base-page/PublicDataStandard.vue
@@ -7,7 +7,7 @@
       <!--      <span class="grid-content">搴熸皵娴侀噺 : <i style="color: #e8ee0b">120343.18</i></span>-->
       <span class="grid-content" v-for="item in dataStandard" :key="item.current.name">{{ item.current.name }} :
         <i style="color: #e8ee0b">{{ item.current.val }}</i>  {{
-          item.standard.name ? item.standard.name + ':' : ''
+          item.standard.name && item.current.name.indexOf('娴侀噺') === -1 ? item.standard.name + ':' : ''
         }} <i style="color: #fff">{{ item.standard.val }}</i></span>
     </div>
   </div>
@@ -16,6 +16,11 @@
 <script>
 export default {
   name: 'PublicDataStandard',
+  watch: {
+    dataStandard (val, oldVal) {
+      this.dataStandard = val
+    }
+  },
   props: {
     dataStandard: {
       type: Array,
@@ -31,12 +36,12 @@
 .animation {
   .information {
     .grid-content {
-      padding: 0.02rem;
-      background-color: #2e4967;
+      padding: 0.03rem 0.08rem 0.03rem 0.08rem;
       text-align: center;
       border-radius: 0.02rem;
       line-height: 0.15rem;
-      margin: 0 0.05rem;
+      margin: 0 0.03rem;
+      box-shadow: 0 0 10px rgba(129,211,248,.35) inset;
     }
   }
 }
diff --git a/src/components/base-page/WasteWater/WasteWaterDayChart.vue b/src/components/base-page/WasteWater/WasteWaterDayChart.vue
index 1fcb2c9..8f0bce3 100644
--- a/src/components/base-page/WasteWater/WasteWaterDayChart.vue
+++ b/src/components/base-page/WasteWater/WasteWaterDayChart.vue
@@ -13,7 +13,14 @@
                 <el-option v-for="(item,index) in formData.regionList" :key="index" :label="item" :value="item"></el-option>
             </el-select>
             <el-button @click="querySearch()">鏌ヨ</el-button>
-            <el-button>鏄庣粏琛�</el-button>
+            <el-popover
+                placement="top"
+                width="100%"
+                popper-class="popoverBoxStyle"
+                trigger="click">
+              <dynamic-table :tableData="tableData" :tableHeader="tableConfig" v-if="tableData"></dynamic-table>
+              <el-button slot="reference">鏄庣粏琛�</el-button>
+            </el-popover>
         </div>
         <div class="echarts-chart">
             <div ref="echartsDay"></div>
@@ -26,56 +33,19 @@
 import dayjs from 'dayjs'
 import PublicDataStandard from '../PublicDataStandard'
 import mapApi from '@/api/mapApi'
+import DynamicTable from '../../../views/popup/DynamicHeader/DynamicTable' // 澶氱骇琛ㄥご
 
 export default {
   name: 'WasteWaterDayChart',
   components: {
-    PublicDataStandard
+    PublicDataStandard,
+    DynamicTable
   },
   data () {
     return {
       // tab鏍忎紶閫掓帴鏀舵暟鎹�
-      dataStandard: [
-        {
-          current: {
-            name: '姘哀鍖栫墿',
-            val: 29.93
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 100
-          }
-        },
-        {
-          current: {
-            name: '浜屾哀鍖栫~',
-            val: 17.34
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 50
-          }
-        },
-        {
-          current: {
-            name: '鐑熷皹',
-            val: 6.93
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 30
-          }
-        },
-        {
-          current: {
-            name: '搴熸皵娴侀噺',
-            val: 120
-          },
-          standard: {
-            name: '',
-            val: null
-          }
-        }],
+      dataStandard: [],
+      tableData: null,
       formData: {
         region: '25',
         regionList: [25, 50, 75, 100],
@@ -86,7 +56,98 @@
       dataType: 1,
       jcdID: 1,
       bzz: null,
-      bzzList: []
+      bzzList: [],
+      // 琛ㄥご鏁版嵁
+      tableConfig: [
+        {
+          id: 100,
+          label: '鎺掓斁鐐�',
+          prop: 'OnLineMonEmissPointName'
+        },
+        {
+          id: 200,
+          label: '鐩戞祴鏃堕棿',
+          prop: 'MonTimeStr'
+        },
+        {
+          id: 300,
+          label: 'COD',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 310,
+              label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+              prop: 'COD_EmissQty'
+            },
+            {
+              id: 320,
+              label: '瀹炴祴娴撳害锛坢g/l锛�',
+              prop: 'COD_MonQty'
+            },
+            {
+              id: 330,
+              label: '鏍囧噯鍊硷紙mg/l锛�',
+              prop: 'COD_StdValue'
+            }
+          ]
+        },
+        {
+          id: 400,
+          label: '姘ㄦ爱',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 410,
+              label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+              prop: '姘ㄦ爱_EmissQty'
+            },
+            {
+              id: 420,
+              label: '瀹炴祴娴撳害锛坢g/l锛�',
+              prop: '姘ㄦ爱_MonQty'
+            },
+            {
+              id: 430,
+              label: '鏍囧噯鍊硷紙mg/l锛�',
+              prop: '姘ㄦ爱_StdValue'
+            }
+          ]
+        },
+        {
+          id: 500,
+          label: 'PH',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 510,
+              label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+              prop: 'pH_EmissQty'
+            },
+            {
+              id: 520,
+              label: '瀹炴祴娴撳害锛坢g/l锛�',
+              prop: 'pH_MonQty'
+            },
+            {
+              id: 530,
+              label: '鏍囧噯鍊硷紙mg/l锛�',
+              prop: 'pH_StdValue'
+            }
+          ]
+        },
+        {
+          id: 600,
+          label: '搴熸按娴侀噺',
+          prop: '',
+          children: [
+            {
+              id: 610,
+              label: '瀹炴祴娴侀噺锛坢鲁/h锛�',
+              prop: '搴熸按娴侀噺_MonQty'
+            }
+          ]
+        }
+      ]
     }
   },
   mounted () {
@@ -104,7 +165,7 @@
         poltMtrlId: '',
         emissTypeId: '',
         onLineMonEmissPointId: 23,
-        monItemId: 28,
+        monItemId: '28,31,35', // 鐩戞祴椤�  COD銆佹皑姘�丳H
         beginTime: this.formData.timeStart,
         endTime: this.formData.timeEnd,
         dataType: this.dataType
@@ -114,6 +175,8 @@
     },
     get24HourDate (res) {
       if (res.length > 0) {
+        this.dataStandard = []
+        this.tableData = this.analysisResult(res) // 灏忔椂鏄庣粏琛ㄨВ鏋愮粨鏋�
         // 澶勭悊鏁版嵁寮�濮�
         const d = res
         const nameList = [] // 瀛樻斁鍥句緥
@@ -148,19 +211,44 @@
           if (nameList.length === 0) {
             nameList.push(d[i].PoltmtrlName.trim())
             dateList.push(strDate)
-
+            this.dataStandard.push({
+              current: {
+                name: d[i].PoltmtrlName.trim(),
+                val: ''
+              },
+              standard: {
+                name: '鏍囧噯',
+                val: ''
+              }
+            })
             bzh.push(d[i].StdValue)
             data = {
               name: d[i].PoltmtrlName.trim(),
-              data: [d[i].MonQty]
+              data: []
+            }
+            if (d[i].MonQty !== null) {
+              data.data.push(d[i].MonQty)
             }
             dataList.push(data)
           } else if (nameList.indexOf(d[i].PoltmtrlName.trim()) < 0) {
             nameList.push(d[i].PoltmtrlName)
             bzh.push(d[i].StdValue)
+            this.dataStandard.push({
+              current: {
+                name: d[i].PoltmtrlName.trim(),
+                val: ''
+              },
+              standard: {
+                name: '鏍囧噯',
+                val: ''
+              }
+            })
             data = {
               name: d[i].PoltmtrlName.trim(),
-              data: [d[i].MonQty]
+              data: []
+            }
+            if (d[i].MonQty !== null) {
+              data.data.push(d[i].MonQty)
             }
             dataList.push(data)
           } else {
@@ -169,7 +257,7 @@
             }
             for (let j = 0; j < dataList.length; j++) {
               if (d[i].PoltmtrlName.trim() === dataList[j].name) {
-                dataList[j].data.push(d[i].MonQty)
+                if (d[i].MonQty !== null)dataList[j].data.push(d[i].MonQty)
               }
             }
           }
@@ -265,7 +353,10 @@
           }
           ydatas.push(ydata)
         }
-
+        for (var t = 0; t < this.dataStandard.length; t++) {
+          this.dataStandard[t].current.val = ydatas[t].data[ydatas[t].data.length - 1].toFixed(2)
+          this.dataStandard[t].standard.val = ydatas[t].bzz
+        }
         const yname = '娴撳害(mg/l)'
         this.effChartShow(legend, xdata, ydatas, yname, this.jcdID, this.datatype)
       }
@@ -273,7 +364,6 @@
     effChartShow (legend, xdata, ydatas, yname, jcdID, datatype) {
       this.chart = this.$echarts.init(this.$refs.echartsDay)
       this.chart.clear()
-      // console.log(this.chart)
       this.chart.clear()
       let dataUnit = ''
       if (datatype === 1) {
@@ -302,12 +392,14 @@
                       biaozhuiz = bzzList[i].bzhui
                     }
                   }
-                  if (c.value[1] > biaozhuiz) {
-                    return zdcbcolor
-                  } else if (c.value[1] > biaozhuiz * 0.9) {
-                    return '#FFA500'
-                  } else {
-                    return '#33c95f'
+                  if (c.value) {
+                    if (c.value[1] > biaozhuiz) {
+                      return zdcbcolor
+                    } else if (c.value[1] > biaozhuiz * 0.9) {
+                      return '#FFA500'
+                    } else {
+                      return '#33c95f'
+                    }
                   }
                 },
                 lineStyle: { // 鎶樼嚎鐨勯鑹�
@@ -544,6 +636,43 @@
       }
       this.chart.setOption(option)
       window.onresize = this.chart.resize
+    },
+    analysisResult (result) {
+      // 澶勭悊琛ㄦ牸澶�
+      const json = {}
+      const arr = []
+      // 澶勭悊琛ㄦ牸鍐呭
+      const bodyDataList = []
+      const dataMap = {}
+      for (let i = 0; i < result.length; i++) {
+        json[result[i].PoltmtrlName] = result[i].PoltmtrlName
+        const rgdata = result[i]
+        const timeTag = rgdata.MonTimeStr
+        if (!dataMap[timeTag]) {
+          dataMap[timeTag] = { MonTimeStr: '' + rgdata.MonTimeStr }
+        }
+        // 寰�鏁版嵁涓坊鍔犲睘鎬ф暟鎹�
+        const el = dataMap[timeTag]
+        el.OnLineMonEmissPointName = rgdata.OnLineMonEmissPointName
+        el[rgdata.PoltmtrlName + '_EmissQty'] = rgdata.EmissQty ? rgdata.EmissQty.toFixed(2) : '--'
+        el[rgdata.PoltmtrlName + '_MonQty'] = rgdata.MonQty ? rgdata.MonQty.toFixed(2) : '--'
+        el[rgdata.PoltmtrlName + '_StdValue'] = rgdata.StdValue ? rgdata.StdValue.toFixed(2) : '--'
+      }
+      let FSLLtemp = null
+      for (var key in json) {
+        if (key === '搴熸按娴侀噺' || key === '搴熸按') {
+          FSLLtemp = key
+        } else {
+          arr.push(key)
+        }
+      }
+      if (FSLLtemp != null) {
+        arr.push(FSLLtemp)
+      }
+      for (var p in dataMap) {
+        bodyDataList.push(dataMap[p])
+      }
+      return bodyDataList
     }
   }
 }
diff --git a/src/components/base-page/WasteWater/WasteWaterHoursChart.vue b/src/components/base-page/WasteWater/WasteWaterHoursChart.vue
index 2acfe80..6cdefb1 100644
--- a/src/components/base-page/WasteWater/WasteWaterHoursChart.vue
+++ b/src/components/base-page/WasteWater/WasteWaterHoursChart.vue
@@ -13,7 +13,14 @@
         <el-option v-for="(item,index) in formData.regionList" :key="index" :label="item" :value="item"></el-option>
       </el-select>
       <el-button @click="querySearch()">鏌ヨ</el-button>
-      <el-button>鏄庣粏琛�</el-button>
+      <el-popover
+          placement="top"
+          width="100%"
+          popper-class="popoverBoxStyle"
+          trigger="click">
+        <dynamic-table :tableData="tableData" :tableHeader="tableConfig" v-if="tableData"></dynamic-table>
+        <el-button slot="reference">鏄庣粏琛�</el-button>
+      </el-popover>
     </div>
     <div class="echarts-chart">
       <div ref="echartsHour"></div>
@@ -26,56 +33,21 @@
 import PublicDataStandard from '../PublicDataStandard'
 import dayjs from 'dayjs'
 import mapApi from '../../../api/mapApi'
+import DynamicTable from '../../../views/popup/DynamicHeader/DynamicTable' // 澶氱骇琛ㄥご
 
 export default {
   name: 'WasteWaterHoursChart',
   components: {
-    PublicDataStandard
+    PublicDataStandard,
+    DynamicTable
   },
   data () {
     return {
       // tab鏍忎紶閫掓帴鏀舵暟鎹�
-      dataStandard: [
-        {
-          current: {
-            name: '姘哀鍖栫墿',
-            val: 29.93
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 100
-          }
-        },
-        {
-          current: {
-            name: '浜屾哀鍖栫~',
-            val: 17.34
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 50
-          }
-        },
-        {
-          current: {
-            name: '鐑熷皹',
-            val: 6.93
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 30
-          }
-        },
-        {
-          current: {
-            name: '搴熸皵娴侀噺',
-            val: 123
-          },
-          standard: {
-            name: '',
-            val: null
-          }
-        }],
+      dataStandard: [],
+      popUpName: '',
+      tableData: null,
+      mingxiBoxHtml: '',
       formData: {
         region: '25',
         regionList: [25, 50, 75, 100],
@@ -87,7 +59,98 @@
       dataType: 2,
       bzz: null,
       bzzList: [],
-      bz: ''
+      bz: '',
+      // 琛ㄥご鏁版嵁
+      tableConfig: [
+        {
+          id: 100,
+          label: '鎺掓斁鐐�',
+          prop: 'OnLineMonEmissPointName'
+        },
+        {
+          id: 200,
+          label: '鐩戞祴鏃堕棿',
+          prop: 'MonTimeStr'
+        },
+        {
+          id: 300,
+          label: 'COD',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 310,
+              label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+              prop: 'COD_EmissQty'
+            },
+            {
+              id: 320,
+              label: '瀹炴祴娴撳害锛坢g/l锛�',
+              prop: 'COD_MonQty'
+            },
+            {
+              id: 330,
+              label: '鏍囧噯鍊硷紙mg/l锛�',
+              prop: 'COD_StdValue'
+            }
+          ]
+        },
+        {
+          id: 400,
+          label: '姘ㄦ爱',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 410,
+              label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+              prop: '姘ㄦ爱_EmissQty'
+            },
+            {
+              id: 420,
+              label: '瀹炴祴娴撳害锛坢g/l锛�',
+              prop: '姘ㄦ爱_MonQty'
+            },
+            {
+              id: 430,
+              label: '鏍囧噯鍊硷紙mg/l锛�',
+              prop: '姘ㄦ爱_StdValue'
+            }
+          ]
+        },
+        {
+          id: 500,
+          label: 'PH',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 510,
+              label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+              prop: 'pH_EmissQty'
+            },
+            {
+              id: 520,
+              label: '瀹炴祴娴撳害锛坢g/l锛�',
+              prop: 'pH_MonQty'
+            },
+            {
+              id: 530,
+              label: '鏍囧噯鍊硷紙mg/l锛�',
+              prop: 'pH_StdValue'
+            }
+          ]
+        },
+        {
+          id: 600,
+          label: '搴熸按娴侀噺',
+          prop: '',
+          children: [
+            {
+              id: 610,
+              label: '瀹炴祴娴侀噺锛坢鲁/h锛�',
+              prop: '搴熸按娴侀噺_MonQty'
+            }
+          ]
+        }
+      ]
     }
   },
   mounted () {
@@ -105,18 +168,20 @@
         poltMtrlId: '',
         emissTypeId: '',
         onLineMonEmissPointId: 23,
-        monItemId: 28,
+        monItemId: '28,31,35', // 鐩戞祴椤�  COD銆佹皑姘�丳H
         beginTime: this.formData.startTime,
         endTime: this.formData.endTime,
         dataType: this.dataType
       }
       const result = (await mapApi.getQueryOnlineMonData(data)).Result.DataInfo
-      // console.log(result)
+      this.popUpName = result[0].OnLineMonEmissPointName
       this.get24HourDate(result)
     },
     // 缁樺埗灏忔椂鏁版嵁鎶樼嚎鍥�
     get24HourDate (result) {
       if (result.length > 0) {
+        this.dataStandard = []
+        this.tableData = this.analysisResult(result) // 灏忔椂鏄庣粏琛ㄨВ鏋愮粨鏋�
         const d = result
         const nameList = [] // 瀛樻斁鍥句緥
         const dateList = [] // 瀛樻斁鏃堕棿
@@ -170,24 +235,43 @@
               }
             }
           }
-
           if (nameList.length === 0) {
             nameList.push(d[i].PoltmtrlName.trim())
+            this.dataStandard.push({
+              current: {
+                name: d[i].PoltmtrlName.trim(),
+                val: 29.93
+              },
+              standard: {
+                name: '鏍囧噯',
+                val: 100
+              }
+            })
             dateList.push(strDate)
             if ((d[i].PoltmtrlName === '搴熸按娴侀噺' || d[i].PoltmtrlName === '搴熸按') && d[i].MonQty < 0) {
               d[i].MonQty = 0
             }
-            data.push(d[i].MonQty)
+            if (d[i].MonQty !== null)data.push(d[i].MonQty)
             bzh.push(d[i].StdValue)
           } else if (nameList.indexOf(d[i].PoltmtrlName.trim()) < 0) {
             nameList.push(d[i].PoltmtrlName)
+            this.dataStandard.push({
+              current: {
+                name: d[i].PoltmtrlName.trim(),
+                val: 29.93
+              },
+              standard: {
+                name: '鏍囧噯',
+                val: 100
+              }
+            })
             bzh.push(d[i].StdValue)
             dataList.push(data)
             data = []
             if ((d[i].PoltmtrlName === '搴熸按娴侀噺' || d[i].PoltmtrlName === '搴熸按') && d[i].MonQty < 0) {
               d[i].MonQty = 0
             }
-            data.push(d[i].MonQty)
+            if (d[i].MonQty !== null)data.push(d[i].MonQty)
           } else if (i === d.length - 1) {
             if ((d[i].PoltmtrlName === '搴熸按娴侀噺' || d[i].PoltmtrlName === '搴熸按') && d[i].MonQty < 0) {
               d[i].MonQty = 0
@@ -202,10 +286,9 @@
             if ((d[i].PoltmtrlName === '搴熸按娴侀噺' || d[i].PoltmtrlName === '搴熸按') && d[i].MonQty < 0) {
               d[i].MonQty = 0
             }
-            data.push(d[i].MonQty)
+            if (d[i].MonQty !== null)data.push(d[i].MonQty)
           }
         }
-
         const newList = []
 
         for (let i = 0; i < dataList.length; i++) {
@@ -291,7 +374,10 @@
         // console.log(ydatas)
 
         const yname = '娴撳害(mg/l)'
-
+        for (var t = 0; t < this.dataStandard.length; t++) {
+          this.dataStandard[t].current.val = ydatas[t].data[ydatas[t].data.length - 1].toFixed(2)
+          this.dataStandard[t].standard.val = ydatas[t].bzz
+        }
         this.effChartShow(legend, xdata, ydatas, yname, this.jcdID, this.datatype)
       }
     },
@@ -570,6 +656,43 @@
       }
       this.chart.setOption(option)
       window.onresize = this.chart.resize
+    },
+    analysisResult (result) {
+      // 澶勭悊琛ㄦ牸澶�
+      const json = {}
+      const arr = []
+      // 澶勭悊琛ㄦ牸鍐呭
+      const bodyDataList = []
+      const dataMap = {}
+      for (let i = 0; i < result.length; i++) {
+        json[result[i].PoltmtrlName] = result[i].PoltmtrlName
+        const rgdata = result[i]
+        const timeTag = rgdata.MonTimeStr
+        if (!dataMap[timeTag]) {
+          dataMap[timeTag] = { MonTimeStr: '' + rgdata.MonTimeStr }
+        }
+        // 寰�鏁版嵁涓坊鍔犲睘鎬ф暟鎹�
+        const el = dataMap[timeTag]
+        el.OnLineMonEmissPointName = rgdata.OnLineMonEmissPointName
+        el[rgdata.PoltmtrlName + '_EmissQty'] = rgdata.EmissQty ? rgdata.EmissQty.toFixed(2) : '--'
+        el[rgdata.PoltmtrlName + '_MonQty'] = rgdata.MonQty ? rgdata.MonQty.toFixed(2) : '--'
+        el[rgdata.PoltmtrlName + '_StdValue'] = rgdata.StdValue ? rgdata.StdValue.toFixed(2) : '--'
+      }
+      let FSLLtemp = null
+      for (var key in json) {
+        if (key === '搴熸按娴侀噺' || key === '搴熸按') {
+          FSLLtemp = key
+        } else {
+          arr.push(key)
+        }
+      }
+      if (FSLLtemp != null) {
+        arr.push(FSLLtemp)
+      }
+      for (var p in dataMap) {
+        bodyDataList.push(dataMap[p])
+      }
+      return bodyDataList
     }
   }
 }
diff --git a/src/components/base-page/WasteWater/WasteWaterIndex.vue b/src/components/base-page/WasteWater/WasteWaterIndex.vue
index 0e8c77a..d5c3167 100644
--- a/src/components/base-page/WasteWater/WasteWaterIndex.vue
+++ b/src/components/base-page/WasteWater/WasteWaterIndex.vue
@@ -84,26 +84,26 @@
   display: flex;
   align-items: center;
   justify-content: space-between;
-  padding: 5px 0;
+  padding-left: 0.07rem;
   border-bottom: 1px #243a55 solid;
-
   .navigation-left {
     display: flex;
     align-items: center;
 
     .uncheck {
-      margin: 0 10px;
       cursor: pointer;
-      padding: 5px;
+      margin-left: -0.05rem;
+      width: .8rem;
+      padding: 6px 0;
       /*border: 1px solid #2b87c8;*/
       /*border-radius: 4px;*/
+      background-position: 0 0;
+      background-repeat: no-repeat;
+      background-size: 100% 100%;
+      background-image: url("../../../../public/assets/images/map-pages/title_bg.png");
       text-align: center;
       vertical-align: middle !important;
       color: #fff;
-      -webkit-transform: skew(30deg);
-      -moz-transform: skew(30deg);
-      -o-transform: skew(30deg);
-      transform: skew(15deg);
     }
 
     .default-uncheck {
@@ -113,15 +113,13 @@
     }
 
     .hover {
-      background-color: #0e539e;
+      background-image: url("../../../../public/assets/images/map-pages/title_bg2.png");
       color: #ffffff;
       cursor: pointer;
     }
 
     .hover:hover {
       cursor: pointer;
-      padding: 5px;
-      border: 1px solid #5F9EA0;
       border-radius: 4px;
       text-align: center;
       color: #F0FFFF;
@@ -129,7 +127,6 @@
   }
 
   .navigation-left :hover {
-    background-color: #0e639e;
     color: #fff;
     cursor: pointer;
   }
diff --git a/src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue b/src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue
index 85d1972..71adc84 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue
@@ -127,8 +127,8 @@
                 </el-form-item>
             </div>
             <el-form-item class="confirmCancel">
-                <el-button type="primary" @click="submitForm('ruleForm')">纭</el-button>
-                <el-button @click="resetForm('ruleForm')">鍙栨秷</el-button>
+                <el-button type="primary" size="small" @click="submitForm('ruleForm')">纭</el-button>
+                <el-button size="small" @click="resetForm('ruleForm')">鍙栨秷</el-button>
             </el-form-item>
         </el-form>
         <el-dialog
diff --git a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue
index 96388b5..58c1bc9 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue
@@ -3,28 +3,42 @@
         <el-row class="place-box">
             <div class="place-left">
                 <el-form :model="LongLatPos" label-width="90px">
-                    <el-form-item label="缁忓害:">
-                        <el-input v-model="LongLatPos.longPos"></el-input>
-                    </el-form-item>
-                    <el-form-item label="绾害:">
-                        <el-input v-model="LongLatPos.latPos"></el-input>
-                    </el-form-item>
+                    <el-row style="display: flex;align-items: center">
+                        <el-form-item label="缁忓害:" style="display: inline-block">
+                            <el-col :span="20">
+                                <el-input v-model="LongLatPos.longPos"></el-input>
+                            </el-col>
+                        </el-form-item>
+                        <el-col :span="4">
+                            <el-button type="primary" size="small" @click="mapPoints">鐐瑰嚮瀹氫綅</el-button>
+                        </el-col>
+                    </el-row>
+                    <el-row style="display: flex;align-items: center">
+                        <el-form-item label="绾害:">
+                            <el-col :span="20">
+                                <el-input v-model="LongLatPos.latPos"></el-input>
+                            </el-col>
+                        </el-form-item>
+                        <el-col :span="4">
+                            <el-button type="primary" size="small" @click="dataPoints">鏁版嵁瀹氫綅</el-button>
+                        </el-col>
+                    </el-row>
                 </el-form>
             </div>
-            <div class="place-right">
-                <el-button type="primary" size="small" @click="mapPoints">鐐瑰嚮瀹氫綅</el-button>
-                <el-button type="primary" size="small" @click="dataPoints">鏁版嵁瀹氫綅</el-button>
-            </div>
+            <!--            <div class="place-right">-->
+            <!--                <el-button type="primary" size="small" @click="mapPoints">鐐瑰嚮瀹氫綅</el-button>-->
+            <!--                <el-button type="primary" size="small" @click="dataPoints">鏁版嵁瀹氫綅</el-button>-->
+            <!--            </div>-->
         </el-row>
         <div class="place-bottom" style="text-align: right;margin: 5px">
-            <el-button type="primary" @click="confirm">纭</el-button>
+            <el-button type="primary" @click="confirm" size="small">纭</el-button>
         </div>
     </div>
 </template>
 
 <script>
 import { pulseEffect } from '../../../../utils/utils'
-import iconUrl from '../../../../../public/assets/images/map/loc.png'
+import iconUrl from '../../../../../public/assets/images/map/marker-icon.png'
 import eventBus from '../../../../eventBus'
 
 export default {
@@ -52,7 +66,7 @@
         this.marker = window.L.marker(as, {
           icon: window.L.icon({
             iconUrl: iconUrl,
-            iconSize: [30, 30],
+            iconSize: [25, 45],
             iconAnchor: [15, 15]
           })
         })
diff --git a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue
index 709627b..fbd79d3 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue
@@ -3,23 +3,45 @@
         <el-row>
             <el-input type="text" v-model="clickLocation" clearable @change="focusLocation"></el-input>
         </el-row>
-        <el-scrollbar style="height:86.22px">
-            <el-row v-for="(item,index) in searchList" :key="index" style="display: flex;align-items: center">
-                <el-col :span="12">
-                    <span>{{ item.name }}</span>
-                </el-col>
-                <el-col :span="12">
-                    <el-button type="primary" size="mini" icon="el-icon-position" @click="locationMapClick(item)">瀹氫綅
-                    </el-button>
-                </el-col>
-                <!--            <el-pagination-->
-                <!--                    layout="prev, pager, next"-->
-                <!--                    :total="50">-->
-                <!--            </el-pagination>-->
-            </el-row>
-        </el-scrollbar>
+        <!--        <el-scrollbar style="height:250.34px">-->
+        <el-row v-for="(item,index) in searchList.slice((currentPage-1)*pageSize,currentPage*pageSize)" :key="index"
+                style="display: flex;align-items: center;margin: 0.1343rem 15px;text-align: left"
+                class="environmental-risk-list">
+            <el-col :span="4">
+                <img src="../../../../../public/assets/images/map/marker-icon.png" alt="" class="state"
+                     style="background: none;margin: 0 15px">
+            </el-col>
+            <el-col :span="12">
+                <div class=search-list>
+                    <!--                        <h4 :class="activeNum===index?'hover':''" @click="handleLocation(index)">鍚嶇О锛�<h3 style="display: inline-block">{{ item.name }}</h3></h4>-->
+                    <h3 :class="activeNum===index?'hover':''" @click="handleLocation(index)">鍚嶇О锛歿{ item.name }}</h3>
+                    <p style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden">鍦板潃锛�<span>{{ item.address }}</span>
+                    <p>鐢佃瘽锛�<span>{{ item.phone }}</span></p>
+                </div>
+            </el-col>
+            <el-col :span="8" style="text-align: right">
+                <el-button type="primary" size="mini" icon="el-icon-position" @click="locationMapClick(item,index)">
+                    瀹氫綅
+                </el-button>
+            </el-col>
+        </el-row>
+        <!--        </el-scrollbar>-->
+        <!--        <el-card class="footer-page" >-->
+        <div v-if="total > 10">
+            <el-pagination
+                    small
+                    @current-change="handlePage"
+                    :page-size=pageSize
+                    :current-page.sync="currentPage"
+                    layout="prev, pager, next"
+                    :total=total
+                    class="warnPagination"
+            >
+            </el-pagination>
+        </div>
+        <!--        </el-card>-->
         <el-row style="text-align: right">
-            <el-button type="primary" @click="confirm">纭</el-button>
+            <el-button type="primary" size="small" @click="confirm">纭</el-button>
         </el-row>
     </div>
 </template>
@@ -29,24 +51,34 @@
 import { reportLocationSearch } from '../../../../api/request'
 import { pulseEffect } from '../../../../utils/utils'
 import eventBus from '../../../../eventBus'
-import iconUrl from '../../../../../public/assets/images/map/loc.png'
+import iconUrl from '../../../../../public/assets/images/map/marker-icon.png'
 
 export default {
   name: 'ReportLocationSearch',
   data () {
     return {
+      activeNum: -1,
       // 鐐瑰嚮瀹氫綅缁戝畾鏁版嵁
       clickLocation: '',
       searchList: [],
-      marker: null
+      marker: null,
+      total: 0,
+      // 鍒嗛〉 榛樿灞曠ず
+      currentPage: 1,
+      // 鍒嗛〉 姣忛〉澶氬皯鏁版嵁
+      pageSize: 3
     }
   },
   methods: {
+    handlePage (currentPage) {
+      // this.focusLocation()
+      this.currentPage = currentPage
+    },
+    handleLocation (index) {
+      this.activeNum = index
+    },
     // 鎼滅储瀹氫綅
     focusLocation () {
-      // console.log(this.clickLocation)
-      // console.log(window.map.getZoom())
-      // console.log(window.map.getBounds())
       const getBoundsData = '' + window.map.getBounds()._southWest.lng + ',' + window.map.getBounds()._southWest.lat + ',' + window.map.getBounds()._northEast.lng + ',' + window.map.getBounds()._northEast.lat
       const data = {
         postStr: {
@@ -60,45 +92,33 @@
         },
         type: 'query'
       }
-      // console.log(data)
       reportLocationSearch(data).then(res => {
-        // console.log(res)
+        console.log(res)
         this.searchList = res.pois
-        // console.log(this.searchList)
-        // const as = res.pois[0].lonlat.trim().split(' ')
-        // window.map.setView([as[1], as[0]], 17)
-        // pulseEffect([as[1], as[0]])
-        // for (let i = 0; i < res.pois.length; i++) {
-        //   const as = res.pois[i].lonlat.trim().split(' ')
-        //   if (res.pois[i].name.indexOf(this.clickLocation) >= 0) {
-        //     window.map.setView([as[1], as[0]], 17)
-        //     pulseEffect([as[1], as[0]])
-        //   }
-        // }
+        this.total = res.pois.length
       })
-      this.clickLocation = ''
     },
     // 鐐瑰嚮瀹氫綅
-    locationMapClick (val) {
-      console.log(val)
+    locationMapClick (val, index) {
+      this.activeNum = index
+      // console.log(val)
       const ps = val.lonlat.trim().split(' ')
-      // const htmls = '<div><ul><li>' + val.name + '</li> + <li>' + val.adress + '</li></ul></div>'
+      // const htmls = '<div><ul><li>' + val.name + '</li></ul></div>'
       // var myIcon = window.L.divIcon({
       //   html: htmls,
       //   className: 'company-bindTooltip',
       //   iconSize: 16
       // })
-      const htmls = '<div><ul><li>' + val.name + '</li> <br/> <li>' + val.address + '</li> <br/> <li>' + val.phone + '</li></ul></div>'
       this.marker = window.L.marker([ps[1], ps[0]], {
         icon: window.L.icon({
           iconUrl: iconUrl,
-          iconSize: [30, 30],
+          iconSize: [25, 40],
           iconAnchor: [15, 15]
         })
         // icon: myIcon
       })
-        .bindTooltip(htmls, {
-          // permanent: 'true',
+        .bindTooltip(val.name, {
+          permanent: 'true',
           direction: 'bottom',
           offset: [0, 10],
           sticky: true,
@@ -127,8 +147,27 @@
     /*    height: 10px;*/
     /*    max-height: 10px;*/
     /*}*/
-    .div-list-search {
+    .environmental-risk-list {
+        color: @color;
+        border-bottom: 1px solid rgba(0, 255, 246, 0.14);
 
+        h3 {
+            font-size: 0.1rem;
+        }
+    }
+
+    /*<!--.environmental-risk-list:hover {-->*/
+    /*<!--    color: @color-highlight;-->*/
+    /*<!--    background: @background-color;-->*/
+    /*<!--}-->*/
+    .search-list {
+        h3:hover {
+            color: @color-highlight;
+        }
+    }
+
+    .hover {
+        color: @color-highlight;
     }
 
     .click-location {
@@ -144,4 +183,53 @@
             margin: 15px auto;
         }
     }
+
+    /deep/
+    .warnPagination {
+        .btn-quicknext, .btn-quickprev {
+            color: #e4e8f1 !important;
+            background-color: transparent;
+            // border: 1px solid #25AECD;
+            border-left: 1px solid #25AECD;
+            border-bottom: 1px solid #25AECD;
+            border-top: 1px solid #25AECD;
+            color: #e4e8f1;
+        }
+
+        .el-pager li {
+            color: #e4e8f1;
+            background: transparent;
+            // border: 1px solid #25AECD;
+            border-left: 1px solid #25AECD;
+            border-bottom: 1px solid #25AECD;
+            border-top: 1px solid #25AECD;
+        }
+
+        .el-pager li.active {
+            border-color: #25AECD;
+            background-color: rgba(38, 222, 253, 0.3);
+            color: #e4e8f1;
+        }
+
+        .el-pager li:hover {
+            border-color: #25AECD;
+            background-color: rgba(38, 222, 253, 0.3);
+            color: #34e0ff;
+        }
+
+        .btn-prev {
+            background-color: transparent;
+            // border: 1px solid #25AECD;
+            border-left: 1px solid #25AECD;
+            border-bottom: 1px solid #25AECD;
+            border-top: 1px solid #25AECD;
+            color: #e4e8f1;
+        }
+
+        .btn-next {
+            background-color: transparent;
+            border: 1px solid #25AECD;
+            color: #e4e8f1;
+        }
+    }
 </style>
diff --git a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue
index b7e9d69..3e9cbff 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue
@@ -1,6 +1,6 @@
 <template>
     <div class="ReportLocationSection">
-        <el-form :model="form" label-width="90px">
+        <el-form :model="form" label-width="120px">
             <el-row class="pipe-line-search">
                 <el-col :span="12">
                     <el-form-item label="绠$嚎鍚嶇О:">
@@ -17,14 +17,21 @@
                 </el-col>
             </el-row>
             <el-row>
-                <el-col :span="12">
+                <el-col :span="24">
                     <el-form-item label="绠℃缂栫爜:">
                         <el-input v-model="form.sectionName" disabled></el-input>
                     </el-form-item>
                 </el-col>
+            </el-row>
+            <el-row>
                 <el-col :span="12">
-                    <el-form-item label="闄勫睘璁炬柦:">
+                    <el-form-item label="闄勫睘璁炬柦鍚嶇О:">
                         <el-input v-model="form.affiliatedFacilities" disabled></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="闄勫睘璁炬柦缂栫爜:">
+                        <el-input v-model="form.affiliatedFacilitiesCode" disabled></el-input>
                     </el-form-item>
                 </el-col>
             </el-row>
@@ -141,7 +148,7 @@
             </el-card>
         </div>
         <el-row style="text-align: right;margin: 10px">
-            <el-button type="primary" @click="confirm">纭</el-button>
+            <el-button type="primary" @click="confirm" size="small">纭</el-button>
         </el-row>
     </div>
 </template>
@@ -160,7 +167,8 @@
       form: {
         pipeName: '',
         sectionName: '',
-        affiliatedFacilities: ''
+        affiliatedFacilities: '',
+        affiliatedFacilitiesCode: ''
       },
       // 绠$嚎鏌ヨ鏁版嵁鍒楄〃
       tableList: [],
@@ -196,57 +204,72 @@
         this.tableList = res.features
       }
       this.wfsHelper = new WfsHelper()
-      this.form.pipeName = ''
+      // this.form.pipeName = ''
       this.form.sectionName = ''
       this.form.affiliatedFacilities = ''
+      this.form.affiliatedFacilitiesCode = ''
     },
     // 鐐瑰嚮绠$嚎鍒楄〃 灞曠ず绠℃鍐呭 鍜岄檮灞炶鏂藉唴瀹�
-    async sectionShowClick (val) {
-      console.log(val)
-      // 濡傛灉 SectionAndAffFacTableJudge === true 鏄悳绱㈡暟鎹粨鏋滅殑鍒楄〃 鍙互杩涜 绠℃ 闄勫睘璁炬柦浜や簰 鐐瑰嚮瀹氫綅鏌ヨ缁撴灉 涓嶈繘琛岀偣鍑讳氦浜�
+    sectionShowClick (val) {
+      // console.log(val)
+      // this.SectionAndAffFacTableJudge = true
       if (this.SectionAndAffFacTableJudge === true) {
-        // 绠℃鏌ヨ
-        const sectionNameSearch = val.properties.pipename
-        this.tableListSection = []
-        this.wfsHelper.clearFilter()
-        this.wfsHelper.setTypeName(['sewer:pipesegment'])
-        this.wfsHelper.addLike('pipename', sectionNameSearch)
-        this.wfsHelper.addEquals('pipename', '\'' + sectionNameSearch + '\'')
-        const res = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
-        // console.log(res)
-        if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) {
-          this.tableListSection = res.features
-        }
-        this.wfsHelper = new WfsHelper()
-        // 闄勫睘璁炬柦鏌ヨ
-        this.tableDataAffFac = []
-        const AffFacSearch = val.properties.pipecode
-        console.log(AffFacSearch)
-        this.wfsHelper.clearFilter()
-        this.wfsHelper.setTypeName(['sewer:view_pipeline'])
-        this.wfsHelper.addLike('pipecode', AffFacSearch)
-        // this.wfsHelper.addEquals('type', '\'' + AffFacSearch + '\'')
-        const resAffFac = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
-        console.log(resAffFac)
-        if (resAffFac instanceof Object && Object.prototype.hasOwnProperty.call(resAffFac, 'features')) {
-          // for (let i = 0; i < resAffFac.features.length; i++) {
-          //   // console.log(resAffFac.features[i])
-          //   this.tableDataAffFac.push(resAffFac.features[i].properties)
-          // }
-          this.tableDataAffFac = resAffFac.features
-        }
-        this.wfsHelper = new WfsHelper()
+        this.searchSection(val)
+        this.searchAffFacData(val)
+      }
+    },
+    // 绠℃鏌ヨ
+    async searchSection (val) {
+      const sectionNameSearch = val.properties.pipename
+      this.tableListSection = []
+      this.wfsHelper.clearFilter()
+      this.wfsHelper.setTypeName(['sewer:pipesegment'])
+      this.wfsHelper.addLike('pipename', sectionNameSearch)
+      this.wfsHelper.addEquals('pipename', '\'' + sectionNameSearch + '\'')
+      const res = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
+      // console.log(res)
+      if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) {
+        this.tableListSection = res.features
+      }
+    },
+    // 闄勫睘璁炬柦鏌ヨ
+    async searchAffFacData (val) {
+      this.tableDataAffFac = []
+      const AffFacSearch = val.properties.pipecode
+      this.wfsHelper.clearFilter()
+      this.wfsHelper.setTypeName(['sewer:view_pipeline'])
+      this.wfsHelper.addLike('pipecode', AffFacSearch)
+      // this.wfsHelper.addEquals('type', '\'' + AffFacSearch + '\'')
+      const resAffFac = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
+      console.log(resAffFac)
+      if (resAffFac instanceof Object && Object.prototype.hasOwnProperty.call(resAffFac, 'features')) {
+        this.tableDataAffFac = resAffFac.features
+      }
+    },
+    // 鎼滅储鐨勫叕鍏辨柟娉曚紭鍖�
+    async publicSearch (searchVal, searchKeyword, searchTypeName, tableListData) {
+      tableListData = []
+      this.wfsHelper = new WfsHelper()
+      this.wfsHelper.clearFilter()
+      this.wfsHelper.setTypeName(searchTypeName)
+      this.wfsHelper.addLike(searchKeyword, searchVal)
+      this.wfsHelper.addEquals(searchKeyword, '\'' + searchVal + '\'')
+      const res = await AjaxUtils.GetDataAsynByUrl(this.wfsHelper.getUrl(), {})
+      // console.log(res)
+      if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) {
+        tableListData = res.features
       }
     },
     // 鐐瑰嚮绠℃鍒楄〃 绠℃缂栫爜浼犻��
     sectionCode (val) {
       // console.log(val)
-      this.form.sectionName = val.properties.pipecode
+      this.form.sectionName = val.properties.pipesegcode
     },
     // 鐐瑰嚮闄勫睘璁炬柦鍒楄〃 绠℃缂栫爜浼犻��
     affFacName (val) {
-      // console.log(val)
+      console.log(val)
       this.form.affiliatedFacilities = val.properties.name
+      this.form.affiliatedFacilitiesCode = val.properties.code
     },
     // 瀹氫綅鍔熻兘
     localAdr (val) {
@@ -258,23 +281,27 @@
     pipeClickLocation () {
       // 璁炬柦涓嶈繘琛� 绠$嚎琛ㄦ牸鏁版嵁鐨勭偣鍑讳氦浜�
       this.SectionAndAffFacTableJudge = false
-      // 鐐瑰嚮鑾峰彇鏁版嵁
-      window.map.on('click', (e) => {
-        // 鐐瑰嚮鍦板浘鍏抽棴寮规
-        window.mapManager.clickDialogSwitch = false
-        // 绠$嚎鐐瑰嚮鏁版嵁
-        this.pipeData(e)
-        // 绠℃鐐瑰嚮鏁版嵁
-        this.sectionData(e)
-        // 闄勫睘璁炬柦鏁版嵁
-        this.affFacData(e)
-        // 鍏抽棴鐐瑰嚮浜嬩欢
-        window.map.off('click')
-      })
+      if (this.SectionAndAffFacTableJudge === false) {
+        // 鐐瑰嚮鑾峰彇鏁版嵁
+        window.map.on('click', (e) => {
+          this.SectionAndAffFacTableJudge = false
+          // 鐐瑰嚮鍦板浘鍏抽棴寮规
+          window.mapManager.clickDialogSwitch = false
+          // 绠$嚎鐐瑰嚮鏁版嵁
+          this.pipeData(e)
+          // 绠℃鐐瑰嚮鏁版嵁
+          this.sectionData(e)
+          // 闄勫睘璁炬柦鏁版嵁
+          this.affFacData(e)
+          // 鍏抽棴鐐瑰嚮浜嬩欢
+          window.map.off('click')
+        })
+      }
       // 鏁版嵁 閲嶆柊鑾峰彇 杩涜缃┖
       this.form.pipeName = ''
       this.form.sectionName = ''
       this.form.affiliatedFacilities = ''
+      this.form.affiliatedFacilitiesCode = ''
       this.tableList = []
       this.tableListSection = []
       this.tableDataAffFac = []
@@ -317,7 +344,7 @@
         BBOX: window.map.getBounds().toBBoxString()
       }, defaultWmsParams)
       AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
-        console.log(res)
+        // console.log(res)
         for (let i = 0; i < res.data.features.length; i++) {
           dataList.push(res.data.features[i])
         }
diff --git a/src/components/helpers/MapManager.js b/src/components/helpers/MapManager.js
index eae4b26..c3ec889 100644
--- a/src/components/helpers/MapManager.js
+++ b/src/components/helpers/MapManager.js
@@ -44,7 +44,7 @@
       var point = this.map.latLngToContainerPoint(latlng, this.map.getZoom())
       const wmsLayerService = window.layerFactory.wmsLayerService
       const layers = wmsLayerService.wmsLayerList.getLayers()
-      // const filters = wmsLayerService.wmsLayerList.getFilters()
+      const filters = wmsLayerService.wmsLayerList.getFilters()
       const wmsParams = Object.assign({
         LAYERS: layers,
         QUERY_LAYERS: layers,
@@ -54,6 +54,9 @@
         Y: Math.round(point.y),
         BBOX: this.map.getBounds().toBBoxString()
       }, this.defaultWmsParams, params)
+      if (filters) {
+        wmsParams.CQL_FILTER = filters
+      }
       AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
         resolve(res.data)
       })
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>
diff --git a/src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue b/src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue
index 860f6e1..c1b30ae 100644
--- a/src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue
+++ b/src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue
@@ -66,7 +66,7 @@
                 <i class="state"></i>
                 <div>
                     <h3>
-                        <span @click="disposalfx">浠跺悕绉�:XXX浜嬩欢</span>
+                        <span @click="disposalfx">浜嬩欢鍚嶇О:XXX浜嬩欢</span>
                         <el-button class="rt btn00fff6" size="mini" style="margin-right: 0.04rem;"
                                    @click="startAnalysis">
                             <span>寮�濮嬪垎鏋�</span>
diff --git a/src/components/table/components/tabHandover.vue b/src/components/table/components/tabHandover.vue
index 43896f1..c3e087a 100644
--- a/src/components/table/components/tabHandover.vue
+++ b/src/components/table/components/tabHandover.vue
@@ -19,8 +19,7 @@
 import EnvironmentalRisk from '@components/table/components/EnvironmentalRisk'
 import Pipeline from '@components/table/components/Pipeline'
 import CorporateEmergency from '@components/table/components/CorporateEmergency'
-
-import { TopicList } from '../../../conf/Topic'
+import { topicList } from '../../../conf/Topic'
 export default {
   name: 'tabHandover',
   components: {
@@ -37,8 +36,8 @@
     return {
       titleProp: '',
       activeName: '姹℃煋婧�',
-      topicList: TopicList, // tab椤�
-      gcComp: PollutionSource // 榛樿鏄剧ず姹℃煋婧愬唴瀹�
+      topicList: topicList, // tab椤�
+      gcComp: PollutionSource
     }
   },
   methods: {
diff --git a/src/conf/Constants.js b/src/conf/Constants.js
index 55b36c0..af7e312 100644
--- a/src/conf/Constants.js
+++ b/src/conf/Constants.js
@@ -65,7 +65,8 @@
   emergencyesources: '搴旀�ョ墿璧�',
   firefightingunit: '娑堥槻鍗曚綅',
   unitareaboundary: '瑁呯疆鍖鸿竟鐣�',
-  sensitivetarget: '鏁忔劅鐩爣'
+  sensitivetarget: '鏁忔劅鐩爣',
+  chokevalve: '鎴祦闂�'
 }
 
 export const LAYERPROPS = {
@@ -92,6 +93,7 @@
     name: '绠$綉鍚嶇О',
     linenumtype: '绠$嚎绫诲瀷',
     pipename: '绠$嚎鍚嶇О',
+    subchaname: '鏀嚎鍚嶇О',
     mediumtype: '杈撻�佷粙璐�',
     length: '闀垮害(m)',
     startposname: '璧风偣浣嶇疆鍚嶇О',
@@ -414,5 +416,18 @@
     huncount: '甯歌浜哄彛鏁伴噺',
     structureoridsitearea: '鍗犲湴闈㈢Н',
     adminzonename: '琛屾斂闅跺睘'
+  },
+  // 鎴祦闂�
+  chokevalve: {
+    closurename: '鍚嶇О',
+    closurecode: '缂栫爜',
+    pointnumber: '娴嬬偣缂栧彿',
+    mediumtype: '浠嬭川',
+    size: '灏哄(m)',
+    operatingtype: '鎺у埗鏂瑰紡',
+    telephone: '鑱旂郴鐢佃瘽',
+    resperson: '璐熻矗浜�',
+    startdate: '鎶曠敤鏃ユ湡',
+    operationalstatus: '杩愯鐘舵��'
   }
 }
diff --git a/src/conf/Topic.js b/src/conf/Topic.js
index ff80c53..7f566af 100644
--- a/src/conf/Topic.js
+++ b/src/conf/Topic.js
@@ -12,10 +12,10 @@
   EnterpriseEmergencySearch: () => import('@components/panel/topicSearch/EnterpriseEmergencySearch.vue')
 }
 
-export const TopicList = [{
+export const topicList = [{
   name: '姹℃煋婧�',
   id: 1,
-  check: false,
+  checked: false,
   isShow: false,
   icon: 'iconwuranyuan',
   comp: ''
diff --git a/src/views/popup/DynamicHeader/DynamicTable.vue b/src/views/popup/DynamicHeader/DynamicTable.vue
new file mode 100644
index 0000000..a115ba1
--- /dev/null
+++ b/src/views/popup/DynamicHeader/DynamicTable.vue
@@ -0,0 +1,43 @@
+<template>
+  <el-table :data="tableData" border :height="height">
+    <template v-for="item in tableHeader">
+      <table-column v-if="item.children && item.children.length" :key="item.id" :coloumn-header="item"></table-column>
+      <el-table-column v-else :key="item.id" :label="item.label" :prop="item.prop" align="center"></el-table-column>
+    </template>
+  </el-table>
+</template>
+
+<script>
+import TableColumn from './TableColumn'
+export default {
+  props: {
+    // 琛ㄦ牸鐨勬暟鎹�
+    tableData: {
+      type: Array,
+      required: true
+    },
+    // 澶氱骇琛ㄥご鐨勬暟鎹�
+    tableHeader: {
+      type: Array,
+      required: true
+    },
+    // 琛ㄦ牸鐨勯珮搴�
+    height: {
+      type: String,
+      default: '340'
+    }
+  },
+  components: {
+    TableColumn
+  },
+  watch: {
+    tableData (val, oldVal) {
+      this.tableData = val
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/src/views/popup/DynamicHeader/TableColumn.vue b/src/views/popup/DynamicHeader/TableColumn.vue
new file mode 100644
index 0000000..be2ea78
--- /dev/null
+++ b/src/views/popup/DynamicHeader/TableColumn.vue
@@ -0,0 +1,24 @@
+<template>
+  <el-table-column :label="coloumnHeader.label" :prop="coloumnHeader.label" align="center">
+    <template v-for="item in coloumnHeader.children">
+      <tableColumn v-if="item.children && item.children.length" :key="item.id" :coloumn-header="item"></tableColumn>
+      <el-table-column v-else :key="item.name" :label="item.label" :prop="item.prop" align="center"></el-table-column>
+    </template>
+  </el-table-column>
+</template>
+
+<script>
+export default {
+  name: 'tableColumn',
+  props: {
+    coloumnHeader: {
+      type: Object,
+      required: true
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

--
Gitblit v1.8.0