派生自 wuyushui/SewerAndRainNetwork

chenyabin
2021-05-14 0e2a48bddcf9270f546f87c8b19ea68c3ab4f0b4
src/components/BaseNav/WasteWater/WasteWaterIndex.vue
@@ -1,29 +1,31 @@
<template>
  <public-sector>
    <template v-slot:tabs>
      <public-tabs ></public-tabs>
      <public-tabs :storagePlaceId="storagePlaceId"></public-tabs>
    </template>
    <template v-slot:table>
      <div class="win">
        <div class="border_corner border_corner_left_top"></div>
        <div class="border_corner border_corner_right_top"></div>
        <div class="border_corner border_corner_left_bottom"></div>
        <div class="border_corner border_corner_right_bottom"></div>
        <ul class="tab">
          <li :class="active==0?'hover':''" @click='tabTaggle("RealData",0)'>实时数据</li>
          <li :class="active==1?'hover':''" @click='tabTaggle("HourData",1)'>小时数据</li>
          <li :class="active==2?'hover':''" @click='tabTaggle("DayData",2)'>日数据</li>
          <li :class="active==3?'hover':''" @click='tabTaggle("Detail",3)'>人工数据</li>
        </ul>
        <div class="legend" >
          <span >正常</span>
          <i style=" background: #4ec99c;"></i>
          <span >预警</span>
          <i style=" background: red;"></i>
          <span >超标</span>
          <i style=" background: orange;"></i>
    <template v-slot:publicPart>
      <div class="public-part">
        <span></span>
        <span></span>
        <span></span>
        <span></span>
        <div class="navigation">
          <div class="navigation-left">
            <div :class="active===0?'hover':''" class="uncheck" @click='tabTaggle("RealData",0)'>实时数据</div>
            <div :class="active===1?'hover':''" class="uncheck" @click='tabTaggle("HourData",1)'>小时数据</div>
            <div :class="active===2?'hover':''" class="uncheck" @click='tabTaggle("DayData",2)'>日数据</div>
            <div :class="active===3?'hover':''" class="uncheck" @click='tabTaggle("Detail",3)'>人工监测数据</div>
          </div>
          <div class="navigation-right" v-if="active !== 3">
            <p>正常</p>
            <i style=" background: #4ec99c;"></i>
            <p>预警</p>
            <i style=" background: #fc9303;"></i>
            <p>超标</p>
            <i style=" background: #fc1d04;"></i>
          </div>
        </div>
        <component :is="currentTab" v-bind="$attrs" ref="Echats"></component>
        <component :is="currentTab" ref="RealData"></component>
      </div>
    </template>
    <template v-slot:video>
@@ -34,19 +36,18 @@
<script>
// import '@/utils/dragBoxes'
import PublicTabs from './PublicTabs'
import PublicVideo from '../PublicVideo'
import PublicSector from '..//PublicSector'
import PublicSector from '../PublicSector'
// 图表组件
import RealData from './RealData'
import HourData from './HourData'
import DayData from './DayData'
import RealData from './WasteWaterRealChart'
import HourData from './WasteWaterHoursChart'
import DayData from './WasteWaterDayChart'
import Detail from './Detail'
export default {
  name: 'WasteWaterIndex',
  props: ['EpsGisMonPointId'],
  props: ['storagePlaceId'],
  components: {
    PublicSector,
    PublicTabs,
@@ -56,164 +57,140 @@
    DayData,
    Detail
  },
  mounted () {
    this.$nextTick(() => {
      this.refsData()
    })
  },
  data () {
    return {
      activeName: 'first',
      currentTab: RealData,
      active: '0',
      displayContentTable: '',
      flag: false,
      tabTaggle (taggleMenu, num) {
        this.currentTab = taggleMenu
        this.active = num
      }
      active: 0
    }
  },
  methods: {
    refsData () {
      // 请求数据需要携带的参数
      // const data = this.EpsGisMonPointId
      this.$refs.refsTabsData.refsDataTabs()
    tabTaggle (taggleMenu, num) {
      this.currentTab = taggleMenu
      this.active = num
    },
    current (currentTab) {
      currentTab = RealData
    },
    handleClick (tab, event) {
      console.log(tab, event)
    }
  }
}
</script>
<style lang="less" scoped>
.public-bounced {
  z-index: 2000;
  position: absolute;
  top: 35%;
  left: 20%;
.navigation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 5px 0;
  border-bottom: 1px #243a55 solid;
  .public-bounced-title {
    cursor: move;
    height: 0.1rem;
    padding: 10px 0;
  .navigation-left {
    display: flex;
    align-items: center;
    justify-content: space-between;
    span {
      color: #f4f7ff;
      margin: 0 15px;
      font-size: 14px;
    .uncheck {
      margin: 0 10px;
      cursor: pointer;
      padding: 5px;
      border: 1px solid #2b87c8;
      border-radius: 4px;
      text-align: center;
      color: #fff;
    }
    i {
      color: #C0C4CC;
      margin: 0 15px;
      font-size: 22px;
    .default-uncheck {
      background-color: #0e639e;
      color: #C0C0C0;
      cursor: pointer;
    }
    i:hover {
      color: #00fff6;
    .hover {
      background-color: #0e539e;
      color: #ffffff;
      cursor: pointer;
    }
    .hover:hover {
      cursor: pointer;
      padding: 5px;
      border: 1px solid #5F9EA0;
      border-radius: 4px;
      text-align: center;
      color: #F0FFFF;
    }
  }
  .public-bounced-content {
    padding: 0.1rem;
  .navigation-left :hover {
    background-color: #0e639e;
    color: #fff;
    cursor: pointer;
  }
  .navigation-right {
    display: flex;
    //align-items: center;
    //justify-content: space-around;
    align-items: center;
    .public-bounced-content-left {
      //width: 4.8rem;
    }
    .public-bounced-content-right {
      //width: 3rem;
      margin-left: 0.1rem;
    i {
      display: block;
      width: 0.1rem;
      height: 0.1rem;
      margin: 0 0.1rem 0 0.05rem;
      border-radius: 50%;
      border: 2px #ffffff solid;
    }
  }
}
.win {
.public-part {
  position: relative;
  background:@background-color;
  border: 0.8px solid #396d83;
}
.border_corner {
  z-index: 999;
  position: absolute;
  width: 10px;
  height: 10px;
  background: rgba(0, 0, 0, 0);
  border: 1.5px solid #47d5ea;
}
.border_corner_left_top {
  top: 0;
  left: 0;
  border-right: none;
  border-bottom: none;
}
.border_corner_right_top {
  top: 0;
  right: 0;
  border-left: none;
  border-bottom: none;
}
.border_corner_left_bottom {
  bottom: 0;
  left: 0;
  border-right: none;
  border-top: none;
}
.border_corner_right_bottom {
  bottom: 0;
  right: 0;
  border-left: none;
  border-top: none;
}
.tab {
  display: flex;
  border-bottom: 1px solid #396d83;
  padding:0.02rem 0.04rem;
}
.tab li {
  background-color: #243a55;
  line-height:0.15rem;
  height: 0.15rem;
  text-align: center;
  border-radius: 5px;
  margin-right: 0.04rem;
  padding:0 0.04rem;
}
.tab li.hover,
.tab li:hover {
  background-color: #0e639e;
  color: #fff;
  cursor: pointer;
}
.legend{
  position: absolute;
  top:0.05rem;
  right: 0;
  display: flex;
  justify-items: center;
}
.legend i {
  display: block;
  width: 0.2rem;
  height: 0.09rem;
  margin:0 0.1rem 0 0.05rem;
  border-radius: 0.02rem;
}
.legend span{
  line-height: 0.09rem;
  height: 0.09rem;
  background-color: @background-color;
  font-size: 0.06rem;
  font-weight: normal;
  padding: 0.04rem 0;
  border: 1px solid #396d83;
}
.public-part span:nth-child(1) {
  position: absolute;
  left: -2px;
  top: -2px;
  padding: 6px;
  border-style: solid;
  border-color: #02a6b5;
  border-width: 2px 0 0 2px;
}
.public-part span:nth-child(2) {
  position: absolute;
  right: -2px;
  top: -2px;
  padding: 6px;
  border-style: solid;
  border-color: #02a6b5;
  border-width: 2px 2px 0 0;
}
.public-part span:nth-child(3) {
  position: absolute;
  right: -2px;
  bottom: -2px;
  padding: 6px;
  border-style: solid;
  border-color: #02a6b5;
  border-width: 0 2px 2px 0;
}
.public-part span:nth-child(4) {
  position: absolute;
  left: -2px;
  bottom: -2px;
  padding: 6px;
  border-style: solid;
  border-color: #02a6b5;
  border-width: 0 0 2px 2px;
}
</style>