From 1250621ab9ea6ea93911be0f283c3bfcdceb0667 Mon Sep 17 00:00:00 2001
From: chenyibo <p-honggang.li@pcitc.com>
Date: 星期二, 30 三月 2021 18:03:59 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop

---
 src/components/LayerController/service/AnimalService.js                |   37 +++
 src/components/BaseNav/SolidWaste/directive/directive.js               |   77 +++++++
 src/components/BaseNav/WasteWater/WasteWater.js                        |   21 +
 src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue        |   18 
 src/assets/images/map-pages/basenav/flugas/exhaust/fq_orange.png       |    0 
 src/api/SolidWaste/index.js                                            |    6 
 src/assets/images/map-pages/basenav/flugas/exhaust/fq_green_xc.png     |    0 
 src/components/BaseNav/SolidWaste/SolidWaste.js                        |   59 ++--
 src/components/LayerController/service/WmsLayerService.js              |    6 
 src/assets/images/map-pages/basenav/flugas/exhaust/fq_green.png        |    0 
 src/components/LayerController/service/WfsLayerService.js              |   14 
 src/conf/Constants.js                                                  |    3 
 src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue        |    0 
 src/components/BaseNav/SolidWaste/directive/dir.js                     |    0 
 src/components/BaseNav/SolidWaste/directive/index.js                   |   14 +
 src/components/LayerController/logic/WasteGas.js                       |   46 ++++
 src/assets/images/map-pages/basenav/flugas/exhaust/fq_blue.png         |    0 
 src/assets/images/map-pages/basenav/flugas/exhaust/fq_gray.png         |    0 
 src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue      |  194 ++++++++++------
 src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue     |   65 ++---
 src/components/LayerController/logic/Sample.js                         |    4 
 src/views/MapTemplate.vue                                              |    2 
 src/components/LayerController/service/LayerFactory.js                 |   27 +-
 src/components/BaseNav/PublicBounced/PublicBounced.vue                 |   15 
 src/assets/images/map-pages/basenav/flugas/exhaust/fq_bright_green.png |    0 
 src/components/LayerController/service/BusiLayerService.js             |   13 
 src/assets/images/map-pages/basenav/flugas/exhaust/fq_yellow.png       |    0 
 src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue          |   22 -
 src/assets/images/map-pages/basenav/flugas/exhaust/fq_red.png          |    0 
 29 files changed, 428 insertions(+), 215 deletions(-)

diff --git a/src/api/SolidWaste/index.js b/src/api/SolidWaste/index.js
new file mode 100644
index 0000000..b034763
--- /dev/null
+++ b/src/api/SolidWaste/index.js
@@ -0,0 +1,6 @@
+import $http from '@utils/axios'
+// import Qs from 'qs'
+
+export const getSolidWaste = (data = {}) => {
+  return $http.get('/wasteSolid/getSolidWaste', data)
+}
diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_blue.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_blue.png
new file mode 100644
index 0000000..93edcb3
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_blue.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_bright_green.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_bright_green.png
new file mode 100644
index 0000000..19b0397
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_bright_green.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_gray.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_gray.png
new file mode 100644
index 0000000..590b183
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_gray.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green.png
new file mode 100644
index 0000000..08e8a59
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green_xc.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green_xc.png
new file mode 100644
index 0000000..acc7c10
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green_xc.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_orange.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_orange.png
new file mode 100644
index 0000000..718f237
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_orange.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_red.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_red.png
new file mode 100644
index 0000000..5f93934
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_red.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_yellow.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_yellow.png
new file mode 100644
index 0000000..169ce4d
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_yellow.png
Binary files differ
diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue
index 9084a18..675b787 100644
--- a/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue
+++ b/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue
@@ -7,10 +7,12 @@
     <div class="border_corner border_corner_left_bottom"></div>
     <div class="border_corner border_corner_right_bottom"></div>
     <div class="main">
-      <div class="main-echarts">
-        <div id="echarts" style="width:100%;height:100%" ref="main"></div>
+        <div id="echarts" ref="main"></div>
+        <div class="border_corner border_corner_left_top"></div>
+        <div class="border_corner border_corner_right_top"></div>
+        <div class="border_corner border_corner_left_bottom"></div>
+        <div class="border_corner border_corner_right_bottom"></div>
       </div>
-    </div>
   </div>
 </template>
 
@@ -22,18 +24,27 @@
       const myChart = this.$echarts.init(this.$refs.main)
       const option = {
         title: {
-          text: '鎶樼嚎鍥惧爢鍙�'
+          // text: '鎶樼嚎鍥惧爢鍙�'
         },
-        // color: '#fff',
+        color: ['#5470c6', '#91CC75', '#EE6666', '#FF0087'],
         tooltip: {
-          trigger: 'axis'
+          trigger: 'axis',
+          axisPointer: {
+            type: 'cross',
+            label: {
+              color: '#1a4245'
+            }
+          }
         },
-        // legend: {
-        //   data: ['閭欢钀ラ攢', '鑱旂洘骞垮憡', '瑙嗛骞垮憡', '鐩存帴璁块棶', '鎼滅储寮曟搸']
-        // },
+        legend: {
+          data: ['姘哀鍖栫墿', '浜屾哀鍖栫~', '鐑熷皹', '搴熸皵娴侀噺']
+          // pageTextStyle: {
+          //   color: '#fff'
+          // }
+        },
         grid: {
           left: '3%',
-          right: '4%',
+          right: '3%',
           bottom: '3%',
           containLabel: true
         },
@@ -42,63 +53,98 @@
             saveAsImage: {}
           }
         },
+        // 鍥炬爣缂╂斁璁剧疆
+        dataZoom: [{
+          type: 'inside',
+          start: 0,
+          end: 100
+        }, {
+          start: 0,
+          end: 100,
+          show: false,
+          // handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
+          handleSize: '80%',
+          handleStyle: {
+            color: '#fff',
+            shadowBlur: 3,
+            shadowColor: 'rgba(0, 0, 0, 0.6)',
+            shadowOffsetX: 2,
+            shadowOffsetY: 2
+          }
+        }],
+        // x杞寸殑璁剧疆
         xAxis: {
           type: 'category',
           boundaryGap: false,
-          data: ['鍛ㄤ竴', '鍛ㄤ簩', '鍛ㄤ笁', '鍛ㄥ洓', '鍛ㄤ簲', '鍛ㄥ叚', '鍛ㄦ棩'],
-          axisLabel: {
+          data: ['12:00:01', '12:00:02', '12:00:03', '12:00:04', '12:00:05', '12:00:06', '12:00:07'],
+          axisLabel: { // x杞村叏閮ㄦ樉绀�
+            rotate: 20,
+            interval: 0,
             textStyle: {
-              color: '#7edae8' // 鍧愭爣鐨勫瓧浣撻鑹�
+              color: '#fff'
             }
           },
-          axisLine: {
-            show: false, // 闅愯棌鍧愭爣杞�
+          splitLine: { // 缃戞牸鍨傜洿绾夸负铏氱嚎
+            show: true,
             lineStyle: {
-              color: '#00eeff' // 鍧愭爣杞寸殑棰滆壊
+              type: 'dashed'
+            }
+          },
+          axisTick: { // x 杞村埢搴︽樉绀�
+            show: false
+          },
+          axisLine: {
+            lineStyle: {
+              color: '#FFFFFF',
+              width: 1 // 杩欓噷鏄负浜嗙獊鍑烘樉绀哄姞涓婄殑
             }
           }
         },
+        // Y 杞寸殑璁剧疆
         yAxis: [{
           type: 'value',
+          // name: yname, // 鍚庢湡鍥炬爣Y杞存樉绀哄崟浣�
+          name: '娴撳害(mg/m鲁)',
           axisLabel: {
+            formatter: '{value}',
             textStyle: {
-              color: '#7edae8' // 鍧愭爣鐨勫瓧浣撻鑹�
+              color: '#fff' // 鍧愭爣鐨勫瓧浣撻鑹�
             }
           },
+          axisPointer: {
+            snap: true // 鑷姩鍚搁檮鏈�杩戠殑鐐�
+          },
+          splitLine: {
+            show: false // y杞� 缃戞牸绾夸笉鏄剧ず
+          },
           axisLine: {
-            show: false, // 闅愯棌鍧愭爣杞�
             lineStyle: {
-              color: '#00eeff' // 鍧愭爣杞寸殑棰滆壊
+              color: '#ffffff', // 鍧愭爣杞寸殑棰滆壊
+              width: 1
             }
           }
         }],
         series: [
           {
-            name: '閭欢钀ラ攢',
+            name: '姘哀鍖栫墿',
             type: 'line',
             stack: '鎬婚噺',
             data: [120, 132, 101, 134, 90, 230, 210]
           },
           {
-            name: '鑱旂洘骞垮憡',
-            type: 'line',
-            stack: '鎬婚噺',
-            data: [220, 182, 191, 234, 290, 330, 310]
-          },
-          {
-            name: '瑙嗛骞垮憡',
+            name: '浜屾哀鍖栫~',
             type: 'line',
             stack: '鎬婚噺',
             data: [150, 232, 201, 154, 190, 330, 410]
           },
           {
-            name: '鐩存帴璁块棶',
+            name: '鐑熷皹',
             type: 'line',
             stack: '鎬婚噺',
             data: [320, 332, 301, 334, 390, 330, 320]
           },
           {
-            name: '鎼滅储寮曟搸',
+            name: '搴熸皵娴侀噺',
             type: 'line',
             stack: '鎬婚噺',
             data: [820, 932, 901, 934, 1290, 1330, 1320]
@@ -115,50 +161,48 @@
 </script>
 
 <style scoped lang="less">
-.win {
-  width: 100%;
-  height: 100%;
-  position: relative;
-  //display: inline-block;
-  background-color: rgba(33, 41, 69,0.9);
-}
-.border_corner{
-  z-index: 2500;
-  position: absolute;
-  width: 10px;
-  height: 10px;
-  background: rgba(0,0,0,0);
-  border: 1.5px solid #47d5ea;
-}
-.border_corner_left_top{
-  top: 0;
-  left: 0;
-  border-right: none;
-  border-bottom: none;
-}
-.border_corner_right_top{
-  top: 0;
-  right: 0;
-  border-left: none;
-  border-bottom: none;
-}
-.border_corner_left_bottom{
-  bottom: 0;
-  left: 0;
-  border-right: none;
-  border-top: none;
-}
-.border_corner_right_bottom{
-  bottom: 0;
-  right: 0;
-  border-left: none;
-  border-top: none;
-}
-.main {
-  width: 100%;
-  height: 100%;
-  .main-echarts{
-    border: 1px solid #396d83;
-  }
-}
+    .win {
+        /*width: 100%;*/
+        /*height: 100%;*/
+        position: relative;
+        //display: inline-block;
+        background-color: rgba(33, 41, 69,0.9);
+    }
+    #echarts{
+        width: 600px;
+        height: 260px;
+    }
+    .border_corner{
+        z-index: 2500;
+        position: absolute;
+        width: 14px;
+        height: 14px;
+        background: rgba(0,0,0,0);
+        border: 2px solid #47d5ea;
+    }
+    .border_corner_left_top{
+        top: 0;
+        left: 0;
+        border-right: none;
+        border-bottom: none;
+    }
+    .border_corner_right_top{
+        top: 0;
+        right: 0;
+        border-left: none;
+        border-bottom: none;
+    }
+    .border_corner_left_bottom{
+        bottom: 0;
+        left: 0;
+        border-right: none;
+        border-top: none;
+        border-bottom-left-radius: 4px;
+    }
+    .border_corner_right_bottom{
+        bottom: 0;
+        right: 0;
+        border-left: none;
+        border-top: none;
+    }
 </style>
diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue
index e05f59f..ebf7ddd 100644
--- a/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue
+++ b/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue
@@ -37,7 +37,6 @@
 
 .win {
   position: relative;
-  //display: inline-block;
   margin-bottom: 13px;
   background-color: rgba(33, 41, 69,0.9);
 }
@@ -46,7 +45,6 @@
   height: 100%;
   .main-matter{
     font-size: 13px;
-    padding: 9px 7px;
     font-weight: normal;
     border: 1px solid #396d83;
     .row-item-one{
@@ -56,7 +54,7 @@
       width: 100%;
       color: #00d0f9;
       display: flex;
-      font-size: 12px!important;
+      font-size: 12px !important;
       .el-col{
         flex: 1;
         width: 100%;
@@ -73,7 +71,7 @@
   }
 }
 .border_corner{
-  z-index: 2500;
+  z-index: 999;
   position: absolute;
   width: 10px;
   height: 10px;
@@ -104,20 +102,4 @@
   border-left: none;
   border-top: none;
 }
-//.el-row {
-//  width: 100%;
-//  color: #00d0f9;
-//  .el-col{
-//    width: 180px;
-//    height: 28px;
-//    background-color: #243a55;;
-//    text-align: center;
-//    line-height: 28px;
-//    margin-left: 6px;
-//    border-radius: 4px;
-//    &:nth-child(1){
-//      margin-left:0;
-//    }
-//  }
-//}
 </style>
diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue
diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue
index fc152ab..93776b0 100644
--- a/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue
+++ b/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue
@@ -7,7 +7,7 @@
     <div class="border_corner border_corner_right_bottom"></div>
     <div class="main">
       <div class="main-video">
-        <video width="100%" height="100%" controls>
+        <video controls>
           <source src="movie.mp4" type="video/mp4">
           <source src="movie.ogg" type="video/ogg">
         </video>
@@ -24,23 +24,25 @@
 
 <style scoped lang="less">
 .win {
-  /*width: 100%;*/
-  /*height: 100%;*/
   position: relative;
-  //display: inline-block;
   background-color: rgba(33, 41, 69,0.9);
-/*//border: 1px solid #396d83;*/
 }
 .main {
   width: 100%;
   height: 100%;
   .main-video {
-    padding: 7px;
-    border: 1px solid #396d83;
+    //border: 1px solid #396d83;
+    width: 100%;
+    height: 100%;
+    video {
+      width: 100%;
+      height: 100%;
+      outline: none;
+    }
   }
 }
 .border_corner{
-  z-index: 2500;
+  z-index: 999;
   position: absolute;
   width: 14px;
   height: 14px;
diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue
index 2c878b8..b9fae10 100644
--- a/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue
+++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue
@@ -1,53 +1,48 @@
 <template>
   <div class="public-table">
-    <table border="1">
-      <tr>
-        <th>111</th>
-        <th>111</th>
-        <th>111</th>
-        <th>111</th>
-        <th>111</th>
-        <th>111</th>
-      </tr>
-      <tr>
-        <td>4444444444</td>
-        <td>4444444444</td>
-        <td>4444444444</td>
-        <td>4444444444</td>
-        <td>4444444444</td>
-        <td>4444444444</td>
-      </tr>
-    </table>
+    <el-col class="el-col">
+      <el-table
+          border
+          tooltip-effect="dark"
+          :data="data"
+      >
+        <el-table-column prop="name" label="搴忓彿"></el-table-column>
+        <el-table-column prop="name" label="绫诲埆"></el-table-column>
+        <el-table-column prop="date" label="鍥哄簾鍚嶇О"></el-table-column>
+        <el-table-column prop="address" label="浠g爜"></el-table-column>
+        <el-table-column prop="address" label="浜х敓閲�"></el-table-column>
+        <el-table-column prop="name" label="鍌ㄥ瓨閲�"></el-table-column>
+        <el-table-column prop="date" label="浜х敓瑁呯疆"></el-table-column>
+      </el-table>
+    </el-col>
   </div>
 </template>
 
 <script>
 export default {
   name: 'PublicTable',
+  props: ['requestSolidWasteData'],
   data () {
     return {
-      tableData: [{
-        date: '2016-05-02',
-        name: '鐜嬪皬铏�',
-        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�'
-      }, {
-        date: '2016-05-04',
-        name: '鐜嬪皬铏�',
-        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�'
-      }, {
-        date: '2016-05-01',
-        name: '鐜嬪皬铏�',
-        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�'
-      }, {
-        date: '2016-05-03',
-        name: '鐜嬪皬铏�',
-        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
-      }]
+      data: []
+    }
+  },
+  mounted () {
+    this.$nextTick(() => {
+      this.getSolidWasteData()
+    })
+  },
+  methods: {
+    getSolidWasteData () {
+      // const data = requestSolidWasteData
+      // console.log(data)
     }
   }
 }
 </script>
 
 <style lang="less" scoped>
+.public-table {
 
+}
 </style>
diff --git a/src/components/BaseNav/PublicBounced/PublicBounced.vue b/src/components/BaseNav/PublicBounced/PublicBounced.vue
index 61286b1..0085f00 100644
--- a/src/components/BaseNav/PublicBounced/PublicBounced.vue
+++ b/src/components/BaseNav/PublicBounced/PublicBounced.vue
@@ -7,7 +7,7 @@
     <div class="public-bounced-content">
       <div class="public-bounced-content-left">
         <GasTab :displayContent="displayContent"></GasTab>
-        <PublicTable v-if="value === 'gufei'"></PublicTable>
+        <PublicTable v-if="value === 'gufei'" :requestSolidWasteData="displayContent.StoragePlaceId"></PublicTable>
         <GasECharts v-else></GasECharts>
       </div>
       <div class="public-bounced-content-right">
@@ -19,7 +19,7 @@
 
 <script>
 
-import '@/components/BaseNav/SolidWaste/directive'
+import '@/components/BaseNav/SolidWaste/directive/dir'
 import GasTab from '@components/BaseNav/PublicBounced/GasComponents/GasTab'
 import PublicTable from '@components/BaseNav/PublicBounced/GasComponents/PublicTable'
 import GasECharts from '@components/BaseNav/PublicBounced/GasComponents/GasECharts'
@@ -54,10 +54,11 @@
 
 <style lang="less" scoped>
 .public-bounced {
+  width: 75%;
   z-index: 999;
   position: absolute;
-  top: 50%;
-  left: 50%;
+  bottom: 5%;
+  left: 15%;
   background-color: #002432;
   border: 1px #9fc5c8 solid;
 
@@ -82,16 +83,20 @@
   }
 
   .public-bounced-content {
+    margin: 15px auto;
     display: flex;
     align-items: center;
     justify-content: space-around;
 
     .public-bounced-content-left {
+      width: 48%;
+      height: 100%;
     }
 
     .public-bounced-content-right {
+      width: 48%;
+      height: 100%;
     }
   }
-
 }
 </style>
diff --git a/src/components/BaseNav/SolidWaste/SolidWaste.js b/src/components/BaseNav/SolidWaste/SolidWaste.js
index 6df5e3e..85f3235 100644
--- a/src/components/BaseNav/SolidWaste/SolidWaste.js
+++ b/src/components/BaseNav/SolidWaste/SolidWaste.js
@@ -67,7 +67,7 @@
             // console.log(this.map.setCenter([e.target.getLatLng().lat, e.target.getLatLng().lng]))
             // this.map.flyTo([e.target.getLatLng().lat, e.target.getLatLng().lng])
             // this.map.panTo([e.target.getLatLng().lat, e.target.getLatLng().lng], 100)
-            this.setPanTo(e.target.getLatLng(), 30)
+            this.setPanTo(e.target.getLatLng(), 250)
             this.EffectOfPulse(e.target.getLatLng())
             this.SolidWastePopup.setData(data[i], 'gufei')
             return this.SolidWastePopup.$el
@@ -87,8 +87,9 @@
     position = this.map.latLngToLayerPoint(position)
     position.y += value
     position = this.map.layerPointToLatLng(position)
-    this.map.setView(position)
-    // this.map.flyTo(position)
+    // this.map.setView(position)
+    this.map.flyTo(position)
+    // this.map.panTo(position)
   }
 
   // 鍥哄簾鐐瑰嚮杩涜鐨� 鍐呭鐨勮缃�
@@ -121,32 +122,32 @@
   // 鑴夊啿鏁堟灉璁剧疆瀹炵幇
   EffectOfPulse (position, markers, layerGroup) {
     // 鍖哄垎鐩存帴鎵ц 鍜屽垽鏂墽琛岀殑涓嶅悓鍖哄埆
-    var differentColor = ''
-    if (markers) {
-      differentColor = '#ff0000'
-    } else {
-      differentColor = '#98FB98'
-    }
-    // 鍧愭爣鏁版嵁锛氭姤璀︿紶杩涙潵鐨勬槸鏁扮粍 / 鐐瑰嚮浼犺繘鏉ョ殑鏄痮bject
-    var FinalPosition = position instanceof Array ? {
-      lat: position[0],
-      lng: position[1]
-    } : position
-    // 鎻掍欢 鏁堟灉瀹炵幇
-    var pulsingIcon = this.L.icon.pulse({
-      iconSize: [20, 20],
-      color: differentColor,
-      fillColor: ''
-    })
-    if (markers) {
-      // markers.push(this.L.marker(FinalPosition, { icon: pulsingIcon }))
-      // this.L.layerGroup(markers).addLayer(layerGroup)
-    } else {
-      var picGroupMarker = new this.L.FeatureGroup()
-      this.L.marker(FinalPosition, { icon: pulsingIcon }).addTo(picGroupMarker)
-      this.pulseHeighLightMarker = picGroupMarker.addTo(this.SolidWasteLayerGroup)
-      this.PulseCountSetting()
-    }
+    // var differentColor = ''
+    // if (markers) {
+    //   differentColor = '#ff0000'
+    // } else {
+    //   differentColor = '#98FB98'
+    // }
+    // // 鍧愭爣鏁版嵁锛氭姤璀︿紶杩涙潵鐨勬槸鏁扮粍 / 鐐瑰嚮浼犺繘鏉ョ殑鏄痮bject
+    // var FinalPosition = position instanceof Array ? {
+    //   lat: position[0],
+    //   lng: position[1]
+    // } : position
+    // // 鎻掍欢 鏁堟灉瀹炵幇
+    // var pulsingIcon = this.L.icon.pulse({
+    //   iconSize: [20, 20],
+    //   color: differentColor,
+    //   fillColor: ''
+    // })
+    // if (markers) {
+    //   // markers.push(this.L.marker(FinalPosition, { icon: pulsingIcon }))
+    //   // this.L.layerGroup(markers).addLayer(layerGroup)
+    // } else {
+    //   var picGroupMarker = new this.L.FeatureGroup()
+    //   this.L.marker(FinalPosition, { icon: pulsingIcon }).addTo(picGroupMarker)
+    //   this.pulseHeighLightMarker = picGroupMarker.addTo(this.SolidWasteLayerGroup)
+    //   this.PulseCountSetting()
+    // }
   }
 
   // 瀵瑰浘鏍囪剦鍐� 杩涜set璁剧疆  // 楂樹寒鍥惧眰
diff --git a/src/components/BaseNav/SolidWaste/directive.js b/src/components/BaseNav/SolidWaste/directive/dir.js
similarity index 100%
rename from src/components/BaseNav/SolidWaste/directive.js
rename to src/components/BaseNav/SolidWaste/directive/dir.js
diff --git a/src/components/BaseNav/SolidWaste/directive/directive.js b/src/components/BaseNav/SolidWaste/directive/directive.js
new file mode 100644
index 0000000..a656af4
--- /dev/null
+++ b/src/components/BaseNav/SolidWaste/directive/directive.js
@@ -0,0 +1,77 @@
+export default {
+  bind (el, binding, vnode) {
+    const dialogHeaderEl = el.querySelector('.el-dialog__header')
+    const dragDom = el.querySelector('.el-dialog')
+    dialogHeaderEl.style.cssText += ';cursor:move;'
+    dragDom.style.cssText += ';top:0px;'
+
+    // 鑾峰彇鍘熸湁灞炴�� ie dom鍏冪礌.currentStyle 鐏嫄璋锋瓕 window.getComputedStyle(dom鍏冪礌, null);
+    const getStyle = (function () {
+      if (window.document.currentStyle) {
+        return (dom, attr) => dom.currentStyle[attr]
+      } else {
+        return (dom, attr) => getComputedStyle(dom, false)[attr]
+      }
+    })()
+
+    dialogHeaderEl.onmousedown = (e) => {
+      // 榧犳爣鎸変笅锛岃绠楀綋鍓嶅厓绱犺窛绂诲彲瑙嗗尯鐨勮窛绂�
+      const disX = e.clientX - dialogHeaderEl.offsetLeft
+      const disY = e.clientY - dialogHeaderEl.offsetTop
+
+      const dragDomWidth = dragDom.offsetWidth
+      const dragDomHeight = dragDom.offsetHeight
+
+      const screenWidth = document.body.clientWidth
+      const screenHeight = document.body.clientHeight
+
+      const minDragDomLeft = dragDom.offsetLeft
+      const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth
+
+      const minDragDomTop = dragDom.offsetTop
+      const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomHeight
+
+      // 鑾峰彇鍒扮殑鍊煎甫px 姝e垯鍖归厤鏇挎崲
+      let styL = getStyle(dragDom, 'left')
+      let styT = getStyle(dragDom, 'top')
+
+      if (styL.includes('%')) {
+        styL = +document.body.clientWidth * (+styL.replace(/\%/g, '') / 100)
+        styT = +document.body.clientHeight * (+styT.replace(/\%/g, '') / 100)
+      } else {
+        styL = +styL.replace(/\px/g, '')
+        styT = +styT.replace(/\px/g, '')
+      }
+
+      document.onmousemove = function (e) {
+        // 閫氳繃浜嬩欢濮旀墭锛岃绠楃Щ鍔ㄧ殑璺濈
+        let left = e.clientX - disX
+        let top = e.clientY - disY
+
+        // 杈圭晫澶勭悊
+        if (-(left) > minDragDomLeft) {
+          left = -minDragDomLeft
+        } else if (left > maxDragDomLeft) {
+          left = maxDragDomLeft
+        }
+
+        if (-(top) > minDragDomTop) {
+          top = -minDragDomTop
+        } else if (top > maxDragDomTop) {
+          top = maxDragDomTop
+        }
+
+        // 绉诲姩褰撳墠鍏冪礌
+        dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`
+
+        // emit onDrag event
+        vnode.child.$emit('dragDialog')
+      }
+
+      document.onmouseup = function (e) {
+        document.onmousemove = null
+        document.onmouseup = null
+      }
+    }
+  }
+}
diff --git a/src/components/BaseNav/SolidWaste/directive/index.js b/src/components/BaseNav/SolidWaste/directive/index.js
new file mode 100644
index 0000000..d8a3108
--- /dev/null
+++ b/src/components/BaseNav/SolidWaste/directive/index.js
@@ -0,0 +1,14 @@
+// import drag from './drag'
+import drag from './directive'
+
+const install = function (Vue) {
+  Vue.directive('el-drag-dialog', drag)
+}
+
+if (window.Vue) {
+  window['el-drag-dialog'] = drag
+  Vue.use(install) // eslint-disable-line
+}
+
+drag.install = install
+export default drag
diff --git a/src/components/BaseNav/WasteWater/WasteWater.js b/src/components/BaseNav/WasteWater/WasteWater.js
index c2f3d6b..05f7b50 100644
--- a/src/components/BaseNav/WasteWater/WasteWater.js
+++ b/src/components/BaseNav/WasteWater/WasteWater.js
@@ -52,16 +52,17 @@
       const Icon = new WasteWaterIcon({ iconUrl: iconUrl })
       // let url = Icon.options.iconUrl
 
-      const marker = this.L.marker.magic([positionX, positionY], { icon: Icon, magic: 'vanishIn' })
+      // const marker = this.L.marker.magic([positionX, positionY], { icon: Icon, magic: 'vanishIn' }) // 甯︽樉绀哄姩鐢�
+      const marker = this.L.marker([positionX, positionY], { icon: Icon })
 
-      marker.bindPopup(() => {
-        return this.WasteWaterPopup.$el
-      }, {
-        className: 's-map-popup',
-        minWidth: 1000,
-        closeButton: true,
-        autoClose: false
-      })
+      // marker.bindPopup(() => {
+      //   return this.WasteWaterPopup.$el
+      // }, {
+      //   className: 's-map-popup',
+      //   minWidth: 1000,
+      //   closeButton: true,
+      //   autoClose: false
+      // })
       // 鍒掕繃鍑虹幇 灞曠ず鏁版嵁
       marker.bindTooltip(data[i].Name, {
         permanent: true,
@@ -74,7 +75,7 @@
         try {
           // console.log(e)
           this.EffectOfPulse(e.target.getLatLng())
-          this.WasteWaterPopup.setDate(data[i])
+          this.WasteWaterPopup.setData(data[i])
           return this.WasteWaterPopup.$el
         } catch (error) {
           console.log(error)
diff --git a/src/components/LayerController/logic/Sample.js b/src/components/LayerController/logic/Sample.js
index 687b0e7..063123f 100644
--- a/src/components/LayerController/logic/Sample.js
+++ b/src/components/LayerController/logic/Sample.js
@@ -1,9 +1,9 @@
 module.exports = function () {
-  this.init = (layer) => {
+  this.init = (L) => {
     console.log('sample init !!!')
   }
 
-  this.clickListener = (list) => {
+  this.clickListener = (e, data) => {
     console.log('sample clickListener !!!')
   }
 }
diff --git a/src/components/LayerController/logic/WasteGas.js b/src/components/LayerController/logic/WasteGas.js
new file mode 100644
index 0000000..2744f36
--- /dev/null
+++ b/src/components/LayerController/logic/WasteGas.js
@@ -0,0 +1,46 @@
+/**
+ * 搴熸皵
+ */
+const AnimalService = require('../service/AnimalService').default
+const AjaxUtils = require('../../../utils/AjaxUtils').default
+
+module.exports = function () {
+  /**
+   * 杩斿洖marker瀵硅薄鏁扮粍
+   * @param L leaflet瀵硅薄
+   */
+  this.init = (layer, L) => {
+    this.animalService = new AnimalService({ L: L, layer: layer })
+    AjaxUtils.get4JsonDataByUrl('http://10.246.162.140:8080/EPInterface/DataService/EPMapService.asmx/ObtainningConInfo', {
+      companyId: 3900100145,
+      id: '',
+      monType: 1,
+      userCode: 'wenchun.deng',
+      monDuration: '',
+      epName: '',
+      secdDeptId: '',
+      contrLevel: '',
+      dataStatus: '',
+      dataFlag: '',
+      runStatus: '',
+      emissTypeId: ''
+    }, function (res) {
+      const data = res.data.Result.DataInfo
+      for (let i = 0; i < data.length; i++) {
+        // 缁忕含搴� 浣嶇疆
+        const positionX = data[i].Latitude
+        const positionY = data[i].Longitude
+        layer.addLayer(L.marker([positionX, positionY], {}))
+      }
+    })
+  }
+
+  this.bindTooltip = (layer) => {
+    return '娴嬭瘯搴熸皵'
+  }
+
+  this.clickListener = (e) => {
+    console.log(e)
+    this.animalService.pulseEffect(e.latlng)
+  }
+}
diff --git a/src/components/LayerController/service/AnimalService.js b/src/components/LayerController/service/AnimalService.js
new file mode 100644
index 0000000..9a80b7f
--- /dev/null
+++ b/src/components/LayerController/service/AnimalService.js
@@ -0,0 +1,37 @@
+/**
+ * 鍔ㄦ�佹晥鏋滃皝瑁�
+ */
+class AnimalService {
+  constructor (config) {
+    this.intervals = [] // 瀹氭椂鍣ㄥ垪琛�
+    this.L = config.L
+    this.layer = config.layer
+    this.times = config.times || 5
+    this.colors = ['#98FB98', '#ff0000']
+  }
+
+  /**
+   * 鑴夊啿鏁堟灉
+   */
+  pulseEffect (xy) {
+    // 鎻掍欢 鏁堟灉瀹炵幇
+    var pulsingIcon = this.L.icon.pulse({
+      iconSize: [20, 20],
+      color: this.colors[0],
+      fillColor: ''
+    })
+    var picGroupMarker = this.L.marker(xy, { icon: pulsingIcon }).addTo(this.layer)
+    var times = this.times
+    // 瀹氭椂
+    var timeInterval = setInterval(() => {
+      if (times > 0) {
+        times--
+      } else {
+        clearInterval(timeInterval)
+        picGroupMarker.remove()
+      }
+    }, 1000)
+  }
+}
+
+export default AnimalService
diff --git a/src/components/LayerController/service/BusiLayerService.js b/src/components/LayerController/service/BusiLayerService.js
index 254a819..d63962e 100644
--- a/src/components/LayerController/service/BusiLayerService.js
+++ b/src/components/LayerController/service/BusiLayerService.js
@@ -13,18 +13,21 @@
   init (layer) {
     // 寮曞叆 鍏宠仈鐨刯s锛屽湪constant.js涓牴鎹甤onfig閰嶇疆鐨刬d寰楀埌澶勭悊js
     const id = this.config.code
-    console.log(logicMapper)
     const file = logicMapper[id]
     if (!file) {
       console.log('鎵句笉鍒伴�昏緫澶勭悊js!!!')
     } else {
-      console.log('-----' + file)
       var BusiLayer = require('../logic/' + file)
-      console.log(BusiLayer)
       var busiLayer = new BusiLayer()
-      // 璋冪敤init
-      busiLayer.init(layer)
+      busiLayer.init(layer, this.L)
+      if (busiLayer.bindTooltip) {
+        layer.bindTooltip(busiLayer.bindTooltip(layer))
+      }
       // 璋冪敤click浜嬩欢
+      if (busiLayer.clickListener) {
+        layer.on('click', busiLayer.clickListener)
+      }
+      layer.addTo(this.map)
     }
   }
 }
diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js
index 7626125..e7a585c 100644
--- a/src/components/LayerController/service/LayerFactory.js
+++ b/src/components/LayerController/service/LayerFactory.js
@@ -2,15 +2,12 @@
 import WfsLayerService from './WfsLayerService'
 import BusiLayerService from './BusiLayerService'
 import WmsLayerService from './WmsLayerService'
+
 class LayerFactory {
   constructor (options) {
     this.L = options.L
     this.map = window.map
     this.layers = {}
-  }
-
-  createLayerGroup () {
-    return this.L.layerGroup().addTo(this.map)
   }
 
   init () {
@@ -25,28 +22,26 @@
         var wfs = childConfig.wfs
         var wms = childConfig.wms
         var url = childConfig.url
-        // 鍒ゆ柇鏄惁宸茬粡鍔犺浇杩囷紝鍔犺浇杩囧氨 蹇界暐鎺�
-        const layer = this.layers[code]
+        // 鍒ゆ柇鏄惁宸茬粡鍔犺浇杩囷紝鍔犺浇杩囧氨 鐩存帴寰楀埌瀵硅薄璋冪敤 鏄剧ず鍑芥暟
+        var layer = this.layers[code]
         if (!layer) {
-          const newLayer = this.createLayerGroup()
-          this.layers[code] = newLayer
+          layer = this.L.featureGroup({}).addTo(this.map)
           // 2. 鍒ゆ柇绫诲瀷
           if (wfs) {
             // 3. 瀹炰緥鍖栧叿浣搒ervice
-            // var busiLayerService = new BusiLayerService()
-            // busiLayerService.init()
             var wfsLayerService = new WfsLayerService(childConfig)
-            wfsLayerService.init(newLayer)
+            wfsLayerService.init(layer)
           }
           if (wms) {
             var wmsLayerService = new WmsLayerService(childConfig)
-            wmsLayerService.init(newLayer)
+            wmsLayerService.init(layer)
           }
           // 璇锋眰涓氬姟鏁版嵁鎺ュ彛
           if (url) {
             var busiLayerService = new BusiLayerService(childConfig)
-            busiLayerService.init(newLayer)
+            busiLayerService.init(layer)
           }
+          layer ? (this.layers[code] = layer) : console.log('LayerFactory锛歯ewLayer is null锛宲lease check !!!')
         } else {
           this.show(code)
         }
@@ -69,9 +64,9 @@
   }
 
   /**
-   * 璁剧疆index,绾垮湪鏈�涓嬮潰锛岀偣鍦ㄤ笂闈�
-   * @param layerGroup 鍥惧眰缁�
-   */
+     * 璁剧疆index,绾垮湪鏈�涓嬮潰锛岀偣鍦ㄤ笂闈�
+     * @param layerGroup 鍥惧眰缁�
+     */
   setZIndex (layerGroup) {
     var layers = layerGroup.getLayers()
     if (layers.length > 0) {
diff --git a/src/components/LayerController/service/WfsLayerService.js b/src/components/LayerController/service/WfsLayerService.js
index e5a175d..8d55234 100644
--- a/src/components/LayerController/service/WfsLayerService.js
+++ b/src/components/LayerController/service/WfsLayerService.js
@@ -21,15 +21,20 @@
   }
 
   init (layer) {
+    this.layer = layer
     const wfsUrl = this.config.wfs
     if (wfsUrl) {
-      AjaxUtils.get4JsonDataByUrl(wfsUrl, this.params, (res) => this.draw(layer, res.data.features))
+      this.loadData(wfsUrl)
     }
   }
 
-  draw (layer, features) {
+  loadData (wfsUrl) {
+    AjaxUtils.get4JsonDataByUrl(wfsUrl, this.params, (res) => this.draw(res.data.features))
+  }
+
+  draw (features) {
     const icon = this.config.icon
-    const geojson = this.L.geoJSON(features, {
+    this.L.geoJSON(features, {
       style: function (feature) {
         return {
           fill: styles.defaultLineStyle.fill,
@@ -66,8 +71,7 @@
           .bindTooltip((layer) => this.tooltipListener(layer), { direction: 'bottom', offset: [0, 15], sticky: true })
           .on('mouseover', (e) => this.mouseOverListener(e, layer)).on('mouseout', (e) => this.mouseOutListener(e, layer))
       }
-    }).addTo(layer)
-    return geojson
+    }).addTo(this.layer)
   }
 
   mouseOverListener (e, layer) {
diff --git a/src/components/LayerController/service/WmsLayerService.js b/src/components/LayerController/service/WmsLayerService.js
index b818aec..859334d 100644
--- a/src/components/LayerController/service/WmsLayerService.js
+++ b/src/components/LayerController/service/WmsLayerService.js
@@ -1,11 +1,11 @@
-class WfsLayerService {
+class WmsLayerService {
   constructor (config) {
     this.config = config
   }
 
-  init () {
+  init (layer) {
 
   }
 }
 
-export default WfsLayerService
+export default WmsLayerService
diff --git a/src/conf/Constants.js b/src/conf/Constants.js
index cef757c..97a3af7 100644
--- a/src/conf/Constants.js
+++ b/src/conf/Constants.js
@@ -7,7 +7,8 @@
 export const logicMapper = {
   fsqy: 'Sample.js',
   fspfk: 'Sample.js',
-  fsjcd: 'Sample.js'
+  fsjcd: 'Sample.js',
+  wasteGasJcd: 'WasteGas.js'
 }
 
 export const props = {
diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue
index 6913577..0809498 100644
--- a/src/views/MapTemplate.vue
+++ b/src/views/MapTemplate.vue
@@ -165,7 +165,7 @@
       this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.map) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵�
       this.vectorLayerHelper.initVectorLayers(this.config)
 
-      // this.ChangeState()
+      this.ChangeState()
       // this.AddGasHelper()
       // this.ChangeWaterState()
 

--
Gitblit v1.8.0