派生自 wuyushui/SewerAndRainNetwork

ChenZeping
2021-05-10 315dc0b82a482a3d145009c8f25c20e87da681d5
src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue
@@ -21,14 +21,15 @@
                <span class="fixed-style">起始管段</span>
                <el-table
                        class="tableBox"
                        height="100"
                        max-height="200"
                        highlight-current-row
                        :data="tableDataLinkStart"
                        @row-click="linkSelectStart"
                        highlight-current-row
                        style="width: 100%" size="mini">
                    <el-table-column
                            prop="datasource"
                            label="管线类型"
                            label="管段类型"
                    >
                    </el-table-column>
                    <el-table-column
@@ -36,7 +37,7 @@
                            sortable
                            width="100"
                            prop="pipecode"
                            label="管线名称"
                            label="管段名称"
                    >
                    </el-table-column>
                    <el-table-column
@@ -74,7 +75,7 @@
                        style="width: 100%" size="mini">
                    <el-table-column
                            prop="datasource"
                            label="管线类型"
                            label="管段类型"
                    >
                    </el-table-column>
                    <el-table-column
@@ -82,7 +83,7 @@
                            sortable
                            width="100"
                            prop="pipecode"
                            label="管线名称"
                            label="管段名称"
                    >
                    </el-table-column>
                    <el-table-column
@@ -120,7 +121,7 @@
                    <el-table-column
                            prop="material"
                            label="管线类型"
                            label="管段类型"
                    >
                    </el-table-column>
                    <el-table-column
@@ -128,7 +129,7 @@
                            sortable
                            width="100"
                            prop="pipecode"
                            label="管线名称"
                            label="管段名称"
                    >
                    </el-table-column>
                    <el-table-column
@@ -182,7 +183,7 @@
                    <el-table-column
                            :show-overflow-tooltip="true"
                            prop="pipecode"
                            label="管线类型"
                            label="管段类型"
                    >
                    </el-table-column>
                    <el-table-column
@@ -190,7 +191,7 @@
                            sortable
                            width="100"
                            prop="pipecode"
                            label="管线名称"
                            label="管段名称"
                    >
                    </el-table-column>
                    <el-table-column
@@ -229,8 +230,8 @@
                        style="width: 100%" size="mini">
                    <el-table-column
                            :show-overflow-tooltip="true"
                            prop="lineloopna"
                            label="管线类型"
                            prop="pipecode"
                            label="管段类型"
                    >
                    </el-table-column>
                    <el-table-column
@@ -238,14 +239,14 @@
                            :show-overflow-tooltip="true"
                            width="100"
                            prop="pipecode"
                            label="管线名称"
                            label="管段名称"
                    >
                    </el-table-column>
                    <el-table-column
                            sortable
                            :show-overflow-tooltip="true"
                            width="100"
                            prop="startpoint"
                            prop="pipecode"
                            label="起点编号"
                    >
                    </el-table-column>
@@ -253,7 +254,7 @@
                            :show-overflow-tooltip="true"
                            sortable
                            width="100"
                            prop="endpointnu"
                            prop="pipecode"
                            label="终点编号"
                    >
                    </el-table-column>
@@ -272,7 +273,7 @@
            </el-tab-pane>
            <el-tab-pane label="流向" name="third">
                <el-button type="primary" @click="selectPipeLine" size="mini" style="margin-bottom: 5px;"
                           title="地图上点击要显示流向的管线">
                           title="地图上点击要显示流向的管段">
                    选择管段
                </el-button>
                <el-table
@@ -282,7 +283,7 @@
                    <el-table-column
                            :show-overflow-tooltip="true"
                            prop="pipecode"
                            label="管线类型"
                            label="管段类型"
                    >
                    </el-table-column>
                    <el-table-column
@@ -290,7 +291,7 @@
                            sortable
                            width="100"
                            prop="pipecode"
                            label="管线名称"
                            label="管段名称"
                    >
                    </el-table-column>
                    <el-table-column
@@ -332,7 +333,7 @@
                    <el-table-column
                            :show-overflow-tooltip="true"
                            prop="pipecode"
                            label="管线类型"
                            label="管段类型"
                    >
                    </el-table-column>
                    <el-table-column
@@ -340,7 +341,7 @@
                            width="100"
                            sortable
                            prop="pipecode"
                            label="管线名称"
                            label="管段名称"
                    >
                    </el-table-column>
                    <el-table-column
@@ -382,7 +383,7 @@
                </el-button>
                <!--        <el-card class="box-card">-->
                <div slot="header" class="fixed-style">
                    <span>管线查询结果</span>
                    <span>管段查询结果</span>
                </div>
                <el-table
                        class="tableBox"
@@ -391,12 +392,12 @@
                        style="width: 100%" @row-click="selectRow" size="mini">
                    <el-table-column
                            prop="pipename"
                            label="管线名称"
                            label="管段名称"
                            width="180">
                    </el-table-column>
                    <el-table-column
                            prop="mediumtype"
                            label="管线类型"
                            label="管段类型"
                            width="180">
                    </el-table-column>
                    <el-table-column
@@ -429,6 +430,7 @@
import eventBus from '../../../../eventBus'
import DrawLine from './AnalysisChoose/DrawLine'
import mapApi from '../../../../api/mapApi'
import iconUrl from '../../../../assets/images/other.png'
export default {
  name: 'SewersAnalysis',
@@ -440,7 +442,10 @@
      map: window.map,
      myChart: null,
      options: [],
      echartsList: [],
      myChartShow: false,
      flowPipeLine: null,
      // 用于判断
@@ -478,10 +483,8 @@
      // 流向 分析结果 的table表格数据
      lxTableDataResult: [],
      // 横断面 管线查询结果 的table表格数据
      tableData: [],
      echartsList: []
      // 横断面 管段查询结果 的table表格数据
      tableData: []
    }
  },
@@ -496,7 +499,8 @@
  methods: {
    // tab切换
    handleClick (tab, event) {
      // console.log(tab, event)
      console.log(event)
      // console.log(tab)
      this.clearLinkPipe()
      this.clearLX()
      this.linkClear()
@@ -512,15 +516,24 @@
      this.lxTableDataResult = []
    },
    // 流向地图上点击
    // 地图上点击
    selectPipeLine () {
      window.map.on('click', this.selectClick)
      // // 关闭弹窗
      window.layerFactory.clickSwitch = false
    },
    // 地图上点击回调
    selectClick (e) {
      console.log(e)
      window.map.off('click', this.selectClick)
      const point = [e.latlng.lng, e.latlng.lat]
      this.getPipeLine(point)
      // if () {
      //   // 关闭弹窗
      //   window.layerFactory.clickSwitch = false
      // } else {
      //   window.layerFactory.clickSwitch = true
      // }
    },
    // 点击获取判断数据
    async getPipeLine (point) {
@@ -531,6 +544,7 @@
      }
      // 根据参数请求接口数据
      const res = await mapApi.findPipelineByClickPoint(param)
      console.log(res)
      if (this.activeName === 'first') {
        if (this.linkType === 1) {
          this.tableDataLinkStart = res.data
@@ -543,8 +557,6 @@
        this.tableDataLiuxiang = res.data
      } else if (this.activeName === 'fourth') {
      }
      // debugger
      console.log(res.data)
    },
    // 流向显示 的方法参数封
    createFlowLine (param) {
@@ -554,31 +566,23 @@
    },
    createFlowMarker (point) {
      return window.L.marker(point, {
        icon: window.L.divIcon({
          className: 'dIcon',
          html: '<div class="plane live">' +
              // '<img src="'+require("../../assets/images/map/ship.png")+
              '<div style="position: absolute;' +
              '    width: 20px;' +
              '    height: 20px;' +
              '    border-radius: 50%;' +
              '  content: \'\'; background-color: #FF664A;"/>' +
              '<span></span><span></span></div></>',
          iconSize: [90, 36]
        icon: window.L.icon({
          iconUrl: iconUrl,
          iconSize: [30, 30],
          iconAnchor: [15, 15]
        })
      })
    },
    // 连通性 ===> 地图点击起始管段e
    linkClickStart (e) {
      console.log(e)
      console.log('地图点击起始管段')
      // console.log('地图点击起始管段')
      this.linkType = 1
      this.selectPipeLine()
    },
    // 连通性 起始管段 table列表数据 选择数据事件 的点击事件
    linkSelectStart (e) {
      console.log('选择起始管段')
      // console.log('选择起始管段')
      // this.$refs.singleTable.setCurrentRow(e)
      this.currentSelectStart = e
      if (this.currentSelectStartLine != null) {
@@ -588,14 +592,17 @@
      const geom = JSON.parse(e.geomText)
      this.currentSelectStartLine = window.L.geoJSON(geom, {
        style: function (feature) {
          return { color: 'rgba(0,255,0,.6)' }
          return {
            weight: 10,
            color: 'rgba(0,255,0,.6)'
          }
        }
      }).addTo(window.map)
      window.map.panInsideBounds(this.currentSelectStartLine.getBounds())
    },
    // 连通性 ===> 地图点击结束管段
    linkClickEnd () {
      console.log('地图点击结束管段')
      // console.log('地图点击结束管段')
      this.linkType = 0
      this.selectPipeLine()
    },
@@ -613,7 +620,10 @@
      const geom = JSON.parse(e.geomText)
      this.currentSelectEndLine = window.L.geoJSON(geom, {
        style: function (feature) {
          return { color: 'rgba(200,0,200,.6)' }
          return {
            weight: 10,
            color: 'rgba(255, 247, 0, 0.6)'
          }
        }
      }).addTo(window.map)
      window.map.panInsideBounds(this.currentSelectEndLine.getBounds())
@@ -639,14 +649,17 @@
        startLineID: this.currentSelectStart.pipesegcode,
        endLineID: this.currentSelectEnd.pipesegcode
      }
      console.log(param)
      // console.log(param)
      // 请求接口和数据
      const res = await mapApi.findConnectedPipelines(param)
      console.log(res)
      // console.log(res)
      // 判断数据结果 === 0 则没有请求到数据
      if (res.data.length === 0) {
        this.$message('没有找到连通的管段')
        // 进行判断
        // if (this.tableDataLinkStart === [] && this.tableDataLinkEnd === []) {
        this.currentLinkIsTrue = '不连通'
        // }
        return
      }
      this.tableDataLinkResult = res.data
@@ -677,9 +690,8 @@
    },
    // 连通性 分析结果table列表数据选择点击事件
    linkResultSelect (e) {
      console.log('连通性分析结果列表点击')
      console.log(e)
      // console.log('连通性分析结果列表点击')
      // console.log(e)
      const geom = JSON.parse(e.geomText)
      if (this.currentSelectResultLine != null) {
        this.currentSelectResultLine.remove()
@@ -689,7 +701,7 @@
        style: function (feature) {
          return {
            color: 'rgba(255,0,0,.6)',
            weight: 6
            weight: 10
          }
        }
      }).addTo(window.map)
@@ -737,7 +749,10 @@
      const geom = JSON.parse(e.geomText)
      this.currentSelectEndLine = window.L.geoJSON(geom, {
        style: function (feature) {
          return { color: 'rgba(200,0,200,.6)' }
          return {
            weight: 10,
            color: 'rgba(200,0,200,.6)'
          }
        }
      }).addTo(window.map)
      window.map.panInsideBounds(this.currentSelectEndLine.getBounds())
@@ -747,7 +762,7 @@
        lineID: e.pipesegcode
      }
      const res = await mapApi.findLeakages(param)
      console.log(res)
      // console.log(res)
      const len = res.data.length
      if (len === 0) {
@@ -756,7 +771,7 @@
      }
      res.data.reverse()
      this.bgFm = res.data
      console.log(res.data)
      // console.log(res.data)
      this.bgPoint = res.data[0].startControlPoint
@@ -765,7 +780,7 @@
      const p = [point.coordinates[1], point.coordinates[0]]
      this.bgMarker = this.createFlowMarker(p)
      this.bgMarker.bindTooltip(this.bgPoint.pointnumbe)
      // this.bgMarker.bindTooltip(this.bgPoint.pointnumbe)
      this.bgMarker.addTo(window.map)
      window.map.flyTo(p)
@@ -793,12 +808,13 @@
      })
    },
    bgFmClick (e) {
      console.log('点击影响的阀门')
      // console.log('点击影响的阀门')
      console.log(e)
      const point = [e.data[0][0], e.data[0][1]]
      // const point = [e.data[0][0], e.data[0][1]]
      const point = [e.startControlPoint.y, e.startControlPoint.x]
      const marker = this.createFlowMarker(point)
      marker.addTo(this.map)
      window.map.flyTo(point, 16)
      marker.addTo(window.map)
      window.map.flyTo(point, 17)
    },
    // 流向分析结果table列表数据点击
@@ -813,7 +829,10 @@
      }
      this.currentSelectResultLine = window.L.geoJSON(geom, {
        style: function (feature) {
          return { color: 'rgba(0,250,255,.6)' }
          return {
            weight: 10,
            color: 'rgba(0,250,255,.6)'
          }
        }
      }).addTo(window.map)
      window.map.panInsideBounds(this.currentSelectResultLine.getBounds())
@@ -858,7 +877,7 @@
        this.flowPipeLine = null
      }
    },
    // 流向-管线选择
    // 流向-管段选择
    selectRowLiuXiang (e) {
      // 选择要显示的流向线
      // console.log('选择要显示的流向线')
@@ -950,6 +969,7 @@
      let tempData
      const storeData = []
      const dataList = []
      this.echartsList = []
      for (let i = 0; i < dataSeries.length; i++) {
        if (storeData.length === 0) {
          storeData.push(name)
@@ -962,7 +982,7 @@
        }
        dataList.push(dataSeries[i].pipelines.oilPipeID)
      }
      console.log(dataList)
      // console.log(dataList)
      // const seriesList = e.data.pointInterval
      // let seriesdata
      // for (let i = 0; i < seriesList.length; i++) {
@@ -975,7 +995,7 @@
    selectRow (dataList) {
      // console.log(dataList)
      // 3. 使用刚指定的配置项和数据,显示图表
      const option = {
      this.option = {
        tooltip: {
          trigger: 'axis',
          axisPointer: {
@@ -985,10 +1005,10 @@
            }
          }
        },
        legend: {
          // data: ['直接访问', '搜索引擎']
          data: dataList
        },
        // legend: {
        //   // data: ['直接访问', '搜索引擎']
        //   data: dataList
        // },
        toolbox: {
          show: false,
          feature: {
@@ -1010,9 +1030,9 @@
              textStyle: {
                color: '#fff'
              }
            },
            }
            // data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
            data: dataList
            // data: dataList
          }
        ],
        yAxis: [
@@ -1045,13 +1065,16 @@
        series: this.echartsList
      }
      this.myChartShow = true
      this.myChart.setOption(option)
      this.myChart.clear()
      this.myChart.setOption(this.option)
    },
    // 横断面清除
    jdmClear () {
      this.hdmParam = null
      this.tableData = []
      this.option = []
      this.myChartShow = false
      this.myChart.clear()
      if (this.measure != null) {
        this.measure.destory()
      }
@@ -1061,32 +1084,6 @@
</script>
<style lang="less" scoped>
    /*****滚动条***/
    /deep/ .tableBox {
        .el-table__fixed-right-patch {
            display: none;
        }
    }
    /deep/ .tableBox::-webkit-scrollbar {
        /*滚动条整体样式*/
        width: 10px; /*高宽分别对应横竖滚动条的尺寸*/
        /*height: 10px;*/
    }
    /deep/ .tableBox::-webkit-scrollbar-thumb {
        /*滚动条里面小方块*/
        border-radius: 10px;
        background: #000;
    }
    /deep/ .tableBox::-webkit-scrollbar-track {
        /*滚动条里面轨道*/
        box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
        background: @background-color;
        border-radius: 10px;
    }
    /deep/ .el-table .has-gutter tr th {
        border: none !important;
    }
@@ -1097,50 +1094,6 @@
    /deep/ .el-tabs__header {
        background: none !important;
    }
    /deep/ .el-tabs--top .el-tabs__item.is-top:nth-child(2) {
        padding-left: 20px;
    }
    /deep/ .el-tabs--border-card {
        background: none;
        border: none;
        box-shadow: none;
    }
    /deep/ .el-tabs--border-card > .el-tabs__header {
        background: none;
        border-bottom: none;
        margin: 0;
    }
    /deep/ .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
        color: #409EFF;
        background: none;
        border: none;
    }
    /deep/ .el-tabs--border-card > .el-tabs__header .el-tabs__item {
        border: none;
    }
    /deep/ .panel-right ::-webkit-scrollbar-thumb {
        background: none;
        border: none;
    }
    /deep/ .el-card {
        //width: 95%;
        //margin: 5px auto;
        //border: none;
        //background: rgba(0, 16, 30, 0.5);
        //border: 0.00521rem solid @color;
        //box-shadow: 0 0 0.03rem @color;
    }
    /deep/ .el-card__body {
        padding: 0;
    }
    /deep/ .fixed-style {
@@ -1158,13 +1111,60 @@
        background: none;
    }
    /deep/ .el-table__fixed-right {
        bottom: 0;
        padding: 0;
        margin: 0;
    /deep/ .el-table__body .el-table__row.hover-row td {
        background: none !important;
    }
    /deep/ .el-table__body tr.current-row > td {
        background: rgba(0, 16, 30, 1) !important;
    }
    /deep/ .fixed-table {
        background: rgba(0, 16, 30, 0.9) !important;
        background: rgba(0, 16, 30, 1) !important;
    }
    /*scroll右侧占位*/
    /deep/ .el-table__fixed-right-patch {
        display: none;
    }
    /*/deep/ .el-tabs--top .el-tabs__item.is-top:nth-child(2) {*/
    /*    padding-left: 20px;*/
    /*}*/
    /*/deep/ .el-tabs--border-card {*/
    /*    background: none;*/
    /*    border: none;*/
    /*    box-shadow: none;*/
    /*}*/
    /*/deep/ .el-tabs--border-card > .el-tabs__header {*/
    /*    background: none;*/
    /*    border-bottom: none;*/
    /*    margin: 0;*/
    /*}*/
    /*/deep/ .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {*/
    /*    color: #409EFF;*/
    /*    background: none;*/
    /*    border: none;*/
    /*}*/
    /*/deep/ .el-tabs--border-card > .el-tabs__header .el-tabs__item {*/
    /*    border: none;*/
    /*}*/
    /*/deep/ .panel-right ::-webkit-scrollbar-thumb {*/
    /*    background: none;*/
    /*    border: none;*/
    /*}*/
    /*/deep/ .el-card__body {*/
    /*    padding: 0;*/
    /*}*/
    /*/deep/ .el-table__fixed-right {*/
    /*    bottom: 0;*/
    /*    padding: 0;*/
    /*    margin: 0;*/
    /*}*/
</style>