From 4adfa4774e09f3b388335bb8dee5dea518856e5b Mon Sep 17 00:00:00 2001
From: yangdelong <828900aaa>
Date: 星期日, 30 五月 2021 19:23:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/develop' into develop

---
 public/assets/images/map-pages/title_bg2.png                                            |    0 
 src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue  |  238 +++++--
 src/conf/Topic.js                                                                       |    4 
 dist.zip                                                                                |    0 
 public/assets/images/map/governEquipment/govern_green.png                               |    0 
 src/api/mapApi.js                                                                       |    4 
 src/views/popup/DynamicHeader/DynamicTable.vue                                          |   43 +
 public/assets/images/map-pages/title_bg.png                                             |    0 
 src/components/base-page/WasteWater/WasteWaterHoursChart.vue                            |  271 ++++++-
 src/conf/Constants.js                                                                   |   25 
 src/conf/layers/LayerEnvRisk.js                                                         |    8 
 src/views/popup/DynamicHeader/TableColumn.vue                                           |   24 
 src/components/base-page/PublicDataStandard.vue                                         |   13 
 src/components/panel/topicSearch/WasteWaterSearch.vue                                   |   86 +-
 src/components/base-page/WasteWater/WasteWaterDayChart.vue                              |  287 +++++++--
 src/components/base-page/enterprise-emergency/events-reported/EventsReported.vue        |    4 
 src/components/base-page/PublicSector.vue                                               |    1 
 src/components/panel/topicSearch/enterprise-emergency/EventQuery.vue                    |    2 
 src/components/base-page/WasteWater/WasteWaterRealChart.vue                             |   38 +
 src/utils/utils.js                                                                      |    2 
 src/components/panel/RightSearchPanel.vue                                               |  136 ++-
 src/components/LayerController/logic/WasteGas.js                                        |   18 
 src/components/LayerController/logic/GovernEquipment.js                                 |   93 +++
 src/api/host.js                                                                         |    3 
 src/components/base-page/WasteWater/PublicTabs.vue                                      |   22 
 src/api/mapUrl.js                                                                       |   10 
 src/components/helpers/MapManager.js                                                    |    5 
 src/components/LayerController/modules/LcServiceLayer.vue                               |   44 +
 src/components/base-page/WasteWater/WasteWaterIndex.vue                                 |   25 
 /dev/null                                                                               |   36 -
 src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue   |  115 ++-
 src/components/table/components/tabHandover.vue                                         |    7 
 src/components/LayerController/logic/WasteWater.js                                      |   13 
 src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue |  146 ++-
 public/assets/governEquipment.json                                                      |   22 
 src/App.vue                                                                             |    6 
 src/components/panel/topicSearch/WasteGasSearch.vue                                     |   71 +
 37 files changed, 1,302 insertions(+), 520 deletions(-)

diff --git a/dist.zip b/dist.zip
new file mode 100644
index 0000000..1e1ad71
--- /dev/null
+++ b/dist.zip
Binary files differ
diff --git a/public/assets/governEquipment.json b/public/assets/governEquipment.json
new file mode 100644
index 0000000..17d1b68
--- /dev/null
+++ b/public/assets/governEquipment.json
@@ -0,0 +1,22 @@
+[
+  {
+    "no": 0,
+    "company": "鎵瓙鐭冲寲",
+    "plate": "鐐兼补鏉垮潡",
+    "unitName": "鑺崇儍鍘傘�佺偧娌瑰巶",
+    "governName": "纭:鍥炴敹娌荤悊璁炬柦",
+    "Longitude": 118.7936111111,
+    "Latitude": 32.2583305556,
+    "status": 1
+  },
+  {
+    "no": 1,
+    "company": "涓煩鐭冲寲",
+    "plate": "鐐兼补鏉垮潡",
+    "unitName": "鐐兼补浜岄儴",
+    "governName": "鍌寲瑁傚寲娌荤悊璁炬柦",
+    "Longitude": 114.44016,
+    "Latitude": 30.65305,
+    "status": 1
+  }
+]
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/public/assets/images/map/governEquipment/govern_green.png b/public/assets/images/map/governEquipment/govern_green.png
new file mode 100644
index 0000000..1b30b11
--- /dev/null
+++ b/public/assets/images/map/governEquipment/govern_green.png
Binary files differ
diff --git a/src/App.vue b/src/App.vue
index 6b056a7..1e6c2a3 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.8) !important;
+}
 </style>
diff --git a/src/api/host.js b/src/api/host.js
index 04d5a4f..919fce0 100644
--- a/src/api/host.js
+++ b/src/api/host.js
@@ -4,10 +4,11 @@
 import { getSchemeHost } from '../utils/tools'
 
 export const $HOST = getSchemeHost()
+// 鐜繚浜屾湡
+export const $HOSTII = 'http://10.246.162.140:8080'
 
 // 绠$嚎鍒嗘瀽-绾夸笂
 // export const $HOSTANALYSE = 'http://xearth.cn:6202'
 export const $HOSTANALYSE = 'http://10.238.235.179:6202'
-
 // 绠$嚎鍒嗘瀽-鏈湴
 // export const $HOSTANALYSE = 'http://10.238.105.124:8089'
diff --git a/src/api/mapApi.js b/src/api/mapApi.js
index ae65d02..9654615 100644
--- a/src/api/mapApi.js
+++ b/src/api/mapApi.js
@@ -31,7 +31,7 @@
   },
   // 搴熸皵鐐瑰姞杞�
   getWasteGas (data) {
-    return axios.get(mapUrl.getWasteGas, data)
+    return axios.post(mapUrl.getWasteGas, qs.stringify(data), { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' })
   },
   // 搴熸皵鏄庣粏琛�
   getWasteGasDetails (data) {
@@ -54,7 +54,7 @@
     return axios.get(mapUrl.getWasteWaterMonitoringDetails, data)
   },
   // 搴熸按鏃ユ暟鎹拰灏忔椂鏁版嵁鍙婃槑缁嗚〃
-  getQueryOnlineMonData (data, setHeaders) {
+  getQueryOnlineMonData (data) {
     return axios.post(mapUrl.getQueryOnlineMonData, qs.stringify(data), { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' })
   },
   // 搴熸按浜哄伐鏁版嵁
diff --git a/src/api/mapUrl.js b/src/api/mapUrl.js
index 4ce8883..3b36f17 100644
--- a/src/api/mapUrl.js
+++ b/src/api/mapUrl.js
@@ -1,7 +1,7 @@
 /**
  * 璇ユ枃浠堕厤缃帴鍙g殑URL鍦板潃
  */
-import { $HOST, $HOSTANALYSE } from './host'
+import { $HOST, $HOSTII, $HOSTANALYSE } from './host'
 
 export const GetUser = $HOST + '/user/getUser'
 
@@ -12,18 +12,18 @@
 export const getSolidWasteSurveyDetail = $HOST + '/wasteSolid/getSolidWasteSurveyDetail'
 
 // 搴熸皵
-export const getWasteGas = $HOST + '/wasteGas/getWasteGas'
+export const getWasteGas = $HOSTII + '/EPInterface/DataService/EPMapService.asmx/ObtainningConInfo'
 export const getWasteGasDetails = $HOST + '/wasteGas/getWasteGasMonitoringDetails'
 export const DataItems = $HOST + '/wasteGas/RTDB/DataItems' // 搴熸皵瀹炴椂鏁版嵁
 export const getWasteGasMonData = $HOST + '/wasteGas/QueryOnlineMonData'
 export const getWasteGasManualData = $HOST + '/wasteGas/QueryLabMonData'
 
 // 搴熸按
-export const getWasteWater = 'http://10.246.162.140:8080/EPInterface/DataService/EPMapService.asmx/ObtainningConInfo' // 搴熸按鐐逛俊鎭�
+export const getWasteWater = $HOSTII + '/EPInterface/DataService/EPMapService.asmx/ObtainningConInfo' // 搴熸按鐐逛俊鎭�
 export const getWasteWaterMonitoring = $HOST + '/wasteWater/getWasteWaterMonitoring' // 搴熸按鐩戞祴鏁版嵁
 export const getWasteWaterMonitoringDetails = $HOST + '/wasteWater/getWasteWaterMonitoringDetails' // 搴熸按鐩戞祴鏁版嵁鏄庣粏琛�
-export const getQueryOnlineMonData = 'http://10.246.162.140:8080/EPInterface/DataService/EPMapService.asmx/QueryOnlineMonData' // 搴熸按鏃ユ暟鎹皬鏃舵暟鎹強鏄庣粏琛ㄦ暟鎹�
-export const getQueryLabMonData = 'http://10.246.162.140:8080/EPInterface/DataService/EPMapService.asmx/QueryLabMonData' // 浜哄伐鏁版嵁
+export const getQueryOnlineMonData = $HOSTII + '/EPInterface/DataService/EPMapService.asmx/QueryOnlineMonData' // 搴熸按鏃ユ暟鎹皬鏃舵暟鎹強鏄庣粏琛ㄦ暟鎹�
+export const getQueryLabMonData = $HOSTII + '/EPInterface/DataService/EPMapService.asmx/QueryLabMonData' // 浜哄伐鏁版嵁
 export const getDataItems = $HOST + '/wasteWater/RTDB/DataItems' // 瀹炴椂鏁版嵁
 
 // 鍏徃
diff --git a/src/components/LayerController/logic/GovernEquipment.js b/src/components/LayerController/logic/GovernEquipment.js
new file mode 100644
index 0000000..f5f174f
--- /dev/null
+++ b/src/components/LayerController/logic/GovernEquipment.js
@@ -0,0 +1,93 @@
+/**
+ * 姹℃煋婧�
+ */
+// 淇℃伅缁勪欢
+const GovernEquipmentIndex = require('../../base-page/RiskSource/RiskSourceIndex.vue').default
+// 浣跨敤灏佽鏂规硶
+const AnimalService = require('../service/AnimalService').default
+// 璇锋眰鎺ュ彛鏁版嵁
+const mapApi = require('../../../api/mapApi').default
+// 鍏叡鏂规硶 panTo() 寮曠敤
+const { setPanTo } = require('../../../utils/utils')
+
+const governGreen = '/assets/images/map/governEquipment/govern_green.png'
+
+module.exports = function () {
+  /**
+   * 鍒濆鍖栧苟鍔犺浇鍥惧眰
+   * @param L leaflet瀵硅薄
+   */
+  this.init = async (layer, L) => {
+    this.animalService = new AnimalService({
+      L: L,
+      layer: layer
+    })
+    const data = await mapApi.getGovernEquipment()
+    for (let i = 0; i < data.length; i++) {
+      const postion = [data[i].Latitude, data[i].Longitude] // 鍧愭爣
+      const iconUrl = this.governIconUrl(data[i].status) // 娌荤悊璁炬柦鍥炬爣
+      const marker = L.marker(postion, {
+        totransferData: data[i],
+        icon: L.icon({
+          iconUrl: iconUrl,
+          iconSize: [30, 30],
+          iconAnchor: [15, 15]
+        })
+      })
+      layer.addLayer(marker)
+    }
+  }
+
+  /**
+   * 鎻愮ず绐�
+   * @param layer
+   * @returns {string}
+   */
+  this.bindTooltip = (layer) => {
+    return layer.options.totransferData.governName
+  }
+
+  /**
+   * 淇℃伅寮圭獥
+   * @param e
+   */
+  this.clickListener = (e) => {
+    // 鑴夊啿鏁堟灉
+    this.animalService.pulseEffect(e.latlng)
+    // 淇℃伅寮圭獥骞崇Щ
+    setPanTo(e.latlng, 200)
+    // 寮规鏍囬
+    const title = e.layer.options.totransferData.Name
+    window.$layer.open({
+      content: {
+        comp: GovernEquipmentIndex, // 缁勪欢
+        parent: this, // 鐖剁粍浠�
+        data: { // 浼犻�掔殑鍙傛暟
+          riskSourceId: e.layer.options.totransferData.no
+        }
+      },
+      title: title // 鏍囬
+    })
+  }
+
+  /**
+   * 娌荤悊璁炬柦鍥炬爣閰嶇疆
+   * @param t
+   * @returns {string}
+   */
+  this.governIconUrl = (t) => {
+    let iconUrl = null
+    switch (t) {
+      case 1:
+        iconUrl = governGreen
+        break
+      case 2:
+        iconUrl = ''
+        break
+      default:
+        iconUrl = ''
+        break
+    }
+    return iconUrl
+  }
+}
diff --git a/src/components/LayerController/logic/SourcesPollution.js b/src/components/LayerController/logic/SourcesPollution.js
deleted file mode 100644
index 27899ce..0000000
--- a/src/components/LayerController/logic/SourcesPollution.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * 姹℃煋婧�
- *  */
-
-// 璇锋眰鎺ュ彛鏁版嵁
-const mapApi = require('../../../api/mapApi').default
-// 浣跨敤灏佽鏂规硶
-const AnimalService = require('../service/AnimalService').default
-
-module.exports = function () {
-  this.init = async (layer, L) => {
-    this.animalService = new AnimalService({
-      L: L,
-      layer: layer
-    })
-    const result = await mapApi.getSourcesPoll()
-    // console.log(result)
-    const resultData = result.Result.DataInfo || []
-    const polygon = L.polygon(resultData, { color: 'yellow' })
-    polygon.addTo(layer)
-  }
-  this.bindTooltip = (layer) => {
-    return 'layer'
-  }
-  this.click = () => {
-    window.$layer.open({
-      content: {
-        content: 'Popup', // 缁勪欢
-        data: { // 浼犻�掔殑鍙傛暟
-          datas: 'popupDatas'
-        }
-      },
-      title: ''
-    })
-  }
-}
diff --git a/src/components/LayerController/logic/WasteGas.js b/src/components/LayerController/logic/WasteGas.js
index b591f19..8a2fa53 100644
--- a/src/components/LayerController/logic/WasteGas.js
+++ b/src/components/LayerController/logic/WasteGas.js
@@ -26,10 +26,22 @@
       L: L,
       layer: layer
     })
-    const res = await mapApi.getWasteGas()
-    // console.log(res)
+    const param = {
+      companyId: 3900100145, // 浼佷笟缂栫爜
+      id: '',
+      monType: 2, // 搴熸皵
+      userCode: 'wenchun.deng', // 鐢ㄦ埛鍚嶇О
+      monDuration: '',
+      epName: '',
+      secdDeptId: '',
+      contrLevel: '',
+      dataStatus: '',
+      dataFlag: '',
+      runStatus: '',
+      emissTypeId: ''
+    }
+    const res = await mapApi.getWasteGas(param)
     const data = res.Result.DataInfo || {}
-    // console.log(data)
     for (let i = 0; i < data.length; i++) {
       // 缁忕含搴� 浣嶇疆
       const positionX = data[i].Latitude
diff --git a/src/components/LayerController/logic/WasteWater.js b/src/components/LayerController/logic/WasteWater.js
index 29658e1..01cd150 100644
--- a/src/components/LayerController/logic/WasteWater.js
+++ b/src/components/LayerController/logic/WasteWater.js
@@ -27,11 +27,11 @@
       L: L,
       layer: layer
     })
-    const res = await mapApi.getWasteWater({
-      companyId: 3900100145, // 浼佷笟鍚嶇О
+    const param = {
+      companyId: 3900100145, // 浼佷笟缂栫爜
       id: '',
-      monType: 1, // 鍊间负1鏌ヨ搴熸按
-      userCode: 'wenchun.deng', // 瑙掕壊鍚嶇О
+      monType: 1, // 搴熸按
+      userCode: 'wenchun.deng', // 鐢ㄦ埛鍚嶇О
       monDuration: '',
       epName: '',
       secdDeptId: '',
@@ -40,7 +40,8 @@
       dataFlag: '',
       runStatus: '',
       emissTypeId: ''
-    })
+    }
+    const res = await mapApi.getWasteWater(param)
     const data = res.Result.DataInfo || {}
     for (let i = 0; i < data.length; i++) {
       // 缁忕含搴� 浣嶇疆
@@ -54,7 +55,7 @@
         totransferData: data[i],
         icon: L.icon({
           iconUrl: iconUrl,
-          iconSize: [35, 35],
+          iconSize: [30, 30],
           iconAnchor: [15, 15]
         })
       })
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/PublicSector.vue b/src/components/base-page/PublicSector.vue
index 328b263..146c612 100644
--- a/src/components/base-page/PublicSector.vue
+++ b/src/components/base-page/PublicSector.vue
@@ -31,7 +31,6 @@
 
   .public-bounced-content {
     padding: 0.05rem;
-    display: flex;
 
     .public-bounced-content-left {
     }
diff --git a/src/components/base-page/WasteWater/PublicTabs.vue b/src/components/base-page/WasteWater/PublicTabs.vue
index 4b5b9b1..1f08bb6 100644
--- a/src/components/base-page/WasteWater/PublicTabs.vue
+++ b/src/components/base-page/WasteWater/PublicTabs.vue
@@ -8,12 +8,12 @@
       <div class="main-matter">
         <div>
           <ul>
-            <li>鐩戞祴鐐瑰悕绉�:{{ storagePlaceId.Name }}</li>
-            <li>鐢熶骇鍗曚綅:{{ storagePlaceId.porltName }}</li>
-            <li>鎺掓斁绫诲瀷鍚嶇О:{{ storagePlaceId.MonTypeName }}</li>
-            <li>鎺掓斁鍘诲悜:{{ storagePlaceId.EmissDirecti }}</li>
-            <li>鎺у埗绾у埆鍚嶇О:{{ storagePlaceId.ContrLevelShowName }}</li>
-            <li>鍐�/澶栨帓鏀惧彛:{{ storagePlaceId.OrOutPortName }}</li>
+            <li><span class="namer">鐩戞祴鐐瑰悕绉帮細</span>{{ storagePlaceId.Name }}</li>
+            <li><span class="namer">鐢熶骇鍗曚綅锛�</span>{{ storagePlaceId.porltName }}</li>
+            <li><span class="namer">鎺掓斁绫诲瀷鍚嶇О锛�</span>{{ storagePlaceId.MonTypeName }}</li>
+            <li><span class="namer">鎺掓斁鍘诲悜锛�</span>{{ storagePlaceId.EmissDirecti }}</li>
+            <li><span class="namer">鎺у埗绾у埆鍚嶇О锛�</span>{{ storagePlaceId.ContrLevelShowName }}</li>
+            <li><span class="namer">鍐�/澶栨帓鏀惧彛锛�</span>{{ storagePlaceId.OrOutPortName }}</li>
           </ul>
         </div>
       </div>
@@ -60,14 +60,18 @@
 
       li {
         margin-bottom: 0.04rem;
-        text-align: center;
         min-width: 31%;
-        background-color: #243a55;
-        color: #00d0f9;
+        box-shadow: 0 0 10px rgba(129,211,248,.35) inset;
+        color: #00fff6;
         border-radius: 0.02rem;
         font-size: 0.08rem;
         line-height: 0.09rem;
         padding: 0.03rem .5%;
+        .namer{
+          display: inline-block;
+          width: .6rem;
+          text-align: right;
+        }
       }
 
     }
diff --git a/src/components/base-page/WasteWater/WasteWaterDayChart.vue b/src/components/base-page/WasteWater/WasteWaterDayChart.vue
index 1fcb2c9..808879d 100644
--- a/src/components/base-page/WasteWater/WasteWaterDayChart.vue
+++ b/src/components/base-page/WasteWater/WasteWaterDayChart.vue
@@ -1,5 +1,5 @@
 <template>
-    <div class="echarts-box">
+    <div id="wasteWaterDayChartBox" class="echarts-box">
         <div class="tab-scroll">
             <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard>
         </div>
@@ -9,11 +9,18 @@
             <span class="demonstration">缁撴潫鏃堕棿锛�</span>
             <el-date-picker v-model="formData.timeEnd" value-format="yyyy-MM-dd" type="datetime" size="mini"></el-date-picker>
             <span class="demonstration">閲囨牱鐐规暟锛�</span>
-            <el-select v-model="formData.region" placeholder="璇烽�夋嫨" size="mini">
+            <el-select class="selectBox" v-model="formData.region" placeholder="璇烽�夋嫨" size="mini">
                 <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" id="mingxiBtn">鏄庣粏琛�</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: { // 鎶樼嚎鐨勯鑹�
@@ -429,9 +521,12 @@
             saveAsImage: {}
           }
         },
-        grid: { // 缃戞牸
-          top: '20%'
-          // left: '5%'
+        grid: {
+          // 涓庣粷瀵瑰畾浣嶇浉浼硷紝top锛宭eft锛宺ight锛宐ottom 璁惧畾鏄牴鎹笂绾х洅瀛愬楂樻潵璁$畻
+          top: '20%',
+          left: '6%',
+          right: '6%',
+          bottom: '12%'
         },
         legend: {
           data: legend
@@ -544,11 +639,75 @@
       }
       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
     }
   }
 }
 </script>
 
-<style scoped lang="less">
-
+<style lang="less">
+#wasteWaterDayChartBox .echarts-form .el-input__inner {
+  background-color: rgba(0, 0, 0, 0);
+  height: .13rem;
+  border-color: #336fa4;
+}
+#wasteWaterDayChartBox .echarts-form{
+  margin-top: 1px
+}
+#wasteWaterDayChartBox .echarts-form .el-input__icon{
+  height: .13rem;
+  top: -.02rem;
+  right: -0.03rem;
+  position: absolute;
+  color: #00d0f9;
+}
+#wasteWaterDayChartBox .echarts-form .selectBox .el-input__icon:last-child{
+  top: .02rem;
+}
+#wasteWaterDayChartBox .echarts-form .selectBox .is-reverse{
+  top: -.02rem !important;
+}
+#wasteWaterDayChartBox .echarts-form .el-button{
+  background-color: rgba(0, 0, 0, 0);
+  height: .13rem;
+}
+#mingxiBtn{
+  margin-left: -.02rem;
+}
 </style>
diff --git a/src/components/base-page/WasteWater/WasteWaterHoursChart.vue b/src/components/base-page/WasteWater/WasteWaterHoursChart.vue
index 2acfe80..a4b7d6c 100644
--- a/src/components/base-page/WasteWater/WasteWaterHoursChart.vue
+++ b/src/components/base-page/WasteWater/WasteWaterHoursChart.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="echarts-box">
+  <div id="wasteWaterHoursChartBox" class="echarts-box">
     <div class="tab-scroll">
       <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard>
     </div>
@@ -9,11 +9,18 @@
       <span class="demonstration">缁撴潫鏃堕棿锛�</span>
       <el-date-picker v-model="formData.endTime" value-format="yyyy-MM-dd HH" type="datetime" size="mini"></el-date-picker>
       <span class="demonstration">閲囨牱鐐规暟锛�</span>
-      <el-select v-model="formData.region" placeholder="璇烽�夋嫨" size="mini">
+      <el-select class="selectBox" v-model="formData.region" placeholder="璇烽�夋嫨" size="mini">
         <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" id="mingxiBtn">鏄庣粏琛�</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)
       }
     },
@@ -455,12 +541,15 @@
             saveAsImage: {}
           }
         },
-        grid: { // 缃戞牸
-          top: '20%'
-          // left: '15%'
-        },
         legend: {
           data: legend
+        },
+        grid: {
+          // 涓庣粷瀵瑰畾浣嶇浉浼硷紝top锛宭eft锛宺ight锛宐ottom 璁惧畾鏄牴鎹笂绾х洅瀛愬楂樻潵璁$畻
+          top: '20%',
+          left: '6%',
+          right: '6%',
+          bottom: '12%'
         },
         dataZoom: [{
           type: 'inside',
@@ -570,11 +659,71 @@
       }
       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
     }
   }
 }
 </script>
-
-<style scoped lang="less">
-
+<style>
+#wasteWaterHoursChartBox .echarts-form .el-input__inner {
+  background-color: rgba(0, 0, 0, 0);
+  height: .13rem;
+  border-color: #336fa4;
+}
+#wasteWaterHoursChartBox .echarts-form .el-input__icon{
+  height: .13rem;
+  top: -.02rem;
+  right: -0.03rem;
+  position: absolute;
+  color: #00d0f9;
+}
+#wasteWaterHoursChartBox .echarts-form .selectBox .el-input__icon:last-child{
+  top: .02rem;
+}
+#wasteWaterHoursChartBox .echarts-form .selectBox .is-reverse{
+  top: -.02rem !important;
+}
+#wasteWaterHoursChartBox .echarts-form .el-button{
+  background-color: rgba(0, 0, 0, 0);
+  height: .13rem;
+}
+#mingxiBtn{
+  margin-left: -.02rem;
+}
 </style>
diff --git a/src/components/base-page/WasteWater/WasteWaterIndex.vue b/src/components/base-page/WasteWater/WasteWaterIndex.vue
index 0e8c77a..b8e3f42 100644
--- a/src/components/base-page/WasteWater/WasteWaterIndex.vue
+++ b/src/components/base-page/WasteWater/WasteWaterIndex.vue
@@ -28,9 +28,9 @@
         <component :is="currentTab" ref="RealData"></component>
       </div>
     </template>
-    <template v-slot:video>
+<!--    <template v-slot:video>
       <public-video></public-video>
-    </template>
+    </template>-->
   </public-sector>
 </template>
 
@@ -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/WasteWater/WasteWaterRealChart.vue b/src/components/base-page/WasteWater/WasteWaterRealChart.vue
index b332667..670b975 100644
--- a/src/components/base-page/WasteWater/WasteWaterRealChart.vue
+++ b/src/components/base-page/WasteWater/WasteWaterRealChart.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="echarts-box">
+  <div id="wasteWaterRealChartBox" class="echarts-box">
     <div class="tab-scroll">
       <PublicDataStandard :dataStandard="dataStandard"></PublicDataStandard>
     </div>
@@ -9,7 +9,7 @@
       <span class="demonstration">缁撴潫鏃堕棿锛�</span>
       <el-date-picker v-model="formData.endTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" size="mini"></el-date-picker>
       <span class="demonstration">閲囨牱鐐规暟锛�</span>
-      <el-select v-model="formData.region" placeholder="璇烽�夋嫨" size="mini">
+      <el-select class="selectBox" v-model="formData.region" placeholder="璇烽�夋嫨" size="mini">
         <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>
@@ -502,7 +502,11 @@
           }
         },
         grid: {
-          top: '20%'
+          // 涓庣粷瀵瑰畾浣嶇浉浼硷紝top锛宭eft锛宺ight锛宐ottom 璁惧畾鏄牴鎹笂绾х洅瀛愬楂樻潵璁$畻
+          top: '20%',
+          left: '6%',
+          right: '6%',
+          bottom: '12%'
         },
         legend: {
           data: this.legendList
@@ -610,6 +614,30 @@
 }
 </script>
 
-<style scoped lang="less">
-
+<style lang="less">
+#wasteWaterRealChartBox .echarts-form .el-input__inner {
+  background-color: rgba(0, 0, 0, 0);
+  height: .13rem;
+  border-color: #336fa4;
+}
+#wasteWaterRealChartBox .echarts-form{
+  margin-top: 1px
+}
+#wasteWaterRealChartBox .echarts-form .el-input__icon{
+  height: .13rem;
+  top: -.02rem;
+  right: -0.03rem;
+  position: absolute;
+  color: #00d0f9;
+}
+#wasteWaterRealChartBox .echarts-form .selectBox .el-input__icon:last-child{
+  top: .02rem;
+}
+#wasteWaterRealChartBox .echarts-form .selectBox .is-reverse{
+  top: -.02rem !important;
+}
+#wasteWaterRealChartBox .echarts-form .el-button{
+  background-color: rgba(0, 0, 0, 0);
+  height: .13rem;
+}
 </style>
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..45d885a 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationPoint.vue
@@ -1,30 +1,58 @@
 <template>
     <div class="location-lon-and-lat">
-        <el-row class="place-box">
-            <div class="place-left">
-                <el-form :model="LongLatPos" label-width="90px">
+        <!--        <el-row>-->
+        <!--            <el-form :model="lonlatpos" label-width="60px">-->
+        <!--                <el-col :span="12">-->
+        <!--                    <el-form-item label="缁忓害:">-->
+        <!--                        <el-input type="text" v-model="lonlatpos.longPos"></el-input>-->
+        <!--                    </el-form-item>-->
+        <!--                </el-col>-->
+        <!--                <el-col :span="12">-->
+        <!--                    <el-form-item label="绾害:">-->
+        <!--                        <el-input type="text" v-model="lonlatpos.latPos"></el-input>-->
+        <!--                    </el-form-item>-->
+        <!--                </el-col>-->
+        <!--            </el-form>-->
+        <!--            <el-row>-->
+        <!--                <el-col :span="12" style="text-align: center;margin: 5px 0">-->
+        <!--                    <el-button type="primary" size="small" @click="mapPoints">绮剧‘瀹氫綅</el-button>-->
+        <!--                </el-col>-->
+        <!--                <el-col :span="12" style="text-align: center;margin: 5px 0">-->
+        <!--                    <el-button type="primary" size="small" @click="dataPoints">鏁版嵁璇嗗彇</el-button>-->
+        <!--                </el-col>-->
+        <!--            </el-row>-->
+        <!--        </el-row>-->
+        <el-form :model="lonlatpos" label-width="60px">
+            <el-row class="pipe-line-search">
+                <el-col :span="12">
                     <el-form-item label="缁忓害:">
-                        <el-input v-model="LongLatPos.longPos"></el-input>
+                        <el-input v-model="lonlatpos.longPos"></el-input>
                     </el-form-item>
+                </el-col>
+                <el-col :span="12">
                     <el-form-item label="绾害:">
-                        <el-input v-model="LongLatPos.latPos"></el-input>
+                        <el-input v-model="lonlatpos.latPos"></el-input>
                     </el-form-item>
-                </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>
+                </el-col>
+            </el-row>
+        </el-form>
+        <el-row>
+            <el-col :span="12" style="text-align: center;margin: 5px 0">
+                <el-button type="primary" size="small" @click="mapPoints">绮剧‘瀹氫綅</el-button>
+            </el-col>
+            <el-col :span="12" style="text-align: center;margin: 5px 0">
+                <el-button type="primary" size="small" @click="dataPoints">鏁版嵁璇嗗彇</el-button>
+            </el-col>
         </el-row>
-        <div class="place-bottom" style="text-align: right;margin: 5px">
-            <el-button type="primary" @click="confirm">纭</el-button>
-        </div>
+        <el-row class="place-bottom" style="text-align: right;margin: 5px">
+            <el-button type="primary" @click="confirm" size="small">纭</el-button>
+        </el-row>
     </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 {
@@ -32,58 +60,67 @@
   data () {
     return {
       // 缁忕含搴﹀畾浣�
-      LongLatPos: {
+      lonlatpos: {
         longPos: '',
         latPos: ''
       },
-      marker: null
+      marker: window.L.layerGroup().addTo(window.map),
+      layersGroupArrList: []
     }
   },
   methods: {
-    // 鐐瑰嚮瀹氫綅
+    // 绮剧‘瀹氫綅
     mapPoints () {
       window.map.on('click', (e) => {
-        this.LongLatPos.longPos = parseFloat(e.latlng.lng).toFixed(6)
-        this.LongLatPos.latPos = parseFloat(e.latlng.lat).toFixed(6)
-        const as = [this.LongLatPos.latPos, this.LongLatPos.longPos]
+        this.lonlatpos.longPos = parseFloat(e.latlng.lng).toFixed(8)
+        this.lonlatpos.latPos = parseFloat(e.latlng.lat).toFixed(8)
+        const as = [e.latlng.lat, e.latlng.lng]
         // console.log(as)
         window.map.setView(as, 17)
         pulseEffect(as)
         this.marker = window.L.marker(as, {
           icon: window.L.icon({
             iconUrl: iconUrl,
-            iconSize: [30, 30],
-            iconAnchor: [15, 15]
+            iconSize: [26, 40],
+            iconAnchor: [13, 20]
           })
         })
         window.map.addLayer(this.marker)
+        this.layersGroupArrList.push(this.marker)
         window.map.off('click')
       })
     },
     // 閫氳繃鏁版嵁瀹氫綅
     dataPoints () {
-      const as = [this.LongLatPos.latPos, this.LongLatPos.longPos]
-      // console.log(as)
-      window.map.setView(as, 17)
-      pulseEffect(as)
-      this.marker = window.L.marker(as, {
-        icon: window.L.icon({
-          iconUrl: iconUrl,
-          iconSize: [30, 30],
-          iconAnchor: [15, 15]
+      // this.lonlatpos.latPos = ''
+      // this.lonlatpos.longPos = ''
+      if (this.lonlatpos.latPos !== '' && this.lonlatpos.longPos !== '') {
+        const as = [this.lonlatpos.latPos, this.lonlatpos.longPos]
+        window.map.setView(as, 17)
+        pulseEffect(as)
+        this.marker = window.L.marker(as, {
+          icon: window.L.icon({
+            iconUrl: iconUrl,
+            iconSize: [26, 40],
+            iconAnchor: [13, 20]
+          })
         })
-      })
-      window.map.addLayer(this.marker)
-      this.LongLatPos.latPos = ''
-      this.LongLatPos.longPos = ''
+        window.map.addLayer(this.marker)
+        this.layersGroupArrList.push(this.marker)
+      } else {
+        this.$message('璇疯緭鍏ヨ瘑鍙栫粡绾害')
+      }
     },
     // 鐐瑰嚮纭鎸夐挳浜嬩欢
     confirm () {
+      for (let i = 0; i < this.layersGroupArrList.length; i++) {
+        window.map.removeLayer(this.layersGroupArrList[i])
+      }
       window.mapManager.clearHighlight()
-      window.map.removeLayer(this.marker)
+      // window.map.removeLayer(this.marker)
       eventBus.$emit('location-setChange', true)
-      this.LongLatPos.longPos = ''
-      this.LongLatPos.latPos = ''
+      this.lonlatpos.longPos = ''
+      this.lonlatpos.latPos = ''
     }
   }
 }
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..f160110 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSearch.vue
@@ -1,27 +1,54 @@
 <template>
-    <div class="click-location">
-        <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-row style="text-align: right">
-            <el-button type="primary" @click="confirm">纭</el-button>
-        </el-row>
+  <div class="click-location">
+    <el-row>
+      <!--      clearable-->
+      <el-input type="text" v-model="clickLocation" @change="focusLocation">
+        <el-button slot="suffix" type="text" @click="focusLocation">
+          <img src="../../../../../public/assets/images/map/emergency/search.png" alt="">
+        </el-button>
+      </el-input>
+    </el-row>
+    <!--        <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" size="small" @click="confirm">纭</el-button>
+    </el-row>
+  </div>
 </template>
 
 <script>
@@ -29,24 +56,36 @@
 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: window.L.layerGroup().addTo(window.map),
+      layer: window.L.layerGroup().addTo(window.map),
+      layersGroupArrList: [],
+      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,60 +99,47 @@
         },
         type: 'query'
       }
-      // console.log(data)
+      // $http.get('http://10.246.133.164//api/search?', data)
       reportLocationSearch(data).then(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.searchList = res.statistics.priorityCitys
+        // this.total = res.statistics.priorityCitys.length
       })
-      this.clickLocation = ''
     },
     // 鐐瑰嚮瀹氫綅
-    locationMapClick (val) {
-      console.log(val)
+    locationMapClick (val, index) {
+      this.activeNum = index
       const ps = val.lonlat.trim().split(' ')
-      // const htmls = '<div><ul><li>' + val.name + '</li> + <li>' + val.adress + '</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],
-          iconAnchor: [15, 15]
+          iconSize: [26, 40],
+          iconAnchor: [13, 20]
         })
-        // icon: myIcon
       })
-        .bindTooltip(htmls, {
-          // permanent: 'true',
+        .bindTooltip(val.name, {
+          permanent: 'true',
           direction: 'bottom',
           offset: [0, 10],
           sticky: true,
           className: ''
         })
       window.map.addLayer(this.marker)
+      this.layersGroupArrList.push(this.marker)
       window.map.setView([ps[1], ps[0]], 17)
       pulseEffect([ps[1], ps[0]])
     },
     // 鐐瑰嚮纭鎸夐挳浜嬩欢
     confirm () {
       window.mapManager.clearHighlight()
-      window.map.removeLayer(this.marker)
+      for (let i = 0; i < this.layersGroupArrList.length; i++) {
+        window.map.removeLayer(this.layersGroupArrList[i])
+      }
       this.searchList = []
       this.clickLocation = ''
+      this.total = 0
       eventBus.$emit('location-setChange', true)
     }
   }
@@ -121,27 +147,91 @@
 </script>
 
 <style lang="less" scoped>
-    /*/deep/ .el-row {*/
-    /*    margin: 2px 0 !important;*/
-    /*    padding: 0;*/
-    /*    height: 10px;*/
-    /*    max-height: 10px;*/
-    /*}*/
-    .div-list-search {
+/*/deep/ .el-row {*/
+/*    margin: 2px 0 !important;*/
+/*    padding: 0;*/
+/*    height: 10px;*/
+/*    max-height: 10px;*/
+/*}*/
+.environmental-risk-list {
+  color: @color;
+  border-bottom: 1px solid rgba(0, 255, 246, 0.14);
 
-    }
+  h3 {
+    font-size: 0.1rem;
+  }
+}
 
-    .click-location {
-        margin: 0 auto;
-        text-align: center;
+/*<!--.environmental-risk-list:hover {-->*/
+/*<!--    color: @color-highlight;-->*/
+/*<!--    background: @background-color;-->*/
+/*<!--}-->*/
+.search-list {
+  h3:hover {
+    color: @color-highlight;
+  }
+}
 
-        .el-input {
-            width: 80%;
-            margin: 15px auto;
-        }
+.hover {
+  color: @color-highlight;
+}
 
-        .el-button {
-            margin: 15px auto;
-        }
-    }
+.click-location {
+  margin: 0 auto;
+  text-align: center;
+
+  .el-input {
+    width: 80%;
+    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..9603092 100644
--- a/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue
+++ b/src/components/base-page/enterprise-emergency/events-reported/ReportLocationSection.vue
@@ -1,30 +1,37 @@
 <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-col :span="18">
                     <el-form-item label="绠$嚎鍚嶇О:">
-                        <el-input v-model="form.pipeName">
+                        <el-input v-model="form.pipeName" @change="pipelineSearch">
                             <el-button style="padding-right:10px;" slot="suffix" type="text" @click="pipelineSearch">
                                 <img src="../../../../../public/assets/images/map/emergency/search.png" alt="">
                             </el-button>
                         </el-input>
                     </el-form-item>
                 </el-col>
-                <el-col :span="8">
+                <el-col :span="6">
                     <el-button type="primary" size="small" icon="el-icon-location-outline" @click="pipeClickLocation">瀹氫綅
                     </el-button>
                 </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,73 @@
         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.code
       this.form.affiliatedFacilities = val.properties.name
+      this.form.affiliatedFacilitiesCode = val.properties.type
     },
     // 瀹氫綅鍔熻兘
     localAdr (val) {
@@ -258,23 +282,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 +345,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..2283ad0 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,10 +51,10 @@
 <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'
+import WasteGasSearch from '@components/panel/topicSearch/WasteGasSearch'
+import WasteWaterSearch from '@components/panel/topicSearch/WasteWaterSearch'
 import SolidWasteSearch from '@components/panel/topicSearch/SolidWasteSearch'
 import SewersSearch from '@components/panel/topicSearch/SewersSearch'
 import SoilGroundWaterSearch from '@components/panel/topicSearch/SoilGroundWaterSearch.vue'
@@ -62,13 +62,11 @@
 import PipeInformationSearch from '@components/panel/topicSearch/pipeInformationSearch.vue'
 import EnterpriseEmergencySearch from './topicSearch/EnterpriseEmergencySearch'
 
-import bus from '@/eventBus'
-
 export default {
   name: 'MonitorPanel',
   components: {
-    GasWasteSearch,
-    WaterWasteSearch,
+    WasteGasSearch,
+    WasteWaterSearch,
     SolidWasteSearch,
     EnvRiskSearch,
     DischargeSearch,
@@ -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,35 +108,55 @@
         })
       })
     }
-  },
+  }, */
   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
           break
         case '搴熸按':
-          this.gcComp = WaterWasteSearch
+          this.gcComp = WasteWaterSearch
           break
         case '搴熸皵':
-          this.gcComp = GasWasteSearch
+          this.gcComp = WasteGasSearch
           break
         case '鍥哄簾':
           this.gcComp = SolidWasteSearch
@@ -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/GasWasteSearch.vue b/src/components/panel/topicSearch/WasteGasSearch.vue
similarity index 78%
rename from src/components/panel/topicSearch/GasWasteSearch.vue
rename to src/components/panel/topicSearch/WasteGasSearch.vue
index 57b7faa..4ca1a8d 100644
--- a/src/components/panel/topicSearch/GasWasteSearch.vue
+++ b/src/components/panel/topicSearch/WasteGasSearch.vue
@@ -3,7 +3,7 @@
     <div class="panel-title">{{title}}</div>
     <div class="search-panel ">
       <el-form ref="form" :model="form" label-width="90px" class="search-form">
-        <el-form-item label="鍖哄煙锛�" size="mini" class="search-panel-item">
+<!--        <el-form-item label="鍖哄煙锛�" size="mini" class="search-panel-item">
           <el-select style="width: 100%"  v-model="form.areaVal" @change="areaType"  :popper-class="'select-down'">
             <el-option
                 v-for="item in inareaTypeOptions"
@@ -12,7 +12,7 @@
                 :value="item.value">
             </el-option>
           </el-select>
-        </el-form-item>
+        </el-form-item>-->
         <el-form-item label="浼佷笟鍚嶇О锛�" size="mini">
           <el-select style="width: 100%"  v-model="form.enterpriseVal"  @change="enterpriseType" :popper-class="'select-down'">
             <el-option
@@ -23,8 +23,9 @@
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="浜岀骇鍗曚綅锛�" size="mini">
-          <el-select style="width: 100%"  v-model="form.enterpriseSubunitsVal"  @change="enterpriseSubunitsType" :popper-class="'select-down'">
+        <el-form-item label="鍗曚綅閮ㄩ棬锛�" size="mini">
+          <el-select style="width: 100%"  v-model="form.enterpriseSubunitsVal"  @change="enterpriseSubunitsType"
+                     :popper-class="'select-down'">
             <el-option
                 v-for="item in enterpriseSubunitsTypeOptions"
                 :key="item.value"
@@ -33,10 +34,11 @@
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="涓夌骇鍗曚綅锛�" size="mini">
-          <el-select style="width: 100%"  v-model="form.enterpriseSubunitsVal"  @change="enterpriseSubunitsType" :popper-class="'select-down'">
+        <el-form-item label="鎺у埗绾у埆锛�" size="mini">
+          <el-select style="width: 100%"  v-model="form.enterpriseLevelVal"  @change="enterpriseLevelType"
+                     :popper-class="'select-down'">
             <el-option
-                v-for="item in enterpriseSubunitsTypeOptions"
+                v-for="item in enterpriseLevelTypeOptions"
                 :key="item.value"
                 :label="item.label"
                 :value="item.value">
@@ -45,7 +47,9 @@
         </el-form-item>
 <!--        <el-form-item label="椋庨櫓绾у埆" size="mini"></el-form-item>-->
         <el-radio-group v-model="form.type" class="levelOfRisk">
-          <el-radio  v-for="(item,index) in levelOfRisk" :label="item.value" :key="index"><span class="levelOfRisk-type">{{item.name}}</span></el-radio>
+          <el-radio  v-for="(item,index) in levelOfRisk" :label="item.value" :key="index">
+            <span class="levelOfRisk-type">{{item.name}}</span>
+          </el-radio>
         </el-radio-group>
         <!--              <el-form-item >-->
         <div class="page_total">
@@ -74,8 +78,7 @@
         <img src="../../../../public/assets/images/map/exhaust/fq_green2.png" alt="" class="state"/>
         <div>
           <h3>{{ item.Name }}</h3>
-          <p>鎵�灞為儴闂細<span>{{ item.porltName }}</span></p>
-          <p>椋庨櫓绾у埆锛�<span>涓夌骇</span></p>
+          <p>鎵�灞為儴闂細<span>{{ item.DeptSname }}</span></p>
         </div>
       </div>
 
@@ -108,7 +111,7 @@
 import { pulseEffect, setPanTo } from '../../../utils/utils'
 
 export default {
-  name: 'GasWasteSearch',
+  name: 'WasteGasSearch',
   props: ['title'],
   data () {
     return {
@@ -117,23 +120,31 @@
       total: 0,
       // 鍒嗛〉
       pageSize: 10,
+      current: 1,
       inareaTypeOptions: [],
       enterpriseTypeOptions: [],
       enterpriseSubunitsTypeOptions: [],
+      enterpriseLevelTypeOptions: [
+        { label: '鍥芥帶', value: '1' },
+        { label: '鐪佹帶', value: '2' },
+        { label: '甯傛帶', value: '3' },
+        { label: '鍏朵粬', value: '4' }
+      ],
       form: {
         areaVal: '',
         enterpriseVal: '',
         enterpriseSubunitsVal: '',
+        enterpriseLevelVal: '',
         type: ''
       },
-      // pageSize: 10,
-      // current: 1,
       levelOfRisk: [
         { name: '鍏ㄩ儴', value: '1' },
         { name: '姝e父', value: '2' },
         { name: '瓒呮爣', value: '3' },
-        { name: '寮傚父', value: '4' },
-        { name: '鍋滀骇', value: '5' }
+        { name: '棰勮', value: '4' },
+        { name: '寮傚父', value: '5' },
+        { name: '缂哄け', value: '6' },
+        { name: '鍋滆繍', value: '7' }
       ]
     }
   },
@@ -144,13 +155,13 @@
       this.handleSearch()
     },
     // 鍖哄煙绛涢��
-    areaType (val) {
+    /* areaType (val) {
       this.pipelineTypeOptions.forEach((itm) => {
         if (val === itm.value) {
 
         }
       })
-    },
+    }, */
     // 浼佷笟绛涢��
     enterpriseType (val) {
       this.dataTypeOptions.forEach((itm) => {
@@ -163,17 +174,29 @@
     enterpriseSubunitsType (val) {
 
     },
-    // 涓夌骇鍗曚綅绛涢��
+    // 鎺у埗绾у埆绛涢��
+    enterpriseLevelType (val) {
+
+    },
+
     async handleSearch () {
       const param = {
-        pipelineType: this.form.pipelineType,
-        dataType: this.form.dataType
+        companyId: 3900100145, // 浼佷笟缂栫爜
+        id: '',
+        monType: 2, // 搴熸皵
+        userCode: 'wenchun.deng', // 鐢ㄦ埛鍚嶇О
+        monDuration: '',
+        epName: '',
+        secdDeptId: '',
+        contrLevel: '',
+        dataStatus: '',
+        dataFlag: '',
+        runStatus: '',
+        emissTypeId: ''
       }
-      // console.log(param)
       const res = await mapApi.getWasteGas(param)
-      // console.log(res)
-      this.list = res.Result.DataInfo
-      console.log(this.list)
+      this.list = res.Result.DataInfo || {}
+      this.total = this.list.length
     },
     // 寮圭獥灞曠ず
     async handleLocation (val) {
diff --git a/src/components/panel/topicSearch/WaterWasteSearch.vue b/src/components/panel/topicSearch/WasteWaterSearch.vue
similarity index 81%
rename from src/components/panel/topicSearch/WaterWasteSearch.vue
rename to src/components/panel/topicSearch/WasteWaterSearch.vue
index cb3343d..7d0df00 100644
--- a/src/components/panel/topicSearch/WaterWasteSearch.vue
+++ b/src/components/panel/topicSearch/WasteWaterSearch.vue
@@ -3,7 +3,7 @@
         <div class="panel-title">{{title}}</div>
         <div class="search-panel ">
             <el-form ref="form" :model="form" label-width="90px" class="search-form">
-                <el-form-item label="鍖哄煙锛�" size="mini" class="search-panel-item">
+<!--                <el-form-item label="鍖哄煙锛�" size="mini" class="search-panel-item">
                     <el-select style="width: 100%" v-model="form.areaVal" @change="areaType"
                                :popper-class="'select-down'">
                         <el-option
@@ -13,7 +13,7 @@
                                 :value="item.value">
                         </el-option>
                     </el-select>
-                </el-form-item>
+                </el-form-item>-->
                 <el-form-item label="浼佷笟鍚嶇О锛�" size="mini">
                     <el-select style="width: 100%" v-model="form.enterpriseVal" @change="enterpriseType"
                                :popper-class="'select-down'">
@@ -25,7 +25,7 @@
                         </el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="浜岀骇鍗曚綅锛�" size="mini">
+                <el-form-item label="鍗曚綅閮ㄩ棬锛�" size="mini">
                     <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType"
                                :popper-class="'select-down'">
                         <el-option
@@ -36,11 +36,11 @@
                         </el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="涓夌骇鍗曚綅锛�" size="mini">
-                    <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType"
+                <el-form-item label="鎺у埗绾у埆锛�" size="mini">
+                    <el-select style="width: 100%" v-model="form.enterpriseLevelVal" @change="enterpriseLevelType"
                                :popper-class="'select-down'">
                         <el-option
-                                v-for="item in enterpriseSubunitsTypeOptions"
+                                v-for="item in enterpriseLevelTypeOptions"
                                 :key="item.value"
                                 :label="item.label"
                                 :value="item.value">
@@ -77,11 +77,10 @@
         <el-scrollbar style="height:264px">
             <div class="environmental-risk-list" v-for="(item,index) in list" :key="index"
                  @click="handleLocation(item)"><!--  -->
-                <img src="../../../../public/assets/images/map/exhaust/fq_green2.png" alt="" class="state"/>
+                <img src="../../../../public/assets/images/map/wastewater/fs_bright_green.png" alt="" class="state"/>
                 <div>
                     <h3>{{ item.Name }}</h3>
-                    <p>鎵�灞為儴闂細<span>{{ item.porltName }}</span></p>
-                    <p>椋庨櫓绾у埆锛�<span>涓夌骇</span></p>
+                    <p>鎵�灞為儴闂細<span>{{ item.DeptSname }}</span></p>
                 </div>
             </div>
 
@@ -114,7 +113,7 @@
 import { pulseEffect, setPanTo } from '../../../utils/utils'
 
 export default {
-  name: 'WaterWasteSearch',
+  name: 'WasteWaterSearch',
   props: ['title'],
   data () {
     return {
@@ -124,40 +123,33 @@
       total: 0,
       // 鍒嗛〉
       pageSize: 10,
+      current: 1,
       inareaTypeOptions: [],
       enterpriseTypeOptions: [],
       enterpriseSubunitsTypeOptions: [],
+      enterpriseLevelTypeOptions: [
+        { label: '鍥芥帶', value: '1' },
+        { label: '鐪佹帶', value: '2' },
+        { label: '甯傛帶', value: '3' },
+        { label: '鍏朵粬', value: '4' }
+      ],
       form: {
         areaVal: '',
         enterpriseVal: '',
         enterpriseSubunitsVal: '',
+        enterpriseLevelVal: '',
         type: '1'
       },
-      // pageSize: 10,
-      // current: 1,
       isWaybillHover: true,
       isRouteHover: false,
       levelOfRisk: [
-        {
-          name: '鍏ㄩ儴',
-          value: '1'
-        },
-        {
-          name: '姝e父',
-          value: '2'
-        },
-        {
-          name: '瓒呮爣',
-          value: '3'
-        },
-        {
-          name: '寮傚父',
-          value: '4'
-        },
-        {
-          name: '鍋滀骇',
-          value: '5'
-        }
+        { name: '鍏ㄩ儴', value: '1' },
+        { name: '姝e父', value: '2' },
+        { name: '瓒呮爣', value: '3' },
+        { name: '棰勮', value: '4' },
+        { name: '寮傚父', value: '5' },
+        { name: '缂哄け', value: '6' },
+        { name: '鍋滆繍', value: '7' }
       ]
     }
   },
@@ -168,13 +160,13 @@
       this.handleSearch()
     },
     // 鍖哄煙绛涢��
-    areaType (val) {
+    /* areaType (val) {
       this.pipelineTypeOptions.forEach((itm) => {
         if (val === itm.value) {
 
         }
       })
-    },
+    }, */
     // 浼佷笟绛涢��
     enterpriseType (val) {
       this.dataTypeOptions.forEach((itm) => {
@@ -187,17 +179,29 @@
     enterpriseSubunitsType (val) {
 
     },
-    // 涓夌骇鍗曚綅绛涢��
+    // 鎺у埗绾у埆绛涢��
+    enterpriseLevelType (val) {
+
+    },
+
     async handleSearch () {
       const param = {
-        pipelineType: this.form.pipelineType,
-        dataType: this.form.dataType
+        companyId: 3900100145, // 浼佷笟缂栫爜
+        id: '',
+        monType: 1, // 搴熸按
+        userCode: 'wenchun.deng', // 鐢ㄦ埛鍚嶇О
+        monDuration: '',
+        epName: '',
+        secdDeptId: '',
+        contrLevel: '',
+        dataStatus: '',
+        dataFlag: '',
+        runStatus: '',
+        emissTypeId: ''
       }
-      // console.log(param)
       const res = await mapApi.getWasteWater(param)
-      // console.log(res)
-      this.list = res.Result.DataInfo
-      console.log(this.list)
+      this.list = res.Result.DataInfo || {}
+      this.total = this.list.length
     },
     // 寮圭獥灞曠ず
     handleLocation (val) {
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 20c3f29..af7e312 100644
--- a/src/conf/Constants.js
+++ b/src/conf/Constants.js
@@ -17,12 +17,12 @@
 }
 
 export const logicMapper = {
-  wasteGasPfk: 'WasteGas.js',
-  wasteWaterPfk: 'WasteWater.js',
-  wasteSolidCcd: 'WasteSolid.js',
+  wasteGasPfk: 'WasteGas.js', // 搴熸皵
+  wasteWaterPfk: 'WasteWater.js', // 搴熸按
+  wasteSolidCcd: 'WasteSolid.js', // 鍥哄簾
   sewersAreaGs: 'Company.js',
   pipesegment: 'PipeLineAnimal.js',
-  pollutionSources: 'SourcesPollution.js',
+  pollutionSourcesZlss: 'GovernEquipment.js', // 姹℃煋婧�-娌荤悊璁炬柦
   envRiskChart: 'EnvironmentRisk.js', // 椋庨櫓缁熻鍥�
   envRiskMajor: 'RiskSource.js', // 閲嶅ぇ椋庨櫓婧�
   envRiskFirst: 'RiskSource.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/conf/layers/LayerEnvRisk.js b/src/conf/layers/LayerEnvRisk.js
index 1ca0e15..983fe54 100644
--- a/src/conf/layers/LayerEnvRisk.js
+++ b/src/conf/layers/LayerEnvRisk.js
@@ -26,7 +26,7 @@
       name: '閲嶅ぇ椋庨櫓',
       sname: '閲嶅ぇ椋庨櫓',
       checked: false, // 榛樿閫変腑鐘舵��
-      minZoom: 10,
+      // minZoom: 10,
       color: 'red',
       level: 0
     },
@@ -36,7 +36,7 @@
       sname: '涓�绾ч闄�',
       checked: false, // 榛樿閫変腑鐘舵��
       type: 0,
-      minZoom: 10,
+      // minZoom: 10,
       color: 'sandybrown',
       level: 1
     },
@@ -46,7 +46,7 @@
       sname: '浜岀骇椋庨櫓',
       checked: false,
       type: 0,
-      minZoom: 10,
+      // minZoom: 10,
       color: 'yellow',
       level: 2
     },
@@ -56,7 +56,7 @@
       sname: '涓夌骇椋庨櫓',
       checked: false,
       type: 0,
-      minZoom: 10,
+      // minZoom: 10,
       color: 'green',
       level: 3
     }
diff --git a/src/utils/utils.js b/src/utils/utils.js
index d8d5e40..c187b1c 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -27,7 +27,7 @@
  * 鑴夊啿鏁堟灉
  */
 export function pulseEffect (xy) {
-  let times = 5
+  let times = 1000
   const colors = ['#00f100', '#ff0000']
   // 鎻掍欢 鏁堟灉瀹炵幇
   var pulsingIcon = window.L.icon.pulse({
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