派生自 wuyushui/SewerAndRainNetwork

徐旺旺
2021-04-09 fc9eeb9f8b2efba55acfb62a2cb1186ccf2fcad4
Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop
2个文件已添加
9个文件已修改
879 ■■■■ 已修改文件
package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/mapApi.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/mapUrl.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/EChartsDate.vue 397 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue 188 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/Echarts.vue 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/GasComponents/PublicVideo.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/BaseNav/PublicBounced/PublicBounced.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/LayerController/logic/WasteWater.js 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json
@@ -16,7 +16,7 @@
    "axios": "^0.18.0",
    "babel-polyfill": "^6.26.0",
    "core-js": "^3.6.5",
    "dayjs": "^1.9.6",
    "dayjs": "^1.10.4",
    "echarts": "^4.2.1",
    "element-ui": "^2.14.1",
    "esri-leaflet": "^3.0.1",
src/api/mapApi.js
@@ -52,7 +52,22 @@
  getWasteWaterMonitoringDetails (data) {
    return axios.get(mapUrl.getWasteWaterMonitoringDetails, data)
  },
  // 废水日数据和小时数据及明细表
  getQueryOnlineMonData (data) {
    return axios.get(mapUrl.getQueryOnlineMonData, data)
  },
  // 废水人工数据
  getQueryLabMonData (data) {
    return axios.get(mapUrl.getQueryLabMonData, data)
  },
  // 废水实时数据
  getDataItems (data) {
    return axios.get(mapUrl.getDataItems, data)
  },
  getCompany (data) {
    return axios.get(mapUrl.getCompany, data)
  },
  DataItems (data) {
    return axios.get(mapUrl.DataItems, data)
  }
}
src/api/mapUrl.js
@@ -12,10 +12,14 @@
export const getWasteGas = $HOST + '/wasteGas/getWasteGas'
export const getWasteGasDetails = $HOST + '/wasteGas/getWasteGasMonitoringDetails'
export const DataItems = $HOST + '/wasteWater/RTDB/DataItems'
export const getWasteGasMonData = $HOST + '/wasteGas/QueryOnlineMonData'
export const getWasteWater = $HOST + '/wasteWater/getWasteWater'
export const getWasteWaterMonitoring = $HOST + '/wasteWater/getWasteWaterMonitoring'
export const getWasteWaterMonitoringDetails = $HOST + '/wasteWater/getWasteWaterMonitoringDetails'
export const getWasteWater = $HOST + '/wasteWater/getWasteWater' // 废水点信息
export const getWasteWaterMonitoring = $HOST + '/wasteWater/getWasteWaterMonitoring' // 废水监测数据
export const getWasteWaterMonitoringDetails = $HOST + '/wasteWater/getWasteWaterMonitoringDetails' // 废水监测数据明细表
export const getQueryOnlineMonData = $HOST + '/wasteWater/QueryOnlineMonData' // 废水日数据小时数据及明细表数据
export const getQueryLabMonData = $HOST + '/wasteWater/QueryLabMonMonData' // 人工数据
export const getDataItems = $HOST + '/wasteWater/RTDB/DataItems' // 实时数据
export const getCompany = $HOST + '/company/getCompany'
src/components/BaseNav/PublicBounced/GasComponents/EChartsDate.vue
New file
@@ -0,0 +1,397 @@
<!--  日数据  -->
<template>
    <div id="Tab">
        <div class="infomation">
            <!--            <el-tag>氮氧化物 : 29.93 标准 : 100</el-tag>-->
            <!--            <el-tag>二氧化硫 : 17.34 标准 : 50</el-tag>-->
            <!--            <el-tag>烟尘 : 6.93 标准 : 30</el-tag>-->
            <!--            <el-tag>废气流量 : 120343.18</el-tag>-->
            <el-row>
                <el-col :span="6"><div class="grid-content bg-purple">氮氧化物 : 29.93 标准 : 100</div></el-col>
                <el-col :span="6"><div class="grid-content bg-purple">二氧化硫 : 17.34 标准 : 50</div></el-col>
                <el-col :span="6"><div class="grid-content bg-purple">烟尘 : 6.93 标准 : 30</div></el-col>
                <el-col :span="6"><div class="grid-content bg-purple">废气流量 : 120343.18</div></el-col>
                <!--            <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>-->
            </el-row>
        </div>
        <div class="form-echrts">
            <div class="from-search">
                <el-row type="flex">
                    <el-col :span="14">
                        <div class="pickerMon">
                            <div class="pickerData">
                                <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">
                        <el-date-picker
                                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 style="width:5rem;height:2rem;" id="echarts" ref="main">
            </div>
        </div>
    </div>
</template>
<script>
import PublicDetailedList from '@components/BaseNav/PublicBounced/GasComponents/PublicDetailedList'
export default {
  name: 'ECharts',
  components: {
    PublicDetailedList
  },
  data () {
    return {
      watchData: [],
      dialogVisible: false,
      myChar: null,
      value: '',
      formInline: {
        user: '',
        region: ''
      }
    }
  },
  methods: {
    onSubmit () {
      console.log('submit!')
    },
    drawChart: function () {
      window.onresize = function () {
        var h1 = document.documentElement.clientHeight// 获取屏幕的高度
        if (h1 > 700) {
          this.myChart.getDom().style.height = 3 + 'rem'
          this.myChart.getDom().style.width = 6 + 'rem'
        } else {
          this.myChart.getDom().style.height = 3 + 'rem'
          this.myChart.getDom().style.width = 6 + 'rem'
        }
        this.myChart.resize()
      }
    },
    initOptions: function (dataDate, dataValue1, dataValue2, dataValue3) {
      var options = {
        title: {
          // text: '折线图堆叠'
        },
        color: ['#5470c6', '#91CC75', '#EE6666', '#FF0087'],
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              color: '#1a4245'
            }
          }
        },
        legend: {
          x: '200px',
          y: '30px',
          data: [{
            name: 'COD',
            textStyle: {
              color: '#00d0f9'
            }
          },
          {
            name: '氨氮',
            textStyle: {
              color: '#00d0f9'
            }
          },
          {
            name: '废水流量',
            textStyle: {
              color: '#00d0f9'
            }
          }]
        },
        grid: {
          left: '3%',
          right: '3%',
          bottom: '3%',
          containLabel: true
        },
        toolbox: {},
        // 图标缩放设置
        dataZoom: [{
          type: 'inside',
          start: 0,
          end: 100
        }, {
          start: 0,
          end: 100,
          show: false,
          // handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
          handleSize: '80%',
          handleStyle: {
            color: '#fff',
            shadowBlur: 3,
            shadowColor: 'rgba(0, 0, 0, 0.6)',
            shadowOffsetX: 2,
            shadowOffsetY: 2
          }
        }],
        // x轴的设置
        xAxis: {
          type: 'category',
          boundaryGap: ['10%', '10%'],
          data: dataDate,
          axisLabel: { // x轴全部显示
            rotate: 20,
            interval: 0,
            textStyle: {
              color: '#fff',
              fontSize: 10
            }
          },
          splitLine: { // 网格垂直线为虚线
            show: true,
            lineStyle: {
              type: 'dashed'
            }
          },
          axisTick: { // x 轴刻度显示
            show: false
          },
          axisLine: {
            lineStyle: {
              color: '#FFFFFF',
              width: 1 // 这里是为了突出显示加上的
            }
          }
        },
        // Y 轴的设置
        yAxis: [{
          type: 'value',
          position: 'left', // 多 Y 轴使用
          name: '浓度(mg/m³)',
          axisLabel: {
            formatter: '{value}',
            textStyle: {
              color: '#fff' // 坐标的字体颜色
            }
          },
          axisPointer: {
            snap: true // 自动吸附最近的点
          },
          splitLine: {
            show: false // y轴 网格线不显示
          },
          axisLine: {
            lineStyle: {
              color: '#ffffff', // 坐标轴的颜色
              width: 1
            }
          }
        },
        {
          type: 'value',
          position: 'right', // 多 Y 轴使用
          name: '流量(m³/h³)',
          axisLabel: {
            formatter: '{value}',
            textStyle: {
              color: '#fff' // 坐标的字体颜色
            }
          },
          axisPointer: {
            snap: true // 自动吸附最近的点
          },
          splitLine: {
            show: false // y轴 网格线不显示
          },
          axisLine: {
            lineStyle: {
              color: '#ffffff', // 坐标轴的颜色
              width: 1
            }
          }
        }],
        series: [
          {
            name: 'COD',
            type: 'line',
            stack: '总量',
            data: dataValue1,
            yAxisIndex: 0
          },
          {
            name: '氨氮',
            type: 'line',
            stack: '总量',
            data: dataValue2,
            yAxisIndex: 0
          },
          {
            name: '废水流量',
            type: 'line',
            stack: '总量',
            data: dataValue3,
            yAxisIndex: 1
          }
        ]
      }
      return options
    }
  },
  mounted () {
    this.$nextTick(() => {
      this.drawChart()
      const dataWatch = JSON.parse(JSON.stringify(this.$attrs.getQueryOnlineMonData)).reverse()
      console.log(dataWatch)
      var dataValue1 = []
      var dataValue2 = []
      var dataValue3 = []
      var dataDate = []
      for (var i = 0; i < 24; i++) {
        dataDate.push(dataWatch[i].MonTimeStr.substring(0, 8))
      }
      for (var n = 0; n < dataWatch.length; n++) {
        if (dataWatch[n].PoltmtrlName === 'COD') {
          dataValue1.push(dataWatch[n].MonQty)
        } else if (dataWatch[n].PoltmtrlName === '氨氮') {
          dataValue2.push(dataWatch[n].MonQty)
        } else if (dataWatch[n].PoltmtrlName === '废水流量') {
          dataValue3.push(dataWatch[n].MonQty)
        }
      }
      const opitons = this.initOptions(dataDate, dataValue1, dataValue2, dataValue3)
      this.myChart = this.$echarts.init(this.$refs.main)
      this.myChart.setOption(opitons)
    })
  }
}
</script>
<style scoped lang="less">
    .grid-content{
        font-size: 8px!important;
        background-color:#2e4967;
        text-align: center;
        margin: 0 2px 4px 2px;
        border-radius: 2px;
    }
    .Infomation {
        margin-left: 10px;
    }
    .el-tag {
        height: 25px;
        width: 140px;
        line-height: 25px;
        margin-right: 10px;
        font-size: 10px;
        background-color: rgba(0, 255, 246, 0.14);
        color: #00d0f9;
        border: none;
        padding: 0 15px;
    }
    .form-echrts {
        width: 100%;
        border-top: 1px solid #396d83;
        //margin: 10px 10px 10px 10px;
        .from-search{
            margin-top: 6px;
            .pickerMon{
                display: flex;
                .pickerData{
                    flex: 1;
                    display: flex;
                    .pickerTable{
                        margin-left: 6px;
                        width: 40px;
                        /deep/.el-input__icon {
                            width: 0.9rem;
                            font-size: 0;
                        }
                    }
                }
            }
            /deep/.el-date-editor--datetime{
                width: 100%;
            }
            /deep/.el-input__inner{
                position: relative;
                width: 0.9rem!important;
                height: 0.125rem!important;
                background-color: #2e4967;
                color: #ffffff;
                font-size: 8px;
                padding: 0;
                //padding-left:20px ;
                //padding: 0!important;
            }
            .echatsInput{
                color: #00ffff;
                background-color: #2e4967;
                border: none;
                border-radius: 6px;
                width: 40px;
            }
            .detailbtn{
                background-color:#2e4967;
                text-align: center;
                padding: 0 7px;
                line-height: 20px;
                border-radius: 4px;
                margin-right: 6px;
            }
        }
        .el-dialog-div {
            //height: 50vh!important;
            overflow: auto;
            //overflow: hidden;
        }
        #echarts {
            margin: 0;
            padding: 0;
            //height: 3rem;
            //border: 1px solid #396d83;
            //margin: 10px 10px 10px 10px;
        }
    }
</style>
src/components/BaseNav/PublicBounced/GasComponents/EChartsHour.vue
@@ -15,44 +15,7 @@
          </el-row>
        </div>
        <div class="form-echrts">
            <!--    :title="this.$attrs.getWasteGasDetails[0].OnLineMonEmissPointName"      -->
            <div class="from-search">
<!--                <el-form :inline="true" :model="formInline" class="demo-form-inline">-->
<!--                    <el-form-item label="审批人">-->
<!--                        <el-input v-model="formInline.user" placeholder="审批人"></el-input>-->
<!--                    </el-form-item>-->
<!--                    <div class="block">-->
<!--                        <el-date-picker-->
<!--                            size="'mini"-->
<!--                                class="date"-->
<!--                                v-model="value"-->
<!--                                type="datetimerange"-->
<!--                                range-separator="至"-->
<!--                                start-placeholder="开始日期"-->
<!--                                end-placeholder="结束日期">-->
<!--                        </el-date-picker>-->
<!--                    </div>-->
<!--                    <el-form-item label="采样点数" class="text-size">-->
<!--                        <el-select v-model="formInline.region" placeholder="0">-->
<!--                            <el-option label="0" value="shanghai"></el-option>-->
<!--                            <el-option label="25" value="beijing"></el-option>-->
<!--                            <el-option label="50" value="beijing"></el-option>-->
<!--                            <el-option label="75" value="beijing"></el-option>-->
<!--                            <el-option label="100" value="beijing"></el-option>-->
<!--                        </el-select>-->
<!--                    </el-form-item>-->
<!--                    <el-form-item>-->
<!--                        <el-button type="primary" @click="onSubmit">查询</el-button>-->
<!--                    </el-form-item>-->
<!--                </el-form>-->
<!--              <input list="students">-->
<!--              <datalist id="students">-->
<!--                <option value="Lily">-->
<!--                <option value="Lucy">-->
<!--                <option value="Jim">-->
<!--                <option value="Lily">-->
<!--              </datalist>-->
              <el-row type="flex">
                <el-col :span="14">
                  <div class="pickerMon">
@@ -103,7 +66,7 @@
                </el-col>
              </el-row>
            </div>
            <div style="width:100%;height:300px;" id="echarts" ref="main">
            <div style="width:5rem;height:2rem;" id="echarts" ref="main">
            </div>
        </div>
    </div>
@@ -123,9 +86,33 @@
      value2: '',
      watchData: [],
      dialogVisible: false,
      dataDate: [],
      myChar: null,
      value: '',
      options: {
      formInline: {
        user: '',
        region: ''
      }
    }
  },
  methods: {
    onSubmit () {
      console.log('submit!')
    },
    drawChart: function () {
      window.onresize = function () {
        var h1 = document.documentElement.clientHeight// 获取屏幕的高度
        if (h1 > 700) {
          this.myChart.getDom().style.height = 3 + 'rem'
          this.myChart.getDom().style.width = 6 + 'rem'
        } else {
          this.myChart.getDom().style.height = 3 + 'rem'
          this.myChart.getDom().style.width = 6 + 'rem'
        }
        this.myChart.resize()
      }
    },
    initOptions: function (dataDate, dataValue1, dataValue2, dataValue3) {
      var options = {
        title: {
          // text: '折线图堆叠'
        },
@@ -143,25 +130,19 @@
          x: '200px',
          y: '30px',
          data: [{
            name: '氮氧化物',
            name: 'COD',
            textStyle: {
              color: '#00d0f9'
            }
          },
          {
            name: '二氧化硫',
            name: '氨氮',
            textStyle: {
              color: '#00d0f9'
            }
          },
          {
            name: '烟尘',
            textStyle: {
              color: '#00d0f9'
            }
          },
          {
            name: '废气流量',
            name: '废水流量',
            textStyle: {
              color: '#00d0f9'
            }
@@ -169,12 +150,11 @@
        },
        grid: {
          left: '3%',
          right: '1%',
          right: '3%',
          bottom: '3%',
          containLabel: true
        },
        toolbox: {
        },
        toolbox: {},
        // 图标缩放设置
        dataZoom: [{
          type: 'inside',
@@ -198,12 +178,13 @@
        xAxis: {
          type: 'category',
          boundaryGap: false,
          data: ['12:00:00', '13:00:00', '14:00:00', '15:00:00', '16:00:00', '17:00:00', '18:00:00'],
          data: dataDate,
          axisLabel: { // x轴全部显示
            rotate: 20,
            interval: 0,
            textStyle: {
              color: '#fff'
              color: '#fff',
              fontSize: 10
            }
          },
          splitLine: { // 网格垂直线为虚线
@@ -225,9 +206,31 @@
        // Y 轴的设置
        yAxis: [{
          type: 'value',
          // position: 'left', // 多 Y 轴使用
          // name: yname, // 后期图标Y轴显示单位
          position: 'left', // 多 Y 轴使用
          name: '浓度(mg/m³)',
          axisLabel: {
            formatter: '{value}',
            textStyle: {
              color: '#fff' // 坐标的字体颜色
            }
          },
          axisPointer: {
            snap: true // 自动吸附最近的点
          },
          splitLine: {
            show: false // y轴 网格线不显示
          },
          axisLine: {
            lineStyle: {
              color: '#ffffff', // 坐标轴的颜色
              width: 1
            }
          }
        },
        {
          type: 'value',
          position: 'right', // 多 Y 轴使用
          name: '流量(m³/h³)',
          axisLabel: {
            formatter: '{value}',
            textStyle: {
@@ -249,66 +252,55 @@
        }],
        series: [
          {
            name: '氮氧化物',
            name: 'COD',
            type: 'line',
            stack: '总量',
            data: [120, 132, 101, 134, 90, 230, 210]
            data: dataValue1,
            yAxisIndex: 0
          },
          {
            name: '二氧化硫',
            name: '氨氮',
            type: 'line',
            stack: '总量',
            data: [150, 232, 201, 154, 190, 330, 410]
            data: dataValue2,
            yAxisIndex: 0
          },
          {
            name: '烟尘',
            name: '废水流量',
            type: 'line',
            stack: '总量',
            data: [320, 332, 301, 334, 390, 330, 320]
          },
          {
            name: '废气流量',
            type: 'line',
            stack: '总量',
            data: [820, 932, 901, 934, 1290, 1330, 1320]
            data: dataValue3,
            yAxisIndex: 1
          }
        ]
      },
      formInline: {
        user: '',
        region: ''
      }
    }
  },
  methods: {
    onSubmit () {
      console.log('submit!')
    },
    drawChart: function () {
      const myChart = this.$echarts.init(this.$refs.main)
      myChart.setOption(this.options)
      window.onresize = function () {
        var h1 = document.documentElement.clientHeight// 获取屏幕的高度
        if (h1 > 700) {
          myChart.getDom().style.height = 3 + 'rem'
          myChart.getDom().style.width = 6 + 'rem'
        } else {
          myChart.getDom().style.height = 3 + 'rem'
          myChart.getDom().style.width = 6 + 'rem'
        }
        myChart.resize()
      }
      return options
    }
  },
  mounted () {
    this.$nextTick(() => {
      this.drawChart()
      const dataWatch = JSON.parse(JSON.stringify(this.$attrs.getWasteWaterMonitoring))
      // console.log(dataWatch)
      for (var i = 0; i < dataWatch.length; i++) {
        this.dataDate.push(dataWatch[i].MonTimeStr.substring(10, 17))
      const dataWatch = JSON.parse(JSON.stringify(this.$attrs.getQueryOnlineMonData)).reverse()
      console.log(dataWatch)
      var dataValue1 = []
      var dataValue2 = []
      var dataValue3 = []
      var dataDate = []
      for (var i = 0; i < 24; i++) {
        dataDate.push(dataWatch[i].MonTimeStr.substring(9))
      }
      // console.log(this.dataDate)
      for (var n = 0; n < dataWatch.length; n++) {
        if (dataWatch[n].PoltmtrlName === 'COD') {
          dataValue1.push(dataWatch[n].MonQty)
        } else if (dataWatch[n].PoltmtrlName === '氨氮') {
          dataValue2.push(dataWatch[n].MonQty)
        } else if (dataWatch[n].PoltmtrlName === '废水流量') {
          dataValue3.push(dataWatch[n].MonQty)
        }
      }
      const opitons = this.initOptions(dataDate, dataValue1, dataValue2, dataValue3)
      this.myChart = this.$echarts.init(this.$refs.main)
      this.myChart.setOption(opitons)
    })
  }
}
@@ -324,7 +316,6 @@
}
.Infomation {
  margin-left: 10px;
  height: 0.2rem;
}
.el-tag {
@@ -341,7 +332,6 @@
.form-echrts {
  width: 100%;
  height: 2rem;
  border-top: 1px solid #396d83;
  //margin: 10px 10px 10px 10px;
  .from-search{
src/components/BaseNav/PublicBounced/GasComponents/Echarts.vue
New file
@@ -0,0 +1,196 @@
<template>
  <div style="width:100%;height:2rem;" ref="echarts"></div>
</template>
<script>
import mapApi from '@/api/mapApi'
import 'dayjs/locale/es'
import dayjs from 'dayjs'
export default {
  name: 'ECharts',
  data () {
    return {
      myChart: [],
      dataDate: [],
      value: '',
      seriesData: [],
      aseries: '',
      result: [],
      days: dayjs(new Date()).format('YYYYMMDDHHmmss')
    }
  },
  methods: {
    drawChart (result) {
      // const result = this.result
      this.myChart = this.$echarts.init(this.$refs.echarts)
      // setInterval(function () {
      // }, 3000)
      const option = {
        title: {
          text: '折线图堆叠'
        },
        tooltip: {
          trigger: 'axis'
        },
        legend: {
          data: ['邮件营销', '联盟广告', '视频广告', '直接访问', '搜索引擎']
        },
        grid: {
          containLabel: true
        },
        toolbox: {
          feature: {
            saveAsImage: {
              show: false
            }
          }
        },
        xAxis: {
          type: 'category',
          boundaryGap: false,
          // data: seriesData,
          data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
          axisLine: {
            lineStyle: {
              color: '#FFFFFF',
              width: 1
            }
          }
        },
        yAxis: {
          type: 'value',
          axisLine: {
            lineStyle: {
              color: '#FFFFFF',
              width: 1
            }
          }
        },
        series: [
          {
            name: '邮件营销',
            type: 'line',
            stack: '总量',
            data: [120, 132, 101, 134, 90, 230, 210]
          },
          {
            name: '联盟广告',
            type: 'line',
            stack: '总量',
            data: [220, 182, 191, 234, 290, 330, 310]
          },
          {
            name: '视频广告',
            type: 'line',
            stack: '总量',
            data: [150, 232, 201, 154, 190, 330, 410]
          },
          {
            name: '直接访问',
            type: 'line',
            stack: '总量',
            data: [320, 332, 301, 334, 390, 330, 320]
          },
          {
            name: '搜索引擎',
            type: 'line',
            stack: '总量',
            data: [820, 932, 901, 934, 1290, 1330, 1320]
          }
        ]
      }
      this.myChart.setOption(option)
    },
    async echartsData () {
      const addDays = dayjs().add(300, 'day')
      const data = {
        $tagCodeList: 'TJIP45.yyqAI90305,TJIP45.yyqAI90303,TJIP45.yyqFI_90310N,TJIP45.yyqAI90304,TJIP45.yyqAIR001',
        $startTime: this.dayjs,
        $endTime: addDays,
        $step: 15
      }
      const result = await mapApi.DataItems(data)
      this.result = result.data
    },
    // 数据的请求
    requestEcharts () {
      setInterval(async () => {
        const addDays = dayjs().add(300, 'day')
        const data = {
          $tagCodeList: 'TJIP45.yyqAI90305,TJIP45.yyqAI90303,TJIP45.yyqFI_90310N,TJIP45.yyqAI90304,TJIP45.yyqAIR001',
          $startTime: this.dayjs,
          $endTime: addDays,
          $step: 15
        }
        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 = ''
          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
          }]
        })
      }, 3000)
    }
  },
  mounted () {
    this.$nextTick(() => {
      this.requestEcharts()
      this.drawChart()
    })
  }
}
</script>
<style scoped lang="less">
.Infomation {
  margin-left: 10px;
  height: 0.2rem;
}
.el-tag {
  height: 25px;
  width: 140px;
  line-height: 25px;
  margin-right: 10px;
  font-size: 10px;
  background-color: rgba(0, 255, 246, 0.14);
  color: #00d0f9;
  border: none;
  padding: 0 15px;
}
.form-echrts {
  width: 100%;
  height: 1rem;
  border-top: 1px solid #396d83;
  //margin: 10px 10px 10px 10px;
  .el-dialog-div {
    //height: 50vh!important;
    overflow: auto;
    //overflow: hidden;
  }
  #echarts {
    margin: 0;
    padding: 0;
    //height: 3rem;
    //border: 1px solid #396d83;
    //margin: 10px 10px 10px 10px;
  }
}
</style>
src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue
@@ -7,7 +7,7 @@
        <ul class="tab">
            <li @click='tabTaggle("ECharts")'>实时数据</li>
            <li @click='tabTaggle("EChartsHour")'>小时数据</li>
            <li @click='tabTaggle("ECharts")'>日数据</li>
            <li @click='tabTaggle("EChartsDate")'>日数据</li>
            <li @click='tabTaggle("ECharts")'>人工数据</li>
        </ul>
        <component :is="currentTab" v-bind="$attrs"></component>
@@ -16,11 +16,13 @@
<script>
import EChartsHour from './EChartsHour'
import EChartsDate from './EChartsDate'
export default {
  name: 'PublicChart',
  components: {
    EChartsHour
    EChartsHour,
    EChartsDate
  },
  data () {
    return {
@@ -46,10 +48,10 @@
.win {
  position: relative;
  margin-bottom: 13px;
  /*margin-bottom: 13px;*/
  background-color: rgba(33, 41, 69, 0.9);
  border: 0.8px solid #396d83;
  height: 1.5rem;
  /*height: 1.5rem;*/
}
.border_corner {
src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue
@@ -105,13 +105,13 @@
      color: #00d0f9;
      display: flex;
      font-size: 12px !important;
      text-align: center;
      .el-col {
        text-align: center;
        flex: 1;
        width: 100%;
        background-color: #243a55;
        text-align: center;
        line-height: 28px;
        margin-left: 6px;
        border-radius: 4px;
src/components/BaseNav/PublicBounced/GasComponents/PublicVideo.vue
@@ -27,11 +27,12 @@
  position: relative;
  background-color: rgba(33, 41, 69, 0.9);
  //height: 2rem;
  width: 3rem;
}
.main {
  border: 1px solid #396d83;
  padding: 5px;
  //padding: 5px;
  height: 2rem;
  video {
src/components/BaseNav/PublicBounced/PublicBounced.vue
@@ -1,5 +1,6 @@
<template>
  <div class="public-bounced" v-drag v-if="flag">
    <!--    <Echarts></Echarts>-->
    <div class="public-bounced-title">
      <span>{{ displayContentTitle }}</span>
      <i class="el-icon-circle-close" @click="closePopup"></i>
@@ -13,8 +14,9 @@
                        :displayContentTable="displayContentTable"></public-table>
          <public-chart v-else :getWasteGasDetails="getWasteGasDetails"
                        :value="value"
                        :getWasteWaterMonitoring="getWasteWaterMonitoring"
                        :getWasteWaterMonitoringDetails="getWasteWaterMonitoringDetails"></public-chart>
                        :getQueryOnlineMonData="getQueryOnlineMonData"
                        :getWasteWaterMonitoringDetails="getWasteWaterMonitoringDetails">
          </public-chart>
        </div>
      </div>
      <div class="public-bounced-content-right">
@@ -26,6 +28,8 @@
<script>
// import Echarts from '@components/BaseNav/PublicBounced/GasComponents/Echarts'
import '@/components/BaseNav/SolidWaste/directive/dir'
import PublicTabs from '@components/BaseNav/PublicBounced/GasComponents/PublicTabs'
import PublicTable from '@components/BaseNav/PublicBounced/GasComponents/PublicTable'
@@ -35,6 +39,7 @@
export default {
  name: 'PublicBounced',
  components: {
    // Echarts
    PublicTabs,
    PublicTable,
    PublicChart,
@@ -51,7 +56,7 @@
      value: '',
      getWasteGasDetails: [],
      getWasteWaterMonitoringDetails: [],
      getWasteWaterMonitoring: []
      getQueryOnlineMonData: []
    }
  },
  methods: {
@@ -77,10 +82,10 @@
      this.flag = true
      this.value = value
    },
    setWaterData (dataWater, dataDetail, drawData, value) {
    setWaterData (dataWater, dataDetail, hourData, value) {
      this.setWasteWaterdata = dataWater
      // console.log(data)
      this.getWasteWaterMonitoring = drawData
      this.getQueryOnlineMonData = hourData
      // console.log(drawData)
      this.getWasteWaterMonitoringDetails = dataDetail
      this.displayContentTitle = dataWater.Name
@@ -93,16 +98,10 @@
<style lang="less" scoped>
.public-bounced {
  width: 8rem;
  //height: 2.6rem;
  //width: 70vw;
  //height: 30vh;
  z-index: 999;
  position: absolute;
  //bottom: 2rem;
  //left: 5rem;
  top: 15%;
  left: 15%;
  left: 20%;
  background-color: #002432;
  border: 1px #9fc5c8 solid;
@@ -129,17 +128,18 @@
  }
  .public-bounced-content {
    margin: 0.2rem auto !important;
    padding: 0.1rem;
    display: flex;
    //align-items: center;
    justify-content: space-around;
    //justify-content: space-around;
    .public-bounced-content-left {
      width: 4.8rem;
      //width: 4.8rem;
    }
    .public-bounced-content-right {
      width: 3rem;
      //width: 3rem;
      margin-left: 0.1rem;
    }
  }
}
src/components/LayerController/logic/WasteWater.js
@@ -55,12 +55,28 @@
    const dataValue = {
      StoragePlaceId: e.layer.options.test.StoragePlaceId
    }
    const drawback = await mapApi.getWasteWaterMonitoring()
    console.log(drawback)
    const hourValue = {
      onLineMonEmissPointId: '23',
      monItemId: '28,31',
      beginTime: '2020-04-06 15:13:20',
      endTime: '2020-04-07 15:13:20',
      dataType: '2'
    }
    // const dateValue = {
    //   onLineMonEmissPointId: '23',
    //   monItemId: '28,31',
    //   beginTime: '2020-04-06 15:13:20',
    //   endTime: '2020-04-07',
    //   dataType: '1'
    // }
    const hourData = await mapApi.getQueryOnlineMonData(hourValue)
    // const dateData = await mapApi.getQueryOnlineMonData(dateValue)
    // const drawback = await mapApi.getWasteWaterMonitoring()
    // console.log(drawback)
    const result = await mapApi.getWasteWaterMonitoringDetails(dataValue)
    const PublicBounced = window.Vue.extend(publicBounced)
    const instance = new PublicBounced()
    instance.setWaterData(e.layer.options.test, result.Result.DataInfo, drawback.Result.DataInfo, 'feishui')
    instance.setWaterData(e.layer.options.test, result.Result.DataInfo, hourData.Result.DataInfo, 'feishui')
    // console.log(e.layer.options.test)
    instance.$mount()
    document.body.appendChild(instance.$el)