派生自 wuyushui/SewerAndRainNetwork

zhangshuaibao
2021-04-09 97b29aa4d2ede5962091e1e938649773b56fc090
Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop
1个文件已添加
13个文件已修改
352 ■■■■■ 已修改文件
src/Sgis.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/css/map/map-panel-style.less 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/EChartsDate.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/Echarts.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/PublicDetailedList.vue 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/PublicBounced.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/conf/LayerTopic.js 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/conf/MapConfig.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/conf/layers/LayerVideo.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/MapTemplate.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Temp.vue 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Sgis.js
@@ -20,13 +20,13 @@
let map = null
const L = window.L
const initMap = (div) => {
const initMap = (div, mapOption) => {
  if (map != null) {
    map.remove()
  }
  DownLoad.init(L)
  map = L.map(div, MapConfig.mapOptions)
  const option = mapOption || MapConfig.mapOptions
  map = L.map(div, option)
  map.on('click', (event, a, b) => {
    console.log(event, a, b)
src/assets/css/map/map-panel-style.less
@@ -333,12 +333,32 @@
}
/*************** PublicTable 表格样式。*********************************/
.cell {
  padding: 0;
.el-table{
  .el-table__body-wrapper::-webkit-scrollbar {
    width: 0;
    height: 0;
    background: none;
  }
  .cell{
    padding: 0 3px !important;
    i{
      display: block;
      font-style: normal;
      font-size: 10px;
      line-height: 12px;
    }
  }
}
.el-table--border th{
  border-right: none;
  border-left: 1px solid #ddd;
}
.el-table--border th.gutter{border-left: none}
.el-table .cell, .el-table--border td:first-child .cell, .el-table--border th:first-child .cell {
  /* padding-left: 10px; */
  text-align: center;
}
.el-table th>.cell {
@@ -351,9 +371,9 @@
  height: 0;
}
.el-table td, .el-table th.is-leaf {
  border: none;
  font-size: 0.08rem;
}
.el-table .warning-row {
  background: #28304d;
}
@@ -364,6 +384,12 @@
.el-table tbody tr:hover>td {
  background-color:#28304d !important;
}
//修改表格高度
.el-table td {
  padding: 0!important;
  font-size: 0.01rem !important;
}
/***********************************************动画效果************/
.transition{
  transition: all .5s;
@@ -411,5 +437,6 @@
}
.el-tabs__header .is-top {
}
src/components/BaseNav/PublicBounced/GasComponents/EChartsDate.vue
@@ -54,7 +54,7 @@
                                   center
                                   v-dialogDrag
                        >
                            <div class="el-dialog-div" style="height: 500px">
                            <div class="el-dialog-div">
                                <public-detailed-list v-bind="$attrs"></public-detailed-list>
                            </div>
                        </el-dialog>
src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue
@@ -12,59 +12,54 @@
        </div>
        <div class="form-echrts">
            <div class="from-search">
              <el-row type="flex">
                <el-col :span="14">
                  <div class="pickerMon">
                <div class="pickerMon">
                    <div class="pickerData">
                      <span> 开始时间:</span>
                      <span class="pickerTable"><el-date-picker
                          type="datetime"
                          v-model="value1">
                      </el-date-picker></span>
                        <span> 开始时间:</span>
                        <span class="pickerTable">
                          <el-date-picker  type="datetime"   v-model="value1">
                      </el-date-picker>
                      </span>
                    </div>
                    <div class="pickerData">
                      <span >结束时间:</span>
                      <span class="pickerTable">
                        <span >结束时间:</span>
                        <span class="pickerTable">
                        <el-date-picker
                            type="datetime"
                            v-model="value2"
                                type="datetime"
                                v-model="value2"
                        >
                      </el-date-picker>
                      </span>
                    </div>
                  </div>
                </el-col>
                <el-col :span="5">
                  采样点数:
                  <input list="source" id="ipt" class="echatsInput">
                  <datalist id="source">
                    <option value="0" />
                    <option value="25" />
                    <option value="50" />
                    <option value="75" />
                    <option value="100" />
                  </datalist>
                </el-col>
                <el-col class="detailbtn" :span="2" @click="onSubmit">查询</el-col>
                <el-col :span="3">
                  <div class="detailbtn" @click="dialogVisible = true" >明细表</div>
                  <el-dialog :visible.sync="dialogVisible"
                             :append-to-body="true"
                             :title="this.$attrs.value==='feiqi'?this.$attrs.getWasteGasDetails[0].OnLineMonEmissPointName:this.$attrs.getWasteWaterMonitoringDetails[0].OnLineMonEmissPointName"
                             width="68%"
                             center
                             v-dialogDrag
                  >
                    <div class="el-dialog-div" style="height: 500px">
                      <public-detailed-list v-bind="$attrs"></public-detailed-list>
                    </div>
                  </el-dialog>
                </el-col>
              </el-row>
            </div>
                </div>
                <div>
                    采样点数:
                    <input list="source" id="ipt" class="echatsInput">
                    <datalist id="source">
                        <option value="0" />
                        <option value="25" />
                        <option value="50" />
                        <option value="75" />
                        <option value="100" />
                    </datalist>
                </div>
                <div class="detailbtn"  @click="onSubmit">查询</div>
                <div class="detailbtn" @click="dialogVisible = true" >明细表</div>
             </div>
            <div style="width:5rem;height:2rem;" id="echarts" ref="main">
            </div>
        </div>
        <!-- 明细弹框 -->
        <el-dialog :visible.sync="dialogVisible"
                   :append-to-body="true"
                   :title="this.$attrs.value==='feiqi'?this.$attrs.getWasteGasDetails[0].OnLineMonEmissPointName:this.$attrs.getWasteWaterMonitoringDetails[0].OnLineMonEmissPointName"
                   width="68%"
                   center
                   v-dialogDrag
        >
            <div class="el-dialog-div" style="height: 500px">
                <public-detailed-list v-bind="$attrs"></public-detailed-list>
            </div>
        </el-dialog>
    </div>
</template>
@@ -317,19 +312,25 @@
  border-top: 1px solid #396d83;
  //margin: 10px 10px 10px 10px;
  .from-search{
    margin-top: 6px;
    display: flex;
      padding:5px;
      >div{margin-left: 10px}
    .pickerMon{
      display: flex;
        >div:first-child{
            margin-right: 10px;
        }
      .pickerData{
        flex: 1;
        display: flex;
          >span{line-height: 22px}
        .pickerTable{
          margin-left: 6px;
          width: 40px;
            /deep/.el-input__prefix{
            }
          /deep/.el-input__icon {
            width: 0.9rem;
            font-size: 0;
             font-size: 0;
              width: 100%;
          }
        }
      }
@@ -339,11 +340,10 @@
    }
    /deep/.el-input__inner{
      position: relative;
      width: 0.9rem!important;
      height: 0.125rem!important;
      background-color: #2e4967;
      color: #ffffff;
      font-size: 8px;
      font-size: 12px;
        height: 24px;
      padding: 0;
      //padding-left:20px ;
      //padding: 0!important;
@@ -353,7 +353,8 @@
      background-color: #2e4967;
      border: none;
      border-radius: 6px;
      width: 40px;
      width: 80px;
        height: 22px;
    }
    .detailbtn{
      background-color:#2e4967;
@@ -361,7 +362,6 @@
      padding: 0 7px;
      line-height: 20px;
      border-radius: 4px;
      margin-right: 6px;
    }
  }
  .el-dialog-div {
src/components/BaseNav/PublicBounced/GasComponents/Echarts.vue
@@ -1,5 +1,5 @@
<template>
  <div style="width:100%;height:2rem;" ref="echarts"></div>
  <div style="width:100%;height:2rem;margin-top: 0.3rem" ref="echarts"></div>
</template>
<script>
@@ -13,25 +13,18 @@
  data () {
    return {
      myChart: [],
      dataDate: [],
      result: [],
      days: dayjs(new Date()).format('YYYYMMDDHHmmss'),
      value: '',
      seriesData: [],
      aseries: '',
      result: [],
      days: dayjs(new Date()).format('YYYYMMDDHHmmss')
      aseries: ''
    }
  },
  methods: {
    drawChart (result) {
      // const result = this.result
    drawChart () {
      this.myChart = this.$echarts.init(this.$refs.echarts)
      // setInterval(function () {
      // }, 3000)
      const option = {
        title: {
          text: '折线图堆叠'
        },
        tooltip: {
          trigger: 'axis'
        },
@@ -39,7 +32,7 @@
          data: ['邮件营销', '联盟广告', '视频广告', '直接访问', '搜索引擎']
        },
        grid: {
          containLabel: true
          containLabel: false
        },
        toolbox: {
          feature: {
@@ -51,17 +44,22 @@
        xAxis: {
          type: 'category',
          boundaryGap: false,
          // data: seriesData,
          splitLine: {
            show: false
          },
          // data: this.seriesData,
          data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
          axisLine: {
            lineStyle: {
              color: '#FFFFFF',
              width: 1
              // width: 1
              show: false
            }
          }
        },
        yAxis: {
          type: 'value',
          boundaryGap: [0, '100%'],
          axisLine: {
            lineStyle: {
              color: '#FFFFFF',
@@ -71,10 +69,11 @@
        },
        series: [
          {
            name: '邮件营销',
            name: '模拟数据',
            type: 'line',
            stack: '总量',
            data: [120, 132, 101, 134, 90, 230, 210]
            // showSymbol: false,
            // hoverAnimation: false,
            data: this.seriesData
          },
          {
            name: '联盟广告',
@@ -114,6 +113,23 @@
      }
      const result = await mapApi.DataItems(data)
      this.result = result.data
      for (let i = 0; i < result.length; i++) {
        //   // console.log(result[i])
        // const seriesData = []
        const aseries = []
        // let nameData = ''
        this.seriesData.push(result[i].ReadTime)
        aseries.push(result[i].TagValue)
        // nameData = result[i].UnionTagCode
        this.aseries = result[i].UnionTagCode
      }
      this.myChart.setOption({
        series: [{
          data: this.seriesData
        }]
      })
    },
    // 数据的请求
    requestEcharts () {
@@ -130,18 +146,18 @@
        for (let i = 0; i < result.length; i++) {
          //   // console.log(result[i])
          const seriesData = []
          // const seriesData = []
          const aseries = []
          // let nameData = ''
          seriesData.push(result[i].ReadTime)
          this.seriesData.push(result[i].ReadTime)
          aseries.push(result[i].TagValue)
          // nameData = result[i].UnionTagCode
          this.aseries = result[i].UnionTagCode
        }
        this.myChart.setOption({
          series: [{
            data: data
            data: this.seriesData
          }]
        })
      }, 3000)
@@ -151,6 +167,7 @@
    this.$nextTick(() => {
      this.requestEcharts()
      this.drawChart()
      this.echartsData()
    })
  }
}
src/components/BaseNav/PublicBounced/GasComponents/PublicDetailedList.vue
@@ -1,31 +1,53 @@
<template>
  <div class="PublicDetailedList">
    <el-table :data="tableData" max-height="500px" border>
      <el-scrollbar style="height: 50vh">
      <el-table-column prop="OnLineMonEmissPointName" label="排放点"></el-table-column>
      <el-table-column prop="MonTimeStr" label="监测时间"></el-table-column>
      <el-table-column  label="氮氧化物">
        <el-table-column prop="MonQty" label="浓度(mg/m³)" width="60"></el-table-column>
        <el-table-column prop="OrglQty" label="折算值(mg/m³)" width="60"></el-table-column>
        <el-table-column prop="ConvertQty" label="标准值(mg/m³)" width="60"></el-table-column>
        <el-table-column prop="EmissQty" label="排放量(kg/h)" width="60"></el-table-column>
      </el-table-column>
      <el-table-column label="二氧化硫">
        <el-table-column prop="MonQty" label="浓度(mg/m³)" width="60"></el-table-column>
        <el-table-column prop="OrglQty" label="折算值(mg/m³)" width="60"></el-table-column>
        <el-table-column prop="ConvertQty" label="标准值(mg/m³)" width="60"></el-table-column>
        <el-table-column prop="EmissQty" label="排放量(kg/h)" width="60"></el-table-column>
      </el-table-column>
      <el-table-column  label="烟尘">
        <el-table-column prop="MonQty" label="浓度(mg/m³)" width="60"></el-table-column>
        <el-table-column prop="OrglQty" label="折算值(mg/m³)" width="60"></el-table-column>
        <el-table-column prop="ConvertQty" label="标准值(mg/m³)" width="60"></el-table-column>
        <el-table-column prop="EmissQty" label="排放量(kg/h)" width="60"></el-table-column>
      </el-table-column>
      <el-table-column  label="废气流量">
        <el-table-column prop="StdValue" label="气量"></el-table-column>
      </el-table-column>
      </el-scrollbar>
    <el-table :data="tableData" max-height="600px" border>
          <el-table-column prop="MonTimeStr" label="监测时间"></el-table-column>
          <el-table-column  label="氮氧化物">
              <el-table-column prop="MonQty"  width="70">
                <template slot="header">浓度 <i>(mg/m³)</i></template>
              </el-table-column>
              <el-table-column prop="OrglQty"  width="70">
                <template slot="header">折算值 <i>(mg/m³)</i></template>
              </el-table-column>
              <el-table-column prop="ConvertQty"  width="70">
                <template slot="header">标准值 <i>(mg/m³)</i></template>
              </el-table-column>
              <el-table-column prop="EmissQty"  width="70">
                <template slot="header">排放量 <i>(kg/h)</i></template>
              </el-table-column>
          </el-table-column>
          <el-table-column label="二氧化硫">
              <el-table-column prop="MonQty"  width="60">
                <template slot="header">浓度 <i>(mg/m³)</i></template>
              </el-table-column>
              <el-table-column prop="OrglQty"  width="60">
                <template slot="header">折算值 <i>(mg/m³)</i></template>
              </el-table-column>
              <el-table-column prop="ConvertQty"  width="60">
                <template slot="header">标准值 <i>(mg/m³)</i></template>
              </el-table-column>
              <el-table-column prop="EmissQty"  width="60">
                <template slot="header">排放量 <i>(kg/h)</i></template>
              </el-table-column>
          </el-table-column>
          <el-table-column  label="烟尘">
              <el-table-column prop="MonQty"  width="60">
                <template slot="header">浓度 <i>(mg/m³)</i></template>
              </el-table-column>
              <el-table-column prop="OrglQty"  width="60">
                <template slot="header">折算值 <i>(mg/m³)</i></template>
              </el-table-column>
              <el-table-column prop="ConvertQty"  width="60">
                <template slot="header">标准值 <i>(mg/m³)</i></template>
              </el-table-column>
              <el-table-column prop="EmissQty" label="排放量" width="60">
                <template slot="header">排放量 <i>(kg/h)</i></template>
              </el-table-column>
          </el-table-column>
          <el-table-column  label="废气流量" width="100">
              <el-table-column prop="StdValue" label="气量"></el-table-column>
          </el-table-column>
          <el-table-column prop="OnLineMonEmissPointName" label="排放点"></el-table-column>
    </el-table>
  </div>
</template>
src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue
@@ -7,8 +7,7 @@
    <div class="border_corner border_corner_right_bottom"></div>
    <div class="main">
      <div class="main-table">
        <el-table :data="listData" style="width: 100%" stripe='stripe'
                  tooltip-effect="dark" :row-class-name="tableRowClassName">
        <el-table :data="listData" style="width: 100%" height="200px" :row-class-name="tableRowClassName">
          <el-table-column v-for="(item, index) in listLabel" :key="index" :prop="item.prop"
                           :label="item.label"></el-table-column>
        </el-table>
@@ -84,8 +83,6 @@
.win {
  position: relative;
  background-color: rgba(33, 41, 69, 0.9);
  //width: 6rem;
  height: 1.5rem;
}
.main {
src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue
@@ -87,7 +87,7 @@
  .main-matter {
    font-size: 13px;
    font-weight: normal;
    padding: 0px 6px;
    padding: 0 6px;
    border: 1px solid #396d83;
    .row-item-one {
@@ -128,7 +128,7 @@
      align-items: center;
      justify-content: space-around;
      flex-wrap: wrap;
      line-height: 35px;
      line-height: 30px;
      li {
        text-align: center;
src/components/BaseNav/PublicBounced/PublicBounced.vue
@@ -40,7 +40,7 @@
export default {
  name: 'PublicBounced',
  components: {
    // Echarts
    // Echarts,
    PublicTabs,
    PublicTable,
    PublicChart,
src/conf/LayerTopic.js
@@ -8,11 +8,14 @@
import { LayerEnvRisk } from './layers/LayerEnvRisk'
import { LayerSoilGroundWater } from './layers/LayerSoilGroundWater'
import { LayerPollutionSources } from './layers/LayerPollutionSources'
import { LayerPipeLines } from './layers/LayerPipeLines'
import { LayerArea } from './layers/LayerArea'
import { LayerVideo } from './layers/LayerVideo'
export const LayerTopic = {
  code: 'sewersTopic',
  name: '专题图层',
  checked: true,
  isShow: true,
  layers: [LayerPollutionSources, LayerWasteWater, LayerWasteGas, LayerWasteSolid, LayerAirQuality, LayerEnvRisk, LayerSoilGroundWater]
  layers: [LayerPollutionSources, LayerWasteWater, LayerWasteGas, LayerWasteSolid, LayerAirQuality, LayerEnvRisk, LayerSoilGroundWater, LayerPipeLines, LayerVideo, LayerArea]
}
src/conf/MapConfig.js
@@ -2,7 +2,6 @@
import TDT from './TDT'
import { LayerSewersPoint } from './layers/LayerSewers'
import { LayerTopic } from './LayerTopic'
import { LayerPipeLine } from './LayerPipeLine'
import { LayerBasin } from './layers/LayerBasin'
const curWwwPath = window.document.location.href
@@ -43,7 +42,7 @@
  IntranetBaseMaps: TDT.intranet,
  InternetBaseMaps: TDT.internet,
  Layers: {
    LayerSewersLine: [LayerBasin, LayerTopic, LayerPipeLine],
    LayerSewersLine: [LayerBasin, LayerTopic],
    layerSewersPoint: LayerSewersPoint
  } // 污雨水图层配置
}
src/conf/layers/LayerVideo.js
New file
@@ -0,0 +1,8 @@
/**
 * 视频监控
 */
export const LayerVideo = {
  code: 'sewersVideo',
  name: '视频监控',
  checked: false
}
src/views/MapTemplate.vue
@@ -91,6 +91,7 @@
        map: this.map
      })
      layerFactory.init(this.$store.state.map.serviceLayers.LayerSewersLine)
      layerFactory.init(this.$store.state.map.serviceLayers.layerSewersPoint)
      window.layerFactory = layerFactory
      this.basemapHelper = Sgis.initBasemapsHelper(this.map) // 初始化基础底图助手
src/views/Temp.vue
@@ -35,6 +35,9 @@
// // 公共展示数据
import PublicBounced from '@components/BaseNav/PublicBounced/PublicBounced'
import LayerFactory from '@components/LayerController/service/LayerFactory'
// import '../components/plugin/Leaflet.TileLayer.ProjWMTS'
// import * as L from 'leaflet'
// import * as L from 'leaflet'
const esri = require('esri-leaflet')
// const proj4 = require('proj4')
const proj4 = require('proj4')
@@ -88,7 +91,7 @@
      const mapcontainer = this.$refs.rootmap
      const CRS_4490 = new Proj.CRS('EPSG:4490', '+proj=longlat +ellps=GRS80 +no_defs', {
        resolutions: [
          1.40625,
          // 1.40625,
          0.703125,
          0.3515625,
          0.17578125,
@@ -110,12 +113,30 @@
          2.682209064925356E-6,
          1.3411045324626732E-6
        ],
        origin: [-180, 90]
        origin: [-180, 90],
        // origin: [-400.0, 399.9999999999998],//arcgis 坐标源点
        bounds: this.L.bounds([-180, -90], [180, 90]) // 天地图
      })
      console.log(mapcontainer)
      console.log(CRS_4490)
      debugger
      this.map = Sgis.initMap(mapcontainer)
      const options = {
        crs: CRS_4490,
        // crs: this.L.CRS.EPSG4326,
        minZoom: 3,
        maxZoom: 21,
        // center: [26, 104],
        center: [32.23012597374691, 118.78516085275147],
        // center: [29.454345703125, 113.40362548828125],
        zoom: 3,
        worldCopyJump: false,
        inertia: true,
        zoomControl: false,
        attributionControl: false,
        editable: true,
        preferCanvas: true
      }
      this.map = Sgis.initMap(mapcontainer, options)
      this.$refs.toolBox.map = this.map
      window.popupComp = this.$refs.popup
@@ -127,7 +148,7 @@
      window.layerFactory = layerFactory
      this.basemapHelper = Sgis.initBasemapsHelper(this.map) // 初始化基础底图助手
      this.basemapHelper.initBasemap(this.config, false) // 第二个参数,表示是否内网底图
      this.basemapHelper.initBasemap(this.config, true) // 第二个参数,表示是否内网底图
      // this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.map) // 初始化动态要素图层助手
      // this.vectorLayerHelper.initVectorLayers(this.config)
@@ -143,10 +164,15 @@
    },
    loadArcgisImg () {
      // const url = 'http://10.246.132.249:8080/OneMapServer/rest/services/base-map-image-enterprise/MapServer/tile/{z}/{y}/{x}'
      const url = 'http://10.246.132.249:8080/OneMapServer/rest/services/base-map-image-enterprise/MapServer'
      // const url = 'http://10.246.132.249:8080/OneMapServer/rest/services/base-map-image-enterprise/MapServer'
      const url = 'http://10.246.132.249:8080/OneMapServer/rest/services/base-map-image-sinopec/MapServer'
      // const arcgisTileLayer = this.L.tileLayer(url, {
      const arcgisTileLayer = esri.tiledMapLayer({ url: url })
      // const arcgisTileLayer = esri.dynamicMapLayer({ url: url })
      const arcgisTileLayer = esri.tiledMapLayer({
        url: url,
        token: window.tdtToken,
        zoomOffsetAllowance: 0.5
      })
      // const arcgisTileLayer = esri.dynamicMapLayer({ url: url, useCors: true })
      arcgisTileLayer.addTo(this.map)
    },
    onLayerClick () {