From e5502925619ecdbf8728086c73faeb5b654089c5 Mon Sep 17 00:00:00 2001
From: chenzeping <ChenZeping02609@163.com>
Date: 星期一, 29 三月 2021 16:18:08 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop

---
 src/api/request.js                                                  |    7 
 src/components/BaseNav/WasteWater/directive.js                      |  132 +++++++++++
 src/assets/css/map/leaflet.magicMarker.css                          |   13 +
 src/components/BaseNav/WasteWater/WasteWater.js                     |  177 ++++++++++++++
 src/components/plugin/MagicMarker.js                                |   62 +++-
 src/views/MapTemplate.vue                                           |   50 +++
 src/assets/images/map-pages/basenav/Waste-water/fs_blue.png         |    0 
 src/assets/images/map-pages/basenav/Waste-water/fs_orange.png       |    0 
 src/assets/images/map-pages/basenav/Waste-water/fs_green.png        |    0 
 src/assets/images/map-pages/basenav/Waste-water/fs_red.png          |    0 
 src/img/fs_yellow.7fe82c5d.png                                      |    0 
 src/assets/images/map-pages/basenav/Waste-water/fs_yellow.png       |    0 
 src/conf/MapConfig.js                                               |   18 +
 src/assets/images/map-pages/basenav/Waste-water/fs_green_xc.png     |    0 
 src/assets/images/map-pages/basenav/Waste-water/fs_bright_green.png |    0 
 src/components/BaseNav/WasteWater/WasteWaterContent.vue             |   52 ++++
 src/components/BaseNav/WasteWater/WasteWaterTable.vue               |   69 +++++
 public/static/WasteWater.json                                       |  117 +++++++++
 src/assets/images/map-pages/basenav/Waste-water/fs_gray.png         |    0 
 19 files changed, 669 insertions(+), 28 deletions(-)

diff --git a/public/static/WasteWater.json b/public/static/WasteWater.json
new file mode 100644
index 0000000..44ed223
--- /dev/null
+++ b/public/static/WasteWater.json
@@ -0,0 +1,117 @@
+{
+  "Result": {
+    "IsSuccess": 1,
+    "code": 1,
+    "ErrorMsg": "",
+    "DataInfo": [
+      {
+        "StoragePlaceId": 124.0,
+        "StoragePlaceName": "鐐兼补閮ㄥ惈娌规薄姘存帓鏀惧彛",
+        "HazaWasteStorageDate": "0001-01-01T00:00:00",
+        "HazaWasteCatgrName": null,
+        "SurplusQuantityWarning": 0,
+        "LongDayWarning": 0,
+        "DesignFloorArea": 95.0,
+        "HazaWasteName": null,
+        "EstimateFloorArea": 0.0,
+        "HazaWasteDeptName": null,
+        "SurplusFloorArea": 95.0,
+        "HazaWasteStorageDays": 0.0,
+        "StorageQty": 0.0,
+        "HazaWasteStorageQty": 0.0,
+        "positionX": 32.234354069955536,
+        "positionY": 118.76172605141248
+      },
+      {
+        "StoragePlaceId": 123.0,
+        "StoragePlaceName": "姘村姟閮ㄧ儻鐑冨閮ㄦ帓姘村彛",
+        "HazaWasteStorageDate": "0001-01-01T00:00:00",
+        "HazaWasteCatgrName": null,
+        "SurplusQuantityWarning": 0,
+        "LongDayWarning": 0,
+        "DesignFloorArea": 260.0,
+        "HazaWasteName": null,
+        "EstimateFloorArea": 0.0,
+        "HazaWasteDeptName": null,
+        "SurplusFloorArea": 260.0,
+        "HazaWasteStorageDays": 0.0,
+        "StorageQty": 0.0,
+        "HazaWasteStorageQty": 0.0,
+        "positionX": 32.21783286123124,
+        "positionY": 118.74581627024358
+      },
+      {
+        "StoragePlaceId": 127.0,
+        "StoragePlaceName": "鑱氶啔閮ㄥ簾姘存帓鏀惧彛",
+        "HazaWasteStorageDate": "0001-01-01T00:00:00",
+        "HazaWasteCatgrName": null,
+        "SurplusQuantityWarning": 0,
+        "LongDayWarning": 0,
+        "DesignFloorArea": 351.0,
+        "HazaWasteName": null,
+        "EstimateFloorArea": 0.0,
+        "HazaWasteDeptName": null,
+        "SurplusFloorArea": 351.0,
+        "HazaWasteStorageDays": 0.0,
+        "StorageQty": 0.0,
+        "HazaWasteStorageQty": 0.0,
+        "positionX": 32.21761792102056,
+        "positionY": 118.7694434198091
+      },
+      {
+        "StoragePlaceId": 126.0,
+        "StoragePlaceName": "姘村姟閮ㄩ洦姘存帓鏀惧彛",
+        "HazaWasteStorageDate": "0001-01-01T00:00:00",
+        "HazaWasteCatgrName": null,
+        "SurplusQuantityWarning": 0,
+        "LongDayWarning": 1.0,
+        "DesignFloorArea": 54.0,
+        "HazaWasteName": null,
+        "EstimateFloorArea": 0.0,
+        "HazaWasteDeptName": null,
+        "SurplusFloorArea": 54.0,
+        "HazaWasteStorageDays": 0.0,
+        "StorageQty": 1.0,
+        "HazaWasteStorageQty": 0.0,
+        "positionX": 32.22328407752166,
+        "positionY": 118.7645304033338
+      },
+      {
+        "StoragePlaceId": 122.0,
+        "StoragePlaceName": "鐢熶骇搴熸按鎺掓斁鍙�",
+        "HazaWasteStorageDate": "0001-01-01T00:00:00",
+        "HazaWasteCatgrName": null,
+        "SurplusQuantityWarning": 0,
+        "LongDayWarning": 1.0,
+        "DesignFloorArea": 124.0,
+        "HazaWasteName": null,
+        "EstimateFloorArea": 0.0,
+        "HazaWasteDeptName": null,
+        "SurplusFloorArea": 124.0,
+        "HazaWasteStorageDays": 0.0,
+        "StorageQty": 1.0,
+        "HazaWasteStorageQty": 0.0,
+        "positionX": 32.22478169721047,
+        "positionY": 118.75309838487216
+      },
+      {
+        "StoragePlaceId": 129.0,
+        "StoragePlaceName": "鍖栧纭寲鍝佹帓姘村彛",
+        "HazaWasteStorageDate": "0001-01-01T00:00:00",
+        "HazaWasteCatgrName": null,
+        "SurplusQuantityWarning": 0,
+        "LongDayWarning": 0,
+        "DesignFloorArea": 78.0,
+        "HazaWasteName": null,
+        "EstimateFloorArea": 0.0,
+        "HazaWasteDeptName": null,
+        "SurplusFloorArea": 78.0,
+        "HazaWasteStorageDays": 0.0,
+        "StorageQty": 0.0,
+        "HazaWasteStorageQty": 0.0,
+        "positionX": 32.228692681454525,
+        "positionY": 118.77199913186048
+      }
+    ]
+  }
+}
diff --git a/src/api/request.js b/src/api/request.js
index 445b185..38364ca 100644
--- a/src/api/request.js
+++ b/src/api/request.js
@@ -15,3 +15,10 @@
     }
   })
 }
+export function requestWasteWater (data = {}) {
+  return $http.post('EPInterface/DataService/EPMapService.asmx/ObtainningConInfo', Qs.stringify(data), {
+    headers: {
+      'Content-Type': 'application/json'
+    }
+  })
+}
diff --git a/src/assets/css/map/leaflet.magicMarker.css b/src/assets/css/map/leaflet.magicMarker.css
new file mode 100644
index 0000000..b379bf1
--- /dev/null
+++ b/src/assets/css/map/leaflet.magicMarker.css
@@ -0,0 +1,13 @@
+.magicDiv{
+    height: 0;
+    width: 0;
+}
+.magicIcon{
+    position:relative;
+    top:-5px;
+    left:-16px;
+}
+.leaflet-div-icon{
+    background: transparent;
+    border:none;
+}
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_blue.png b/src/assets/images/map-pages/basenav/Waste-water/fs_blue.png
new file mode 100644
index 0000000..af3c97b
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_blue.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_bright_green.png b/src/assets/images/map-pages/basenav/Waste-water/fs_bright_green.png
new file mode 100644
index 0000000..9d6dae8
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_bright_green.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_gray.png b/src/assets/images/map-pages/basenav/Waste-water/fs_gray.png
new file mode 100644
index 0000000..9ebebf7
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_gray.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_green.png b/src/assets/images/map-pages/basenav/Waste-water/fs_green.png
new file mode 100644
index 0000000..e75d458
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_green.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_green_xc.png b/src/assets/images/map-pages/basenav/Waste-water/fs_green_xc.png
new file mode 100644
index 0000000..dfa3415
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_green_xc.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_orange.png b/src/assets/images/map-pages/basenav/Waste-water/fs_orange.png
new file mode 100644
index 0000000..95c544c
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_orange.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_red.png b/src/assets/images/map-pages/basenav/Waste-water/fs_red.png
new file mode 100644
index 0000000..ac1b8f2
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_red.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_yellow.png b/src/assets/images/map-pages/basenav/Waste-water/fs_yellow.png
new file mode 100644
index 0000000..8d84aa8
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_yellow.png
Binary files differ
diff --git a/src/components/BaseNav/WasteWater/WasteWater.js b/src/components/BaseNav/WasteWater/WasteWater.js
new file mode 100644
index 0000000..c2f3d6b
--- /dev/null
+++ b/src/components/BaseNav/WasteWater/WasteWater.js
@@ -0,0 +1,177 @@
+import { requestWasteWater } from '@/api/request'
+// 灞曠ず鍥剧墖
+import defaultImg from '@assets/images/map-pages/basenav/Waste-water/fs_green.png'
+import Setting from '@assets/images/map-pages/basenav/Waste-water/fs_yellow.png'
+
+// 搴曞浘涓氬姟灞曠ず鐐�
+class AddWasteWaterHelper {
+  constructor (options) {
+    this.map = options.map
+    this.L = window.L
+    this.WasteWaterLayerGroup = this.L.layerGroup().addTo(this.map)
+    this.WasteWaterPopup = null
+    this.L.sgis = this.L.sgis || this.L
+    this.WasteWaterMarkersLabels = []
+    this.pulseHeighLightMarker = null
+  }
+
+  // 璇锋眰鏁版嵁 data 涓哄弬鏁帮紝 璇锋眰鍚庡彴鏁版嵁鏃� 鎼哄甫data鍙傛暟
+  requestData (data) {
+    requestWasteWater(data).then(res => {
+      console.log(res)
+      this.DrawWasteWaterContent(res.Result.DataInfo)
+      // console.log(res)
+    }).catch(err => {
+      console.log(err)
+    })
+  }
+
+  // 鏍规嵁鑾峰彇鏁版嵁 鐢诲嚭 鍐呭
+  DrawWasteWaterContent (data) {
+    // 鍥炬爣鏍峰紡鎵╁睍
+    const WasteWaterIcon = this.WasteWaterIcon()
+
+    // //鍔犺浇鏁版嵁鍓嶅鏋滃瓨鍦ㄥ浘灞傜粍 閭d箞娓呴櫎鎺�
+    if (this.WasteWaterLayerGroup) {
+      this.WasteWaterLayerGroup.clearLayers()
+    }
+    for (let i = 0; i < data.length; i++) {
+      // 缁忕含搴� 浣嶇疆
+      const positionX = data[i].Latitude
+      const positionY = data[i].Longitude
+
+      // 鍒ゆ柇 缁忕含搴︿綅缃俊鎭槸鍚﹀瓨鍦�
+      // if (positionX != null && positionY != null) {
+      // 鐢ㄤ簬 鍒ゆ柇 => 鍒ゆ柇鏄惁灞曠ず鑴夊啿鏁堟灉 => temp(涓存椂)
+      const determineValueOne = data[i].LongDayWarning
+      const determineValueTwo = data[i].StorageQty
+      const positionArea = [positionX, positionY]
+
+      // 鍥炬爣灞曠ず
+      const iconUrl = this.WasteWaterIconUrl(determineValueOne, determineValueTwo, positionArea)
+      const Icon = new WasteWaterIcon({ iconUrl: iconUrl })
+      // let url = Icon.options.iconUrl
+
+      const marker = this.L.marker.magic([positionX, positionY], { icon: Icon, magic: 'vanishIn' })
+
+      marker.bindPopup(() => {
+        return this.WasteWaterPopup.$el
+      }, {
+        className: 's-map-popup',
+        minWidth: 1000,
+        closeButton: true,
+        autoClose: false
+      })
+      // 鍒掕繃鍑虹幇 灞曠ず鏁版嵁
+      marker.bindTooltip(data[i].Name, {
+        permanent: true,
+        offset: [0, -16],
+        direction: 'top',
+        className: ''
+      })
+      // 鐐瑰嚮浜嬩欢
+      marker.on('click', (e) => {
+        try {
+          // console.log(e)
+          this.EffectOfPulse(e.target.getLatLng())
+          this.WasteWaterPopup.setDate(data[i])
+          return this.WasteWaterPopup.$el
+        } catch (error) {
+          console.log(error)
+        }
+      })
+      // 璁剧疆鍐呭娣诲姞鍒板浘灞�
+      this.WasteWaterLayerGroup.addLayer(marker)
+      // }
+    }
+  }
+
+  // 搴熸按鎸夐挳鐐瑰嚮杩涜鐨� 鍐呭鐨勮缃�
+  SetWasteWaterContent (config, containerPopup) {
+    this.WasteWaterPopup = containerPopup
+  }
+
+  // 鍥炬爣鏍峰紡鎵╁睍 => 鍏夊湀 鍥炬爣鑴夊啿
+  WasteWaterIcon () {
+    return this.L.Icon.extend({
+      options: {
+        iconSize: [50, 50],
+        iconAnchor: [25, 25]
+      }
+    })
+  }
+
+  // 鏍规嵁绫诲瀷杩斿洖鍥剧墖鍔犺浇url
+  WasteWaterIconUrl (determineValueOne, determineValueTwo, position) {
+    let EffectOfChange
+    if (determineValueOne === 1 || determineValueTwo === 1) {
+      EffectOfChange = defaultImg
+      this.EffectOfPulse(position, this.WasteWaterMarkersLabels, this.WasteWaterLayerGroup)
+    } else {
+      EffectOfChange = Setting
+    }
+    return EffectOfChange
+  }
+
+  // 鑴夊啿鏁堟灉璁剧疆瀹炵幇
+  EffectOfPulse (position, markers, layerGroup) {
+    // // 鍖哄垎鐩存帴鎵ц 鍜屽垽鏂墽琛岀殑涓嶅悓鍖哄埆
+    let differentColor = ''
+    if (markers) {
+      differentColor = '#ff0000'
+    } else {
+      differentColor = '#98FB98'
+    }
+    // 鍧愭爣鏁版嵁锛氭姤璀︿紶杩涙潵鐨勬槸鏁扮粍 / 鐐瑰嚮浼犺繘鏉ョ殑鏄痮bject
+    const FinalPosition = position instanceof Array ? {
+      lat: position[0],
+      lng: position[1]
+    } : position
+    // 鎻掍欢 鏁堟灉瀹炵幇
+    const 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 {
+      const picGroupMarker = new this.L.FeatureGroup()
+      this.L.marker(FinalPosition, { icon: pulsingIcon }).addTo(picGroupMarker)
+      this.pulseHeighLightMarker = picGroupMarker.addTo(this.WasteWaterLayerGroup)
+      this.PulseCountSetting()
+    }
+  }
+
+  // 瀵瑰浘鏍囪剦鍐� 杩涜set璁剧疆  // 楂樹寒鍥惧眰
+  PulseCountSetting () {
+    const HeightLightTime = 5
+    let PulseNumber = 5
+    const pulseinterver = setInterval(() => {
+      if (PulseNumber > 0) {
+        PulseNumber--
+      } else {
+        this.pulseClear(pulseinterver)
+        PulseNumber = HeightLightTime
+      }
+    }, 1000)
+  }
+
+  // 鍦ㄦ墽琛屼笅涓墠娓呴櫎宸插瓨鍦ㄥ浘灞�
+  pulseClear (pulseinterver) {
+    clearInterval(pulseinterver)
+    pulseinterver = null
+
+    if (this.WasteWaterLayerGroup) {
+      // this.WasteWaterLayerGroup.clearLayers()
+    } else {
+      this.WasteWaterLayerGroup = this.L.layerGroup().addTo(this.map)
+    }
+    if ((this.pulseHeighLightMarker)) {
+      this.pulseHeighLightMarker.remove()
+    }
+  }
+}
+
+export default AddWasteWaterHelper
diff --git a/src/components/BaseNav/WasteWater/WasteWaterContent.vue b/src/components/BaseNav/WasteWater/WasteWaterContent.vue
new file mode 100644
index 0000000..22512f2
--- /dev/null
+++ b/src/components/BaseNav/WasteWater/WasteWaterContent.vue
@@ -0,0 +1,52 @@
+<template>
+  <div class="wastewater-content">
+    <div class="content-left">
+      <span>{{ displayContent.StoragePlaceName }}</span>
+    </div>
+    <div class="content-right">
+      <WasteWaterTable :displayContent="displayContent"></WasteWaterTable>
+    </div>
+  </div>
+</template>
+
+<script>
+
+import WasteWaterTable from '@components/BaseNav/WasteWater/WasteWaterTable'
+
+export default {
+  name: 'WasteWaterContent',
+  components: { WasteWaterTable },
+  data () {
+    return {
+      displayContent: []
+    }
+  },
+  methods: {
+    setDate (data) {
+      this.displayContent = data
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+span {
+  font-size: 22px;
+  color: red;
+}
+
+.wastewater-content {
+  width: 100%;
+  display: flex;
+  align-items: center;
+  justify-content: space-around;
+
+  .content-left {
+    width: 35%;
+  }
+
+  .content-right {
+    width: 60%;
+  }
+}
+</style>
diff --git a/src/components/BaseNav/WasteWater/WasteWaterTable.vue b/src/components/BaseNav/WasteWater/WasteWaterTable.vue
new file mode 100644
index 0000000..7468710
--- /dev/null
+++ b/src/components/BaseNav/WasteWater/WasteWaterTable.vue
@@ -0,0 +1,69 @@
+<template>
+  <el-tabs>
+    <el-tab-pane :label="displayContent.StoragePlaceName" name="" class="ShowTable">
+      <el-table
+          :data="tableData" :fit="true">
+        <el-table-column
+            type="index"
+            label="搴忓彿">
+        </el-table-column>
+        <el-table-column
+            type="index"
+            label="搴忓彿">
+        </el-table-column>
+        <el-table-column
+            type="index"
+            label="搴忓彿">
+        </el-table-column>
+        <el-table-column label="搴熸按(t)">
+          <el-table-column
+              prop="province"
+              label="绱浜х敓閲�">
+          </el-table-column>
+          <el-table-column
+              prop="city"
+              label="褰撴湀浜х敓閲�">
+          </el-table-column>
+        </el-table-column>
+      </el-table>
+    </el-tab-pane>
+  </el-tabs>
+
+</template>
+
+<script>
+export default {
+  name: 'WasteWaterTable',
+  props: ['displayContent'],
+  data () {
+    return {
+      tableData: [{
+        date: '闆嗗洟鍏徃',
+        name: '35',
+        province: '23',
+        city: '11',
+        address: 235,
+        zip: 23
+      }, {
+        date: '澶╂触鐭冲寲',
+        name: 32,
+        province: 33,
+        city: 44,
+        address: 53,
+        zip: 200333
+      }, {
+        date: '娴庡崡鐐煎寲',
+        name: 35,
+        province: 13,
+        city: 33,
+        address: 44,
+        zip: 200333
+      }]
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+
+</style>
diff --git a/src/components/BaseNav/WasteWater/directive.js b/src/components/BaseNav/WasteWater/directive.js
new file mode 100644
index 0000000..adc9450
--- /dev/null
+++ b/src/components/BaseNav/WasteWater/directive.js
@@ -0,0 +1,132 @@
+import Vue from 'vue'
+
+// 鑷畾涔夊厓绱犲疄鐜板脊妗嗘嫋鎷絒閲嶇偣]
+Vue.directive('draw', {
+  inserted: function (el, binding, vNode) {
+    el.setAttribute('style', 'position: fixed; z-index: 9999')
+  },
+  bind: function (el, bindding, vNode) {
+    el.setAttribute('draggable', true)
+    let left, top, width, height
+    el._dragstart = function (event) {
+      event.stopPropagation()
+      left = event.clientX - el.offsetLeft
+      top = event.clientY - el.offsetTop
+      width = el.offsetWidth
+      height = el.offsetHeight
+    }
+    el._checkPosition = function () { // 闃叉琚嫋鍑鸿竟鐣�
+      const width = el.offsetWidth
+      const height = el.offsetHeight
+      let left = Math.min(el.offsetLeft, document.body.clientWidth - width)
+      left = Math.max(0, left)
+      let top = Math.min(el.offsetTop, document.body.clientHeight - height)
+      top = Math.max(0, top)
+      el.style.left = left + 'px'
+      el.style.top = top + 'px'
+      el.style.width = width + 'px'
+      el.style.height = height + 'px'
+    }
+    el._dragEnd = function (event) {
+      event.stopPropagation()
+      left = event.clientX - left
+      top = event.clientY - top
+      el.style.left = left + 'px'
+      el.style.top = top + 'px'
+      el.style.width = width + 'px'
+      el.style.height = height + 'px'
+      el._checkPosition()
+    }
+    el._documentAllowDraop = function (event) {
+      event.preventDefault()
+    }
+    document.body.addEventListener('dragover', el._documentAllowDraop)
+    el.addEventListener('dragstart', el._dragstart)
+    el.addEventListener('dragend', el._dragEnd)
+    window.addEventListener('resize', el._checkPosition)
+  },
+
+  unbind: function (el, bindding, vNode) {
+    document.body.removeEventListener('dragover', el._documentAllowDraop)
+    el.removeEventListener('dragstart', el._dragstart)
+    el.removeEventListener('dragend', el._dragEnd)
+    window.removeEventListener('resize', el._checkPosition)
+    delete el._documentAllowDraop
+    delete el._dragstart
+    delete el._dragEnd
+    delete el._checkPosition
+  }
+})
+
+// v-dialogDrag: 寮圭獥鎷栨嫿
+Vue.directive('dialogDrag', {
+  bind (el, binding, vnode, oldVnode) {
+    const dialogHeaderEl = el.querySelector('.el-dialog__header')
+    const dragDom = el.querySelector('.el-dialog')
+    dialogHeaderEl.style.cursor = 'move'
+
+    // 鑾峰彇鍘熸湁灞炴�� ie dom鍏冪礌.currentStyle 鐏嫄璋锋瓕 window.getComputedStyle(dom鍏冪礌, null);
+    const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null)
+
+    dialogHeaderEl.onmousedown = (e) => {
+      // 榧犳爣鎸変笅锛岃绠楀綋鍓嶅厓绱犺窛绂诲彲瑙嗗尯鐨勮窛绂�
+      const disX = e.clientX - dialogHeaderEl.offsetLeft
+      const disY = e.clientY - dialogHeaderEl.offsetTop
+
+      // 鑾峰彇鍒扮殑鍊煎甫px 姝e垯鍖归厤鏇挎崲
+      let styL, styT
+
+      // 娉ㄦ剰鍦╥e涓� 绗竴娆¤幏鍙栧埌鐨勫�间负缁勪欢鑷甫50% 绉诲姩涔嬪悗璧嬪�间负px
+      if (sty.left.includes('%')) {
+        styL = +document.body.clientWidth * (+sty.left.replace(/%/g, '') / 100)
+        styT = +document.body.clientHeight * (+sty.top.replace(/%/g, '') / 100)
+      } else {
+        styL = +sty.left.replace(/px/g, '')
+        styT = +sty.top.replace(/px/g, '')
+      }
+
+      document.onmousemove = function (e) {
+        // 閫氳繃浜嬩欢濮旀墭锛岃绠楃Щ鍔ㄧ殑璺濈
+        const l = e.clientX - disX
+        const t = e.clientY - disY
+
+        // 绉诲姩褰撳墠鍏冪礌
+        dragDom.style.left = `${l + styL}px`
+        dragDom.style.top = `${t + styT}px`
+
+        // 灏嗘鏃剁殑浣嶇疆浼犲嚭鍘�
+        // binding.value({x:e.pageX,y:e.pageY})
+      }
+
+      document.onmouseup = function (e) {
+        document.onmousemove = null
+        document.onmouseup = null
+      }
+    }
+  }
+})
+
+// v-dialogDragWidth: 寮圭獥瀹藉害鎷栧ぇ 鎷栧皬
+Vue.directive('dialogDragWidth', {
+  bind (el, binding, vnode, oldVnode) {
+    const dragDom = binding.value.$el.querySelector('.el-dialog')
+
+    el.onmousedown = (e) => {
+      // 榧犳爣鎸変笅锛岃绠楀綋鍓嶅厓绱犺窛绂诲彲瑙嗗尯鐨勮窛绂�
+      const disX = e.clientX - el.offsetLeft
+
+      document.onmousemove = function (e) {
+        e.preventDefault() // 绉诲姩鏃剁鐢ㄩ粯璁や簨浠�
+
+        // 閫氳繃浜嬩欢濮旀墭锛岃绠楃Щ鍔ㄧ殑璺濈
+        const l = e.clientX - disX
+        dragDom.style.width = `${l}px`
+      }
+
+      document.onmouseup = function (e) {
+        document.onmousemove = null
+        document.onmouseup = null
+      }
+    }
+  }
+})
diff --git a/src/components/plugin/MagicMarker.js b/src/components/plugin/MagicMarker.js
index afe9916..a9d75bd 100644
--- a/src/components/plugin/MagicMarker.js
+++ b/src/components/plugin/MagicMarker.js
@@ -1,27 +1,45 @@
 /* eslint-disable */
-!(function (i) {
-  var c = function (i, c) {
-    for (var n in c) i[n] = c[n]
-    return i
+(function (window) {
+  console.log(window)
+  const setOptions = function (obj, options) {
+    for (const i in options) {
+      obj[i] = options[i]
+    }
+    return obj
   }
-  L.Icon.Magic = function (i) {
-    if (i.iconUrl) {
-      var n = { html: '<div class=\'magicDiv\'><div class=\'magictime ' + i.magic + '\'>' + i.html + '<img id=\'migic\' src=\'' + i.iconUrl + '\'/></div></div>' }
+  L.Icon.Magic = function (options) {
+    let opts
+    // console.log(options)
+    if (options.iconUrl) {
+      opts = {
+        html: '<div class=\'magicDiv\'><div class=\'magictime ' + options.magic + '\'>' + options.html + '</div></div>'
+        // className: 'magicDiv',L
+      }
     } else {
-      var n = { html: '<div class=\'magicDiv\'><div class=\'magictime ' + i.magic + '\'>' + i.html + '</div></div>' }
+      opts = {
+        html: '<div class=\'magicDiv\'><div class=\'magictime ' + options.magic + '\'><img id=\'migic\' src=\'' + options.icon.options.iconUrl + '\'/></div></div>'
+        // className: 'magicDiv',
+      }
     }
-    delete i.html
-    var a = c(n, i)
-    console.log(a)
-    var r = L.divIcon(a)
-    return r
-  }, L.icon.magic = function (i) {
-    return new L.Icon.Magic(i)
-  }, L.Marker.Magic = L.Marker.extend({
-    initialize: function (i, c) {
-      c.icon = L.icon.magic(c), L.Marker.prototype.initialize.call(this, i, c)
-    }
-  }), L.marker.magic = function (i, c) {
-    return new L.Marker.Magic(i, c)
+    delete options.html
+    const magicIconOpts = setOptions(opts, options)
+    // console.log(magicIconOpts)
+    const magicIcon = L.divIcon(magicIconOpts)
+    return magicIcon
   }
-}(window))
+
+  L.icon.magic = function (options) {
+    return new L.Icon.Magic(options)
+  }
+
+  L.Marker.Magic = L.Marker.extend({
+    initialize: function (latlng, options) {
+      options.icon = L.icon.magic(options)
+      L.Marker.prototype.initialize.call(this, latlng, options)
+    }
+  })
+
+  L.marker.magic = function (latlng, options) {
+    return new L.Marker.Magic(latlng, options)
+  }
+})(window)
diff --git a/src/conf/MapConfig.js b/src/conf/MapConfig.js
index 98ff85c..a039e8f 100644
--- a/src/conf/MapConfig.js
+++ b/src/conf/MapConfig.js
@@ -59,9 +59,27 @@
   }
 }
 
+/**
+ *
+ */
+// const MagicMaker = {
+//   Current: 'vanishIn',
+//   ARRAY: [
+//     'twisterInDown', 'twisterInUp', 'swap',
+//     'puffIn', 'vanishIn',
+//     'openDownLeftReturn', 'openDownRightReturn', 'openUpLeftReturn', 'openUpRightReturn',
+//     'perspectiveDownReturn', 'perspectiveUpReturn', 'perspectiveLeftReturn', 'perspectiveRightReturn',
+//     'slideDownReturn', 'slideUpReturn', 'slideLeftReturn', 'slideRightReturn',
+//     'swashIn', 'foolishIn',
+//     'tinRightIn', 'tinLeftIn', 'tinUpIn', 'tinDownIn',
+//     'boingInUp',
+//     'spaclInUp', 'spaceInRight', 'spaceInDown', 'spaceInLeft']
+// }
+
 export default {
   mapOptions,
   mapConfig,
   TokenConfig,
   BLUEMAP_HOST
+  // MagicMaker
 }
diff --git a/src/img/fs_yellow.7fe82c5d.png b/src/img/fs_yellow.7fe82c5d.png
new file mode 100644
index 0000000..8d84aa8
--- /dev/null
+++ b/src/img/fs_yellow.7fe82c5d.png
Binary files differ
diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue
index 681a454..8f55f31 100644
--- a/src/views/MapTemplate.vue
+++ b/src/views/MapTemplate.vue
@@ -17,7 +17,7 @@
     <enterprise></enterprise>
     <!--    <el-button id="map-btn" el-icon-c-scale-to-original icon="el-icon-c-scale-to-original" circle @click="isShowHidden"></el-button>-->
     <el-button type="primary" @click="ChangeState" class="solid-waste">鍥哄簾</el-button>
-    <PublicBounced ref="PublicBounced"></PublicBounced>
+    <el-button type="primary" @click="ChangeWaterState" class="Waste-water">搴熸按</el-button>
     <el-button type="primary" @click="AddGasHelper" class="flue-gas">搴熸皵</el-button>
     <PublicBounced ref="PublicBounced"></PublicBounced>
   </div>
@@ -40,14 +40,11 @@
 import Enterprise from '../components/table/enterprise'
 // 搴曞浘涓氬姟js閫昏緫
 import AddSolidWasteHelper from '@components/BaseNav/SolidWaste/SolidWaste'
-// import SolidContent from '@components/SolidWaste/SolidContent'
-// 搴熸皵
-import AddGasHelper from '@components/BaseNav/flueGas/flueGas'
+import AddWasteWaterHelper from '@components/BaseNav/WasteWater/WasteWater'
+import AddGasHelper from '@components/flueGas/flueGas'
 // import PopupGas from '@/components/flueGas/popup-gas'
 // // 鍏叡灞曠ず鏁版嵁
 import PublicBounced from '@components/BaseNav/PublicBounced/PublicBounced'
-
-// import PublicBounced from '@components/BaseNav/PublicBounced/PublicBounced'
 export default {
   name: 'MapTemplate',
   components: {
@@ -118,6 +115,28 @@
       AddSolidWaste.requestData(data)
       AddSolidWaste.SetSolidWasteContent(this.config, this.$refs.PublicBounced)
     },
+    ChangeWaterState () {
+      const data = {
+        companyId: 3900100145,
+        id: '',
+        monType: 1,
+        userCode: 'wenchun.deng',
+        monDuration: '',
+        epName: '',
+        secdDeptId: '',
+        contrLevel: '',
+        dataStatus: '',
+        dataFlag: '',
+        runStatus: '',
+        emissTypeId: ''
+      }
+      const AddWasteWater = new AddWasteWaterHelper({ map: this.map })
+      AddWasteWater.requestData(data)
+      AddWasteWater.SetWasteWaterContent(this.config, this.$refs.PublicBounced)
+    },
+    // isShowHidden () {
+    //   this.isShowBtn = !this.isShowBtn
+    // },
     saveMapStatus () {
       window.serviceLayerHelper = this.serviceLayerHelper
       this.$store.commit('setMapObj', this.map)
@@ -144,6 +163,7 @@
 
       // this.ChangeState()
       // this.AddGasHelper()
+      // this.ChangeWaterState()
 
       this.saveMapStatus()
       // this.setMapObj(this.mapObj)
@@ -206,6 +226,13 @@
   z-index: 999;
 }
 
+.Waste-water {
+  position: absolute;
+  top: 88px;
+  left: 280px;
+  z-index: 999;
+}
+
 .full-screen {
   width: 100%;
   height: 100%;
@@ -235,5 +262,16 @@
   .leaflet-custom-icon {
     background: white;
   }
+
+  .leaflet-marker-icon {
+    background: none;
+  }
+
+  #migic {
+    width: 48px;
+    height: 48px;
+    margin: -18px -20px;
+    z-index: 999;
+  }
 }
 </style>

--
Gitblit v1.8.0