From e3608132cc667c16ea10f450807e0feddaf55d1f Mon Sep 17 00:00:00 2001
From: 陈泽平 <chenzeping>
Date: 星期日, 30 五月 2021 13:32:38 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop

---
 public/assets/images/map-pages/title_bg2.png                                      |    0 
 src/components/base-page/enterprise-emergency/event-handling/DisposalProposed.vue |  141 ++++++-
 src/components/panel/RightSearchPanel.vue                                         |  124 ++++--
 src/conf/Topic.js                                                                 |    4 
 src/assets/css/map/map-panel-style.less                                           |   21 +
 src/components/helpers/MapManager.js                                              |    5 
 src/views/popup/DynamicHeader/DynamicTable.vue                                    |   43 ++
 src/components/LayerController/modules/LcServiceLayer.vue                         |   44 ++
 public/assets/images/map-pages/title_bg.png                                       |    0 
 src/components/base-page/WasteWater/WasteWaterHoursChart.vue                      |  227 +++++++++--
 src/components/base-page/enterprise-emergency/DisposalEvent.vue                   |  196 ++++++---
 src/components/base-page/WasteWater/WasteWaterIndex.vue                           |   21 
 src/components/table/components/tabHandover.vue                                   |    7 
 src/conf/Constants.js                                                             |   17 
 src/views/popup/DynamicHeader/TableColumn.vue                                     |   24 +
 src/components/base-page/PublicDataStandard.vue                                   |   13 
 src/components/base-page/WasteWater/WasteWaterDayChart.vue                        |  243 +++++++++---
 src/App.vue                                                                       |    6 
 18 files changed, 868 insertions(+), 268 deletions(-)

diff --git a/public/assets/images/map-pages/title_bg.png b/public/assets/images/map-pages/title_bg.png
new file mode 100644
index 0000000..0f0b6cd
--- /dev/null
+++ b/public/assets/images/map-pages/title_bg.png
Binary files differ
diff --git a/public/assets/images/map-pages/title_bg2.png b/public/assets/images/map-pages/title_bg2.png
new file mode 100644
index 0000000..642a42f
--- /dev/null
+++ b/public/assets/images/map-pages/title_bg2.png
Binary files differ
diff --git a/src/App.vue b/src/App.vue
index 6b056a7..a2535d8 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -29,5 +29,9 @@
   -ms-overflow-style: none;
   font-size: 12px;
 }
-
+.popoverBoxStyle{
+  border: 0.00521rem solid #00fff6;
+  box-shadow: 0 0 0.03rem #00fff6;
+  background-color: rgba(0, 16, 30, 0.7) !important;
+}
 </style>
diff --git a/src/assets/css/map/map-panel-style.less b/src/assets/css/map/map-panel-style.less
index 7ae3d48..1ec2a41 100644
--- a/src/assets/css/map/map-panel-style.less
+++ b/src/assets/css/map/map-panel-style.less
@@ -829,6 +829,27 @@
   padding: 5px;
   color: #f2f2f2;
 }
+.el-collapse-item__header {
+  display: flex;
+  align-items: center;
+  height: 48px;
+  line-height: 48px;
+  background-color: @background-color;
+  color: @color;
+  cursor: pointer;
+  border-bottom: 1px solid @color;
+  font-size: 13px;
+  font-weight: 500;
+  transition: border-bottom-color .3s;
+  outline: 0;
+}
+.el-collapse-item__wrap{
+  background-color: @background-color;
+
+}
+.el-collapse-item__content{
+  color: @color;
+}
 
 /************鎼滅储鏁版嵁鍒嗛〉鍔熻兘鎬绘暟閲忔牱寮忔坊鍔�************/
 .page_total {
diff --git a/src/components/LayerController/modules/LcServiceLayer.vue b/src/components/LayerController/modules/LcServiceLayer.vue
index acb38a6..eb0472f 100644
--- a/src/components/LayerController/modules/LcServiceLayer.vue
+++ b/src/components/LayerController/modules/LcServiceLayer.vue
@@ -7,17 +7,17 @@
                     <i class="downUp el-icon-caret-bottom" @click="item.isShow=!item.isShow" :class="item.isShow?'':'active'" ></i><!-- el-icon-arrow-down -->
                     <!-- 涓�绾у浘灞傞亶鍘� -->
                     <div style="padding-left:25px;padding-top:10px;color:#fff;font-size: 16px;">
-                        <input type="checkbox"  :class="item.type==1?'active':''" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" @change="swAllLayers(item)"/>{{ item.name }}
+                        <input type="checkbox" :class="{ 'active': item.type === 1 }" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" @change="swAllLayers(item)"/>{{ item.name }}
                     </div>
                     <div class="layerbox-item" v-show="item.isShow" >
                         <!-- 浜岀骇鍥惧眰閬嶅巻 -->
                         <div class="basemap-layer-item" v-for="(itm,index2) in item.layers" :key="index2" :class="!itm.layers?'felxs':''" >
-                            <input type="checkbox" :class="itm.type==1?'active':''" :name="'wmsSublayers_'+item.code+'_'+itm.code" :checked="itm.checked" :value="itm.code" @change="swAllLayers(itm)"/>{{ itm.name }}
+                            <input type="checkbox" :class="{ 'active': itm.type === 1 }" :name="'wmsSublayers_'+item.code+'_'+itm.code" :checked="itm.checked" :value="itm.code" @change="swAllLayers(itm)"/>{{ itm.name }}
                             <!-- 涓夌骇鍥惧眰閬嶅巻 -->
                             <div class="layerbox-item-3" v-show="itm.layers">
                                 <div class="basemap-layer-item" v-for="(layer,index3) in itm.layers" :key="index3">
                                     <input type="checkbox"
-                                           :class="layer.type==1?'active':''"
+                                           :class="{ 'active': layer.type === 1 }"
                                            :name="'wmsSublayers_'+item.code+'_'+layer.code"
                                            :checked="layer.checked"
                                            :value="layer.code"
@@ -36,7 +36,7 @@
 
 <script>
 import LcServiceLayerFilter from '@components/LayerController/modules/LcServiceLayerFilter'
-import bus from '@/eventBus'
+
 export default {
   name: 'LcServiceLayer',
   components: { LcServiceLayerFilter },
@@ -68,6 +68,8 @@
       } else {
         this.toggleLayer(item)
       }
+      /* <<<<<<< HEAD
+      bus.$emit('changeSearchBar', item)
       this.serviceLayers.forEach(function (item1, index1) {
         if (item1.layers) {
           item1.istrue = 0
@@ -112,6 +114,7 @@
           // console.log(item1.layers.length, item1.istrue, item1.isfalse, item1.type)
         }
       })
+>>>>>>> de7390c66ef3e3fe316e804495a78d05a01f0160 */
       // console.log(this.serviceLayers)
     },
     swLayers (configs, checked) {
@@ -126,6 +129,30 @@
         }
       }
     },
+    setLayerType (configs, checkedSum) {
+      if (configs) {
+        for (let i = 0, len = configs.length; i < len; ++i) {
+          const config = configs[i]
+          const checked = config.checked
+          if (config.layers) {
+            checkedSum = this.setLayerType(config.layers, checkedSum || 0)
+            if (checkedSum === config.layers.length) {
+              config.type = 2
+              config.checked = true
+            } else if (checkedSum === 0) {
+              config.type = 0
+              config.checked = false
+            } else {
+              config.type = 1
+            }
+            checkedSum = 0
+            continue
+          }
+          checkedSum = checkedSum + (checked ? 1 : 0)
+        }
+        return checkedSum
+      }
+    },
     toggleLayer (itm) {
       if (itm.checked) {
         window.layerFactory.show(itm)
@@ -134,6 +161,15 @@
       }
       // this.updateWms()
     }
+  },
+  watch: {
+    serviceLayers: {
+      handler: function (val) {
+        this.setLayerType(val, 0)
+      },
+      immediate: true,
+      deep: true
+    }
   }
 }
 </script>
diff --git a/src/components/base-page/PublicDataStandard.vue b/src/components/base-page/PublicDataStandard.vue
index df75eaf..164801f 100644
--- a/src/components/base-page/PublicDataStandard.vue
+++ b/src/components/base-page/PublicDataStandard.vue
@@ -7,7 +7,7 @@
       <!--      <span class="grid-content">搴熸皵娴侀噺 : <i style="color: #e8ee0b">120343.18</i></span>-->
       <span class="grid-content" v-for="item in dataStandard" :key="item.current.name">{{ item.current.name }} :
         <i style="color: #e8ee0b">{{ item.current.val }}</i>  {{
-          item.standard.name ? item.standard.name + ':' : ''
+          item.standard.name && item.current.name.indexOf('娴侀噺') === -1 ? item.standard.name + ':' : ''
         }} <i style="color: #fff">{{ item.standard.val }}</i></span>
     </div>
   </div>
@@ -16,6 +16,11 @@
 <script>
 export default {
   name: 'PublicDataStandard',
+  watch: {
+    dataStandard (val, oldVal) {
+      this.dataStandard = val
+    }
+  },
   props: {
     dataStandard: {
       type: Array,
@@ -31,12 +36,12 @@
 .animation {
   .information {
     .grid-content {
-      padding: 0.02rem;
-      background-color: #2e4967;
+      padding: 0.03rem 0.08rem 0.03rem 0.08rem;
       text-align: center;
       border-radius: 0.02rem;
       line-height: 0.15rem;
-      margin: 0 0.05rem;
+      margin: 0 0.03rem;
+      box-shadow: 0 0 10px rgba(129,211,248,.35) inset;
     }
   }
 }
diff --git a/src/components/base-page/WasteWater/WasteWaterDayChart.vue b/src/components/base-page/WasteWater/WasteWaterDayChart.vue
index 1fcb2c9..8f0bce3 100644
--- a/src/components/base-page/WasteWater/WasteWaterDayChart.vue
+++ b/src/components/base-page/WasteWater/WasteWaterDayChart.vue
@@ -13,7 +13,14 @@
                 <el-option v-for="(item,index) in formData.regionList" :key="index" :label="item" :value="item"></el-option>
             </el-select>
             <el-button @click="querySearch()">鏌ヨ</el-button>
-            <el-button>鏄庣粏琛�</el-button>
+            <el-popover
+                placement="top"
+                width="100%"
+                popper-class="popoverBoxStyle"
+                trigger="click">
+              <dynamic-table :tableData="tableData" :tableHeader="tableConfig" v-if="tableData"></dynamic-table>
+              <el-button slot="reference">鏄庣粏琛�</el-button>
+            </el-popover>
         </div>
         <div class="echarts-chart">
             <div ref="echartsDay"></div>
@@ -26,56 +33,19 @@
 import dayjs from 'dayjs'
 import PublicDataStandard from '../PublicDataStandard'
 import mapApi from '@/api/mapApi'
+import DynamicTable from '../../../views/popup/DynamicHeader/DynamicTable' // 澶氱骇琛ㄥご
 
 export default {
   name: 'WasteWaterDayChart',
   components: {
-    PublicDataStandard
+    PublicDataStandard,
+    DynamicTable
   },
   data () {
     return {
       // tab鏍忎紶閫掓帴鏀舵暟鎹�
-      dataStandard: [
-        {
-          current: {
-            name: '姘哀鍖栫墿',
-            val: 29.93
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 100
-          }
-        },
-        {
-          current: {
-            name: '浜屾哀鍖栫~',
-            val: 17.34
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 50
-          }
-        },
-        {
-          current: {
-            name: '鐑熷皹',
-            val: 6.93
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 30
-          }
-        },
-        {
-          current: {
-            name: '搴熸皵娴侀噺',
-            val: 120
-          },
-          standard: {
-            name: '',
-            val: null
-          }
-        }],
+      dataStandard: [],
+      tableData: null,
       formData: {
         region: '25',
         regionList: [25, 50, 75, 100],
@@ -86,7 +56,98 @@
       dataType: 1,
       jcdID: 1,
       bzz: null,
-      bzzList: []
+      bzzList: [],
+      // 琛ㄥご鏁版嵁
+      tableConfig: [
+        {
+          id: 100,
+          label: '鎺掓斁鐐�',
+          prop: 'OnLineMonEmissPointName'
+        },
+        {
+          id: 200,
+          label: '鐩戞祴鏃堕棿',
+          prop: 'MonTimeStr'
+        },
+        {
+          id: 300,
+          label: 'COD',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 310,
+              label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+              prop: 'COD_EmissQty'
+            },
+            {
+              id: 320,
+              label: '瀹炴祴娴撳害锛坢g/l锛�',
+              prop: 'COD_MonQty'
+            },
+            {
+              id: 330,
+              label: '鏍囧噯鍊硷紙mg/l锛�',
+              prop: 'COD_StdValue'
+            }
+          ]
+        },
+        {
+          id: 400,
+          label: '姘ㄦ爱',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 410,
+              label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+              prop: '姘ㄦ爱_EmissQty'
+            },
+            {
+              id: 420,
+              label: '瀹炴祴娴撳害锛坢g/l锛�',
+              prop: '姘ㄦ爱_MonQty'
+            },
+            {
+              id: 430,
+              label: '鏍囧噯鍊硷紙mg/l锛�',
+              prop: '姘ㄦ爱_StdValue'
+            }
+          ]
+        },
+        {
+          id: 500,
+          label: 'PH',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 510,
+              label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+              prop: 'pH_EmissQty'
+            },
+            {
+              id: 520,
+              label: '瀹炴祴娴撳害锛坢g/l锛�',
+              prop: 'pH_MonQty'
+            },
+            {
+              id: 530,
+              label: '鏍囧噯鍊硷紙mg/l锛�',
+              prop: 'pH_StdValue'
+            }
+          ]
+        },
+        {
+          id: 600,
+          label: '搴熸按娴侀噺',
+          prop: '',
+          children: [
+            {
+              id: 610,
+              label: '瀹炴祴娴侀噺锛坢鲁/h锛�',
+              prop: '搴熸按娴侀噺_MonQty'
+            }
+          ]
+        }
+      ]
     }
   },
   mounted () {
@@ -104,7 +165,7 @@
         poltMtrlId: '',
         emissTypeId: '',
         onLineMonEmissPointId: 23,
-        monItemId: 28,
+        monItemId: '28,31,35', // 鐩戞祴椤�  COD銆佹皑姘�丳H
         beginTime: this.formData.timeStart,
         endTime: this.formData.timeEnd,
         dataType: this.dataType
@@ -114,6 +175,8 @@
     },
     get24HourDate (res) {
       if (res.length > 0) {
+        this.dataStandard = []
+        this.tableData = this.analysisResult(res) // 灏忔椂鏄庣粏琛ㄨВ鏋愮粨鏋�
         // 澶勭悊鏁版嵁寮�濮�
         const d = res
         const nameList = [] // 瀛樻斁鍥句緥
@@ -148,19 +211,44 @@
           if (nameList.length === 0) {
             nameList.push(d[i].PoltmtrlName.trim())
             dateList.push(strDate)
-
+            this.dataStandard.push({
+              current: {
+                name: d[i].PoltmtrlName.trim(),
+                val: ''
+              },
+              standard: {
+                name: '鏍囧噯',
+                val: ''
+              }
+            })
             bzh.push(d[i].StdValue)
             data = {
               name: d[i].PoltmtrlName.trim(),
-              data: [d[i].MonQty]
+              data: []
+            }
+            if (d[i].MonQty !== null) {
+              data.data.push(d[i].MonQty)
             }
             dataList.push(data)
           } else if (nameList.indexOf(d[i].PoltmtrlName.trim()) < 0) {
             nameList.push(d[i].PoltmtrlName)
             bzh.push(d[i].StdValue)
+            this.dataStandard.push({
+              current: {
+                name: d[i].PoltmtrlName.trim(),
+                val: ''
+              },
+              standard: {
+                name: '鏍囧噯',
+                val: ''
+              }
+            })
             data = {
               name: d[i].PoltmtrlName.trim(),
-              data: [d[i].MonQty]
+              data: []
+            }
+            if (d[i].MonQty !== null) {
+              data.data.push(d[i].MonQty)
             }
             dataList.push(data)
           } else {
@@ -169,7 +257,7 @@
             }
             for (let j = 0; j < dataList.length; j++) {
               if (d[i].PoltmtrlName.trim() === dataList[j].name) {
-                dataList[j].data.push(d[i].MonQty)
+                if (d[i].MonQty !== null)dataList[j].data.push(d[i].MonQty)
               }
             }
           }
@@ -265,7 +353,10 @@
           }
           ydatas.push(ydata)
         }
-
+        for (var t = 0; t < this.dataStandard.length; t++) {
+          this.dataStandard[t].current.val = ydatas[t].data[ydatas[t].data.length - 1].toFixed(2)
+          this.dataStandard[t].standard.val = ydatas[t].bzz
+        }
         const yname = '娴撳害(mg/l)'
         this.effChartShow(legend, xdata, ydatas, yname, this.jcdID, this.datatype)
       }
@@ -273,7 +364,6 @@
     effChartShow (legend, xdata, ydatas, yname, jcdID, datatype) {
       this.chart = this.$echarts.init(this.$refs.echartsDay)
       this.chart.clear()
-      // console.log(this.chart)
       this.chart.clear()
       let dataUnit = ''
       if (datatype === 1) {
@@ -302,12 +392,14 @@
                       biaozhuiz = bzzList[i].bzhui
                     }
                   }
-                  if (c.value[1] > biaozhuiz) {
-                    return zdcbcolor
-                  } else if (c.value[1] > biaozhuiz * 0.9) {
-                    return '#FFA500'
-                  } else {
-                    return '#33c95f'
+                  if (c.value) {
+                    if (c.value[1] > biaozhuiz) {
+                      return zdcbcolor
+                    } else if (c.value[1] > biaozhuiz * 0.9) {
+                      return '#FFA500'
+                    } else {
+                      return '#33c95f'
+                    }
                   }
                 },
                 lineStyle: { // 鎶樼嚎鐨勯鑹�
@@ -544,6 +636,43 @@
       }
       this.chart.setOption(option)
       window.onresize = this.chart.resize
+    },
+    analysisResult (result) {
+      // 澶勭悊琛ㄦ牸澶�
+      const json = {}
+      const arr = []
+      // 澶勭悊琛ㄦ牸鍐呭
+      const bodyDataList = []
+      const dataMap = {}
+      for (let i = 0; i < result.length; i++) {
+        json[result[i].PoltmtrlName] = result[i].PoltmtrlName
+        const rgdata = result[i]
+        const timeTag = rgdata.MonTimeStr
+        if (!dataMap[timeTag]) {
+          dataMap[timeTag] = { MonTimeStr: '' + rgdata.MonTimeStr }
+        }
+        // 寰�鏁版嵁涓坊鍔犲睘鎬ф暟鎹�
+        const el = dataMap[timeTag]
+        el.OnLineMonEmissPointName = rgdata.OnLineMonEmissPointName
+        el[rgdata.PoltmtrlName + '_EmissQty'] = rgdata.EmissQty ? rgdata.EmissQty.toFixed(2) : '--'
+        el[rgdata.PoltmtrlName + '_MonQty'] = rgdata.MonQty ? rgdata.MonQty.toFixed(2) : '--'
+        el[rgdata.PoltmtrlName + '_StdValue'] = rgdata.StdValue ? rgdata.StdValue.toFixed(2) : '--'
+      }
+      let FSLLtemp = null
+      for (var key in json) {
+        if (key === '搴熸按娴侀噺' || key === '搴熸按') {
+          FSLLtemp = key
+        } else {
+          arr.push(key)
+        }
+      }
+      if (FSLLtemp != null) {
+        arr.push(FSLLtemp)
+      }
+      for (var p in dataMap) {
+        bodyDataList.push(dataMap[p])
+      }
+      return bodyDataList
     }
   }
 }
diff --git a/src/components/base-page/WasteWater/WasteWaterHoursChart.vue b/src/components/base-page/WasteWater/WasteWaterHoursChart.vue
index 2acfe80..6cdefb1 100644
--- a/src/components/base-page/WasteWater/WasteWaterHoursChart.vue
+++ b/src/components/base-page/WasteWater/WasteWaterHoursChart.vue
@@ -13,7 +13,14 @@
         <el-option v-for="(item,index) in formData.regionList" :key="index" :label="item" :value="item"></el-option>
       </el-select>
       <el-button @click="querySearch()">鏌ヨ</el-button>
-      <el-button>鏄庣粏琛�</el-button>
+      <el-popover
+          placement="top"
+          width="100%"
+          popper-class="popoverBoxStyle"
+          trigger="click">
+        <dynamic-table :tableData="tableData" :tableHeader="tableConfig" v-if="tableData"></dynamic-table>
+        <el-button slot="reference">鏄庣粏琛�</el-button>
+      </el-popover>
     </div>
     <div class="echarts-chart">
       <div ref="echartsHour"></div>
@@ -26,56 +33,21 @@
 import PublicDataStandard from '../PublicDataStandard'
 import dayjs from 'dayjs'
 import mapApi from '../../../api/mapApi'
+import DynamicTable from '../../../views/popup/DynamicHeader/DynamicTable' // 澶氱骇琛ㄥご
 
 export default {
   name: 'WasteWaterHoursChart',
   components: {
-    PublicDataStandard
+    PublicDataStandard,
+    DynamicTable
   },
   data () {
     return {
       // tab鏍忎紶閫掓帴鏀舵暟鎹�
-      dataStandard: [
-        {
-          current: {
-            name: '姘哀鍖栫墿',
-            val: 29.93
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 100
-          }
-        },
-        {
-          current: {
-            name: '浜屾哀鍖栫~',
-            val: 17.34
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 50
-          }
-        },
-        {
-          current: {
-            name: '鐑熷皹',
-            val: 6.93
-          },
-          standard: {
-            name: '鏍囧噯',
-            val: 30
-          }
-        },
-        {
-          current: {
-            name: '搴熸皵娴侀噺',
-            val: 123
-          },
-          standard: {
-            name: '',
-            val: null
-          }
-        }],
+      dataStandard: [],
+      popUpName: '',
+      tableData: null,
+      mingxiBoxHtml: '',
       formData: {
         region: '25',
         regionList: [25, 50, 75, 100],
@@ -87,7 +59,98 @@
       dataType: 2,
       bzz: null,
       bzzList: [],
-      bz: ''
+      bz: '',
+      // 琛ㄥご鏁版嵁
+      tableConfig: [
+        {
+          id: 100,
+          label: '鎺掓斁鐐�',
+          prop: 'OnLineMonEmissPointName'
+        },
+        {
+          id: 200,
+          label: '鐩戞祴鏃堕棿',
+          prop: 'MonTimeStr'
+        },
+        {
+          id: 300,
+          label: 'COD',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 310,
+              label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+              prop: 'COD_EmissQty'
+            },
+            {
+              id: 320,
+              label: '瀹炴祴娴撳害锛坢g/l锛�',
+              prop: 'COD_MonQty'
+            },
+            {
+              id: 330,
+              label: '鏍囧噯鍊硷紙mg/l锛�',
+              prop: 'COD_StdValue'
+            }
+          ]
+        },
+        {
+          id: 400,
+          label: '姘ㄦ爱',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 410,
+              label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+              prop: '姘ㄦ爱_EmissQty'
+            },
+            {
+              id: 420,
+              label: '瀹炴祴娴撳害锛坢g/l锛�',
+              prop: '姘ㄦ爱_MonQty'
+            },
+            {
+              id: 430,
+              label: '鏍囧噯鍊硷紙mg/l锛�',
+              prop: '姘ㄦ爱_StdValue'
+            }
+          ]
+        },
+        {
+          id: 500,
+          label: 'PH',
+          prop: 'PoltmtrlName',
+          children: [
+            {
+              id: 510,
+              label: '瀹炴祴鎺掓斁閲忥紙kg/h锛�',
+              prop: 'pH_EmissQty'
+            },
+            {
+              id: 520,
+              label: '瀹炴祴娴撳害锛坢g/l锛�',
+              prop: 'pH_MonQty'
+            },
+            {
+              id: 530,
+              label: '鏍囧噯鍊硷紙mg/l锛�',
+              prop: 'pH_StdValue'
+            }
+          ]
+        },
+        {
+          id: 600,
+          label: '搴熸按娴侀噺',
+          prop: '',
+          children: [
+            {
+              id: 610,
+              label: '瀹炴祴娴侀噺锛坢鲁/h锛�',
+              prop: '搴熸按娴侀噺_MonQty'
+            }
+          ]
+        }
+      ]
     }
   },
   mounted () {
@@ -105,18 +168,20 @@
         poltMtrlId: '',
         emissTypeId: '',
         onLineMonEmissPointId: 23,
-        monItemId: 28,
+        monItemId: '28,31,35', // 鐩戞祴椤�  COD銆佹皑姘�丳H
         beginTime: this.formData.startTime,
         endTime: this.formData.endTime,
         dataType: this.dataType
       }
       const result = (await mapApi.getQueryOnlineMonData(data)).Result.DataInfo
-      // console.log(result)
+      this.popUpName = result[0].OnLineMonEmissPointName
       this.get24HourDate(result)
     },
     // 缁樺埗灏忔椂鏁版嵁鎶樼嚎鍥�
     get24HourDate (result) {
       if (result.length > 0) {
+        this.dataStandard = []
+        this.tableData = this.analysisResult(result) // 灏忔椂鏄庣粏琛ㄨВ鏋愮粨鏋�
         const d = result
         const nameList = [] // 瀛樻斁鍥句緥
         const dateList = [] // 瀛樻斁鏃堕棿
@@ -170,24 +235,43 @@
               }
             }
           }
-
           if (nameList.length === 0) {
             nameList.push(d[i].PoltmtrlName.trim())
+            this.dataStandard.push({
+              current: {
+                name: d[i].PoltmtrlName.trim(),
+                val: 29.93
+              },
+              standard: {
+                name: '鏍囧噯',
+                val: 100
+              }
+            })
             dateList.push(strDate)
             if ((d[i].PoltmtrlName === '搴熸按娴侀噺' || d[i].PoltmtrlName === '搴熸按') && d[i].MonQty < 0) {
               d[i].MonQty = 0
             }
-            data.push(d[i].MonQty)
+            if (d[i].MonQty !== null)data.push(d[i].MonQty)
             bzh.push(d[i].StdValue)
           } else if (nameList.indexOf(d[i].PoltmtrlName.trim()) < 0) {
             nameList.push(d[i].PoltmtrlName)
+            this.dataStandard.push({
+              current: {
+                name: d[i].PoltmtrlName.trim(),
+                val: 29.93
+              },
+              standard: {
+                name: '鏍囧噯',
+                val: 100
+              }
+            })
             bzh.push(d[i].StdValue)
             dataList.push(data)
             data = []
             if ((d[i].PoltmtrlName === '搴熸按娴侀噺' || d[i].PoltmtrlName === '搴熸按') && d[i].MonQty < 0) {
               d[i].MonQty = 0
             }
-            data.push(d[i].MonQty)
+            if (d[i].MonQty !== null)data.push(d[i].MonQty)
           } else if (i === d.length - 1) {
             if ((d[i].PoltmtrlName === '搴熸按娴侀噺' || d[i].PoltmtrlName === '搴熸按') && d[i].MonQty < 0) {
               d[i].MonQty = 0
@@ -202,10 +286,9 @@
             if ((d[i].PoltmtrlName === '搴熸按娴侀噺' || d[i].PoltmtrlName === '搴熸按') && d[i].MonQty < 0) {
               d[i].MonQty = 0
             }
-            data.push(d[i].MonQty)
+            if (d[i].MonQty !== null)data.push(d[i].MonQty)
           }
         }
-
         const newList = []
 
         for (let i = 0; i < dataList.length; i++) {
@@ -291,7 +374,10 @@
         // console.log(ydatas)
 
         const yname = '娴撳害(mg/l)'
-
+        for (var t = 0; t < this.dataStandard.length; t++) {
+          this.dataStandard[t].current.val = ydatas[t].data[ydatas[t].data.length - 1].toFixed(2)
+          this.dataStandard[t].standard.val = ydatas[t].bzz
+        }
         this.effChartShow(legend, xdata, ydatas, yname, this.jcdID, this.datatype)
       }
     },
@@ -570,6 +656,43 @@
       }
       this.chart.setOption(option)
       window.onresize = this.chart.resize
+    },
+    analysisResult (result) {
+      // 澶勭悊琛ㄦ牸澶�
+      const json = {}
+      const arr = []
+      // 澶勭悊琛ㄦ牸鍐呭
+      const bodyDataList = []
+      const dataMap = {}
+      for (let i = 0; i < result.length; i++) {
+        json[result[i].PoltmtrlName] = result[i].PoltmtrlName
+        const rgdata = result[i]
+        const timeTag = rgdata.MonTimeStr
+        if (!dataMap[timeTag]) {
+          dataMap[timeTag] = { MonTimeStr: '' + rgdata.MonTimeStr }
+        }
+        // 寰�鏁版嵁涓坊鍔犲睘鎬ф暟鎹�
+        const el = dataMap[timeTag]
+        el.OnLineMonEmissPointName = rgdata.OnLineMonEmissPointName
+        el[rgdata.PoltmtrlName + '_EmissQty'] = rgdata.EmissQty ? rgdata.EmissQty.toFixed(2) : '--'
+        el[rgdata.PoltmtrlName + '_MonQty'] = rgdata.MonQty ? rgdata.MonQty.toFixed(2) : '--'
+        el[rgdata.PoltmtrlName + '_StdValue'] = rgdata.StdValue ? rgdata.StdValue.toFixed(2) : '--'
+      }
+      let FSLLtemp = null
+      for (var key in json) {
+        if (key === '搴熸按娴侀噺' || key === '搴熸按') {
+          FSLLtemp = key
+        } else {
+          arr.push(key)
+        }
+      }
+      if (FSLLtemp != null) {
+        arr.push(FSLLtemp)
+      }
+      for (var p in dataMap) {
+        bodyDataList.push(dataMap[p])
+      }
+      return bodyDataList
     }
   }
 }
diff --git a/src/components/base-page/WasteWater/WasteWaterIndex.vue b/src/components/base-page/WasteWater/WasteWaterIndex.vue
index 0e8c77a..d5c3167 100644
--- a/src/components/base-page/WasteWater/WasteWaterIndex.vue
+++ b/src/components/base-page/WasteWater/WasteWaterIndex.vue
@@ -84,26 +84,26 @@
   display: flex;
   align-items: center;
   justify-content: space-between;
-  padding: 5px 0;
+  padding-left: 0.07rem;
   border-bottom: 1px #243a55 solid;
-
   .navigation-left {
     display: flex;
     align-items: center;
 
     .uncheck {
-      margin: 0 10px;
       cursor: pointer;
-      padding: 5px;
+      margin-left: -0.05rem;
+      width: .8rem;
+      padding: 6px 0;
       /*border: 1px solid #2b87c8;*/
       /*border-radius: 4px;*/
+      background-position: 0 0;
+      background-repeat: no-repeat;
+      background-size: 100% 100%;
+      background-image: url("../../../../public/assets/images/map-pages/title_bg.png");
       text-align: center;
       vertical-align: middle !important;
       color: #fff;
-      -webkit-transform: skew(30deg);
-      -moz-transform: skew(30deg);
-      -o-transform: skew(30deg);
-      transform: skew(15deg);
     }
 
     .default-uncheck {
@@ -113,15 +113,13 @@
     }
 
     .hover {
-      background-color: #0e539e;
+      background-image: url("../../../../public/assets/images/map-pages/title_bg2.png");
       color: #ffffff;
       cursor: pointer;
     }
 
     .hover:hover {
       cursor: pointer;
-      padding: 5px;
-      border: 1px solid #5F9EA0;
       border-radius: 4px;
       text-align: center;
       color: #F0FFFF;
@@ -129,7 +127,6 @@
   }
 
   .navigation-left :hover {
-    background-color: #0e639e;
     color: #fff;
     cursor: pointer;
   }
diff --git a/src/components/base-page/enterprise-emergency/DisposalEvent.vue b/src/components/base-page/enterprise-emergency/DisposalEvent.vue
index e7eb185..c7c4c15 100644
--- a/src/components/base-page/enterprise-emergency/DisposalEvent.vue
+++ b/src/components/base-page/enterprise-emergency/DisposalEvent.vue
@@ -1,72 +1,105 @@
 <template>
-  <div class="disposal-event">
-    <h4 class="sub-title ">浜嬩欢鍩烘湰淇℃伅</h4>
-    <div :model="form">
-      <el-row>
-        <el-col class="info-label" :span="6">浜嬩欢鍚嶇О锛�</el-col>
-        <el-col class="info-text" :span="18">{{ form.nameOfEvent }}</el-col>
-      </el-row>
-      <el-row>
-        <el-col class="info-label" :span="6">
-          浜嬩欢浣嶇疆锛�
-        </el-col>
-        <el-col class="info-text" :span="18">
-          <label>{{ form.eventLocation }}</label>
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col class="info-label" :span="6">
-          浣嶇疆鎻忚堪锛�
-        </el-col>
-        <el-col class="info-text" :span="18">
-          <label>{{ form.positionDesc }}</label>
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col class="info-label" :span="6">
-          浜嬩欢鍗曚綅锛�
-        </el-col>
-        <el-col class="info-text" :span="18">
-          {{ form.incidentUnit }}
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col class="info-label" :span="6">
-          浜嬪彂鏃堕棿锛�
-        </el-col>
-        <el-col class="info-text" :span="18">
-          {{ form.atTime }}
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col class="info-label" :span="6">浜嬩欢鎻忚堪锛�</el-col>
-        <el-col class="info-text" :span="18">{{ form.eventDesc }}</el-col>
-      </el-row>
-      <el-row>
-        <el-col class="info-label"  span="6">闄勪欢锛�</el-col>
-        <el-col class="info-text" :span="18"><a class="link-btn" href="javascript:">闄勪欢</a>
-          &nbsp;&nbsp;&nbsp;&nbsp;
-          <a class="link-btn" href="javascript:">闄勪欢</a>
-        </el-col>
-      </el-row>
+  <div>
+    <el-scrollbar >
+    <div class="disposal-event">
+<!--      <el-collapse v-model="activeNames" @change="handleChange">-->
+<!--        <el-collapse-item title="浜嬩欢鍩烘湰淇℃伅" name="1">-->
+          <div>
+            <h4 class="sub-title ">浜嬩欢鍩烘湰淇℃伅</h4>
+            <div :model="form">
+              <el-row>
+                <el-col class="info-label" :span="6">浜嬩欢鍚嶇О锛�</el-col>
+                <el-col class="info-text" :span="18">{{ form.nameOfEvent }}</el-col>
+              </el-row>
+              <el-row>
+                <el-col class="info-label" :span="6">
+                  浜嬩欢浣嶇疆锛�
+                </el-col>
+                <el-col class="info-text" :span="18">
+                  <label>{{ form.eventLocation }}</label>
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col class="info-label" :span="6">
+                  浣嶇疆鎻忚堪锛�
+                </el-col>
+                <el-col class="info-text" :span="18">
+                  <label>{{ form.positionDesc }}</label>
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col class="info-label" :span="6">
+                  浜嬩欢鍗曚綅锛�
+                </el-col>
+                <el-col class="info-text" :span="18">
+                  {{ form.incidentUnit }}
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col class="info-label" :span="6">
+                  浜嬪彂鏃堕棿锛�
+                </el-col>
+                <el-col class="info-text" :span="18">
+                  {{ form.atTime }}
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col class="info-label" :span="6">浜嬩欢鎻忚堪锛�</el-col>
+                <el-col class="info-text" :span="18">{{ form.eventDesc }}</el-col>
+              </el-row>
+              <el-row>
+                <el-col class="info-label"  span="6">闄勪欢锛�</el-col>
+                <el-col class="info-text" :span="18"><a class="link-btn" href="javascript:">闄勪欢</a>
+                  &nbsp;&nbsp;&nbsp;&nbsp;
+                  <a class="link-btn" href="javascript:">闄勪欢</a>
+                </el-col>
+              </el-row>
+            </div>
+          </div>
+<!--        </el-collapse-item>-->
+<!--        <el-collapse-item title="棰勬鍖归厤" name="2">-->
+          <div>
+<!--            <h3 class="sub-title">棰勬鍖归厤</h3>-->
+            <el-table :data="tableData" style="width: 100%">
+              <el-table-column prop="name" label="棰勬鍚嶇О"></el-table-column>
+              <el-table-column prop="define" label="棰勬瀹氫箟"></el-table-column>
+              <el-table-column prop="hierarchy" label="棰勬灞傜骇"></el-table-column>
+              <el-table-column prop="classification" label="棰勬鍒嗙被"></el-table-column>
+              <el-table-column label="闄勪欢">
+                <template>
+                  <a class="link-btn" href="javascript:">棰勬</a>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+<!--        </el-collapse-item>-->
+<!--        <el-collapse-item title="鐜鍒嗘瀽鎶ュ憡" name="3">-->
+          <div>
+            <h3 class="sub-title">鐜鍒嗘瀽鎶ュ憡</h3>
+            <el-table :data="envTableData" style="width: 100%">
+              <el-table-column prop="no" label="搴忓彿"></el-table-column>
+              <el-table-column prop="radius" label="鏌ヨ鍗婂緞"></el-table-column>
+              <el-table-column prop="reporterTime" label="鐢熸垚鎶ュ憡鏃堕棿"></el-table-column>
+              <el-table-column prop="classification" label="鎿嶄綔">
+                <template slot-scope="scope" >
+                  <el-button class="link-btn" @click="handleClickView(scope.row)" type="text" size="small">鏌ョ湅</el-button>
+                  <el-button class="link-btn" @click="handleClickDownload(scope.row)" type="text" size="small">涓嬭浇</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+<!--        </el-collapse-item>-->
+<!--      </el-collapse>-->
+
     </div>
-    <h3 class="sub-title">棰勬鍖归厤</h3>
-    <el-table :data="tableData" style="width: 100%">
-      <el-table-column prop="name" label="棰勬鍚嶇О"></el-table-column>
-      <el-table-column prop="define" label="棰勬瀹氫箟"></el-table-column>
-      <el-table-column prop="hierarchy" label="棰勬灞傜骇"></el-table-column>
-      <el-table-column prop="classification" label="棰勬鍒嗙被"></el-table-column>
-      <el-table-column label="闄勪欢">
-        <template>
-          <a class="link-btn" href="javascript:">棰勬</a>
-        </template>
-      </el-table-column>
-    </el-table>
+    </el-scrollbar>
     <div class="event-management">
+      <el-input></el-input>
       <el-button type="primary" size="mini" @click="ToManagement">寮�濮嬪垎鏋�</el-button>
       <!--            <el-button size="mini">鍏抽棴</el-button>-->
     </div>
   </div>
+
 </template>
 
 <script>
@@ -77,6 +110,7 @@
   name: 'DisposalEvent',
   data () {
     return {
+      activeNames: ['1'],
       form: {
         nameOfEvent: '***************浜嬩欢',
         eventLocation: '**********瑁呯疆',
@@ -116,6 +150,23 @@
           hierarchy: '鍩哄眰鍗曚綅',
           classification: '鐢熶骇'
         }
+      ],
+      envTableData: [
+        {
+          no: '1',
+          radius: '500m',
+          reporterTime: '2021-6-1 18:00:00',
+          data: [],
+          downloadUrl: ''
+        },
+        {
+          no: '2',
+          radius: '1km',
+          reporterTime: '2021-6-1 18:00:00',
+          data: [],
+          downloadUrl: ''
+        }
+
       ]
     }
   },
@@ -123,6 +174,15 @@
     // 寮�濮嬪垎鏋�
     ToManagement () {
       eventBus.$emit('event-handling', {})
+    },
+    handleClickView (item) {
+      console.log(item)
+    },
+    handleClickDownload (item) {
+      console.log(item)
+    },
+    handleChange (val) {
+      console.log(val)
     }
   }
 }
@@ -131,7 +191,7 @@
 <style lang="less" scoped>
 .disposal-event {
   padding: 5px;
-
+height: 400px;
   .fixed-width {
     width: 3.2459893rem;
     min-width: 3.2459893rem;
@@ -144,11 +204,6 @@
   /deep/ .el-form-item__label {
     color: @color;
     font-size: 0.08rem;
-  }
-
-  .event-management {
-    text-align: right;
-    margin: 15px;
   }
 
   .sub-title {
@@ -170,5 +225,8 @@
     text-align: left;
   }
 }
-
+.event-management {
+  text-align: right;
+  margin: 15px;
+}
 </style>
diff --git a/src/components/base-page/enterprise-emergency/event-handling/DisposalProposed.vue b/src/components/base-page/enterprise-emergency/event-handling/DisposalProposed.vue
index 38c50ee..da459bf 100644
--- a/src/components/base-page/enterprise-emergency/event-handling/DisposalProposed.vue
+++ b/src/components/base-page/enterprise-emergency/event-handling/DisposalProposed.vue
@@ -1,24 +1,59 @@
 <template>
-  <div>
-<!--    <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%">-->
-<!--      <el-table-column prop="define" label="寤鸿澶勭疆鎺柦" show-overflow-tooltip></el-table-column>-->
-<!--      <el-table-column type="selection" label="棰勮" width="55"></el-table-column>-->
+  <div class="">
+    <!--    <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%">-->
+    <!--      <el-table-column prop="define" label="寤鸿澶勭疆鎺柦" show-overflow-tooltip></el-table-column>-->
+    <!--      <el-table-column type="selection" label="棰勮" width="55"></el-table-column>-->
 
-<!--    </el-table>-->
+    <!--    </el-table>-->
     <div class="" style="padding: 5px;">
-<!--      <div v-for="o in tableData" :key="o" class="text item">-->
-<!--        {{ o.content }}-->
-<!--      </div>-->
+      <!--      <div v-for="o in tableData" :key="o" class="text item">-->
+      <!--        {{ o.content }}-->
+      <!--      </div>-->
       <div>
-        1銆佸叧闂榾闂˙銆侀榾闂–锛屽涓婃父绠¢亾杩涜鎴祦锛涘叧闂榾闂―锛屽涓嬫父绠¢亾杩涜鎴祦
+        <h4 class="sub-title ">绠$嚎鍩烘湰淇℃伅</h4>
+        <div>
+          浜嬩欢绠$嚎锛�
+          <div class="report-con">
+            鐢熶骇1鍖虹绾緼锛屼粙璐ㄤ负鍚补姹℃按锛屽煁璁炬柟寮忎负鐩村煁锛屾潗璐ㄤ负鏃犵紳閽㈢锛岄檮灞炶鏂介榾闂ˋ銆�
+          </div>
+          涓婃父绠$嚎
+          <div class="report-con">
+            鐢熶骇2鍖虹绾緽锛屼粙璐ㄤ负鍚补姹℃按锛屽煁璁炬柟寮忎负鐩村煁锛屾潗璐ㄤ负鏃犵紳閽㈢锛岄檮灞炶鏂介榾闂˙
+          </div>
+          <div class="report-con">
+            鐢熶骇2鍖虹绾緾锛屼粙璐ㄤ负鍚补姹℃按锛屽煁璁炬柟寮忎负鐩村煁锛屾潗璐ㄤ负鏃犵紳閽㈢锛岄檮灞炶鏂介榾闂–
+          </div>
+          涓嬫父绠$嚎
+          <div class="report-con">
+            鐢熶骇2鍖虹绾緿锛屼粙璐ㄤ负鍚补姹℃按锛屽煁璁炬柟寮忎负鐩村煁锛屾潗璐ㄤ负鏃犵紳閽㈢锛岄檮灞炶鏂介榾闂―
+          </div>
+          浜嬩欢鑼冨洿鍐�
+          <div class="report-con">
+            瑁呯疆鍖洪洦姘寸嚎锛屼粙璐ㄤ负闆ㄦ按绠$嚎锛屽煁璁炬柟寮忎负鏄庢矡 锛屾潗璐ㄤ负鏃犳按娉ワ紝闄勫睘璁炬柦鎴祦闂�
+          </div>
+          <div class="report-con">
+            瑁呯疆鍖洪洦姘寸嚎锛屼粙璐ㄤ负闆ㄦ按绠$嚎锛屽煁璁炬柟寮忎负鏄庢矡 锛屾潗璐ㄤ负鏃犳按娉ワ紝闄勫睘璁炬柦鎴祦闂�
+          </div>
+        </div>
+        <div>
+          <h3 class="sub-title">鐜鍒嗘瀽鎶ュ憡</h3>
+          <el-table :data="envTableData" style="width: 100%">
+            <el-table-column prop="process" label="寤鸿澶勭疆鎺柦"></el-table-column>
+            <el-table-column prop="operation" label="鎿嶄綔">
+              <template slot-scope="scope">
+                <el-button class="link-btn" @click="handleClickView(scope.row)" type="text" size="mini">棰勮</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
 
         <div>
 
         </div>
       </div>
     </div>
-    <div >
-</div>
+    <div>
+    </div>
 
   </div>
 </template>
@@ -36,9 +71,25 @@
           type: 'closeFM',
           fmGxList: {
             // 涓婃父闃�闂�
-            syfm: [{ name: '闃�闂˙', lng: 114, lat: 32 }, { name: '闃�闂╝', lng: 114, lat: 32 }],
+            syfm: [{
+              name: '闃�闂˙',
+              lng: 114,
+              lat: 32
+            }, {
+              name: '闃�闂╝',
+              lng: 114,
+              lat: 32
+            }],
             // 涓嬫父闃�闂�
-            xyfm: [{ name: '闃�闂‥', lng: 114, lat: 32 }, { name: '闃�闂‵', lng: 114, lat: 32 }]
+            xyfm: [{
+              name: '闃�闂‥',
+              lng: 114,
+              lat: 32
+            }, {
+              name: '闃�闂‵',
+              lng: 114,
+              lat: 32
+            }]
           }
         }, {
           no: 1,
@@ -47,9 +98,25 @@
           type: 'closeFM',
           fmGxList: {
             // 涓婃父闃�闂�
-            syfm: [{ name: '闃�闂˙', lng: 114, lat: 32 }, { name: '闃�闂╝', lng: 114, lat: 32 }],
+            syfm: [{
+              name: '闃�闂˙',
+              lng: 114,
+              lat: 32
+            }, {
+              name: '闃�闂╝',
+              lng: 114,
+              lat: 32
+            }],
             // 涓嬫父闃�闂�
-            xyfm: [{ name: '闃�闂‥', lng: 114, lat: 32 }, { name: '闃�闂‵', lng: 114, lat: 32 }]
+            xyfm: [{
+              name: '闃�闂‥',
+              lng: 114,
+              lat: 32
+            }, {
+              name: '闃�闂‵',
+              lng: 114,
+              lat: 32
+            }]
           }
         }, {
           no: 1,
@@ -58,20 +125,54 @@
           type: 'closeFM',
           fmGxList: {
             // 涓婃父闃�闂�
-            syfm: [{ name: '闃�闂˙', lng: 114, lat: 32 }, { name: '闃�闂╝', lng: 114, lat: 32 }],
+            syfm: [{
+              name: '闃�闂˙',
+              lng: 114,
+              lat: 32
+            }, {
+              name: '闃�闂╝',
+              lng: 114,
+              lat: 32
+            }],
             // 涓嬫父闃�闂�
-            xyfm: [{ name: '闃�闂‥', lng: 114, lat: 32 }, { name: '闃�闂‵', lng: 114, lat: 32 }]
+            xyfm: [{
+              name: '闃�闂‥',
+              lng: 114,
+              lat: 32
+            }, {
+              name: '闃�闂‵',
+              lng: 114,
+              lat: 32
+            }]
           }
-        }]
+        }],
+      envTableData: [
+        {
+          process: '1銆佸叧闂榾闂˙銆侀榾闂–锛屽涓婃父绠¢亾杩涜鎴祦锛涘叧闂榾闂―锛屽涓嬫父绠¢亾杩涜鎴祦'
+        },
+        {
+          process: '2.閫氳繃璺ㄧ嚎/鏃佽矾锛圶XX姹℃按绠$嚎锛夎繘琛屽娴�'
+        }, {
+          process: '3.灞曠ず鍙楀奖鍝嶆薄姘寸绾垮強澶栨帓鍙�'
+        }
 
+      ]
     }
   },
   methods: {
-
+    handleClickView (item) {
+      console.log(item)
+    },
+    handleClickDownload (item) {
+      console.log(item)
+    }
   }
 }
 </script>
 
-<style scoped>
+<style lang="less" scoped>
+.report-con{
 
+  color: @color;
+}
 </style>
diff --git a/src/components/helpers/MapManager.js b/src/components/helpers/MapManager.js
index eae4b26..c3ec889 100644
--- a/src/components/helpers/MapManager.js
+++ b/src/components/helpers/MapManager.js
@@ -44,7 +44,7 @@
       var point = this.map.latLngToContainerPoint(latlng, this.map.getZoom())
       const wmsLayerService = window.layerFactory.wmsLayerService
       const layers = wmsLayerService.wmsLayerList.getLayers()
-      // const filters = wmsLayerService.wmsLayerList.getFilters()
+      const filters = wmsLayerService.wmsLayerList.getFilters()
       const wmsParams = Object.assign({
         LAYERS: layers,
         QUERY_LAYERS: layers,
@@ -54,6 +54,9 @@
         Y: Math.round(point.y),
         BBOX: this.map.getBounds().toBBoxString()
       }, this.defaultWmsParams, params)
+      if (filters) {
+        wmsParams.CQL_FILTER = filters
+      }
       AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
         resolve(res.data)
       })
diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue
index 6df7286..e0b822c 100644
--- a/src/components/panel/RightSearchPanel.vue
+++ b/src/components/panel/RightSearchPanel.vue
@@ -12,7 +12,7 @@
                     </div>
                 </li>
             </ul> -->
-            <ul v-for="item in topicList" :key="item.name"
+            <ul v-for="item in list" :key="item.name"
                 :class="item.checked?'module-wrap map-btn-active':'module-wrap map-btn-unactive'"
                 @click="()=>{selected(item)}" v-show="item.isShow">
               <el-tooltip :popper-class="'map-tooltip'" effect="dark" :content="item.name" placement="left">
@@ -51,7 +51,7 @@
 <script>
 import EnvRiskSearch from './topicSearch/EnvRiskSearch'
 import DischargeSearch from './topicSearch/DischargeSearch'
-import { TopicList } from '../../conf/Topic'
+import { topicList } from '../../conf/Topic'
 
 import GasWasteSearch from '@components/panel/topicSearch/GasWasteSearch'
 import WaterWasteSearch from '@components/panel/topicSearch/WaterWasteSearch'
@@ -61,8 +61,6 @@
 import PipeChangesSearch from '@components/panel/topicSearch/pipeChangesSearch.vue'
 import PipeInformationSearch from '@components/panel/topicSearch/pipeInformationSearch.vue'
 import EnterpriseEmergencySearch from './topicSearch/EnterpriseEmergencySearch'
-
-import bus from '@/eventBus'
 
 export default {
   name: 'MonitorPanel',
@@ -78,7 +76,7 @@
     return {
       isShow: true,
       topicMenu: [],
-      topicList: TopicList,
+      list: topicList,
       topicCheckedList: [],
       isPanelVisible: false,
       gcComp: SewersSearch,
@@ -91,7 +89,11 @@
       selectGroup: false
     }
   },
-  computed: {},
+  computed: {
+    serviceLayers () {
+      return this.$store.state.map.serviceLayers.LayerSewersLine
+    }
+  }, /*
   watch: {
     '$store.state.map.topic.topicCheckedList': function (newVal, oldVal) {
       console.log(oldVal)
@@ -106,26 +108,46 @@
         })
       })
     }
-  },
+  }, */
   methods: {
     handleClose (done) {
       console.log(done)
     },
     setSearchPanelChange () {
+      // 鎼滅储闈㈡澘娌℃湁鏄剧ず鏃讹紝灏嗘墍鏈変富棰橀�夋嫨鐘舵�佽缃负false
       this.selectGroup = !this.selectGroup
       if (!this.selectGroup) {
-        this.topicList.forEach((itm) => {
+        this.list.forEach((itm) => {
           itm.checked = false
         })
       }
     },
+    unselected (val) {
+      // console.log(val)
+      this.selectGroup = true
+      this.list.forEach((itm) => {
+        if (itm.name === val.name) {
+          console.log(val.name)
+          itm.checked = false
+          itm.isShow = false
+        }
+      })
+    },
     selected (val) {
       // console.log(val)
-      this.title = val.name
       this.selectGroup = true
-      this.topicList.forEach((itm) => {
-        itm.checked = val.name === itm.name
+      this.list.forEach((itm) => {
+        if (itm.name === val.name) {
+          itm.isShow = true
+          itm.checked = true
+        } else {
+          itm.checked = false
+        }
       })
+      this.setComp(val)
+    },
+    setComp (val) {
+      this.title = val.name
       switch (val.name) {
         case '姹℃煋婧�':
           this.gcComp = DischargeSearch
@@ -160,9 +182,6 @@
       }
     },
     handlePage (page) {
-    },
-    handleGd () {
-      this.title = '绠¢亾淇℃伅鏌ヨ'
     },
     toggleMonitorPanel () {
       this.isCollapse = !this.isCollapse
@@ -204,37 +223,60 @@
       //     })
       //   }
     },
-    defaultLastOne () {
-      let v = {}
-      this.topicList.forEach((item) => {
-        if (item.isShow) {
-          v = item
+    containsLayer (layer) {
+      if (layer) {
+        for (let i = 0; i < layer.length; i++) {
+          const lay = layer[i]
+          const checked = lay.checked
+
+          for (let j = 0; j < this.list.length; j++) {
+            const topic = this.list[j]
+            if (lay.name === topic.name) {
+              if (lay.layers) {
+                const isChecked = this.isChecked(lay.layers)
+                if (isChecked) {
+                  this.selected(topic)
+                } else {
+                  this.unselected(topic)
+                }
+              } else if (checked) {
+                this.selected(topic)
+              }
+              break
+            }
+          }
+          this.containsLayer(lay.layers)
         }
-      })
-      this.selected(v)
+      }
+    },
+    isChecked (layers) {
+      for (let i = 0; i < layers.length; i++) {
+        const layer = layers[i]
+        const checked = layer.checked
+        if (checked) {
+          return true
+        }
+        if (layer.layers) {
+          return this.isChecked(layer.layers)
+        }
+      }
+      return false
     }
   },
   mounted () {
-    const that = this
-    bus.$on('changeSearchBar', function (obj) {
-      that.gcComp = ''
-      that.topicList.forEach((item) => {
-        if (item.name === obj.name) {
-          if (obj.type > 0) {
-            item.isShow = true
-          } else {
-            item.isShow = false
-          }
-          // item.isShow = obj.checked
-          if (item.isShow) {
-            that.selected(item)
-          } else {
-            that.defaultLastOne()
-          }
-        }
-      })
-    })
-  //  console.log(that.topicList)
+    /* bus.$on('changeSearchBar', (obj) => {
+      const topic = this.search(this.serviceLayers, obj)
+      console.log('====' + JSON.stringify(topic))
+    }) */
+  },
+  watch: {
+    serviceLayers: {
+      handler: function (newVal, oldVal) {
+        this.containsLayer(newVal)
+      },
+      immediate: true,
+      deep: true
+    }
   }
 }
 </script>
diff --git a/src/components/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..3abd745 100644
--- a/src/conf/Constants.js
+++ b/src/conf/Constants.js
@@ -65,7 +65,8 @@
   emergencyesources: '搴旀�ョ墿璧�',
   firefightingunit: '娑堥槻鍗曚綅',
   unitareaboundary: '瑁呯疆鍖鸿竟鐣�',
-  sensitivetarget: '鏁忔劅鐩爣'
+  sensitivetarget: '鏁忔劅鐩爣',
+  chokevalve: '鎴祦闂�'
 }
 
 export const LAYERPROPS = {
@@ -92,6 +93,7 @@
     name: '绠$綉鍚嶇О',
     linenumtype: '绠$嚎绫诲瀷',
     pipename: '绠$嚎鍚嶇О',
+    subchaname: '鏀嚎鍚嶇О',
     mediumtype: '杈撻�佷粙璐�',
     length: '闀垮害(m)',
     startposname: '璧风偣浣嶇疆鍚嶇О',
@@ -414,5 +416,18 @@
     huncount: '甯歌浜哄彛鏁伴噺',
     structureoridsitearea: '鍗犲湴闈㈢Н',
     adminzonename: '琛屾斂闅跺睘'
+  },
+  // 鎴祦闂�
+  chokevalve: {
+    closurename: '鍚嶇О',
+    closurecode: '缂栫爜',
+    pointnumber: '娴嬬偣缂栧彿',
+    mediumtype: '浠嬭川',
+    size: '灏哄(m)',
+    operatingtype: '鎺у埗鏂瑰紡',
+    telephone: '鑱旂郴鐢佃瘽',
+    resperson: '璐熻矗浜�',
+    startdate: '鎶曠敤鏃ユ湡',
+    operationalstatus: '杩愯鐘舵��'
   }
 }
diff --git a/src/conf/Topic.js b/src/conf/Topic.js
index ff80c53..7f566af 100644
--- a/src/conf/Topic.js
+++ b/src/conf/Topic.js
@@ -12,10 +12,10 @@
   EnterpriseEmergencySearch: () => import('@components/panel/topicSearch/EnterpriseEmergencySearch.vue')
 }
 
-export const TopicList = [{
+export const topicList = [{
   name: '姹℃煋婧�',
   id: 1,
-  check: false,
+  checked: false,
   isShow: false,
   icon: 'iconwuranyuan',
   comp: ''
diff --git a/src/views/popup/DynamicHeader/DynamicTable.vue b/src/views/popup/DynamicHeader/DynamicTable.vue
new file mode 100644
index 0000000..a115ba1
--- /dev/null
+++ b/src/views/popup/DynamicHeader/DynamicTable.vue
@@ -0,0 +1,43 @@
+<template>
+  <el-table :data="tableData" border :height="height">
+    <template v-for="item in tableHeader">
+      <table-column v-if="item.children && item.children.length" :key="item.id" :coloumn-header="item"></table-column>
+      <el-table-column v-else :key="item.id" :label="item.label" :prop="item.prop" align="center"></el-table-column>
+    </template>
+  </el-table>
+</template>
+
+<script>
+import TableColumn from './TableColumn'
+export default {
+  props: {
+    // 琛ㄦ牸鐨勬暟鎹�
+    tableData: {
+      type: Array,
+      required: true
+    },
+    // 澶氱骇琛ㄥご鐨勬暟鎹�
+    tableHeader: {
+      type: Array,
+      required: true
+    },
+    // 琛ㄦ牸鐨勯珮搴�
+    height: {
+      type: String,
+      default: '340'
+    }
+  },
+  components: {
+    TableColumn
+  },
+  watch: {
+    tableData (val, oldVal) {
+      this.tableData = val
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/src/views/popup/DynamicHeader/TableColumn.vue b/src/views/popup/DynamicHeader/TableColumn.vue
new file mode 100644
index 0000000..be2ea78
--- /dev/null
+++ b/src/views/popup/DynamicHeader/TableColumn.vue
@@ -0,0 +1,24 @@
+<template>
+  <el-table-column :label="coloumnHeader.label" :prop="coloumnHeader.label" align="center">
+    <template v-for="item in coloumnHeader.children">
+      <tableColumn v-if="item.children && item.children.length" :key="item.id" :coloumn-header="item"></tableColumn>
+      <el-table-column v-else :key="item.name" :label="item.label" :prop="item.prop" align="center"></el-table-column>
+    </template>
+  </el-table-column>
+</template>
+
+<script>
+export default {
+  name: 'tableColumn',
+  props: {
+    coloumnHeader: {
+      type: Object,
+      required: true
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

--
Gitblit v1.8.0