From 58737013341e2363b39a33fea150f72ebd37cfc1 Mon Sep 17 00:00:00 2001
From: chenzeping <ChenZeping02609@163.com>
Date: 星期一, 29 三月 2021 09:35:17 +0800
Subject: [PATCH] 文

---
 src/components/BaseNav/SolidWaste/SolidWaste.js        |   88 ++++-----
 src/api/request.js                                     |   13 
 src/components/BaseNav/WireSurface/index.js            |   23 ++
 src/components/BaseNav/SolidWaste/Popup.vue            |  111 ++++++++++++
 src/conf/MapConfig.js                                  |    8 
 src/utils/axios.js                                     |    3 
 package.json                                           |    1 
 src/components/BaseNav/SolidWaste/SolidContent.vue     |   79 ++++++--
 src/components/plugin/MagicMarker.js                   |   72 ++-----
 src/views/MapTemplate.vue                              |   21 +
 src/components/BaseNav/PublicBounced/PublicBounced.vue |   80 ++++++++
 src/Sgis.js                                            |    1 
 12 files changed, 366 insertions(+), 134 deletions(-)

diff --git a/package.json b/package.json
index 1004223..abf1a54 100644
--- a/package.json
+++ b/package.json
@@ -28,6 +28,7 @@
     "leaflet.markercluster": "^1.4.1",
     "lodash": "^4.17.10",
     "nprogress": "^0.2.0",
+    "qs": "^6.10.1",
     "rbush": "^3.0.1",
     "screenfull": "^3.3.3",
     "style-resources-loader": "^1.4.1",
diff --git a/src/Sgis.js b/src/Sgis.js
index e26ff26..6e794e0 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 '@/components/plugin/magicMarker.css'
 import '@components/plugin/pulse/Pulse' // marker 澶栧湀娉�
 import '@components/plugin/pulse/Pulse.css' // marker 澶栧湀娉� css
 
diff --git a/src/api/request.js b/src/api/request.js
index d623ca2..315f29b 100644
--- a/src/api/request.js
+++ b/src/api/request.js
@@ -1,9 +1,10 @@
 import $http from '@utils/axios'
+import Qs from 'qs'
 
-// // 鍥哄簾鎺ュ彛
-// export const requestSolidWaste = (url, data = {}) => {
-//   return $http.post('./static/SolidWaste.json', data)
-// }
-export const requestSolidWaste = (url) => {
-  return $http.get('./static/SolidWaste.json')
+export const QueryStoragePlaceListByCompanyAndName = (data = {}) => {
+  return $http.post('/EPInterface/DataService/EPMapService.asmx/QueryStoragePlaceListByCompanyAndName', Qs.stringify(data), {
+    headers: {
+      'Content-Type': 'application/json'
+    }
+  })
 }
diff --git a/src/components/BaseNav/PublicBounced/PublicBounced.vue b/src/components/BaseNav/PublicBounced/PublicBounced.vue
new file mode 100644
index 0000000..550e6e8
--- /dev/null
+++ b/src/components/BaseNav/PublicBounced/PublicBounced.vue
@@ -0,0 +1,80 @@
+<template>
+  <div class="public-bounced" v-show="flag">
+    <div class="popup_title">{{ displayContent.Name }}</div>
+    <div class="popup_bottom">
+      <button @click="closePopup">纭畾</button>
+    </div>
+  </div>
+</template>
+
+<script>
+
+export default {
+  name: 'PublicBounced',
+  data () {
+    return {
+      displayContent: [],
+      flag: false
+    }
+  },
+  methods: {
+    setData (data) {
+      this.displayContent = data
+      this.flag = true
+    },
+    closePopup () {
+      this.flag = false
+    }
+  }
+}
+</script>
+
+<style scoped>
+.public-bounced {
+  width: 80%;
+  z-index: 499;
+  position: absolute;
+  top: 15%;
+  left: 10%;
+  background-color: rgba(128, 128, 128, 0.507);
+  padding: 1%;
+  border-radius: 20px;
+  margin: 10% auto;
+}
+
+.popup_title {
+  text-align: center;
+  font-weight: 600;
+  font-size: 30px;
+}
+
+.popup_center {
+  padding: 10%;
+  font-size: 20px;
+}
+
+.popup_bottom {
+  display: flex;
+  justify-content: space-around;
+}
+
+button {
+  width: 25%;
+  height: 20%;
+  padding: 2%;
+  border: 1px solid gray;
+  border-radius: 10px;
+}
+
+button:nth-child(1) {
+  background-color: orangered;
+  color: white;
+  font-size: 20px;
+}
+
+button:nth-child(2) {
+  background-color: gray;
+  color: black;
+  font-size: 20px;
+}
+</style>
diff --git a/src/components/BaseNav/SolidWaste/Popup.vue b/src/components/BaseNav/SolidWaste/Popup.vue
new file mode 100644
index 0000000..79a1a6d
--- /dev/null
+++ b/src/components/BaseNav/SolidWaste/Popup.vue
@@ -0,0 +1,111 @@
+<template>
+  <div class="box" @click.stop="clo_box">
+    <div class="popup_content">
+      <div class="popup_title">{{ this.title }}</div>
+      <div class="popup_center">
+        <div v-if="this.content_text">{{ this.content_text }}</div>
+        <slot></slot>
+      </div>
+      <div class="popup_bottom">
+        <button @click="popup_sub">纭畾{{ displayContent.Name }}</button>
+        <button @click="popup_clo">鍙栨秷</button>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'SolidContent',
+  data () {
+    return {
+      displayContent: []
+    }
+  },
+  props: {
+    title: {
+      type: String,
+      default: '榛樿鏍囬'
+    },
+    content_text: {
+      type: String,
+      default: ''
+    },
+    hidden: {
+      type: Boolean,
+      default: false
+    }
+  },
+  methods: {
+    // 鐐瑰嚮纭畾浜嬩欢
+    popup_sub () {
+      this.$emit('popup_sub')
+    },
+    // 鐐瑰嚮浜嗗彇娑堜簨浠�
+    popup_clo () {
+      this.$emit('popup_clo')
+    },
+    // 鐐瑰嚮浜嗗脊鍑烘浠ュ鍖哄煙
+    clo_box (e) {
+      if (e.target._prevClass === 'box') {
+        this.$emit('clo_box')
+      }
+    }
+  }
+}
+</script>
+
+<style scoped>
+.box {
+  width: 80%;
+  z-index: 999;
+  position: absolute;
+  top: 50%;
+  left: 25%;
+  background-color: rgba(128, 128, 128, 0.507);
+}
+
+.popup_content {
+  background-color: white;
+  padding: 1%;
+  border-radius: 20px;
+  width: 40%;
+  margin: 10% auto;
+}
+
+.popup_title {
+  text-align: center;
+  font-weight: 600;
+  font-size: 30px;
+}
+
+.popup_center {
+  padding: 10%;
+  font-size: 20px;
+}
+
+.popup_bottom {
+  display: flex;
+  justify-content: space-around;
+}
+
+button {
+  width: 25%;
+  height: 20%;
+  padding: 2%;
+  border: 1px solid gray;
+  border-radius: 10px;
+}
+
+button:nth-child(1) {
+  background-color: orangered;
+  color: white;
+  font-size: 20px;
+}
+
+button:nth-child(2) {
+  background-color: gray;
+  color: black;
+  font-size: 20px;
+}
+</style>
diff --git a/src/components/BaseNav/SolidWaste/SolidContent.vue b/src/components/BaseNav/SolidWaste/SolidContent.vue
index 3b6fb0b..804fa5f 100644
--- a/src/components/BaseNav/SolidWaste/SolidContent.vue
+++ b/src/components/BaseNav/SolidWaste/SolidContent.vue
@@ -1,53 +1,82 @@
 <template>
-  <div class="solid-content">
-    <div class="content-left">
-      <span>{{ displayContent.StoragePlaceName }}</span>
-    </div>
-    <div class="content-right">
-      <SolidWasteTable :displayContent="displayContent"></SolidWasteTable>
+  <div class="public-bounced" v-show="flag">
+    <div class="popup_title">{{ displayContent.Name }}</div>
+    <div class="popup_bottom">
+      <button @click="closePopup">纭畾</button>
+      <button @click="closePopup">鍙栨秷</button>
     </div>
   </div>
 </template>
 
 <script>
-
-import SolidWasteTable from '@components/BaseNav/SolidWaste/SolidWasteTable'
+import '@components/BaseNav/SolidWaste/directive'
 
 export default {
   name: 'SolidContent',
-  components: { SolidWasteTable },
   data () {
     return {
-      displayContent: []
+      displayContent: [],
+      flag: false
     }
   },
   methods: {
-    setDate (data) {
-      // console.log(data)
+    setData (data) {
       this.displayContent = data
+      this.flag = true
+    },
+    closePopup () {
+      this.flag = false
     }
   }
 }
 </script>
 
-<style lang="less" scoped>
-span {
-  font-size: 22px;
-  color: red;
+<style scoped>
+.public-bounced {
+  width: 80%;
+  z-index: 499;
+  position: absolute;
+  top: 15%;
+  left: 10%;
+  background-color: rgba(128, 128, 128, 0.507);
+  padding: 1%;
+  border-radius: 20px;
+  margin: 10% auto;
 }
 
-.solid-content {
-  width: 100%;
+.popup_title {
+  text-align: center;
+  font-weight: 600;
+  font-size: 30px;
+}
+
+.popup_center {
+  padding: 10%;
+  font-size: 20px;
+}
+
+.popup_bottom {
   display: flex;
-  align-items: center;
   justify-content: space-around;
+}
 
-  .content-left {
-    width: 35%;
-  }
+button {
+  width: 25%;
+  height: 20%;
+  padding: 2%;
+  border: 1px solid gray;
+  border-radius: 10px;
+}
 
-  .content-right {
-    width: 60%;
-  }
+button:nth-child(1) {
+  background-color: orangered;
+  color: white;
+  font-size: 20px;
+}
+
+button:nth-child(2) {
+  background-color: gray;
+  color: black;
+  font-size: 20px;
 }
 </style>
diff --git a/src/components/BaseNav/SolidWaste/SolidWaste.js b/src/components/BaseNav/SolidWaste/SolidWaste.js
index 3346804..8968cc9 100644
--- a/src/components/BaseNav/SolidWaste/SolidWaste.js
+++ b/src/components/BaseNav/SolidWaste/SolidWaste.js
@@ -1,4 +1,4 @@
-import { requestSolidWaste } from '@/api/request'
+import { QueryStoragePlaceListByCompanyAndName } from '@/api/request'
 // 灞曠ず鍥剧墖
 import defaultImg from '@assets/images/map-pages/basenav/solidwaste/voc.png'
 import Setting from '@assets/images/map-pages/basenav/solidwaste/gf_green.png'
@@ -16,9 +16,9 @@
   }
 
   // 璇锋眰鏁版嵁 data 涓哄弬鏁帮紝 璇锋眰鍚庡彴鏁版嵁鏃� 鎼哄甫data鍙傛暟
-  requestData () {
-    requestSolidWaste().then(res => {
-      // console.log(res)
+  requestData (data) {
+    QueryStoragePlaceListByCompanyAndName(data).then(res => {
+      console.log(res)
       this.DrawTheSolidWasteContent(res.Result.DataInfo)
     }).catch(err => {
       console.log(err)
@@ -36,51 +36,44 @@
     }
     for (let i = 0; i < data.length; i++) {
       // 缁忕含搴� 浣嶇疆
-      const positionX = data[i].positionX
-      const positionY = data[i].positionY
+      const positionX = data[i].Latitude
+      const positionY = data[i].Longitude
 
       // 鍒ゆ柇 缁忕含搴︿綅缃俊鎭槸鍚﹀瓨鍦�
-      // if (positionX != null && positionY != null) {
-      // 鐢ㄤ簬 鍒ゆ柇 => 鍒ゆ柇鏄惁灞曠ず鑴夊啿鏁堟灉 => temp(涓存椂)
-      const determineValueOne = data[i].LongDayWarning
-      var determineValueTwo = data[i].StorageQty
-      const positionArea = [positionX, positionY]
+      if (positionX != null && positionY != null) {
+        // 鐢ㄤ簬 鍒ゆ柇 => 鍒ゆ柇鏄惁灞曠ず鑴夊啿鏁堟灉 => temp(涓存椂)
+        const determineValueOne = data[i].LongDayWarning
+        var determineValueTwo = data[i].StorageQty
+        const positionArea = [positionX, positionY]
 
-      // 鍥炬爣灞曠ず
-      var iconUrl = this.SolidWasteIconUrl(determineValueOne, determineValueTwo, positionArea)
-      var Icon = new SolidWasteIcon({ iconUrl: iconUrl })
-      // var url = Icon.options.iconUrl
+        // 鍥炬爣灞曠ず
+        var iconUrl = this.SolidWasteIconUrl(determineValueOne, determineValueTwo, positionArea)
+        var Icon = new SolidWasteIcon({ iconUrl: iconUrl })
+        // var url = Icon.options.iconUrl
 
-      const marker = this.L.marker([positionX, positionY], { icon: Icon })
+        const marker = this.L.marker([positionX, positionY], { icon: Icon })
 
-      marker.bindPopup(() => {
-        return this.SolidWastePopup.$el
-      }, {
-        className: 's-map-popup',
-        minWidth: 600,
-        closeButton: true,
-        autoClose: false
-      })
-      // 鍒掕繃鍑虹幇 灞曠ず鏁版嵁
-      marker.bindTooltip(data[i].StoragePlaceName, {
-        permanent: true,
-        offset: [0, -16],
-        direction: 'top',
-        className: ''
-      })
-      // 鐐瑰嚮 浜嬩欢
-      marker.on('click', (e) => {
-        try {
-          // console.log(e)
-          this.EffectOfPulse(e.target.getLatLng())
-          this.SolidWastePopup.setDate(data[i])
-        } catch (error) {
-          console.log(error)
-        }
-      })
-      // 璁剧疆鍐呭娣诲姞鍒板浘灞�
-      this.SolidWasteLayerGroup.addLayer(marker)
-      // }
+        // 鍒掕繃鍑虹幇 灞曠ず鏁版嵁
+        marker.bindTooltip(data[i].Name, {
+          permanent: true,
+          offset: [0, 16],
+          direction: 'bottom',
+          className: ''
+        })
+        // 鐐瑰嚮 浜嬩欢
+        marker.on('click', (e) => {
+          try {
+            // console.log(e)
+            this.EffectOfPulse(e.target.getLatLng())
+            this.SolidWastePopup.setData(data[i])
+            return this.SolidWastePopup.$el
+          } catch (error) {
+            console.log(error)
+          }
+        })
+        // 璁剧疆鍐呭娣诲姞鍒板浘灞�
+        this.SolidWasteLayerGroup.addLayer(marker)
+      }
     }
   }
 
@@ -132,8 +125,8 @@
       fillColor: ''
     })
     if (markers) {
-      markers.push(this.L.marker(FinalPosition, { icon: pulsingIcon }))
-      this.L.layerGroup(markers).addLayer(layerGroup)
+      // 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)
@@ -146,7 +139,8 @@
   PulseCountSetting () {
     var HeightLightTime = 5
     var PulseNumber = 5
-    const pulseinterver = setInterval(() => {
+    const pulseinterver = setInterval((e) => {
+      console.log(e)
       if (PulseNumber > 0) {
         PulseNumber--
       } else {
diff --git a/src/components/BaseNav/WireSurface/index.js b/src/components/BaseNav/WireSurface/index.js
new file mode 100644
index 0000000..6d04ade
--- /dev/null
+++ b/src/components/BaseNav/WireSurface/index.js
@@ -0,0 +1,23 @@
+
+// 寮曞叆鐢ㄤ簬澶勭悊鎺ュ彛鏁版嵁鑾峰彇鐨勬柟娉�
+import { getDataInitWireSurface } from '@src/api/request'
+
+class initWireSurface {
+  constructor (options) {
+    this.map = options.map
+    this.L = window.L
+    this.initWireSurfaceMap = new Map()
+    this.initWireSurfacePopup = this.L.layerGroup().addTo(this.map)
+  }
+
+  // 鑾峰彇椤甸潰绾�/闈㈡暟鎹�
+  getDataInitWireSurface () {
+    getDataInitWireSurface().then(res => {
+      console.log(res)
+    }).catch(error => {
+      console.log(error)
+    })
+  }
+}
+
+export default initWireSurface
diff --git a/src/components/plugin/MagicMarker.js b/src/components/plugin/MagicMarker.js
index f74a2a4..afe9916 100644
--- a/src/components/plugin/MagicMarker.js
+++ b/src/components/plugin/MagicMarker.js
@@ -1,49 +1,27 @@
-const init = (L) => {
-  (function (window) {
-    console.log(window)
-    const setOptions = function (obj, options) {
-      for (const i in options) {
-        obj[i] = options[i]
-      }
-      return obj
+/* eslint-disable */
+!(function (i) {
+  var c = function (i, c) {
+    for (var n in c) i[n] = c[n]
+    return i
+  }
+  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>' }
+    } else {
+      var n = { html: '<div class=\'magicDiv\'><div class=\'magictime ' + i.magic + '\'>' + i.html + '</div></div>' }
     }
-    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',
-        }
-      }
-      delete options.html
-      const magicIconOpts = setOptions(opts, options)
-      // console.log(magicIconOpts)
-      const magicIcon = L.divIcon(magicIconOpts)
-      return magicIcon
+    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.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)
-}
-
-export default {
-  init
-}
+  }), L.marker.magic = function (i, c) {
+    return new L.Marker.Magic(i, c)
+  }
+}(window))
diff --git a/src/conf/MapConfig.js b/src/conf/MapConfig.js
index e01a715..98ff85c 100644
--- a/src/conf/MapConfig.js
+++ b/src/conf/MapConfig.js
@@ -2,6 +2,7 @@
 import TDT from './TDT'
 import { LayerSewersLine, LayerSewersPoint } from './LayerSewers'
 import { LayerWasteWater } from './LayerWasteWater'
+
 const curWwwPath = window.document.location.href
 const pathname = window.document.location.pathname
 const pos = curWwwPath.indexOf(pathname)
@@ -22,7 +23,7 @@
   minZoom: 3,
   maxZoom: 18,
   // center: [26, 104],
-  center: [32.224016189575195, 118.77070426940918],
+  center: [38.828558921813965, 117.41676807403564],
   zoom: 14,
   worldCopyJump: true,
   inertia: true,
@@ -38,7 +39,10 @@
   // defaultBasemapCode: 'tianditu_img', // 榛樿鏄剧ず 鍦板浘绫诲瀷
   IntranetBaseMaps: TDT.intranet,
   InternetBaseMaps: TDT.internet,
-  Layers: { LayerSewersLine: [LayerSewersLine, LayerWasteWater], layerSewersPoint: LayerSewersPoint } // 姹¢洦姘村浘灞傞厤缃�
+  Layers: {
+    LayerSewersLine: [LayerSewersLine, LayerWasteWater],
+    layerSewersPoint: LayerSewersPoint
+  } // 姹¢洦姘村浘灞傞厤缃�
 }
 
 /**
diff --git a/src/utils/axios.js b/src/utils/axios.js
index 20047e2..69078ed 100644
--- a/src/utils/axios.js
+++ b/src/utils/axios.js
@@ -83,7 +83,8 @@
 
 // 鍒涘缓axios瀹炰緥
 const Service = axios.create({
-  timeout: 1000
+  timeout: 1000,
+  baseURL: 'http://10.246.162.140:8080/'
 })
 
 const CancelToken = axios.CancelToken
diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue
index 7665bb1..e248cee 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>
-    <SolidContent ref="SolidWastePopup"></SolidContent>
+    <PublicBounced ref="PublicBounced"></PublicBounced>
   </div>
 </template>
 
@@ -36,9 +36,10 @@
 // import MenuSpecial from '@components/panel/MenuTopic'
 import LegendPanel from '@components/panel/LegendPanel'
 import Enterprise from '../components/table/enterprise'
-import SolidContent from '@components/BaseNav/SolidWaste/SolidContent'
 // 搴曞浘涓氬姟js閫昏緫
 import AddSolidWasteHelper from '@components/BaseNav/SolidWaste/SolidWaste'
+// 鍏叡灞曠ず鏁版嵁
+import PublicBounced from '@components/BaseNav/PublicBounced/PublicBounced'
 
 export default {
   name: 'MapTemplate',
@@ -54,10 +55,11 @@
     LcServiceLayer,
     Popup,
     summarySheets,
-    SolidContent
+    PublicBounced
   },
   data () {
     return {
+      // isShowBtn: false,
       map: null,
       lcServiceLayerVisible: false,
       basemapHelper: {},
@@ -77,9 +79,16 @@
   },
   methods: {
     ChangeState () {
+      const data = {
+        companyId: 3900100145,
+        userCode: 'wenchun.deng',
+        name: '',
+        marginWarr: '',
+        longDayWarr: ''
+      }
       const AddSolidWaste = new AddSolidWasteHelper({ map: this.map })
-      AddSolidWaste.requestData()
-      AddSolidWaste.SetSolidWasteContent(this.config, this.$refs.SolidWastePopup)
+      AddSolidWaste.requestData(data)
+      AddSolidWaste.SetSolidWasteContent(this.config, this.$refs.PublicBounced)
     },
     isShowHidden () {
       this.isShowBtn = !this.isShowBtn
@@ -108,7 +117,7 @@
       this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.map) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵�
       this.vectorLayerHelper.initVectorLayers(this.config)
 
-      this.ChangeState()
+      // this.ChangeState()
 
       this.saveMapStatus()
       // this.setMapObj(this.mapObj)

--
Gitblit v1.8.0