From 2a99c0727f88565eb2b8c0beeb609618413ff3b0 Mon Sep 17 00:00:00 2001
From: zhangshuaibao <15731629597@163.com>
Date: 星期一, 29 三月 2021 09:45:45 +0800
Subject: [PATCH] 文件整合,重新分弹框

---
 src/components/BaseNav/WasteWater/directive.js                      |  132 ++++++++++++++++++++++
 src/assets/css/map/leaflet.magicMarker.css                          |   13 ++
 src/components/BaseNav/WasteWater/WasteWater.js                     |   20 +-
 src/components/plugin/MagicMarker.js                                |   82 ++++++-------
 src/views/MapTemplate.vue                                           |   31 +++-
 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/Sgis.js                                                         |    1 
 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             |    2 
 src/components/BaseNav/WasteWater/WasteWaterTable.vue               |    2 
 src/assets/images/map-pages/basenav/Waste-water/fs_gray.png         |    0 
 18 files changed, 238 insertions(+), 63 deletions(-)

diff --git a/src/Sgis.js b/src/Sgis.js
index e26ff26..dcebdb5 100644
--- a/src/Sgis.js
+++ b/src/Sgis.js
@@ -16,6 +16,7 @@
 import './components/plugin/Editable' // 鏍囩粯鎿嶄綔
 import './components/plugin/MagicMarker' // 鍔ㄧ敾Marker
 import './assets/css/map/magic.min.css' // 鍔ㄧ敾Marker css
+// import './assets/css/map/leaflet.magicMarker.css' // 鍔ㄧ敾marker
 import '@components/plugin/pulse/Pulse' // marker 澶栧湀娉�
 import '@components/plugin/pulse/Pulse.css' // marker 澶栧湀娉� css
 
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.js b/src/components/BaseNav/WasteWater/WasteWater.js
similarity index 90%
rename from src/components/BaseNav/WasteWater.js
rename to src/components/BaseNav/WasteWater/WasteWater.js
index 4a3e2f4..af1d4fb 100644
--- a/src/components/BaseNav/WasteWater.js
+++ b/src/components/BaseNav/WasteWater/WasteWater.js
@@ -1,7 +1,7 @@
 import { requestWasteWater } from '@/api/request'
 // 灞曠ず鍥剧墖
-import defaultImg from '@components/BaseNav/magicMarker.png'
-import Setting from '@components/BaseNav/voc.png'
+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 {
@@ -19,7 +19,7 @@
   requestData () {
     requestWasteWater().then(res => {
       this.DrawTheWasteWaterContent(res.Result.DataInfo)
-      console.log(res)
+      // console.log(res)
     }).catch(err => {
       console.log(err)
     })
@@ -51,13 +51,13 @@
       const Icon = new WasteWaterIcon({ iconUrl: iconUrl })
       // let url = Icon.options.iconUrl
 
-      const marker = this.L.marker([positionX, positionY], { icon: Icon })
+      const marker = this.L.marker.magic([positionX, positionY], { icon: Icon, magic: 'vanishIn' })
 
       marker.bindPopup(() => {
         return this.WasteWaterPopup.$el
       }, {
         className: 's-map-popup',
-        minWidth: 600,
+        minWidth: 1000,
         closeButton: true,
         autoClose: false
       })
@@ -68,7 +68,7 @@
         direction: 'top',
         className: ''
       })
-      // 鐐瑰嚮 浜嬩欢
+      // 鐐瑰嚮浜嬩欢
       marker.on('click', (e) => {
         try {
           // console.log(e)
@@ -84,7 +84,7 @@
     }
   }
 
-  // 鍥哄簾鐐瑰嚮杩涜鐨� 鍐呭鐨勮缃�
+  // 搴熸按鎸夐挳鐐瑰嚮杩涜鐨� 鍐呭鐨勮缃�
   SetWasteWaterContent (config, containerPopup) {
     this.WasteWaterPopup = containerPopup
   }
@@ -127,9 +127,9 @@
     } : position
     // 鎻掍欢 鏁堟灉瀹炵幇
     const pulsingIcon = this.L.icon.pulse({
-      iconSize: [20, 20],
+      iconSize: [20, 20], // 鎺у埗鍏夊湀澶у皬
       color: differentColor,
-      fillColor: ''
+      fillColor: ' '
     })
     if (markers) {
       // markers.push(this.L.marker(FinalPosition, { icon: pulsingIcon }))
@@ -156,7 +156,7 @@
     }, 1000)
   }
 
-  // 娓呴櫎 鍥惧眰
+  // 鍦ㄦ墽琛屼笅涓墠娓呴櫎宸插瓨鍦ㄥ浘灞�
   pulseClear (pulseinterver) {
     clearInterval(pulseinterver)
     pulseinterver = null
diff --git a/src/components/BaseNav/WasteWaterContent.vue b/src/components/BaseNav/WasteWater/WasteWaterContent.vue
similarity index 90%
rename from src/components/BaseNav/WasteWaterContent.vue
rename to src/components/BaseNav/WasteWater/WasteWaterContent.vue
index 0ff5603..22512f2 100644
--- a/src/components/BaseNav/WasteWaterContent.vue
+++ b/src/components/BaseNav/WasteWater/WasteWaterContent.vue
@@ -11,7 +11,7 @@
 
 <script>
 
-import WasteWaterTable from '@components/BaseNav/WasteWaterTable'
+import WasteWaterTable from '@components/BaseNav/WasteWater/WasteWaterTable'
 
 export default {
   name: 'WasteWaterContent',
diff --git a/src/components/BaseNav/WasteWaterTable.vue b/src/components/BaseNav/WasteWater/WasteWaterTable.vue
similarity index 98%
rename from src/components/BaseNav/WasteWaterTable.vue
rename to src/components/BaseNav/WasteWater/WasteWaterTable.vue
index 1768d8f..7468710 100644
--- a/src/components/BaseNav/WasteWaterTable.vue
+++ b/src/components/BaseNav/WasteWater/WasteWaterTable.vue
@@ -1,6 +1,6 @@
 <template>
   <el-tabs>
-    <el-tab-pane :label="displayContent.StoragePlaceName" name="">
+    <el-tab-pane :label="displayContent.StoragePlaceName" name="" class="ShowTable">
       <el-table
           :data="tableData" :fit="true">
         <el-table-column
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 f74a2a4..a000501 100644
--- a/src/components/plugin/MagicMarker.js
+++ b/src/components/plugin/MagicMarker.js
@@ -1,49 +1,45 @@
-const init = (L) => {
-  (function (window) {
-    console.log(window)
-    const setOptions = function (obj, options) {
-      for (const i in options) {
-        obj[i] = options[i]
+/* eslint-disable */
+(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 (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
       }
-      return obj
-    }
-    L.Icon.Magic = function (options) {
-      let opts
-      if (options.iconUrl) {
-        opts = {
-          html: "<div class='magicDiv'><div class='magictime " + options.magic + "'><img id='migic' src='" + options.iconUrl + "'/></div></div>"
-          // className: 'magicDiv',
-        }
-      } else {
-        opts = {
-          html: "<div class='magicDiv'><div class='magictime " + options.magic + "'>" + options.html + '</div></div>'
-          // className: 'magicDiv',
-        }
+    } else {
+      opts = {
+        html: '<div class=\'magicDiv\'><div class=\'magictime ' + options.magic + '\'><img id=\'migic\' src=\'' + options.icon.options.iconUrl + '\'/></div></div>'
+        // className: 'magicDiv',
       }
-      delete options.html
-      const magicIconOpts = setOptions(opts, options)
-      // console.log(magicIconOpts)
-      const magicIcon = L.divIcon(magicIconOpts)
-      return magicIcon
     }
+    delete options.html
+    const magicIconOpts = setOptions(opts, options)
+    // console.log(magicIconOpts)
+    const magicIcon = L.divIcon(magicIconOpts)
+    return magicIcon
+  }
 
-    L.icon.magic = function (options) {
-      return new L.Icon.Magic(options)
+  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 = 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)
-}
-
-export default {
-  init
-}
+  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 e01a715..0b6c329 100644
--- a/src/conf/MapConfig.js
+++ b/src/conf/MapConfig.js
@@ -55,9 +55,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 59be60e..be50061 100644
--- a/src/views/MapTemplate.vue
+++ b/src/views/MapTemplate.vue
@@ -38,11 +38,11 @@
 // import MenuSpecial from '@components/panel/MenuTopic'
 import LegendPanel from '@components/panel/LegendPanel'
 import Enterprise from '../components/table/enterprise'
-import SolidContent from '@components/BaseNav/SolidContent'
-import WasteWaterContent from '@components/BaseNav/WasteWaterContent'
+import SolidContent from '@components/BaseNav/SolidWaste/SolidContent'
+import WasteWaterContent from '@components/BaseNav/WasteWater/WasteWaterContent'
 // 搴曞浘涓氬姟js閫昏緫
-import AddSolidWasteHelper from '@components/BaseNav/SolidWaste'
-import AddWasteWaterHelper from '@components/BaseNav/WasteWater'
+import AddSolidWasteHelper from '@components/BaseNav/SolidWaste/SolidWaste'
+import AddWasteWaterHelper from '@components/BaseNav/WasteWater/WasteWater'
 
 export default {
   name: 'MapTemplate',
@@ -63,6 +63,7 @@
   },
   data () {
     return {
+      show: true,
       map: null,
       lcServiceLayerVisible: false,
       basemapHelper: {},
@@ -87,9 +88,11 @@
       AddSolidWaste.SetSolidWasteContent(this.config, this.$refs.SolidWastePopup)
     },
     ChangeWaterState () {
-      const AddWasteWater = new AddWasteWaterHelper({ map: this.map })
-      AddWasteWater.requestData()
-      AddWasteWater.SetWasteWaterContent(this.config, this.$refs.WasteWaterPopup)
+      if (this.show) {
+        const AddWasteWater = new AddWasteWaterHelper({ map: this.map })
+        AddWasteWater.requestData()
+        AddWasteWater.SetWasteWaterContent(this.config, this.$refs.WasteWaterPopup)
+      }
     },
     // isShowHidden () {
     //   this.isShowBtn = !this.isShowBtn
@@ -118,7 +121,8 @@
       this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.map) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵�
       this.vectorLayerHelper.initVectorLayers(this.config)
 
-      this.ChangeState()
+      // this.ChangeState()
+      // this.ChangeWaterState()
 
       this.saveMapStatus()
       // this.setMapObj(this.mapObj)
@@ -211,5 +215,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