From bacd67f317f8f3851f2f6e8b460d95f25bb5988e Mon Sep 17 00:00:00 2001
From: ChenZeping <chenzeping>
Date: 星期一, 10 五月 2021 17:07:06 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop

---
 src/conf/layers/LayerPipeLines.js                                             |   77 ++-
 src/components/layer/src/layer.vue                                            |   14 
 src/conf/layers/LayerFsss.js                                                  |   31 +
 src/components/LayerController/modules/LcServiceLayerFilter.vue               |    7 
 src/components/LayerController/service/LayerFactory.js                        |   19 
 src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue              |  435 ++++-------------------
 src/views/popup/Popup.vue                                                     |    2 
 src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue |  103 +----
 src/components/LayerController/service/WmsLayerService.js                     |   50 +-
 src/conf/layers/LayerHbss.js                                                  |   11 
 src/utils/List.js                                                             |   96 +++++
 src/components/panel/topicSearch/SewersSelect/SewersHistory.vue               |    2 
 src/conf/Constants.js                                                         |    6 
 src/components/panel/topicSearch/SewersSearch.vue                             |  149 ++++----
 src/components/helpers/WfsHelper.js                                           |   39 +
 src/components/layer/src/layer.js                                             |    1 
 16 files changed, 434 insertions(+), 608 deletions(-)

diff --git a/src/components/LayerController/modules/LcServiceLayerFilter.vue b/src/components/LayerController/modules/LcServiceLayerFilter.vue
index 8f3bc8d..7b06da4 100644
--- a/src/components/LayerController/modules/LcServiceLayerFilter.vue
+++ b/src/components/LayerController/modules/LcServiceLayerFilter.vue
@@ -2,15 +2,12 @@
     <div class="inner-panel">
         <div class="filter-group">
             <div v-for="item in layers" :key="item.code" class="filter-item">
-                <div class="title"><input type="checkbox" :value="item.code" :checked="item.checked"
-                                          @change="swAllSubFilter(item)">{{item.name}}
+                <div class="title"><input type="checkbox" :value="item.code" :checked="item.checked" @change="swAllSubFilter(item)">{{item.name}}
                 </div>
                 <!--  <el-scrollbar style="height:100%"> -->
                     <div class="content">
                         <div v-for="filter in item.layers" :key="filter.code">
-                            <input type="checkbox" :value="filter.code" :checked="filter.checked"
-                                   @change="swAllSubFilter(filter)"><label
-                                :title="filter.name">{{filter.name}}</label>
+                            <input type="checkbox" :value="filter.code" :checked="filter.checked" @change="swAllSubFilter(filter)"><label :title="filter.name">{{filter.name}}</label>
                         </div>
                     </div>
                 <!--  </el-scrollbar> -->
diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js
index f9810db..f781247 100644
--- a/src/components/LayerController/service/LayerFactory.js
+++ b/src/components/LayerController/service/LayerFactory.js
@@ -1,6 +1,6 @@
 import WfsLayerService from './WfsLayerService'
 import { clone } from '../../../utils/utils'
-import { logicMapper } from '../../../conf/Constants'
+import { logicMapper, SERVICE_TYPE } from '../../../conf/Constants'
 import WmsLayerService from './WmsLayerService'
 
 /**
@@ -65,8 +65,7 @@
 
   loadLogic (config) {
     var code = config.code
-    var wfs = config.wfs
-    var wmsLayers = config.wmsLayers
+    var type = config.type
 
     const file = logicMapper[code]
     var logic = this.layersLogic[code]
@@ -74,9 +73,9 @@
       if (file) {
         var BusiLayer = require('../logic/' + file)
         logic = new BusiLayer()
-      } else if (wfs) {
+      } else if (type === SERVICE_TYPE.WFS) {
         logic = new WfsLayerService(config)
-      } else if (wmsLayers) {
+      } else if (type === SERVICE_TYPE.WMS) {
         var layer = {}
         layer[config.code] = config
         this.wmsLayers.push(layer)
@@ -184,9 +183,17 @@
         break
       case 'MultiLineString':
         var coordinates = feature.geometry.coordinates
-        point = coordinates[parseInt(coordinates.length / 2)][0]
+        var coordinate = coordinates[parseInt(coordinates.length / 2)][0]
+        if (coordinate.length > 2) {
+          point = [coordinate[0], coordinate[1]]
+        }
+        break
+      case 'LineString':
+        var lineString = feature.geometry.coordinates
+        point = lineString[parseInt(lineString.length / 2)][0]
         break
     }
+    console.log(point)
     window.map.flyTo(point.reverse(), 17)
     code && this.openPopup(code, feature.id)
   }
diff --git a/src/components/LayerController/service/WmsLayerService.js b/src/components/LayerController/service/WmsLayerService.js
index 8c0d5dc..36aba46 100644
--- a/src/components/LayerController/service/WmsLayerService.js
+++ b/src/components/LayerController/service/WmsLayerService.js
@@ -1,6 +1,7 @@
 import AjaxUtils from '../../../utils/AjaxUtils'
 import { PIPELINE_WMS } from '../../../conf/Constants'
 import Popup from '@views/popup/Popup'
+import List from '../../../utils/List'
 
 /**
  * todo 寰楄�冭檻涓�涓浘灞傞厤缃簡澶氫釜 wmsLayers鐨勬儏鍐�
@@ -27,13 +28,12 @@
     // 瀛樻斁getfeatureinfo鐨勫浘灞傜粍
     this.featureGroup = this.L.featureGroup({}).addTo(this.map)
 
-    this.layers = []
+    this.layers = new List()
     for (var i = 0; i < layersConfig.length; i++) {
       const config = layersConfig[i]
-      for (var k in config) {
-        if (k === 'wmsLayers') {
-          this.layers.push(config[k])
-        }
+      const typeName = config.typeName
+      if (typeName) {
+        this.layers.add(config.index, typeName)
       }
     }
   }
@@ -46,23 +46,18 @@
   }
 
   add (config) {
-    const wmsLayers = config.wmsLayers
-    if (wmsLayers) {
-      if (this.layers.indexOf(wmsLayers) < 0) {
-        this.layers.push(config.wmsLayers)
+    const typeName = config.typeName
+    if (typeName) {
+      if (!this.layers.contains(typeName)) {
+        this.layers.add(config.index, typeName)
         this.wmsLayer.setParams({ layers: this.layers.join(',') })
       }
     }
   }
 
   remove (config) {
-    const wmsLayers = config.wmsLayers
-    for (var i = 0; i < this.layers.length; i++) {
-      const layerName = this.layers[i]
-      if (wmsLayers === layerName) {
-        this.layers.splice(i, 1)
-      }
-    }
+    const typeName = config.typeName
+    this.layers.remove(typeName)
     this.wmsLayer.setParams({ layers: this.layers.join(',') })
   }
 
@@ -70,18 +65,19 @@
     this.wmsLayer = this.L.tileLayer.wms(PIPELINE_WMS, {
       format: 'image/png', // 杩斿洖鐨勬暟鎹牸寮�
       transparent: true,
-      layers: layers.join(',')
+      layers: this.layers.join(',')
     }).addTo(this.map)
   }
 
   clickListener () {
     window.map.on('click', (e) => {
+      console.log(e)
       this.featureGroup.clearLayers()
       var point = this.map.latLngToContainerPoint(e.latlng, this.map.getZoom())
       var size = this.map.getSize()
       // const bbox = this.L.latLngBounds(this.L.latLng(e.latlng.lng, e.latlng.lat)).toBBoxString()
 
-      if (this.layers && this.layers.length > 0) {
+      if (this.layers.length() > 0) {
         const params = Object.assign({
           LAYERS: this.layers.join(','),
           QUERY_LAYERS: this.layers.join(','),
@@ -94,13 +90,13 @@
         AjaxUtils.get4JsonDataByUrl(PIPELINE_WMS, params, (res) => {
           const features = res.data.features
           /**
-             * {
-             *     title: 'New Tab',
-             *     name: newTabName,
-             *     content: 'New Tab content'
-             * }
-             * @type {*[]}
-             */
+           * {
+           *     title: 'New Tab',
+           *     name: newTabName,
+           *     content: 'New Tab content'
+           * }
+           * @type {*[]}
+           */
           const popupDatas = []
           if (features) {
             for (var i = 0; i < features.length; i++) {
@@ -140,7 +136,9 @@
                     datas: popupDatas
                   }
                 },
-                title: '' // 鏍囬
+                title: '', // 鏍囬
+                left: e.originalEvent.clientX,
+                top: e.originalEvent.clientY
               })
             }
             // this.popupComp.setDatas(popupDatas)
diff --git a/src/components/helpers/WfsHelper.js b/src/components/helpers/WfsHelper.js
index 20093e6..9f9b781 100644
--- a/src/components/helpers/WfsHelper.js
+++ b/src/components/helpers/WfsHelper.js
@@ -1,14 +1,14 @@
 /**
  * 鍔犺浇WMS,鎷兼帴FILTER,LAYERS鍙傛暟绛�
  */
-import { PIPELINE_WFS } from '../../conf/Constants'
+import { WFS_URL } from '../../conf/Constants'
 function WfsHelper () {
   this.filters = []
   this.typeNames = []
-  this.url = PIPELINE_WFS
+  this.url = WFS_URL
   this.params = {
     REQUEST: 'getfeature',
-    OUTPUTFORMAT: 'JSON',
+    OUTPUTFORMAT: 'application/json',
     maxFeatures: 20000,
     version: '1.0.0'
   }
@@ -17,16 +17,19 @@
     this.typeNames.push(typeName)
   }
 
-  this.addEquals = (property, literal) => {
-    var filter = '<PropertyIsEqualTo><PropertyName>' + property + '</PropertyName><Literal>' + literal + '</Literal></PropertyIsEqualTo>'
+  this.addEquals = (property, equals) => {
+    // var filter = '<PropertyIsEqualTo><PropertyName>' + property + '</PropertyName><Literal>' + literal + '</Literal></PropertyIsEqualTo>'
+    var filter = property + '=' + equals
     this.filters.push(filter)
   }
 
   this.addLike = (property, literal) => {
-    if (property && literal) {
-      var filter = '<PropertyIsLike><PropertyName>' + property + '</PropertyName><Literal>*' + literal + '*</Literal></PropertyIsLike>'
-      this.filters.push(filter)
-    }
+    // if (property && literal) {
+    // var filter = '<PropertyIsLike><PropertyName>' + property + '</PropertyName><Literal>*' + literal + '*</Literal></PropertyIsLike>'
+    // this.filters.push(filter)
+    // }
+    var filter = property + ' like \'%' + literal + '%\''
+    this.filters.push(filter)
   }
 
   /**
@@ -34,7 +37,7 @@
    * @returns {string|null}
    */
   this.getFilterParams = () => {
-    var head = '<Filter xmlns="http://www.opengis.net/ogc">'
+    /* var head = '<Filter xmlns="http://www.opengis.net/ogc">'
     var end = '</Filter>'
     var filter = ''
     if (this.filters.length > 0) {
@@ -46,8 +49,19 @@
         return ('FILTER=' + head + '<And>' + filter + '</And>' + end)
       }
       return ('FILTER=' + head + filter + end)
+    } */
+    var filter = ''
+    if (this.filters.length > 0) {
+      filter = 'CQL_FILTER='
+      for (var i = 0; i < this.filters.length; i++) {
+        filter += this.filters[i]
+        if (i !== this.filters.length - 1) {
+          filter += ' AND '
+        }
+      }
+      return filter
     }
-    return null
+    return filter
   }
 
   this.getUrlParams = () => {
@@ -62,7 +76,8 @@
     if (filterParam) {
       params += '&' + filterParam
     }
-    return encodeURI(params)
+    // return encodeURI(params)
+    return params
   }
 
   this.getUrl = () => {
diff --git a/src/components/layer/src/layer.js b/src/components/layer/src/layer.js
index 5e2600b..b0581c1 100644
--- a/src/components/layer/src/layer.js
+++ b/src/components/layer/src/layer.js
@@ -20,6 +20,7 @@
    * @return {[type]}         [description]
    */
   self.open = function (opt) {
+    console.log(opt)
     self.closeAll()
     var options = mergeJson(opt, defOptions)
     const id = `notification_${new Date().getTime()}_${seed++}`
diff --git a/src/components/layer/src/layer.vue b/src/components/layer/src/layer.vue
index 3b25a3a..3221a11 100644
--- a/src/components/layer/src/layer.vue
+++ b/src/components/layer/src/layer.vue
@@ -28,6 +28,18 @@
   },
   computed: {},
   mounted () {
+    let left = this.left
+    let top = this.top
+    if (left > 0) {
+      left = left + 'px'
+    }
+    if (top > 0) {
+      top = top + 'px'
+    }
+    this.style = {
+      left: left || '25%',
+      top: top || '35%'
+    }
   },
   methods: {
     close () {
@@ -72,8 +84,6 @@
 .public-bounced {
   z-index: 2000;
   position: absolute;
-  top: 35%;
-  left: 20%;
 
   .public-bounced-title {
     cursor: move;
diff --git a/src/components/panel/topicSearch/SewersSearch.vue b/src/components/panel/topicSearch/SewersSearch.vue
index ea9c7c6..99842ad 100644
--- a/src/components/panel/topicSearch/SewersSearch.vue
+++ b/src/components/panel/topicSearch/SewersSearch.vue
@@ -1,78 +1,72 @@
 <template>
-    <div class="sewers-search" v-if="gdVisible">
-        <div class="panel-title">{{ title }}</div>
-        <el-tabs v-model="activeName" @tab-click="handleClick">
-            <el-tab-pane label="鏌ヨ" name="first">
-                <div class="search-panel ">
-                    <el-form ref="form" :model="form" label-width="90px" class="search-form">
-                        <el-form-item label="璁炬柦绫诲瀷锛�" size="mini" class="search-panel-item">
-                            <el-select style="width: 100%" v-model="form.pipelineType" @change="handlePipelineType"
-                                       :popper-class="'select-down'">
-                                <el-option
-                                        v-for="item in items"
-                                        :key="item.code"
-                                        :label="item.name"
-                                        :value="item.name">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item :label="form.pipelineType+'锛�'" size="mini">
-                            <el-select style="width: 100%" v-model="form.dataType" value-key="code"
-                                       :popper-class="'select-down'" @change="handleDataType">
-                                <el-option
-                                        v-for="item in subItems"
-                                        :key="item.code"
-                                        :label="item.name"
-                                        :value="item">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                        <div class="rightButtonSearch">
-                            <el-input v-model="form.keyword" size="mini" placeholder="鍦ㄦ杈撳叆鍏抽敭瀛楁悳绱�"></el-input>
-                            <el-button class="el-icon-search" @click="handleSearch"></el-button>
-                        </div>
-                    </el-form>
-                </div>
-                <el-scrollbar style="height:380.44px;">
-                    <div class="environmental-risk-list" v-for="(item,index) in list" :key="index"
-                         :class="activeNum==index?'hover':''">
-                        <img class="state" :src="getImgSrc()" style="background: none"/>
-                        <div>
-                            <h3 @click="handleLocation(item,index)">{{ item.properties.pipename }}</h3>
-                            <p>鎵�灞炰紒涓氾細<span>{{ item.properties.orgcode }}</span>
-                            <p>璁炬柦绫诲瀷锛�<span>{{ item.properties.teetype }}</span>
-                                <el-button v-if="fuShuSheShiShow" class="rt btn00fff6" size="mini"
-                                           style="margin-right: 0.04rem;" @click="btnAffiliatedFacilities(item,index)">
-                                    闄勫睘璁炬柦
-                                </el-button>
-                            </p>
-                        </div>
-                    </div>
-                </el-scrollbar>
-                <el-card class="footer-page" v-if="total > 10">
-                    <el-pagination
-                            small
-                            @current-change="handlePage"
-                            :page-size=pageSize
-                            layout="prev, pager, next"
-                            :total=total
-                            :current-page=current
-                            class="warnPagination"
-                    >
-                    </el-pagination>
-                </el-card>
-            </el-tab-pane>
-            <el-tab-pane label="鍒嗘瀽" name="second">
-                <SewersAnalysis></SewersAnalysis>
-            </el-tab-pane>
-            <el-tab-pane label="鍘嗗彶" name="third">
-                <SewersHistory></SewersHistory>
-            </el-tab-pane>
-        </el-tabs>
-        <!-- 闄勫睘璁炬柦闈㈡澘 -->
-        <affiliated-facilities :facilitiesParameter="facilitiesParameter"
-                               v-if="fuShuSheShiShow"></affiliated-facilities>
-    </div>
+  <div class="sewers-search" v-if="gdVisible">
+    <div class="panel-title">{{ title }}</div>
+    <el-tabs v-model="activeName" @tab-click="handleClick">
+      <el-tab-pane label="鏌ヨ" name="first">
+        <div class="search-panel ">
+          <el-form ref="form" :model="form" label-width="90px" class="search-form">
+            <el-form-item label="璁炬柦绫诲瀷锛�" size="mini" class="search-panel-item">
+              <el-select style="width: 100%" v-model="form.pipelineType" @change="handlePipelineType"
+                         :popper-class="'select-down'">
+                <el-option
+                    v-for="item in items"
+                    :key="item.code"
+                    :label="item.name"
+                    :value="item.name">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item :label="form.pipelineType+'锛�'" size="mini">
+              <el-select style="width: 100%" v-model="form.dataType" value-key="code" :popper-class="'select-down'" @change="handleDataType" >
+                <el-option
+                      v-for="item in subItems"
+                      :key="item.code"
+                      :label="item.name"
+                      :value="item">
+              </el-option>
+              </el-select>
+            </el-form-item>
+            <div class="rightButtonSearch">
+              <el-input v-model="form.keyword" size="mini" placeholder="鍦ㄦ杈撳叆鍏抽敭瀛楁悳绱�"></el-input>
+              <el-button class="el-icon-search" @click="handleSearch"></el-button>
+            </div>
+          </el-form>
+        </div>
+        <el-scrollbar style="height:413px;">
+          <div class="environmental-risk-list" v-for="(item,index) in list" :key="index" :class="activeNum==index?'hover':''">
+            <img class="state" :src="getImgSrc()" style="background: none"/>
+            <div>
+              <h3 @click="handleLocation(item,index)">{{ item.properties.pipename }}</h3>
+              <p>鎵�灞炰紒涓氾細<span>{{ item.properties.orgcode }}</span>
+              <p>璁炬柦绫诲瀷锛�<span>{{ item.properties.teetype }}</span>
+               <el-button v-if="fuShuSheShiShow" class="rt btn00fff6" size="mini" style="margin-right: 0.04rem;" @click="btnAffiliatedFacilities(item,index)" >闄勫睘璁炬柦</el-button>
+              </p>
+            </div>
+          </div>
+        </el-scrollbar>
+        <el-card class="footer-page" v-if="total > 10">
+          <el-pagination
+              small
+              @current-change="handlePage"
+              :page-size=pageSize
+              layout="prev, pager, next"
+              :total=total
+              :current-page=current
+              class="warnPagination"
+          >
+          </el-pagination>
+        </el-card>
+      </el-tab-pane>
+      <el-tab-pane label="鍒嗘瀽" name="second">
+        <SewersAnalysis></SewersAnalysis>
+      </el-tab-pane>
+      <el-tab-pane label="鍘嗗彶" name="third">
+        <SewersHistory></SewersHistory>
+      </el-tab-pane>
+    </el-tabs>
+    <!-- 闄勫睘璁炬柦闈㈡澘 -->
+    <affiliated-facilities :facilitiesParameter="facilitiesParameter"  v-if="fuShuSheShiShow" ></affiliated-facilities>
+  </div>
 </template>
 
 <script>
@@ -150,11 +144,12 @@
       this.list = []
       var wfsHelper = new WfsHelper()
       // todo 鐜板湪绠$綉杩樻病鍖哄垎寮�绫诲瀷锛屽悗闈㈡敼
-      wfsHelper.addTypeName(this.form.dataType.sname)
-      wfsHelper.addLike('name', this.form.keyword)
+      wfsHelper.addTypeName(this.form.dataType.typeName)
+      if (this.form.keyword) {
+        wfsHelper.addLike('name', this.form.keyword)
+      }
       // const _this = this
       const res = await AjaxUtils.GetDataAsynByUrl(wfsHelper.getUrl(), {})
-      console.log(res)
       if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) {
         this.list = res.features
       }
diff --git a/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue b/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue
index 46fbf24..1588a23 100644
--- a/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue
+++ b/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue
@@ -9,99 +9,32 @@
     <el-card class="box-card">
       <el-scrollbar style="height:2rem">
         <span class="clearfix">璧峰绠℃</span>
-        <el-table
-            ref="singleTable"
-            highlight-current-row
-            :data="startingSection"
-            max-height="200"
-            style="width: 100%" size="mini">
-          <el-table-column
-              prop="lineloopna"
-              label="绠$嚎绫诲瀷"
-          >
-          </el-table-column>
-          <el-table-column
-              sortable
-              width="100"
-              prop="pipecode"
-              label="绠$嚎鍚嶇О"
-          >
-          </el-table-column>
-          <el-table-column
-              sortable
-              width="100"
-              prop="startpoint"
-              label="璧风偣缂栧彿"
-          >
-          </el-table-column>
-          <el-table-column
-              sortable
-              width="100"
-              prop="endpointnu"
-              label="缁堢偣缂栧彿"
-          >
-          </el-table-column>
-          <el-table-column
-              class-name="fixed-tablea"
-              fixed="right"
-              label="鎿嶄綔"
-          >
+        <el-table ref="singleTable" highlight-current-row :data="startingSection" max-height="200" style="width: 100%" size="mini">
+          <el-table-column prop="lineloopna" label="绠$嚎绫诲瀷"></el-table-column>
+          <el-table-column sortable prop="pipecode" label="绠$嚎鍚嶇О"></el-table-column>
+          <el-table-column sortable prop="startpoint" label="璧风偣缂栧彿"></el-table-column>
+          <el-table-column sortable prop="endpointnu" label="缁堢偣缂栧彿"></el-table-column>
+          <el-table-column class-name="fixed-tablea" fixed="right" label="鎿嶄綔">
             <template slot-scope="scope">
               <el-button @click="linkSelectStart(scope.row)" type="text" size="small">閫夋嫨</el-button>
             </template>
           </el-table-column>
         </el-table>
         <span class="clearfix">缁撴潫绠℃</span>
-        <el-table
-            :data="tableData"
-            style="width: 100%">
-          <el-table-column
-              prop="date"
-              label="绠$嚎绫诲瀷">
-          </el-table-column>
-          <el-table-column
-              prop="name"
-              label="绠$嚎鍚嶇О">
-          </el-table-column>
-          <el-table-column
-              prop="province"
-              label="璧风偣缂栧彿">
-          </el-table-column>
-          <el-table-column
-              prop="city"
-              label="缁堢偣缂栧彿">
-          </el-table-column>
-          <el-table-column
-              class-name="fixed-table"
-              fixed="right"
-              label="鎿嶄綔">
-          </el-table-column>
+        <el-table :data="tableData" style="width: 100%">
+          <el-table-column prop="date" label="绠$嚎绫诲瀷"></el-table-column>
+          <el-table-column prop="name" label="绠$嚎鍚嶇О"></el-table-column>
+          <el-table-column prop="province" label="璧风偣缂栧彿"></el-table-column>
+          <el-table-column prop="city" label="缁堢偣缂栧彿"></el-table-column>
+          <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔"></el-table-column>
         </el-table>
         <span class="clearfix">鍒嗘瀽缁撴灉</span>
-        <el-table
-            :data="tableData"
-            style="width: 100%">
-          <el-table-column
-              prop="date"
-              label="绠$嚎绫诲瀷">
-          </el-table-column>
-          <el-table-column
-              prop="name"
-              label="绠$嚎鍚嶇О">
-          </el-table-column>
-          <el-table-column
-              prop="province"
-              label="璧风偣缂栧彿">
-          </el-table-column>
-          <el-table-column
-              prop="city"
-              label="缁堢偣缂栧彿">
-          </el-table-column>
-          <el-table-column
-              class-name="fixed-table"
-              fixed="right"
-              label="鎿嶄綔">
-          </el-table-column>
+        <el-table :data="tableData" style="width: 100%">
+          <el-table-column prop="date" label="绠$嚎绫诲瀷"></el-table-column>
+          <el-table-column prop="name" label="绠$嚎鍚嶇О"></el-table-column>
+          <el-table-column prop="province" label="璧风偣缂栧彿"></el-table-column>
+          <el-table-column prop="city" label="缁堢偣缂栧彿"></el-table-column>
+          <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔"></el-table-column>
         </el-table>
       </el-scrollbar>
     </el-card>
diff --git a/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue b/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue
index 4284d6f..d835318 100644
--- a/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue
+++ b/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue
@@ -4,153 +4,45 @@
         <!--<el-card>-->
         <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
             <el-tab-pane label="杩為�氭��" name="first">
-                <el-button type="primary" @click="linkClickStart" size="mini" style="margin-bottom: 5px;"
-                           title="鍦板浘涓婄偣鍑婚�夋嫨闇�瑕佽繘琛岃繛閫氬垎鏋愮殑绠℃">璧峰绠℃
-                </el-button>
-                <el-button type="primary" @click="linkClickEnd" size="mini" style="margin-bottom: 5px;"
-                           title="鍦板浘涓婄偣鍑讳笌鎵�閫夌娈佃繛閫氱娈�">缁撴潫绠℃
-                </el-button>
-                <el-button type="primary" @click="linkQuery" size="mini" style="margin-bottom: 5px;"
-                           title="鏍规嵁璧峰銆佺粨鏉熺娈佃繘琛岃繛閫氭�у垎鏋�">杩為�氭�у垎鏋�
-                </el-button>
-                <el-button type="primary" @click="handleClick" size="mini" style="margin-bottom: 5px;"
-                           title="鏍规嵁璧峰銆佺粨鏉熺娈佃繘琛岃繛閫氭�у垎鏋�">娓呴櫎
-                </el-button>
+               <div>
+                   <el-button type="primary" @click="linkClickStart" size="mini" title="鍦板浘涓婄偣鍑婚�夋嫨闇�瑕佽繘琛岃繛閫氬垎鏋愮殑绠℃">璧峰绠℃</el-button>
+                   <el-button type="primary" @click="linkClickEnd" size="mini" title="鍦板浘涓婄偣鍑讳笌鎵�閫夌娈佃繛閫氱娈�">缁撴潫绠℃</el-button>
+                   <el-button type="primary" @click="linkQuery" size="mini" title="鏍规嵁璧峰銆佺粨鏉熺娈佃繘琛岃繛閫氭�у垎鏋�">杩為�氭�у垎鏋�</el-button>
+                   <el-button type="primary" @click="handleClick" size="mini" title="鏍规嵁璧峰銆佺粨鏉熺娈佃繘琛岃繛閫氭�у垎鏋�">娓呴櫎</el-button>
+               </div>
                 <!--        <el-scrollbar style="height:450px">-->
                 <!--          <el-card shadow="hover">-->
                 <span class="fixed-style">璧峰绠℃</span>
-                <el-table
-                        class="tableBox"
-                        height="100"
-                        max-height="200"
-                        :data="tableDataLinkStart"
-                        @row-click="linkSelectStart"
-                        highlight-current-row
-                        style="width: 100%" size="mini">
-                    <el-table-column
-                            prop="datasource"
-                            label="绠℃绫诲瀷"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            sortable
-                            width="100"
-                            prop="pipecode"
-                            label="绠℃鍚嶇О"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            sortable
-                            width="100"
-                            prop="material"
-                            label="璧风偣缂栧彿"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            sortable
-                            width="100"
-                            prop="material"
-                            label="缁堢偣缂栧彿"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            fixed="right"
-                            class-name="fixed-table"
-                            label="鎿嶄綔"
-                    >
+                <el-table class="tableBox" height="100" max-height="200" :data="tableDataLinkStart" @row-click="linkSelectStart" highlight-current-row style="width: 100%" size="mini">
+                    <el-table-column prop="datasource" label="绠℃绫诲瀷"></el-table-column>
+                    <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="绠℃鍚嶇О"></el-table-column>
+                    <el-table-column sortable width="100" prop="material" label="璧风偣缂栧彿"></el-table-column>
+                    <el-table-column sortable width="100" prop="material" label="缁堢偣缂栧彿"></el-table-column>
+                    <el-table-column fixed="right" class-name="fixed-table" label="鎿嶄綔" width="40">
                         <template slot-scope="scope">
                             <el-button @click="linkSelectStart(scope.row)" type="text" size="small">閫夋嫨</el-button>
                         </template>
                     </el-table-column>
                 </el-table>
                 <span class="fixed-style">缁撴潫绠℃</span>
-                <el-table
-                        class="tableBox"
-                        height="100"
-                        max-height="200"
-                        highlight-current-row
-                        :data="tableDataLinkEnd"
-                        @row-click="linkSelectEnd"
-                        style="width: 100%" size="mini">
-                    <el-table-column
-                            prop="datasource"
-                            label="绠℃绫诲瀷"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            sortable
-                            width="100"
-                            prop="pipecode"
-                            label="绠℃鍚嶇О"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            sortable
-                            width="100"
-                            prop="material"
-                            label="璧风偣缂栧彿"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            sortable
-                            width="100"
-                            prop="material"
-                            label="缁堢偣缂栧彿"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            class-name="fixed-table"
-                            fixed="right"
-                            label="鎿嶄綔"
-                    >
+                <el-table class="tableBox" height="100" max-height="200" highlight-current-row :data="tableDataLinkEnd" @row-click="linkSelectEnd" style="width: 100%" size="mini">
+                    <el-table-column prop="datasource" label="绠℃绫诲瀷"></el-table-column>
+                    <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="绠℃鍚嶇О"></el-table-column>
+                    <el-table-column sortable width="100" prop="material" label="璧风偣缂栧彿"></el-table-column>
+                    <el-table-column sortable width="100" prop="material" label="缁堢偣缂栧彿"></el-table-column>
+                    <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔" width="40">
                         <template slot-scope="scope">
                             <el-button @click="linkSelectEnd(scope.row)" type="text" size="small">閫夋嫨</el-button>
                         </template>
                     </el-table-column>
                 </el-table>
                 <span class="fixed-style">鍒嗘瀽缁撴灉:<span style="color: red;margin-left: 15px">{{ currentLinkIsTrue }}</span></span>
-                <el-table
-                        class="tableBox"
-                        highlight-current-row
-                        max-height="200"
-                        :data="tableDataLinkResult"
-                        @row-click="linkResultSelect"
-                        style="width: 100%" size="mini">
-
-                    <el-table-column
-                            prop="material"
-                            label="绠℃绫诲瀷"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            sortable
-                            width="100"
-                            prop="pipecode"
-                            label="绠℃鍚嶇О"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            sortable
-                            width="100"
-                            prop="material"
-                            label="璧风偣缂栧彿"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            sortable
-                            width="100"
-                            prop="material"
-                            label="缁堢偣缂栧彿"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            class-name="fixed-table"
-                            fixed="right"
-                            label="鎿嶄綔"
-                    >
+                <el-table class="tableBox" highlight-current-row max-height="200" :data="tableDataLinkResult" @row-click="linkResultSelect" style="width: 100%" size="mini">
+                    <el-table-column prop="material" label="绠℃绫诲瀷"></el-table-column>
+                    <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="绠℃鍚嶇О"></el-table-column>
+                    <el-table-column sortable width="100" prop="material" label="璧风偣缂栧彿"></el-table-column>
+                    <el-table-column sortable width="100" prop="material" label="缁堢偣缂栧彿"></el-table-column>
+                    <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔" width="40">
                         <template slot-scope="scope">
                             <el-button @click="linkResultSelect(scope.row)" type="text" size="small">瀹氫綅</el-button>
                         </template>
@@ -160,110 +52,32 @@
                 <!--</el-card>-->
                 <!--</el-scrollbar>-->
             </el-tab-pane>
-            <el-tab-pane label="鐖嗙" style=";color: #cccccc" name="second">
+            <el-tab-pane label="鐖嗙" style="color: #cccccc" name="second">
                 <el-row>
                     <span>鐖嗙锛堢浉鍏冲紑鍏筹級</span>
-                    <el-button type="primary" @click="bgClick" size="mini" style="margin-bottom: 5px;"
-                               title="鍦板浘涓婄偣鍑婚�夋嫨鍙戠敓鐖嗙鐨勭娈�">
-                        閫夋嫨绠℃
-                    </el-button>
-                    <el-button type="primary" @click="handleClick" size="mini" style="margin-bottom: 5px;" title="娓呴櫎缁樺埗">
-                        娓呴櫎
-                    </el-button>
+                    <el-button type="primary" @click="bgClick" size="mini" style="margin-bottom: 5px;" title="鍦板浘涓婄偣鍑婚�夋嫨鍙戠敓鐖嗙鐨勭娈�">閫夋嫨绠℃</el-button>
+                    <el-button type="primary" @click="handleClick" size="mini" style="margin-bottom: 5px;" title="娓呴櫎缁樺埗">娓呴櫎</el-button>
                 </el-row>
                 <!--        <el-card shadow="hover">-->
                 <span class="fixed-style">鍙戠敓鐖嗚鐨勭娈�</span>
-                <el-table
-                        max-height="200"
-                        class="tableBox"
-                        ref="singleTable"
-                        highlight-current-row
-                        :data="bgPipeLine"
-                        style="width: 100%" size="mini">
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            prop="pipecode"
-                            label="绠℃绫诲瀷"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            sortable
-                            width="100"
-                            prop="pipecode"
-                            label="绠℃鍚嶇О"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            sortable
-                            width="100"
-                            prop="pipecode"
-                            label="璧风偣缂栧彿"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            sortable
-                            width="100"
-                            prop="pipecode"
-                            label="缁堢偣缂栧彿"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            class-name="fixed-table"
-                            fixed="right"
-                            label="鎿嶄綔"
-                    >
+                <el-table max-height="200" class="tableBox" ref="singleTable" highlight-current-row :data="bgPipeLine" style="width: 100%" size="mini">
+                    <el-table-column :show-overflow-tooltip="true" prop="pipecode" label="绠℃绫诲瀷"></el-table-column>
+                    <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="绠℃鍚嶇О"></el-table-column>
+                    <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="璧风偣缂栧彿"></el-table-column>
+                    <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="缁堢偣缂栧彿"></el-table-column>
+                    <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔" width="40">
                         <template slot-scope="scope">
                             <el-button @click="bgSelect(scope.row)" type="text" size="small">閫夋嫨</el-button>
                         </template>
                     </el-table-column>
                 </el-table>
                 <span class="fixed-style">闇�瑕佸叧闂殑闃�闂�</span>
-                <el-table
-                        class="tableBox"
-                        highlight-current-row
-                        max-height="200"
-                        :data="bgFm"
-                        @row-click="bgFmClick"
-                        style="width: 100%" size="mini">
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            prop="pipecode"
-                            label="绠℃绫诲瀷"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            sortable
-                            :show-overflow-tooltip="true"
-                            width="100"
-                            prop="pipecode"
-                            label="绠℃鍚嶇О"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            sortable
-                            :show-overflow-tooltip="true"
-                            width="100"
-                            prop="pipecode"
-                            label="璧风偣缂栧彿"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            sortable
-                            width="100"
-                            prop="pipecode"
-                            label="缁堢偣缂栧彿"
-                    >
-                    </el-table-column>
-
-                    <el-table-column
-                            class-name="fixed-table"
-                            fixed="right"
-                            label="鎿嶄綔"
-                    >
+                <el-table class="tableBox" highlight-current-row max-height="200" :data="bgFm" @row-click="bgFmClick" style="width: 100%" size="mini">
+                    <el-table-column :show-overflow-tooltip="true" prop="pipecode" label="绠℃绫诲瀷"></el-table-column>
+                    <el-table-column sortable :show-overflow-tooltip="true" width="100" prop="pipecode" label="绠℃鍚嶇О"></el-table-column>
+                    <el-table-column sortable :show-overflow-tooltip="true" width="100" prop="pipecode" label="璧风偣缂栧彿"></el-table-column>
+                    <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="缁堢偣缂栧彿"></el-table-column>
+                    <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔" width="40">
                         <template slot-scope="scope">
                             <el-button @click="linkResultSelect(scope.row)" type="text" size="small">瀹氫綅</el-button>
                         </template>
@@ -272,152 +86,61 @@
                 <!--        </el-card>-->
             </el-tab-pane>
             <el-tab-pane label="娴佸悜" name="third">
-                <el-button type="primary" @click="selectPipeLine" size="mini" style="margin-bottom: 5px;"
-                           title="鍦板浘涓婄偣鍑昏鏄剧ず娴佸悜鐨勭娈�">
-                    閫夋嫨绠℃
-                </el-button>
-                <el-table
-                        max-height="200"
-                        class="tableBox"
-                        :data="tableDataLiuxiang" size="mini">
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            prop="pipecode"
-                            label="绠℃绫诲瀷"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            sortable
-                            width="100"
-                            prop="pipecode"
-                            label="绠℃鍚嶇О"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            sortable
-                            width="100"
-                            prop="pipecode"
-                            label="璧风偣缂栧彿"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            sortable
-                            width="100"
-                            prop="pipecode"
-                            label="缁堢偣缂栧彿"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            class-name="fixed-table"
-                            fixed="right"
-                            label="鎿嶄綔"
-                            width="100"
-                    >
+                <el-button type="primary" @click="selectPipeLine" size="mini" style="margin-bottom: 5px;" title="鍦板浘涓婄偣鍑昏鏄剧ず娴佸悜鐨勭娈�">閫夋嫨绠℃</el-button>
+                <el-table max-height="200" class="tableBox" :data="tableDataLiuxiang" size="mini">
+                    <el-table-column :show-overflow-tooltip="true" prop="pipecode" label="绠℃绫诲瀷"></el-table-column>
+                    <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="绠℃鍚嶇О"></el-table-column>
+                    <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="璧风偣缂栧彿"></el-table-column>
+                    <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="缁堢偣缂栧彿"></el-table-column>
+                    <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔" width="60">
                         <template slot-scope="scope">
                             <el-button @click="lxQuery(scope.row)" type="text" size="small">鏄剧ず娴佸悜</el-button>
                         </template>
                     </el-table-column>
                 </el-table>
                 <span class="fixed-style">鍒嗘瀽缁撴灉</span>
-                <el-table
-                        class="tableBox"
-                        highlight-current-row
-                        max-height="200"
-                        :data="lxTableDataResult"
-                        @row-click="lxResultSelect"
-                        style="width: 100%" size="mini">
-
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            prop="pipecode"
-                            label="绠℃绫诲瀷"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            width="100"
-                            sortable
-                            prop="pipecode"
-                            label="绠℃鍚嶇О"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            sortable
-                            width="100"
-                            prop="pipecode"
-                            label="璧风偣缂栧彿"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            :show-overflow-tooltip="true"
-                            sortable
-                            width="100"
-                            prop="pipecode"
-                            label="缁堢偣缂栧彿"
-                    >
-                    </el-table-column>
-                    <el-table-column
-                            class-name="fixed-table"
-                            fixed="right"
-                            label="鎿嶄綔"
-                    >
+                <el-table class="tableBox" highlight-current-row max-height="200" :data="lxTableDataResult" @row-click="lxResultSelect" style="width: 100%" size="mini">
+                    <el-table-column :show-overflow-tooltip="true" prop="pipecode" label="绠℃绫诲瀷"></el-table-column>
+                    <el-table-column :show-overflow-tooltip="true" width="100" sortable prop="pipecode" label="绠℃鍚嶇О"></el-table-column>
+                    <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="璧风偣缂栧彿"></el-table-column>
+                    <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="缁堢偣缂栧彿"></el-table-column>
+                    <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔" width="40">
                         <template slot-scope="scope">
                             <el-button @click="linkResultSelect(scope.row)" type="text" size="small">瀹氫綅</el-button>
                         </template>
                     </el-table-column>
-
                 </el-table>
             </el-tab-pane>
             <el-tab-pane label="妯柇闈�" name="fourth">
-                <el-button type="primary" @click="drawLine" size="mini" style="margin-bottom: 5px;"
-                           title="鍦板浘涓婄粯鍒惰杩涜鍒嗘瀽鎴柇闈㈢殑绾�">
-                    缁樺埗绾挎
-                </el-button>
-                <el-button type="primary" @click="jdmQuery" size="mini" style="margin-bottom: 5px;" title="鎴柇闈㈠垎鏋�">鎴柇闈㈠垎鏋�
-                </el-button>
-                <el-button type="primary" @click="jdmClear" size="mini" style="margin-bottom: 5px;" title="娓呴櫎鎴柇闈㈠垎鏋愮粨鏋�">娓呴櫎
-                </el-button>
+                <div>
+                    <el-button type="primary" @click="drawLine" size="mini" style="margin-bottom: 5px;" title="鍦板浘涓婄粯鍒惰杩涜鍒嗘瀽鎴柇闈㈢殑绾�">缁樺埗绾挎</el-button>
+                    <el-button type="primary" @click="jdmQuery" size="mini" style="margin-bottom: 5px;" title="鎴柇闈㈠垎鏋�">鎴柇闈㈠垎鏋�</el-button>
+                    <el-button type="primary" @click="jdmClear" size="mini" style="margin-bottom: 5px;" title="娓呴櫎鎴柇闈㈠垎鏋愮粨鏋�">娓呴櫎</el-button>
+                </div>
                 <!--        <el-card class="box-card">-->
                 <div slot="header" class="fixed-style">
                     <span>绠℃鏌ヨ缁撴灉</span>
                 </div>
-                <el-table
-                        class="tableBox"
-                        :data="tableData"
-                        max-height="200"
-                        style="width: 100%" @row-click="selectRow" size="mini">
-                    <el-table-column
-                            prop="pipename"
-                            label="绠℃鍚嶇О"
-                            width="180">
-                    </el-table-column>
-                    <el-table-column
-                            prop="mediumtype"
-                            label="绠℃绫诲瀷"
-                            width="180">
-                    </el-table-column>
-                    <el-table-column
-                            class-name="fixed-table"
-                            fixed="right"
-                            label="鍥捐〃鏌ョ湅"
-                    >
+                <el-table class="tableBox" :data="tableData" max-height="200" style="width: 100%" @row-click="selectRow" size="mini">
+                    <el-table-column prop="pipename" label="绠℃鍚嶇О"></el-table-column>
+                    <el-table-column prop="mediumtype" label="绠℃绫诲瀷" width="80"></el-table-column>
+                    <el-table-column class-name="fixed-table" fixed="right" label="鍥捐〃"  width="40">
                         <template slot-scope="scope">
                             <el-button @click="selectRow(scope.row)" type="text" size="small">鏌ョ湅</el-button>
                         </template>
                     </el-table-column>
                 </el-table>
                 <!--        </el-card>-->
-                <el-card class="box-card">
+                <!-- <el-card class="box-card">
                     <div slot="header" class="fixed-style">
                         <span>鏂潰鍥�</span>
                     </div>
                     <span v-show="!myChartShow" style="color: #909399;font-size: 12px;">鏆傛棤鏁版嵁</span>
                     <div v-show="myChartShow" id="echarts_box" ref="myChart" style="width: 350px;height:200px;"></div>
-                </el-card>
+                </el-card> -->
+                <span class="fixed-style">鏂潰鍥�</span>
+                <span v-show="!myChartShow" style="color: #909399;font-size: 12px;height: 200px;display: block;text-align: center;line-height: 200px">鏆傛棤鏁版嵁</span>
+                <div v-show="myChartShow" id="echarts_box" ref="myChart" style="width:350px;height:200px;margin: 0 auto"></div><!-- v-show="myChartShow" -->
             </el-tab-pane>
         </el-tabs>
         <!--</el-card>-->
@@ -1016,10 +739,11 @@
           }
         },
         grid: {
-          // left: '3%',
-          // right: '4%',
-          // bottom: '3%',
-          // containLabel: true
+          left: '10px',
+          right: '0',
+          top: '10px',
+          bottom: '5px',
+          containLabel: true
         },
         xAxis: [
           {
@@ -1084,6 +808,13 @@
 </script>
 
 <style lang="less" scoped>
+    /deep/ .el-tabs .el-tabs__item{
+        height: 20px;
+        line-height: 20px;
+    }
+    /deep/ .el-tabs--border-card>.el-tabs__content{
+        padding: 5px;
+    }
     /deep/ .el-table .has-gutter tr th {
         border: none !important;
     }
@@ -1099,8 +830,7 @@
     /deep/ .fixed-style {
         font-size: 12px;
         display: inline-block;
-        color: #ffffff;
-        margin: 15px;
+        color: #00fff6;
     }
 
     /deep/ th.is-leaf {
@@ -1109,6 +839,9 @@
 
     /deep/ .el-table__fixed-right::before, .el-table__fixed::before {
         background: none;
+    }
+    /deep/ .el-table__empty-text{
+        line-height: 170px;
     }
 
     /deep/ .el-table__body .el-table__row.hover-row td {
@@ -1128,6 +861,10 @@
         display: none;
     }
 
+    /deep/ .el-tab-pane{
+        min-height: 506.19px;
+    }
+
     /*/deep/ .el-tabs--top .el-tabs__item.is-top:nth-child(2) {*/
     /*    padding-left: 20px;*/
     /*}*/
diff --git a/src/components/panel/topicSearch/SewersSelect/SewersHistory.vue b/src/components/panel/topicSearch/SewersSelect/SewersHistory.vue
index 725bb93..c4abfe5 100644
--- a/src/components/panel/topicSearch/SewersSelect/SewersHistory.vue
+++ b/src/components/panel/topicSearch/SewersSelect/SewersHistory.vue
@@ -20,7 +20,7 @@
         </div>
       </el-form>
     </div>
-    <el-scrollbar style="height:286.22px">
+    <el-scrollbar style="height:377px">
       <div class="environmental-risk-list hover"><!-- v-for="(item,index) in list" :key="index" -->
         <i class="state"></i>
         <div>
diff --git a/src/conf/Constants.js b/src/conf/Constants.js
index e7fcd49..867a58c 100644
--- a/src/conf/Constants.js
+++ b/src/conf/Constants.js
@@ -4,6 +4,12 @@
   POLYGON: 'polygon'
 }
 
+export const SERVICE_TYPE = {
+  WFS: 'wfs',
+  WMS: 'wms'
+}
+
+export const WFS_URL = 'http://xearth.cn:6240/geoserver/sewer/ows?service=WFS'
 export const PIPELINE_WFS = 'http://xearth.cn:8088/server/ogcserver/PipeLine2/wfs'
 export const PIPELINE_WMS = 'http://xearth.cn:6240/geoserver/sewer/wms'
 
diff --git a/src/conf/layers/LayerFsss.js b/src/conf/layers/LayerFsss.js
index 86cc169..6cc183a 100644
--- a/src/conf/layers/LayerFsss.js
+++ b/src/conf/layers/LayerFsss.js
@@ -1,30 +1,32 @@
 /**
  * 鍖哄煙
  */
-import { PIPELINE_WFS } from '../Constants'
+import { PIPELINE_WFS, SERVICE_TYPE } from '../Constants'
 const WFS_URL = PIPELINE_WFS
 export const LayerFsss = {
   code: 'sewersFsss',
   name: '闄勫睘璁炬柦',
   checked: false, // 榛樿閫変腑鐘舵��
   layers: [
-    {
+    /* {
       code: 'pipeSection',
       name: '绠℃',
       sname: '绠℃',
       checked: false,
       wmsLayers: 'sewer:pipesegment'
       // wfs: 'http://xearth.cn:6240/geoserver/sewer/wfs?typeName=sewer:pipesegment&maxFeatures=50&outputFormat=application%2Fjson&cql_filter=orgname=\'宸撮櫟鐭冲寲\''
-    },
+    }, */
     {
       code: 'fourlink',
       name: '鍥涢��',
       sname: '鍥涢��',
       checked: true,
       minZoom: 16,
-      wmsLayers: 'sewer:fourlink',
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:fourlink',
       // wfs: WFS_URL + '?TYPENAME=鍥涢��',
-      icon: 'sewers/鍥涢��.png'
+      icon: 'sewers/鍥涢��.png',
+      index: 3
     },
     {
       code: 'tee',
@@ -32,16 +34,19 @@
       sname: '涓夐��',
       checked: false,
       minZoom: 16,
-      wmsLayers: 'sewer:tee',
+      typeName: 'sewer:tee',
+      type: SERVICE_TYPE.WMS,
       // wfs: WFS_URL + '?TYPENAME=涓夐��',
-      icon: 'sewers/涓夐��.png'
+      icon: 'sewers/涓夐��.png',
+      index: 3
     },
     {
       code: 'piperack',
       name: '绠℃灦(澧�)',
       sname: 'PipeRack',
       minZoom: 16,
-      wfs: WFS_URL + '?TYPENAME=绠℃灦',
+      type: SERVICE_TYPE.WMS,
+      typeName: WFS_URL + '?TYPENAME=绠℃灦',
       checked: false
     },
     {
@@ -49,13 +54,15 @@
       name: '绠″粖(甯�)',
       sname: 'PipeGallery',
       minZoom: 16,
-      wfs: WFS_URL + '?TYPENAME=绠″粖',
+      type: SERVICE_TYPE.WMS,
+      typeName: '?TYPENAME=绠″粖',
       checked: false
     },
     {
       code: 'pipesegment',
       name: '娴佸悜',
       sname: 'ywslx',
+      type: SERVICE_TYPE.WMS,
       checked: false
     },
     {
@@ -64,7 +71,8 @@
       minZoom: 10,
       sname: '闃�闂�',
       checked: false,
-      wmsLayers: 'sewer:valve',
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:valve',
       // wfs: WFS_URL + '?TYPENAME=闃�闂�',
       icon: 'sewers/闃�闂�.png'
     },
@@ -74,7 +82,8 @@
       sname: '寮ご',
       minZoom: 16,
       checked: false,
-      wmsLayers: 'sewer:elbow',
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:elbow',
       // wfs: WFS_URL + '?TYPENAME=寮ご',
       icon: 'sewers/寮ご.png'
     }
diff --git a/src/conf/layers/LayerHbss.js b/src/conf/layers/LayerHbss.js
index 97054d7..dafb46d 100644
--- a/src/conf/layers/LayerHbss.js
+++ b/src/conf/layers/LayerHbss.js
@@ -1,7 +1,7 @@
 /**
  * 鍖哄煙
  */
-import { PIPELINE_WFS } from '../Constants'
+import { PIPELINE_WFS, SERVICE_TYPE } from '../Constants'
 const WFS_URL = PIPELINE_WFS
 export const LayerHbss = {
   code: 'sewersHbss',
@@ -14,6 +14,7 @@
       sname: '绐ㄤ簳',
       checked: false,
       minZoom: 16,
+      type: SERVICE_TYPE.WMS,
       wmsLayers: 'sewer:manhole',
       icon: 'sewers/绐ㄤ簳.png'
     },
@@ -23,7 +24,8 @@
       sname: '闆ㄧ瀛�',
       checked: false,
       minZoom: 16,
-      wmsLayers: 'sewer:raingate',
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:raingate',
       // wfs: WFS_URL + '?TYPENAME=闆ㄧ瀛�',
       icon: 'sewers/闆ㄧ瀛�.png'
     },
@@ -32,6 +34,7 @@
       name: '闃茬伀鍫�',
       sname: '闃茬伀鍫�',
       minZoom: 16,
+      type: SERVICE_TYPE.WMS,
       wfs: WFS_URL + '?TYPENAME=闃茬伀鍫�',
       checked: false
     },
@@ -42,12 +45,14 @@
       minZoom: 16,
       wfs: WFS_URL + '?TYPENAME=闆嗘按姹�',
       checked: false,
+      type: SERVICE_TYPE.WMS,
       icon: 'sewers/闆嗘按姹�.png'
     },
     {
       code: 'jlz',
       name: '鎴祦闂�',
       sname: '鎴祦闂�',
+      type: SERVICE_TYPE.WMS,
       wfs: WFS_URL + '?TYPENAME=鎴祦闂�',
       checked: false
     },
@@ -56,6 +61,7 @@
       name: '婧㈡祦鍫�',
       sname: '婧㈡祦鍫�',
       minZoom: 16,
+      type: SERVICE_TYPE.WMS,
       wfs: WFS_URL + '?TYPENAME=婧㈡祦鍫�',
       checked: false
     },
@@ -65,6 +71,7 @@
       sname: '闅旀补姹�',
       minZoom: 16,
       checked: false,
+      type: SERVICE_TYPE.WMS,
       wfs: WFS_URL + '?TYPENAME=闅旀补姹�',
       icon: 'sewers/闅旀补姹�.png'
     }
diff --git a/src/conf/layers/LayerPipeLines.js b/src/conf/layers/LayerPipeLines.js
index bb746d9..8dea07c 100644
--- a/src/conf/layers/LayerPipeLines.js
+++ b/src/conf/layers/LayerPipeLines.js
@@ -4,8 +4,7 @@
 import { LayerHbss } from './LayerHbss'
 import { LayerFsss } from './LayerFsss'
 
-import { PIPELINE_WFS } from '../Constants'
-const WFS_URL = PIPELINE_WFS
+import { SERVICE_TYPE } from '../Constants'
 
 export const LayerPipeLines = {
   code: 'sewersPipeLines',
@@ -19,110 +18,126 @@
       name: '闆ㄦ按绾�',
       sname: '绠$綉',
       checked: false,
-      type: 0,
-      wmsLayers: 'sewer:pipeline_rain',
-      // wfs: WFS_URL + '?TYPENAME=绠$綉&FILTER=<Filter xmlns="http://www.opengis.net/ogc"><PropertyIsEqualTo><PropertyName>mediumtype</PropertyName><Literal>闆ㄦ按绠$嚎</Literal></PropertyIsEqualTo></Filter>',
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:pipeline',
       icon: 'sewers/闆ㄦ按绾�.png',
       color: '#0070ff',
       minZoom: 13,
       styles: {
         COLOR: '#0070ff',
         FILL_COLOR: '#0070ff'
-      }
+      },
+      filter: 'mediumtype = \'闆ㄦ按\'',
+      index: 1
     },
     {
       code: 'accidentline',
       name: '浜嬫晠姘�',
       sname: '浜嬫晠姘�',
       checked: false,
-      // wmsLayers: 'sewer:pipeline_accident',
-      type: 0,
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:pipeline',
       minZoom: 13,
-      wfs: WFS_URL + '?TYPENAME=浜嬫晠姘�'
+      filter: 'mediumtype = \'浜嬫晠姘碶'',
+      index: 1
     },
     {
       code: 'oilline',
       name: '鍚补姹℃按',
       sname: '鍚补姹℃按',
       checked: false,
-      type: 0,
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:pipeline',
       minZoom: 13,
       color: '#ffaa00',
-      wmsLayers: 'sewer:pipeline_sewer',
-      // wfs: 'http://xearth.cn:6240/geoserver/sewer/wfs?typeName=sewer:pipeline&maxFeatures=500&outputFormat=application%2Fjson&cql_filter=mediumtype=\'鍚补姹℃按\'',
+      filter: 'mediumtype = \'鍚补\'',
       styles: {
         COLOR: '#ffaa00',
         FILL_COLOR: '#ffaa00'
-      }
+      },
+      index: 1
     },
     {
       code: 'saltline',
       name: '鍚洂姹℃按',
       sname: '鍚洂姹℃按',
       checked: false,
-      type: 0,
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:pipeline',
       minZoom: 13,
-      wfs: WFS_URL + '?TYPENAME=鍚洂姹℃按'
+      filter: 'mediumtype = \'鍚洂\'',
+      index: 1
     },
     {
       code: 'alkaliline',
       name: '鍚⒈姹℃按',
       sname: '鍚⒈姹℃按',
       checked: false,
-      type: 0,
-      wfs: WFS_URL + '?TYPENAME=鍚⒈姹℃按',
-      minZoom: 10
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:pipeline',
+      filter: 'mediumtype = \'鍚⒈\'',
+      minZoom: 10,
+      index: 1
     },
     {
       code: 'sulfurline',
       name: '鍚~姹℃按',
       sname: '鍚~姹℃按',
       checked: false,
-      type: 0,
-      wmsLayers: 'sewer:pipeline_sulfur',
-      // wfs: WFS_URL + '?TYPENAME=鍚⒈姹℃按',
-      minZoom: 10
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:pipeline',
+      filter: 'mediumtype = \'鍚~\'',
+      minZoom: 10,
+      index: 1
     },
     {
       code: 'lifeline',
       name: '鐢熸椿姹℃按',
       sname: '鐢熸椿姹℃按',
       checked: false,
-      type: 0,
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:pipeline',
+      filter: 'mediumtype = \'鐢熸椿姹℃按\'',
       minZoom: 13,
-      wfs: WFS_URL + '?TYPENAME=鐢熸椿姹℃按'
+      index: 1
     },
     {
       code: 'purifyline',
       name: '鍑�鍖栨按',
       sname: '鍑�鍖栨按',
       checked: false,
-      type: 0,
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:pipeline',
+      filter: 'mediumtype = \'鍑�鍖栨按\'',
       minZoom: 13,
-      wfs: WFS_URL + '?TYPENAME=鍑�鍖栨按'
+      index: 1
     },
     {
       code: 'loopline',
       name: '寰幆姘�',
       sname: '寰幆姘�',
-      type: 0,
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:pipeline',
+      filter: 'mediumtype = \'寰幆姘碶'',
       checked: false,
       minZoom: 13,
-      wfs: WFS_URL + '?TYPENAME=寰幆姘�'
+      index: 1
     },
     {
       code: 'buildline',
       name: '鐢熶骇姹℃按',
       sname: '鐢熶骇姹℃按',
       checked: false,
-      type: 0,
+      type: SERVICE_TYPE.WMS,
+      typeName: 'sewer:pipeline',
+      filter: 'mediumtype = \'鐢熶骇姹℃按\'',
       minZoom: 13,
       color: '#a8a800',
-      wfs: 'http://xearth.cn:6240/geoserver/sewer/wfs?typeName=sewer:pipeline&maxFeatures=500&outputFormat=application%2Fjson&cql_filter=mediumtype=\'鐢熶骇姹℃按\'',
       styles: {
         COLOR: '#a8a800',
         FILL_COLOR: '#a8a800'
-      }
+      },
+      index: 1
     }
   ]
 }
diff --git a/src/utils/List.js b/src/utils/List.js
new file mode 100644
index 0000000..178cdc7
--- /dev/null
+++ b/src/utils/List.js
@@ -0,0 +1,96 @@
+class List {
+  constructor () {
+    this.dataSouce = []
+  }
+
+  add (index, element) {
+    if (!index) {
+      this.addEnd(element)
+    } else if (index >= this.dataSouce.length) {
+      this.addEnd(element)
+    } else if (index === 1) {
+      this.addFront(element)
+    } else {
+      this._add(index, element)
+    }
+  }
+
+  /**
+    * 鍦ㄥ垪琛ㄧ殑鏈熬娣诲姞鏂板厓绱�
+    * @param {*} element 瑕佹坊鍔犵殑鍏冪礌
+    */
+  addEnd (element) {
+    this.dataSouce[this.dataSouce.length] = element
+  }
+
+  /**
+    * 鍦ㄥ垪琛ㄥご閮ㄦ坊鍔犳柊鍏冪礌
+    * @param {*} element
+    * @param {*} after
+    */
+  addFront (element) {
+    this._add(0, element)
+  }
+
+  _add (index, element) {
+    const newArr = []
+    for (var i = this.dataSouce.length - 1; i > index - 1; i--) {
+      newArr[i + 1] = this.dataSouce[i]
+    }
+    newArr[index] = element
+    this.dataSouce = newArr
+  }
+
+  /**
+     * 鍦ㄥ垪琛ㄤ腑绉婚櫎涓�涓厓绱�
+     * @param {*} element 瑕佸垹闄ょ殑鍏冪礌
+     */
+  remove (element) {
+    // 鏌ユ壘褰撳墠鍏冪礌鐨勭储寮�
+    const index = this.dataSouce.indexOf(element)
+    if (index >= 0) {
+      this.dataSouce.splice(index, 1)
+      return true
+    }
+    return false
+  }
+
+  /**
+     * 鍒ゆ柇缁欏畾鐨勫�兼槸鍚﹀湪鍒楄〃涓�
+     */
+  contains (element) {
+    return this.dataSouce.indexOf(element) > -1
+  }
+
+  /**
+     * 娓呮鍒楄〃涓殑鍏冪礌
+     */
+  clear () {
+    delete this.dataSouce
+    this.dataSouce = []
+  }
+
+  /**
+     * 鍒楄〃鐨勯暱搴�
+     */
+  length () {
+    return this.dataSouce.length
+  }
+
+  join (comma) {
+    this.removeBlank()
+    return this.dataSouce.join(comma)
+  }
+
+  removeBlank () {
+    const arr = this.dataSouce
+    console.log(arr)
+    for (const k in arr) {
+      if (!arr[k]) {
+        this.dataSouce.splice(k, 1)
+      }
+    }
+  }
+}
+
+export default List
diff --git a/src/views/popup/Popup.vue b/src/views/popup/Popup.vue
index a67a49f..d29196c 100644
--- a/src/views/popup/Popup.vue
+++ b/src/views/popup/Popup.vue
@@ -1,6 +1,6 @@
 <template>
   <div id="popup" class="s-map-popup-panel" style="min-width: 280px;max-width: 280px;padding: 0 10px">
-    <el-tabs :value="0" type="card">
+    <el-tabs value="0" type="card">
       <el-tab-pane
               :key="item.name"
               v-for="(item,index) in datas"

--
Gitblit v1.8.0