From 7cb769fa01008d3ad0d5ec3cf3ad56c0156f9153 Mon Sep 17 00:00:00 2001
From: wangqi <magical1908@outlook.com>
Date: 星期一, 29 三月 2021 18:31:07 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop

---
 src/conf/layers/LayerWasteWater.js                              |   37 ++
 src/conf/layers/LayerWasteGas.js                                |   51 +++
 src/components/LayerController/logic/Sample.js                  |    9 
 src/views/MapTemplate.vue                                       |   22 +
 src/components/LayerController/service/LayerFactory.js          |   88 ++++++
 src/utils/AjaxUtils.js                                          |    2 
 src/components/BaseNav/PublicBounced/PublicBounced.vue          |   22 -
 src/components/LayerController/modules/LcServiceLayer.vue       |  240 +++++++++---------
 src/conf/layers/LayerSewers.js                                  |   22 
 src/conf/layers/LayerSolidWaste.js                              |   27 ++
 /dev/null                                                       |   30 --
 src/components/LayerController/service/WmsLayerService.js       |   11 
 src/components/LayerController/service/WfsLayerService.js       |  119 +++++++++
 src/components/LayerController/service/PopupService.js          |    0 
 src/conf/Constants.js                                           |    6 
 src/conf/MapConfig.js                                           |    8 
 src/components/LayerController/service/BusiLayerService.js      |   32 ++
 src/components/panel/topicSearch/SewersSearch.vue               |    2 
 src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue |   29 -
 19 files changed, 545 insertions(+), 212 deletions(-)

diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue
index bbbb219..6db1047 100644
--- a/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue
+++ b/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue
@@ -7,17 +7,15 @@
     <div class="border_corner border_corner_left_bottom"></div>
     <div class="border_corner border_corner_right_bottom"></div>
     <div class="main">
-      <el-row>
-        <el-row>
-          <el-col :span="8">鐩戞祴鐐瑰悕绉�:{{name}}</el-col>
-          <el-col :span="8">鐢熶骇鍗曚綅:{{ DeptSname }}</el-col>
-          <el-col :span="8">鎺掓斁绫诲瀷鍔犺浇:{{EmissTypeName}}</el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="8">鎺掓斁鍘诲悜:{{EmissTypeDirectName}}</el-col>
-          <el-col :span="8">鎺у埗绾у埆鍚嶇О:{{ContrLevelShowName}}</el-col>
-          <el-col :span="8">鍐�/澶栨帓鍙�:{{OrOutPortName}}</el-col>
-        </el-row>
+      <el-row type="flex" class="row-bg" justify="space-around">
+        <el-col :span="12">鐩戞祴鐐瑰悕绉�:{{ displayContent.Name }}</el-col>
+        <el-col :span="12">鐢熶骇鍗曚綅:{{ displayContent.DeptSname }}</el-col>
+        <el-col :span="12">鎺掓斁绫诲瀷鍔犺浇:{{ displayContent.EmissTypeName }}</el-col>
+      </el-row>
+      <el-row type="flex" class="row-bg" justify="space-around">
+        <el-col :span="12">鎺掓斁鍘诲悜:{{ displayContent.EmissTypeDirectName }}</el-col>
+        <el-col :span="12">鎺у埗绾у埆鍚嶇О:{{ displayContent.ContrLevelShowName }}</el-col>
+        <el-col :span="12">鍐�/澶栨帓鍙�:{{ displayContent.OrOutPortName }}</el-col>
       </el-row>
     </div>
   </div>
@@ -28,14 +26,7 @@
   name: 'GasTable',
   props: ['displayContent'],
   data () {
-    return {
-      name: '鑱氶叝鐑獟鐐�03鐑熸皵鎺掓斁鍙�',
-      DeptSname: '澶ц姵鐑冭缃�',
-      EmissTypeName: '搴熸皵',
-      EmissTypeDirectName: '澶ф皵',
-      ContrLevelShowName: '甯傛帶',
-      OrOutPortName: '澶栨帓'
-    }
+    return {}
   }
 }
 </script>
diff --git a/src/components/BaseNav/PublicBounced/PublicBounced.vue b/src/components/BaseNav/PublicBounced/PublicBounced.vue
index 29294dc..152f458 100644
--- a/src/components/BaseNav/PublicBounced/PublicBounced.vue
+++ b/src/components/BaseNav/PublicBounced/PublicBounced.vue
@@ -6,9 +6,8 @@
     </div>
     <div class="public-bounced-content">
       <div class="public-bounced-content-left">
-        <GasTable></GasTable>
+        <GasTable :displayContent="displayContent"></GasTable>
         <GasECharts></GasECharts>
-<!--        <GasTabs></GasTabs>-->
       </div>
       <div class="public-bounced-content-right">
         <GasVideo></GasVideo>
@@ -53,18 +52,14 @@
 
 <style lang="less" scoped>
 .public-bounced {
-  width: 80%;
-  height: 450px;
   z-index: 999;
-  position: absolute;
-  top: 25%;
-  left: 10%;
+  position: fixed;
+  top: 50%;
+  left: 50%;
   background-color: #002432;
-  margin: 1% auto;
   border: 1px #9fc5c8 solid;
 
   .public-bounced-title {
-    width: 100%;
     border: 1px #a4c0d8 solid;
     display: flex;
     align-items: center;
@@ -85,21 +80,14 @@
   }
 
   .public-bounced-content {
-    width: 100%;
-    height: 100%;
     display: flex;
-    //align-items: center;
+    align-items: center;
     justify-content: space-around;
 
     .public-bounced-content-left {
-      //flex: 1;
-      width: 48%;
-      height: 400px;
     }
 
     .public-bounced-content-right {
-      width: 48%;
-      height: 400px;
     }
   }
 
diff --git a/src/components/BaseNav/SolidWaste/Popup.vue b/src/components/BaseNav/SolidWaste/Popup.vue
deleted file mode 100644
index 79a1a6d..0000000
--- a/src/components/BaseNav/SolidWaste/Popup.vue
+++ /dev/null
@@ -1,111 +0,0 @@
-<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
deleted file mode 100644
index 9b55840..0000000
--- a/src/components/BaseNav/SolidWaste/SolidContent.vue
+++ /dev/null
@@ -1,82 +0,0 @@
-<template>
-  <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 '@/components/BaseNav/SolidWaste/directive'
-
-export default {
-  name: 'SolidContent',
-  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/SolidWasteTable.vue b/src/components/BaseNav/SolidWaste/SolidWasteTable.vue
deleted file mode 100644
index a4ecb37..0000000
--- a/src/components/BaseNav/SolidWaste/SolidWasteTable.vue
+++ /dev/null
@@ -1,69 +0,0 @@
-<template>
-  <el-tabs>
-    <el-tab-pane :label="displayContent.StoragePlaceName" name="">
-      <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: 'SolidWasteTable',
-  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/WasteWaterContent.vue b/src/components/BaseNav/WasteWater/WasteWaterContent.vue
deleted file mode 100644
index 22512f2..0000000
--- a/src/components/BaseNav/WasteWater/WasteWaterContent.vue
+++ /dev/null
@@ -1,52 +0,0 @@
-<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
deleted file mode 100644
index 7468710..0000000
--- a/src/components/BaseNav/WasteWater/WasteWaterTable.vue
+++ /dev/null
@@ -1,69 +0,0 @@
-<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
deleted file mode 100644
index adc9450..0000000
--- a/src/components/BaseNav/WasteWater/directive.js
+++ /dev/null
@@ -1,132 +0,0 @@
-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/LayerController/logic/Sample.js b/src/components/LayerController/logic/Sample.js
new file mode 100644
index 0000000..687b0e7
--- /dev/null
+++ b/src/components/LayerController/logic/Sample.js
@@ -0,0 +1,9 @@
+module.exports = function () {
+  this.init = (layer) => {
+    console.log('sample init !!!')
+  }
+
+  this.clickListener = (list) => {
+    console.log('sample clickListener !!!')
+  }
+}
diff --git a/src/components/LayerController/modules/LcServiceLayer.vue b/src/components/LayerController/modules/LcServiceLayer.vue
index 4b9aa25..ab589f0 100644
--- a/src/components/LayerController/modules/LcServiceLayer.vue
+++ b/src/components/LayerController/modules/LcServiceLayer.vue
@@ -1,134 +1,134 @@
 <template>
     <div class="inner-panel">
-<!--        <div class="title">-->
-<!--            鍥惧眰鎺у埗-->
-<!--        </div>-->
-<!--        <div class="wms-panel">-->
-<!--            <div v-for="item in serviceLayers" :key="item.code" class="layerbox">-->
-<!--                <div><input type="checkbox" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code"-->
-<!--                            @change="swAllLayers(item)"/>{{ item.name }} <span @click="swFilter(item)"-->
-<!--                                                                               class="btn-filter">杩囨护</span>-->
-<!--                </div>-->
-<!--                <div class="layerbox-item">-->
-<!--                    <div class="basemap-layer-item" v-for="itm in item.layers" :key="itm.code"><input type="checkbox"-->
-<!--                                                                                                      :name="'wmsSublayers_'+item.code+'_'+itm.code"-->
-<!--                                                                                                      :checked="itm.checked"-->
-<!--                                                                                                      :value="itm.code"-->
-<!--                                                                                                      @change="swWmsLayer(item.url,itm)"/>{{-->
-<!--                        itm.name }}-->
-<!--                    </div>-->
-<!--                </div>-->
-<!--            </div>-->
-<!--        </div>-->
-<!--        <lc-service-layer-filter v-if="layerFilterVisible" ref="serviceLayerFilter"></lc-service-layer-filter>-->
+        <div class="title">
+            鍥惧眰鎺у埗
+        </div>
+        <div class="wms-panel">
+            <div v-for="item in serviceLayers" :key="item.code" class="layerbox">
+                <div><input type="checkbox" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code"
+                            @change="swAllLayers(item)"/>{{ item.name }} <span @click="swFilter(item)"
+                                                                               class="btn-filter">杩囨护</span>
+                </div>
+                <div class="layerbox-item">
+                    <div class="basemap-layer-item" v-for="itm in item.layers" :key="itm.code"><input type="checkbox"
+                                                                                                      :name="'wmsSublayers_'+item.code+'_'+itm.code"
+                                                                                                      :checked="itm.checked"
+                                                                                                      :value="itm.code"
+                                                                                                      @change="swWmsLayer(itm)"/>{{
+                        itm.name }}
+                    </div>
+                </div>
+            </div>
+        </div>
+        <lc-service-layer-filter v-if="layerFilterVisible" ref="serviceLayerFilter"></lc-service-layer-filter>
     </div>
 </template>
 
-<!--<script>-->
-<!--import WfsHelper from '../../helpers/WfsHelper'-->
-<!--import LcServiceLayerFilter from '@components/LayerController/modules/LcServiceLayerFilter'-->
-<!--import AjaxUtils from '../../../utils/AjaxUtils'-->
+<script>
+import WfsHelper from '../../helpers/WfsHelper'
+import LcServiceLayerFilter from '@components/LayerController/modules/LcServiceLayerFilter'
+import AjaxUtils from '../../../utils/AjaxUtils'
 
-<!--export default {-->
-<!--  name: 'LcServiceLayer',-->
-<!--  components: { LcServiceLayerFilter },-->
-<!--  data () {-->
-<!--    return {-->
-<!--      layerFilterVisible: false-->
-<!--    }-->
-<!--  },-->
-<!--  computed: {-->
-<!--    serviceLayers () {-->
-<!--      return this.$store.state.map.serviceLayers.LayerSewersLine-->
-<!--    }-->
-<!--  },-->
-<!--  mounted () {-->
-<!--    // console.log('03姝ラ锛�', this.helper)-->
-<!--    this.updateServiceLayerList()-->
-<!--  },-->
-<!--  methods: {-->
-<!--    swAllLayers (item) {-->
-<!--      // eslint-disable-next-line no-debugger-->
-<!--      item.checked = !item.checked-->
-<!--      for (let i = 0, len = item.layers.length; i < len; ++i) {-->
-<!--        item.layers[i].checked = item.checked-->
-<!--      }-->
-<!--      this.updateWms()-->
-<!--    },-->
-<!--    loadWfs () {-->
-<!--      var wfsHelper = new WfsHelper()-->
-<!--      wfsHelper.addTypeName('绠$嚎鐐�')-->
-<!--      wfsHelper.addEquals('pipename', '鐮旂┒闄�01璺痀S000001')-->
+export default {
+  name: 'LcServiceLayer',
+  components: { LcServiceLayerFilter },
+  data () {
+    return {
+      layerFilterVisible: false
+    }
+  },
+  computed: {
+    serviceLayers () {
+      return this.$store.state.map.serviceLayers.LayerSewersLine
+    }
+  },
+  mounted () {
+    // console.log('03姝ラ锛�', this.helper)
+    this.updateServiceLayerList()
+  },
+  methods: {
+    swAllLayers (item) {
+      // eslint-disable-next-line no-debugger
+      item.checked = !item.checked
+      for (let i = 0, len = item.layers.length; i < len; ++i) {
+        item.layers[i].checked = item.checked
+      }
+      this.updateWms()
+    },
+    loadWfs () {
+      var wfsHelper = new WfsHelper()
+      wfsHelper.addTypeName('绠$嚎鐐�')
+      wfsHelper.addEquals('pipename', '鐮旂┒闄�01璺痀S000001')
 
-<!--      AjaxUtils.GetDataAsynByUrl(wfsHelper.getUrl(), {}, (res) => {-->
-<!--        console.log(res)-->
-<!--      })-->
-<!--    },-->
-<!--    swWmsLayer (url, itm) {-->
-<!--      itm.checked = !itm.checked-->
-<!--      if (itm.checked) {-->
-<!--        window.serviceLayerHelper.loadGeojsonLayer(url, itm)-->
-<!--      } else {-->
-<!--        window.serviceLayerHelper.removeLayer(itm)-->
-<!--      }-->
-<!--      // this.updateWms()-->
-<!--    },-->
-<!--    swFilter (item) {-->
-<!--      this.layerFilterVisible = !this.layerFilterVisible-->
-<!--    },-->
-<!--    updateServiceLayerList () {-->
+      AjaxUtils.GetDataAsynByUrl(wfsHelper.getUrl(), {}, (res) => {
+        console.log(res)
+      })
+    },
+    swWmsLayer (itm) {
+      itm.checked = !itm.checked
+      if (itm.checked) {
+        window.layerFactory.show(itm.code)
+      } else {
+        window.layerFactory.hide(itm.code)
+      }
+      // this.updateWms()
+    },
+    swFilter (item) {
+      this.layerFilterVisible = !this.layerFilterVisible
+    },
+    updateServiceLayerList () {
 
-<!--    },-->
-<!--    updateWms () {-->
-<!--      var mapConfig = this.mapConfig-->
-<!--      var wmsHelper = new WfsHelper()-->
-<!--      wmsHelper.initMapConfig(mapConfig)-->
-<!--      var wmsLayersMap = wmsHelper.getWmsLayersMap()-->
-<!--      for (var k in wmsLayersMap) {-->
-<!--        var layers = wmsLayersMap[k]-->
-<!--        var tileLayer = window.serviceLayerHelper.getTileLayer(k)-->
-<!--        if (tileLayer) {-->
-<!--          tileLayer.setParams({ layers: layers.join(',') }, false)-->
-<!--          tileLayer.setUrl(tileLayer.config.url, false)-->
-<!--        }-->
-<!--      }-->
-<!--    }-->
-<!--  }-->
-<!--}-->
-<!--</script>-->
+    },
+    updateWms () {
+      var mapConfig = this.mapConfig
+      var wmsHelper = new WfsHelper()
+      wmsHelper.initMapConfig(mapConfig)
+      var wmsLayersMap = wmsHelper.getWmsLayersMap()
+      for (var k in wmsLayersMap) {
+        var layers = wmsLayersMap[k]
+        var tileLayer = window.serviceLayerHelper.getTileLayer(k)
+        if (tileLayer) {
+          tileLayer.setParams({ layers: layers.join(',') }, false)
+          tileLayer.setUrl(tileLayer.config.url, false)
+        }
+      }
+    }
+  }
+}
+</script>
 
-<!--<style scoped lang="less">-->
-<!--    .inner-panel {-->
-<!--        .title{-->
-<!--            color: #ffffff;-->
-<!--            font-size: 16px;-->
-<!--            font-weight: 600;-->
-<!--            margin: 10px;-->
-<!--            text-align: center;-->
-<!--        }-->
-<!--        .btn-filter {-->
-<!--            cursor: pointer;-->
-<!--            color: #ffffff;-->
-<!--        }-->
+<style scoped lang="less">
+    .inner-panel {
+        .title{
+            color: #ffffff;
+            font-size: 16px;
+            font-weight: 600;
+            margin: 10px;
+            text-align: center;
+        }
+        .btn-filter {
+            cursor: pointer;
+            color: #ffffff;
+        }
 
-<!--        .wms-panel {-->
-<!--            width: 250px;-->
+        .wms-panel {
+            width: 250px;
 
-<!--            .layerbox {-->
-<!--                width: 100%;-->
+            .layerbox {
+                width: 100%;
 
-<!--                .layerbox-item {-->
-<!--                    display: flex;-->
-<!--                    flex-flow: row wrap;-->
-<!--                    margin-left: 15px;-->
-<!--                    margin-top: 5px;-->
+                .layerbox-item {
+                    display: flex;
+                    flex-flow: row wrap;
+                    margin-left: 15px;
+                    margin-top: 5px;
 
-<!--                    .basemap-layer-item {-->
-<!--                        width: 50%;-->
-<!--                    }-->
-<!--                }-->
-<!--            }-->
-<!--        }-->
-<!--    }-->
+                    .basemap-layer-item {
+                        width: 50%;
+                    }
+                }
+            }
+        }
+    }
 
-<!--</style>-->
+</style>
diff --git a/src/components/LayerController/service/BusiLayerService.js b/src/components/LayerController/service/BusiLayerService.js
new file mode 100644
index 0000000..254a819
--- /dev/null
+++ b/src/components/LayerController/service/BusiLayerService.js
@@ -0,0 +1,32 @@
+/**
+ * 鍔犺浇涓氬姟鏁版嵁鍥惧眰
+ */
+import { logicMapper } from '@src/conf/Constants'
+
+class BusiLayerService {
+  constructor (config) {
+    this.L = window.L
+    this.map = window.map
+    this.config = config
+  }
+
+  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)
+      // 璋冪敤click浜嬩欢
+    }
+  }
+}
+
+export default BusiLayerService
diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js
new file mode 100644
index 0000000..7626125
--- /dev/null
+++ b/src/components/LayerController/service/LayerFactory.js
@@ -0,0 +1,88 @@
+import store from '@/store'
+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 () {
+    // 1. 閬嶅巻layer config
+    var layerConfig = store.state.map.serviceLayers.LayerSewersLine
+    for (var i = 0, l = layerConfig.length; i < l; i++) {
+      var config = layerConfig[i]
+      var layers = config.layers
+      for (var j = 0; j < layers.length; j++) {
+        var childConfig = layers[j]
+        var code = childConfig.code
+        var wfs = childConfig.wfs
+        var wms = childConfig.wms
+        var url = childConfig.url
+        // 鍒ゆ柇鏄惁宸茬粡鍔犺浇杩囷紝鍔犺浇杩囧氨 蹇界暐鎺�
+        const layer = this.layers[code]
+        if (!layer) {
+          const newLayer = this.createLayerGroup()
+          this.layers[code] = newLayer
+          // 2. 鍒ゆ柇绫诲瀷
+          if (wfs) {
+            // 3. 瀹炰緥鍖栧叿浣搒ervice
+            // var busiLayerService = new BusiLayerService()
+            // busiLayerService.init()
+            var wfsLayerService = new WfsLayerService(childConfig)
+            wfsLayerService.init(newLayer)
+          }
+          if (wms) {
+            var wmsLayerService = new WmsLayerService(childConfig)
+            wmsLayerService.init(newLayer)
+          }
+          // 璇锋眰涓氬姟鏁版嵁鎺ュ彛
+          if (url) {
+            var busiLayerService = new BusiLayerService(childConfig)
+            busiLayerService.init(newLayer)
+          }
+        } else {
+          this.show(code)
+        }
+      }
+    }
+  }
+
+  show (code) {
+    var _layer = this.layers[code].addTo(this.map)
+    this.setZIndex(_layer)
+  }
+
+  hide (code) {
+    var layer = this.layers[code]
+    layer && this.map.removeLayer(layer)
+  }
+
+  toggle (code) {
+
+  }
+
+  /**
+   * 璁剧疆index,绾垮湪鏈�涓嬮潰锛岀偣鍦ㄤ笂闈�
+   * @param layerGroup 鍥惧眰缁�
+   */
+  setZIndex (layerGroup) {
+    var layers = layerGroup.getLayers()
+    if (layers.length > 0) {
+      var layer = layers[0]
+      if (layer.feature && (layer.feature.geometry.type === 'LineString' || layer.feature.geometry.type === 'MultiLineString')) {
+        layerGroup.bringToBack()
+      } else {
+        layerGroup.bringToFront()
+      }
+    }
+  }
+}
+
+export default LayerFactory
diff --git a/src/components/LayerController/service/PopupService.js b/src/components/LayerController/service/PopupService.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/components/LayerController/service/PopupService.js
diff --git a/src/components/LayerController/service/WfsLayerService.js b/src/components/LayerController/service/WfsLayerService.js
new file mode 100644
index 0000000..e5a175d
--- /dev/null
+++ b/src/components/LayerController/service/WfsLayerService.js
@@ -0,0 +1,119 @@
+/**
+ * 鍔犺浇涓氬姟鏁版嵁鍥惧眰
+ */
+
+import styles from '../../../conf/Styles'
+import AjaxUtils from '../../../utils/AjaxUtils'
+
+class WfsLayerService {
+  constructor (config) {
+    this.config = config
+    this.params = {
+      version: '1.0.0',
+      REQUEST: 'getfeature',
+      OUTPUTFORMAT: 'json',
+      maxFeatures: 20000
+    }
+    this.popupComp = window.popupComp
+    this.L = window.L
+    this.map = window.map
+    this.regex = /\{(.+?)\}/g // 鍖归厤{}
+  }
+
+  init (layer) {
+    const wfsUrl = this.config.wfs
+    if (wfsUrl) {
+      AjaxUtils.get4JsonDataByUrl(wfsUrl, this.params, (res) => this.draw(layer, res.data.features))
+    }
+  }
+
+  draw (layer, features) {
+    const icon = this.config.icon
+    const geojson = this.L.geoJSON(features, {
+      style: function (feature) {
+        return {
+          fill: styles.defaultLineStyle.fill,
+          weight: styles.defaultLineStyle.weight,
+          fillColor: styles.defaultLineStyle.fillColor,
+          color: styles.defaultLineStyle.color,
+          fillOpacity: styles.defaultLineStyle.fillOpacity,
+          opacity: styles.defaultLineStyle.opacity,
+          dashArray: styles.defaultLineStyle.dashArray,
+          dashSpeed: styles.defaultLineStyle.dashSpeed
+        }
+      },
+      pointToLayer: (geoJsonPoint, latlng) => {
+        return this.L.canvasMarker(latlng,
+          {
+            img: {
+              // url: 'assets/images/map/marker-icon.png',
+              url: '/assets/images/map/' + icon,
+              size: styles.defaultLineStyle.size
+            }
+          })
+      },
+      onEachFeature: (feature, layer) => {
+        layer.bindPopup((layer) => {
+          this.popupComp.setDatas(layer)
+          this.popupComp.setShow()
+          return this.popupComp.$el
+        }, {
+          className: 's-map-popup',
+          minWidth: 300,
+          closeButton: false,
+          autoClose: false
+        })
+          .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
+  }
+
+  mouseOverListener (e, layer) {
+    const icon = this.config.icon
+    const type = e.target.feature.geometry.type
+    if (type === 'LineString' || type === 'MultiLineString') {
+      layer.setStyle({ weight: 8, color: '#00ffff' })
+    } else if (type === 'Point' || type === 'MultiPoint') {
+      layer.setStyle({
+        img: {
+          url: '/assets/images/map/' + icon,
+          size: [25, 25]
+        }
+      })
+      layer.bringToFront()
+    }
+  }
+
+  mouseOutListener (e, layer) {
+    const icon = this.config.icon
+    const type = e.target.feature.geometry.type
+    if (type === 'LineString' || type === 'MultiLineString') {
+      layer.setStyle({ weight: styles.defaultLineStyle.weight, color: styles.defaultLineStyle.color })
+    }
+    if (type === 'Point' || type === 'MultiPoint') {
+      layer.setStyle({
+        img: {
+          url: '/assets/images/map/' + icon,
+          size: styles.defaultLineStyle.size
+        }
+      })
+    }
+  }
+
+  tooltipListener (layer) {
+    const nameId = layer.feature.id
+    let name = ''
+    if (nameId.indexOf('涓夐��') !== -1 || nameId.indexOf('鍥涢��') !== -1 || nameId.indexOf('绐ㄤ簳') !== -1) {
+      name = layer.feature.properties.pointnumber
+    } else {
+      name = layer.feature.properties.name
+    }
+    if (name === undefined) {
+      name = ''
+    }
+    return name
+  }
+}
+export default WfsLayerService
diff --git a/src/components/LayerController/service/WmsLayerService.js b/src/components/LayerController/service/WmsLayerService.js
new file mode 100644
index 0000000..b818aec
--- /dev/null
+++ b/src/components/LayerController/service/WmsLayerService.js
@@ -0,0 +1,11 @@
+class WfsLayerService {
+  constructor (config) {
+    this.config = config
+  }
+
+  init () {
+
+  }
+}
+
+export default WfsLayerService
diff --git a/src/components/panel/topicSearch/SewersSearch.vue b/src/components/panel/topicSearch/SewersSearch.vue
index f6ff0f2..c969cde 100644
--- a/src/components/panel/topicSearch/SewersSearch.vue
+++ b/src/components/panel/topicSearch/SewersSearch.vue
@@ -101,7 +101,7 @@
 </template>
 
 <script>
-import { PipelineTypeOptions } from '@/conf/LayerSewers'
+import { PipelineTypeOptions } from '@/conf/layers/LayerSewers'
 
 import WfsHelper from '@components/helpers/WfsHelper'
 import AjaxUtils from '@utils/AjaxUtils'
diff --git a/src/conf/Constants.js b/src/conf/Constants.js
index 72bb8f0..cef757c 100644
--- a/src/conf/Constants.js
+++ b/src/conf/Constants.js
@@ -4,6 +4,12 @@
   POLYGON: 'polygon'
 }
 
+export const logicMapper = {
+  fsqy: 'Sample.js',
+  fspfk: 'Sample.js',
+  fsjcd: 'Sample.js'
+}
+
 export const props = {
   pipename: '绠$嚎鍚嶇О',
   pipecode: '绠$嚎缂栫爜',
diff --git a/src/conf/LayerWasteWater.js b/src/conf/LayerWasteWater.js
deleted file mode 100644
index 950943c..0000000
--- a/src/conf/LayerWasteWater.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * 搴熸按鍥惧眰
- * @type {string}
- */
-const APP_GIS_HOST_2 = 'http://xearth.cn:8088'
-export const LayerWasteWater = {
-  code: 'pipeline',
-  name: '搴熸按',
-  type: 'geojson',
-  // url: APP_GIS_HOST_2 + '/server/ogcserver/PipeLineTest/wms?version=1.1.1',
-  // url: APP_GIS_HOST_2 + '/layer/findLayer?layerName={sname}',
-  url: APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs?version=1.0.0&TYPENAME={sname}&REQUEST=getfeature&OUTPUTFORMAT=json&maxFeatures=20000',
-  checked: true,
-  layers: [
-    {
-      code: 'rainline',
-      name: '浼佷笟',
-      sname: '浼佷笟', // 琛ㄥ悕
-      checked: true, // 榛樿閫変腑鐘舵��
-      filter: {},
-      minZoom: 10, // 鍦ㄦ寚瀹氱骇鍒樉绀�
-      childLayer: 'fsss,hbss' // 鍏宠仈PointLayers
-    },
-    {
-      code: 'oilline',
-      name: '鐩戞祴鐐�',
-      sname: '鐩戞祴鐐�',
-      checked: true, // 榛樿閫変腑鐘舵��
-      filter: {},
-      minZoom: 10,
-      childLayer: 'fsss,hbss' // 鍏宠仈PointLayers
-    },
-    {
-      code: 'saltline',
-      name: '鎺掓斁鍙�',
-      sname: '鎺掓斁鍙�',
-      checked: true, // 榛樿閫変腑鐘舵��
-      filter: {},
-      minZoom: 10,
-      childLayer: 'fsss,hbss' // 鍏宠仈PointLayers
-    }
-  ]
-}
diff --git a/src/conf/Layers.js b/src/conf/Layers.js
deleted file mode 100644
index 5c69adf..0000000
--- a/src/conf/Layers.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// import * as L from 'leaflet'
-import { LayerSewers, PointLayers } from './LayerSewers'
-// const APP_GIS_HOST = 'http://xearth.cn:6299'
-
-// 鍑犱綍绫诲瀷甯搁噺
-
-export const ServiceLayers = [
-  /*    {
-        code: 'pipeline',
-        name: '绠$綉鏁版嵁',
-        icon_actived: '',
-        icon_deactived: '',
-        type: 'wms',
-        // url: APP_GIS_HOST_PIPELINE + '/server/ogcserver/PipeLineTest/wms?version=1.1.1',
-        url: APP_GIS_HOST_PIPELINE + '/server/ogcserver/PipeLine/wms?version=1.1.1',
-        inLegend: true,
-        checked: true,
-        option: {
-          layers: 'all',
-          styles: '', // Comma-separated list of WMS styles.
-          format: 'image/png', // WMS image format (use 'image/png' for layers with transparency).
-          transparent: true, // If true, the WMS service will return images with transparency.
-          version: '1.1.1', // Version of the WMS service to use
-          tileSize: L.point(256, 256),
-          crs: L.CRS.EPSG4326, // Coordinate Reference System to use for the WMS requests, defaults to map CRS. Don't change this if you're not sure what it means.
-          uppercase: false,
-          WMSTILE: 1
-        }, */
-  LayerSewers, PointLayers
-]
diff --git a/src/conf/MapConfig.js b/src/conf/MapConfig.js
index a039e8f..636c051 100644
--- a/src/conf/MapConfig.js
+++ b/src/conf/MapConfig.js
@@ -1,7 +1,9 @@
 锘縤mport * as L from 'leaflet'
 import TDT from './TDT'
-import { LayerSewersLine, LayerSewersPoint } from './LayerSewers'
-import { LayerWasteWater } from './LayerWasteWater'
+import { LayerSewersLine, LayerSewersPoint } from './layers/LayerSewers'
+import { LayerWasteWater } from './layers/LayerWasteWater'
+import { LayerSolidWaste } from './layers/LayerSolidWaste'
+import { LayerWasteGas } from './layers/LayerWasteGas'
 
 const curWwwPath = window.document.location.href
 const pathname = window.document.location.pathname
@@ -40,7 +42,7 @@
   IntranetBaseMaps: TDT.intranet,
   InternetBaseMaps: TDT.internet,
   Layers: {
-    LayerSewersLine: [LayerSewersLine, LayerWasteWater],
+    LayerSewersLine: [LayerSewersLine, LayerWasteWater, LayerWasteWater, LayerWasteGas, LayerSolidWaste],
     layerSewersPoint: LayerSewersPoint
   } // 姹¢洦姘村浘灞傞厤缃�
 }
diff --git a/src/conf/LayerSewers.js b/src/conf/layers/LayerSewers.js
similarity index 99%
rename from src/conf/LayerSewers.js
rename to src/conf/layers/LayerSewers.js
index 65c109d..a61b541 100644
--- a/src/conf/LayerSewers.js
+++ b/src/conf/layers/LayerSewers.js
@@ -1,13 +1,11 @@
 const APP_GIS_HOST_2 = 'http://xearth.cn:8088'
+const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs'
 // const APP_GIS_HOST_2 = 'http://localhost:3000'
 // const APP_GIS_HOST_2 = 'http://192.168.31.226:8088'
 export const LayerSewersLine = {
   code: 'pipeline',
   name: '绠$綉鏁版嵁',
   type: 'geojson',
-  // url: APP_GIS_HOST_2 + '/server/ogcserver/PipeLineTest/wms?version=1.1.1',
-  // url: APP_GIS_HOST_2 + '/layer/findLayer?layerName={sname}',
-  url: APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs?version=1.0.0&TYPENAME={sname}&REQUEST=getfeature&OUTPUTFORMAT=json&maxFeatures=20000',
   checked: true,
   layers: [
     {
@@ -15,7 +13,7 @@
       name: '闆ㄦ按绾�',
       sname: '绠$綉', // 琛ㄥ悕
       checked: true, // 榛樿閫変腑鐘舵��
-      filter: {},
+      wfs: WFS_URL + '?TYPENAME=绠$綉',
       minZoom: 10, // 鍦ㄦ寚瀹氱骇鍒樉绀�
       childLayer: 'fsss,hbss' // 鍏宠仈PointLayers
     },
@@ -24,7 +22,7 @@
       name: '鍚补姹℃按绾�',
       sname: '鍚补姹℃按',
       checked: true, // 榛樿閫変腑鐘舵��
-      filter: {},
+      wfs: WFS_URL + '?TYPENAME=鍚补姹℃按',
       minZoom: 10,
       childLayer: 'fsss,hbss' // 鍏宠仈PointLayers
     },
@@ -33,7 +31,7 @@
       name: '鍚洂姹℃按绾�',
       sname: '鍚洂姹℃按',
       checked: true, // 榛樿閫変腑鐘舵��
-      filter: {},
+      wfs: WFS_URL + '?TYPENAME=鍚洂姹℃按',
       minZoom: 10,
       childLayer: 'fsss,hbss' // 鍏宠仈PointLayers
     },
@@ -42,7 +40,7 @@
       name: '鍚⒈姹℃按绾�',
       sname: '鍚⒈姹℃按',
       checked: true, // 榛樿閫変腑鐘舵��
-      filter: {},
+      wfs: WFS_URL + '?TYPENAME=鍚⒈姹℃按',
       minZoom: 10,
       childLayer: 'fsss,hbss' // 鍏宠仈PointLayers
     },
@@ -51,7 +49,7 @@
       name: '鎺掑彛',
       sname: '鎺掑彛',
       checked: true, // 榛樿閫変腑鐘舵��
-      filter: {},
+      wfs: WFS_URL + '?TYPENAME=鎺掑彛',
       minZoom: 10,
       childLayer: 'pk' // 鍏宠仈PointLayers
     },
@@ -60,7 +58,7 @@
       name: '浜嬫晠姘寸嚎',
       sname: '浜嬫晠姘�',
       checked: true, // 榛樿閫変腑鐘舵��
-      filter: {},
+      wfs: WFS_URL + '?TYPENAME=浜嬫晠姘�',
       minZoom: 10,
       childLayer: 'fsss,hbss' // 鍏宠仈PointLayers
     },
@@ -69,7 +67,7 @@
       name: '寰幆姘寸嚎',
       sname: '寰幆姘�',
       checked: true, // 榛樿閫変腑鐘舵��
-      filter: {},
+      wfs: WFS_URL + '?TYPENAME=寰幆姘�',
       minZoom: 10,
       childLayer: 'fsss,hbss' // 鍏宠仈PointLayers
     },
@@ -78,7 +76,7 @@
       name: '鍑�鍖栨按绾�',
       sname: '鍑�鍖栨按',
       checked: true, // 榛樿閫変腑鐘舵��
-      filter: {},
+      wfs: WFS_URL + '?TYPENAME=鍑�鍖栨按',
       minZoom: 10,
       childLayer: 'fsss,hbss' // 鍏宠仈PointLayers
     },
@@ -87,7 +85,7 @@
       name: '鐢熸椿姹℃按',
       sname: '鐢熸椿姹℃按',
       checked: true, // 榛樿閫変腑鐘舵��
-      filter: {},
+      wfs: WFS_URL + '?TYPENAME=鐢熸椿姹℃按',
       minZoom: 10,
       childLayer: 'fsss,hbss' // 鍏宠仈PointLayers
     },
diff --git a/src/conf/layers/LayerSolidWaste.js b/src/conf/layers/LayerSolidWaste.js
new file mode 100644
index 0000000..3a654b6
--- /dev/null
+++ b/src/conf/layers/LayerSolidWaste.js
@@ -0,0 +1,27 @@
+/**
+ * 鍥哄簾鍥惧眰
+ * @type {string}
+ */
+export const LayerSolidWaste = {
+  code: 'solidWaste',
+  name: '搴熸皵',
+  checked: true,
+  layers: [
+    {
+      code: 'solidWasteQy',
+      name: '浼佷笟',
+      sname: '浼佷笟', // 琛ㄥ悕
+      checked: true, // 榛樿閫変腑鐘舵��
+      url: 'http://www.baidu.com', // 璇锋眰涓氬姟鏁版嵁鎺ュ彛
+      minZoom: 10 // 鍦ㄦ寚瀹氱骇鍒樉绀�
+    },
+    {
+      code: 'solidWasteJcd',
+      name: '鐩戞祴鐐�',
+      sname: '鐩戞祴鐐�',
+      checked: true, // 榛樿閫変腑鐘舵��
+      url: 'http://www.baidu2.com',
+      minZoom: 10
+    }
+  ]
+}
diff --git a/src/conf/layers/LayerWasteGas.js b/src/conf/layers/LayerWasteGas.js
new file mode 100644
index 0000000..3860e94
--- /dev/null
+++ b/src/conf/layers/LayerWasteGas.js
@@ -0,0 +1,51 @@
+/**
+ * 搴熸皵鍥惧眰
+ * @type {string}
+ */
+export const LayerWasteGas = {
+  code: 'wasteGas',
+  name: '搴熸皵',
+  checked: true,
+  layers: [
+    {
+      code: 'wasteGasQy',
+      name: '浼佷笟',
+      sname: '浼佷笟', // 琛ㄥ悕
+      checked: true, // 榛樿閫変腑鐘舵��
+      url: 'http://www.baidu.com', // 璇锋眰涓氬姟鏁版嵁鎺ュ彛
+      minZoom: 10 // 鍦ㄦ寚瀹氱骇鍒樉绀�
+    },
+    {
+      code: 'wasteGasJcd',
+      name: '鐩戞祴鐐�',
+      sname: '鐩戞祴鐐�',
+      checked: true, // 榛樿閫変腑鐘舵��
+      url: 'http://www.baidu2.com',
+      minZoom: 10
+    },
+    {
+      code: 'wasteGasVocs',
+      name: 'VOCs',
+      sname: 'VOCs',
+      checked: true, // 榛樿閫変腑鐘舵��
+      url: '',
+      minZoom: 10
+    },
+    {
+      code: 'wasteGasKrq',
+      name: '鍙噧姘�',
+      sname: '鍙噧姘�',
+      checked: true, // 榛樿閫変腑鐘舵��
+      url: '',
+      minZoom: 10
+    },
+    {
+      code: 'wasteGasYhq',
+      name: '鏈夊姘�',
+      sname: '鏈夊姘�',
+      checked: true, // 榛樿閫変腑鐘舵��
+      url: '',
+      minZoom: 10
+    }
+  ]
+}
diff --git a/src/conf/layers/LayerWasteWater.js b/src/conf/layers/LayerWasteWater.js
new file mode 100644
index 0000000..3f1ff32
--- /dev/null
+++ b/src/conf/layers/LayerWasteWater.js
@@ -0,0 +1,37 @@
+/**
+ * 搴熸按鍥惧眰
+ * @type {string}
+ */
+export const LayerWasteWater = {
+  code: 'pipeline',
+  name: '搴熸按',
+  checked: true,
+  layers: [
+    {
+      code: 'fsqy',
+      name: '浼佷笟',
+      sname: '浼佷笟', // 琛ㄥ悕
+      checked: true, // 榛樿閫変腑鐘舵��
+      url: 'http://www.baidu.com', // 璇锋眰涓氬姟鏁版嵁鎺ュ彛
+      minZoom: 10 // 鍦ㄦ寚瀹氱骇鍒樉绀�
+    },
+    {
+      code: 'fsjcd',
+      name: '鐩戞祴鐐�',
+      sname: '鐩戞祴鐐�',
+      checked: true, // 榛樿閫変腑鐘舵��
+      url: 'http://www.baidu2.com',
+      minZoom: 10,
+      childLayer: 'fsss,hbss' // 鍏宠仈PointLayers
+    },
+    {
+      code: 'fspfk',
+      name: '鎺掓斁鍙�',
+      sname: '鎺掓斁鍙�',
+      checked: true, // 榛樿閫変腑鐘舵��
+      url: '',
+      minZoom: 10,
+      childLayer: 'fsss,hbss' // 鍏宠仈PointLayers
+    }
+  ]
+}
diff --git a/src/utils/AjaxUtils.js b/src/utils/AjaxUtils.js
index 0499763..d0e1bfa 100644
--- a/src/utils/AjaxUtils.js
+++ b/src/utils/AjaxUtils.js
@@ -33,7 +33,7 @@
   axios({
     method: 'get',
     url: pUrl,
-    data: pData
+    params: pData
   }).then(function (response) {
     pBackFun(response)
   })
diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue
index 9b634a5..6913577 100644
--- a/src/views/MapTemplate.vue
+++ b/src/views/MapTemplate.vue
@@ -42,9 +42,10 @@
 import AddSolidWasteHelper from '@components/BaseNav/SolidWaste/SolidWaste'
 import AddWasteWaterHelper from '@components/BaseNav/WasteWater/WasteWater'
 import AddGasHelper from '@components/BaseNav/flueGas/flueGas'
-// import PopupGas from '@/components/flueGas/popup-gas'
 // // 鍏叡灞曠ず鏁版嵁
 import PublicBounced from '@components/BaseNav/PublicBounced/PublicBounced'
+import LayerFactory from '@components/LayerController/service/LayerFactory'
+
 export default {
   name: 'MapTemplate',
   components: {
@@ -59,8 +60,6 @@
     LcServiceLayer,
     Popup,
     summarySheets,
-    // SolidContent,
-    // PopupGas,
     PublicBounced
   },
   data () {
@@ -134,9 +133,6 @@
       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)
@@ -151,12 +147,20 @@
       this.map = Sgis.initMap(mapcontainer)
       this.$refs.toolBox.map = this.map
 
+      window.popupComp = this.$refs.popup
+      var layerFactory = new LayerFactory({
+        L: window.L,
+        map: this.map
+      })
+      layerFactory.init()
+      window.layerFactory = layerFactory
+
       this.basemapHelper = Sgis.initBasemapsHelper(this.map) // 鍒濆鍖栧熀纭�搴曞浘鍔╂墜
       this.basemapHelper.initBasemap(this.config, false) // 绗簩涓弬鏁帮紝琛ㄧず鏄惁鍐呯綉搴曞浘
 
-      this.serviceLayerHelper = Sgis.initTileLayersHelper(this.map) // 鍒濆鍖栦笟鍔″簳鍥惧姪鎵�
-      console.log('-------' + this.$refs.popup.$el)
-      this.serviceLayerHelper.initServiceLayers(this.config, this.$refs.popup)
+      // this.serviceLayerHelper = Sgis.initTileLayersHelper(this.map) // 鍒濆鍖栦笟鍔″簳鍥惧姪鎵�
+      // console.log('-------' + this.$refs.popup.$el)
+      // this.serviceLayerHelper.initServiceLayers(this.config, this.$refs.popup)
 
       this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.map) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵�
       this.vectorLayerHelper.initVectorLayers(this.config)

--
Gitblit v1.8.0