Newer
Older
dxdpCollect / src / components / main.vue
StephanieGitHub on 25 Apr 2020 33 KB first commit
<template>
  <div class="main-boxs">
    <div class="left-box">
      <div class="common-block gw-box">
        <div class="common-title">智慧管网</div>
        <div class="gw-ul">
          <div class="gw-li" v-for="(item,index) in gwList" :key="index">
            <div class="gwli-title" :class="item.className">{{item.name}}</div>
            <div class="gwli-info">
              <div class="gwli-total">{{item.total}}</div>
              <div class="gwli-other">
                <div class="gwli-online">在线:{{item.total}}</div>
                <div class="gwli-offline">离线:{{item.offline-item.offline}}</div>
                <div class="gwli-warn">报警:{{item.warn}}</div>
              </div>
            </div>
          </div>
          <div class="tips" v-if="$Util.isEmpty(gwList)"> 暂无数据!</div>
        </div>
      </div>
      <div class="common-block aj-box">
        <div class="common-title">智慧安监</div>
        <div class="aj-ul">
          <div class="aj-li" v-for="(item,index) in ajList" :key="index">
            <div class="ajli-icon" :class="item.className"></div>
            <div class="ajli-total">{{item.total}}</div>
            <div class="ajli-name">{{item.name}}</div>
            <div class="ajli-other">
              <div class="ajli-online"><span></span>在线:{{item.online}}</div>
              <div class="ajli-offline"><span></span>离线:{{item.offline}}</div>
              <div class="ajli-warn" v-show="false"><span></span>报警:23</div>
            </div>
          </div>
        </div>
      </div>

    </div>
    <div class="center-box">
      <div class="map-box">
        <div class="map qu-map">
          <div class="map-info" :class="screenWidth <= 1366 ?'samllSize':'normalSize'">
            <div class="map-item"  v-for="item,index in mapList" :key="index" :class="[item.className,{'active':currentCode == item.code}]" @click="initAllData(item)" @mouseenter=""  @mouseleave="">
              <div class="name-dot" v-if="false"></div><div class="name-text" v-if="false">{{item.name}}</div>
            </div>
          </div>
        </div>
      </div>
      <div class="common-block hb-box">
        <div class="common-title">智慧环保</div>
        <div class="aj-ul">
          <div class="aj-li" v-for="(item,index) in hbList" :key="index">
            <div class="ajli-icon" :class="item.className"></div>
            <div class="ajli-total">{{item.total}}</div>
            <div class="ajli-name">{{item.name}}</div>
            <div class="ajli-other">
              <div class="ajli-online"><span></span>在线:{{item.online}}</div>
              <div class="ajli-offline"><span></span>离线:{{item.total-item.online}}</div>
              <div class="ajli-warn"><span></span>报警:{{item.warn}}</div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="right-box common-block">
      <div class="common-title">产业经济</div>
      <div class="" style="color: #fff;width: calc(100% - 5px);padding-right:5px;height: 20px;font-size: 12px;text-align: right;margin-top: -10px;" v-if="false">数据截止时间: 2019-04</div>
      <div class="economic-ul">
        <div class="el-li">
          <div class="el-name">本年度累计工业总产值</div>
          <div class="el-info">
            <div class="el-total">{{gyjjTotalData.total}}</div>
            <div class="el-per" :class="gyjjTotalData.totalTb>=0?'up-red':'down-green'">{{gyjjTotalData.totalTb>=0?'+':''}}{{gyjjTotalData.totalTb}}%</div>
          </div>
        </div>
        <div class="el-li">
          <div class="el-name">{{gyjjTotalData.latestDate}}月工业总产值</div>
          <div class="el-info">
            <div class="el-total">{{gyjjTotalData.current}}</div>
            <div class="el-per" :class="gyjjTotalData.currentTb>=0?'up-red':'down-green'">{{gyjjTotalData.currentTb>=0?'+':''}}{{gyjjTotalData.currentTb}}%</div>
          </div>
        </div>
        <div class="el-li">
          <div class="el-name">本年度累计主导产业工业总产值</div>
          <div class="el-info">
            <div class="el-total">{{zdcyTotalData.total}}</div>
            <div class="el-per" :class="zdcyTotalData.totalTb>=0?'up-red':'down-green'">{{zdcyTotalData.totalTb>=0?'+':''}}{{zdcyTotalData.totalTb}}%</div>
          </div>
        </div>
        <div class="el-li">
          <div class="el-name">{{zdcyTotalData.latestDate}}月主导产业工业总产值</div>
          <div class="el-info">
            <div class="el-total">{{zdcyTotalData.current}}</div>
            <div class="el-per" :class="zdcyTotalData.currentTb>=0?'up-red':'down-green'">{{zdcyTotalData.currentTb>=0?'+':''}}{{zdcyTotalData.currentTb}}%</div>
          </div>
        </div>
        <div class="el-li">
          <div class="el-name" style="line-height: 20px;">本年度累计企业能耗值<br>(万吨标准煤)</div>
          <div class="el-info">
            <div class="el-total">{{zhnhTotalData.total}}</div>
            <div class="el-per" :class="zhnhTotalData.totalTb>=0?'up-red':'down-green'">{{zhnhTotalData.totalTb>=0?'+':''}}{{zhnhTotalData.totalTb}}%</div>
          </div>
        </div>
        <div class="el-li">
          <div class="el-name" style="line-height: 20px;">{{zhnhTotalData.latestDate}}月企业能耗值<br>(万吨标准煤)</div>
          <div class="el-info">
            <div class="el-total">{{zhnhTotalData.current}}</div>
            <div class="el-per" :class="zhnhTotalData.currentTb>=0?'up-red':'down-green'">{{zhnhTotalData.currentTb>=0?'+':''}}{{zhnhTotalData.currentTb}}%</div>
          </div>
        </div>
      </div>
      <div class="charts-box">
        <div class="tab-box">
          <div class="tab-li" :class="{active:activeTab == 'cz'}" style="width: 40%;" @click="initChartsByType('cz') ">规上工业产值行业分布图</div>
          <div class="tab-li" :class="{active:activeTab == 'qy'}" style="width: calc(30% - 1px)" @click="initChartsByType('qy')">企业发展分布图</div>
          <div class="tab-li" :class="{active:activeTab == 'nh'}" style="width: calc(30% - 1px)" @click="initChartsByType('nh')">综合能耗分布图</div>
        </div>
        <div class="chart-box" v-show="activeTab == 'cz'" id="chartsOne"></div>
        <div class="chart-box" v-show="activeTab == 'qy'" id="chartsTwo"></div>
        <div class="chart-box" v-show="activeTab == 'nh'" id="chartsThree"></div>
      </div>
    </div>
  </div>
</template>
<script>
  let month = new Date().getMonth()==0?1:new Date().getMonth()+1;
  let year = month<10?new Date().getFullYear()+"-0"+month :new Date().getFullYear()+"-"+month;
  let years = new Date().getFullYear();
  export default {
    name: 'mainPage',
    data () {
      return {
        token:null,
        gwList:[
          {"name": "液位测试仪","className":"ywcsy","total":4,"online":4,"offline":0,warn:0},
          {"name": "井盖状态监测仪","className":"jgzt", "total":30,"online":30,"offline":0,warn:0},
          {"name": "有害气体监测仪","className":"yhqt", "total":36,"online":36,"offline":0,warn:0},
          {"name": "数据集中器","className":"sjjzq", "total":300,"online":300,"offline":0,warn:0},
          {"name": "噪声记录仪","className":"zsjly", "total":30,"online":30,"offline":0,warn:0},
          {"name": "燃气智能检测综端","className":"rqznjczd", "total":20,"online":20,"offline":0,warn:0},
        ],
        ajList:[
          {"name": "球形摄像头","className":"qx","total":58,"online":58,"offline":0 },
          {"name": "枪机摄像头","className":"qj", "total":16,"online":16,"offline":0},
        ],
        hbList:[
          {"name": "空气质量监测仪","className":"kqzl","total":1,"online":1,"offline":0,"warn":0},
          {"name": "噪声扬尘监测仪","className":"zsyc", "total":10,"online":10,"offline":0,"warn":0},
          {"name": "烟气排放监测仪","className":"yqpf", "total":1,"online":1,"offline":0,"warn":0},
          {"name": "水质监测设备","className":"szjc", "total":3,"online":3,"offline":0,"warn":0},
        ],
        currentCode:'',
        mapList:[
          {name:'科技孵化园',className:'kjfhy',code:'361003406003'},
          {name:'大富工业园',className:'df',code:'361003406004'},
          {name:'浅水湾工业园',className:'qsw',code:'361003406002'},
          {name:'东山工业园',className:'ds',code:'361003406005'},
          {name:'渊山岗工业园',className:'ysg',code:'361003406001'},
        ],
        timeFilter:[new Date().format("yyyy-")+"01",new Date().format("yyyy-MM")],
        gyjjTotalData:{total:0,current: 0,currentTb: 0,totalTb: 0,latestDate:''},
        zdcyTotalData:{total: 0,current: 0,currentTb: 0,totalTb: 0,latestDate:''},
        zhnhTotalData:{total: 0,current: 0,currentTb: 0,totalTb: 0,latestDate:''},
        activeTab:'cz',
        chartsTitle:{ left:'',right:''},
        year:new Date(year).format("yyyy"),
        defaultOp:{
          title: { show: false },
          legend:{show:false,height:"0"},
          /*grid:{top:30,bottom:30},*/
          tooltip: {
            trigger: 'axis',
            axisPointer: {
              type: 'cross',
              label: {
                backgroundColor: '#777'
              },
              crossStyle: {
                color: 'rgba(255,255,255,.8)',
              }
            }
          },
          xAxis: {
            axisLabel:{color:'rgba(255,255,255,.9)',interval:1},
            axisLine:{lineStyle:{color:'rgba(255,255,255,.3)'}},
            splitLine:{lineStyle:{color:'rgba(255,255,255,.1)'}}
          }
        },
        screenWidth: document.body.clientWidth, // 屏幕尺寸
        timer:null,
        /**/
        ajData:{
          allList:[
            {"name": "球形摄像头","className":"qx","total":16,"online":14,"offline":2 },
            {"name": "枪机摄像头","className":"qj", "total":58,"online":52,"offline":4},
          ],
          kjfhyList:[
            {"name": "球形摄像头","className":"qx","total":6,"online":6,"offline":0 },
            {"name": "枪机摄像头","className":"qj", "total":2,"online":2,"offline":0},
          ],
          dfList:[
            {"name": "球形摄像头","className":"qx","total":7,"online":7,"offline":0 },
            {"name": "枪机摄像头","className":"qj", "total":2,"online":2,"offline":0},
          ],
          qswList:[
            {"name": "球形摄像头","className":"qx","total":5,"online":5,"offline":0 },
            {"name": "枪机摄像头","className":"qj", "total":1,"online":1,"offline":0},
          ],
          dsList:[
            {"name": "球形摄像头","className":"qx","total":8,"online":8,"offline":0 },
            {"name": "枪机摄像头","className":"qj", "total":2,"online":2,"offline":0},
          ],
          ysgList:[
            {"name": "球形摄像头","className":"qx","total":30,"online":30,"offline":0 },
            {"name": "枪机摄像头","className":"qj", "total":9,"online":9,"offline":0},
          ],
        },


      }
    },
    created (){
      this.token = JSON.parse(sessionStorage.getItem("token"))
      this.initData();
    },
    mounted () {
      const that = this
      window.screenWidth = document.body.clientWidth
      that.screenWidth = window.screenWidth
      window.onresize = () => {
        return (() => {
          window.screenWidth = document.body.clientWidth
          that.screenWidth = window.screenWidth
        })()
      }
      that.$nextTick(function () {
        that.timer = setInterval(that.initThree,180000)
      })
    },
    beforeDestroy() {
      if(this.timer) { //如果定时器还在运行 或者直接关闭,不用判断
        clearInterval(this.timer); //关闭
      }
    },
    methods:{
        resetData(){

        },
      initData(){
        let vm = this;
        this.initEconomic();
        this.gethbData();
        this.getGwData();
        this.getAjData();
        // if(vm.currentCode =='361003406003'){
        //   vm.ajList=vm.ajData.kjfhyList;
        // }else if(vm.currentCode =='361003406004'){
        //   vm.ajList=vm.ajData.dfList;
        // }else if(vm.currentCode =='361003406002'){
        //   vm.ajList=vm.ajData.qswList;
        // }else if(vm.currentCode =='361003406005'){
        //   vm.ajList=vm.ajData.dsList;
        // }else if(vm.currentCode =='361003406001'){
        //   vm.ajList=vm.ajData.ysgList;
        //   for(const item of vm.ajList){
        //       if(item.name==='枪机摄像头' && item.total>0){
        //           item.online = item.total - 4
        //           item.offline = 4
        //       }else{
        //           item.online = item.total - 2
        //           item.offline = 2
        //       }
        //   }
        // }else{
        //   vm.ajList= vm.ajData.allList;
        //   // 假数据
        //   for(const item of vm.ajList){
        //       if(item.name==='枪机摄像头' && item.total>0){
        //           item.online = item.total - 4
        //           item.offline = 4
        //       }else{
        //           item.online = item.total - 2
        //           item.offline = 2
        //       }
        //   }
        // }
        // console.log(ajList)


      },
      initThree(){
        this.gethbData();
        this.getGwData();
        this.getAjData()
      },
      initAllData(data){
        let vm = this;
        if(vm.$Util.isEmpty(vm.currentCode) ||  vm.currentCode !== data.code){
          vm.currentCode = data.code;
        }else{
          vm.currentCode = '';
        }
        vm.initData();
      },
      getGwData(){
        let vm = this;
        vm.$http.post('/baseService/gw/getData.do?areaCode='+vm.currentCode,{}).then(function (resp) {
          let t = resp.data
          vm.gwList = t.gw;
          /*if(t.status == 1){
            vm.hbList = t.retContent;
          }*/
        })
      },
      gethbData(){
        let vm = this;
        vm.$http.post('/smartdx/info/web/macInfo?ssyq='+vm.currentCode).then(function (resp) {
          let t = resp.data
          if(t.status == 1){
            vm.hbList = t.retContent;
            // 假数据
            for(const item of vm.hbList){
                if(item.name==='烟气排放监测仪' && item.total>0){
                }else{
                    item.online = item.total
                    item.offline = 0
                }
            }
          }
        })
      },
      getAjData(){
        let vm = this;
        vm.$http.get('/bmsVideo/videoList',{params:{areaCode:vm.currentCode}}).then(function (resp) {
          let _data = resp.data;
          if(_data.code === 200 && !vm.$Util.isEmpty(_data.aj)) {
            // 假数据
            if(vm.currentCode =='361003406001'||vm.currentCode=='') {
                for (const item of _data.aj) {
                    if (item.name === '枪机摄像头') {
                        item.online = item.total - 4
                        item.offline = 4
                    } else if(item.name === '球形摄像头'){
                        item.online = item.total - 2
                        item.offline = 2
                    }
                }
            }else{
                for (const item of _data.aj) {
                    item.online = item.total
                    item.offline = 0
                }
            }vm.ajList = _data.aj;
            console.log(vm.ajList)
          }
        })
      },
      /*产业经济*/
      initEconomic(){
        let vm = this;
        vm.getGyjjTotalData();
        vm.getZdcyTotalData();
        vm.getZhnhTotalData();
        if (vm.activeTab =='qy'){  vm.getTwoData(); }else if(vm.activeTab =='nh'){ vm.getThreeData(); }else{ vm.getCzData(); }
      },
      getGyjjTotalData(){
        let vm = this;
        vm.$http.get('/dx-economy-api/subject/gyjj/total',{params:{year:vm.year,plat:vm.currentCode}}).then(function (resp) {
          let _data = resp.data;
          if(_data.code === 200 && !vm.$Util.isEmpty(_data.data)) {
            let t = resp.data.data
            vm.gyjjTotalData = t;
          }
        })
      },
      getZdcyTotalData(){
        let vm = this;
        vm.$http.get('/dx-economy-api/subject/zdcy/total',{params:{year:vm.year,plat:vm.currentCode}}).then(function (resp) {
          let _data = resp.data;
          if(_data.code === 200 && !vm.$Util.isEmpty(_data.data)) {
            let t = resp.data.data
            vm.zdcyTotalData = t;
          }
        })
      },
      getZhnhTotalData(){
        let vm = this;
        vm.$http.get('/dx-economy-api/subject/zhnh/total',{params:{year:vm.year,plat:vm.currentCode}}).then(function (resp) {
          let _data = resp.data;
          if(_data.code === 200 && !vm.$Util.isEmpty(_data.data)) {
            vm.zhnhTotalData = _data.data;
          }
        })
      },
      initChartsByType(tab){
        if (tab =='qy'){
          this.getTwoData();
        }else if(tab =='nh'){
          this.getThreeData();
        }else{
          this.getCzData();
        }
        this.activeTab = tab;

      },
      getCzData(){
        let vm = this;
        let _start = vm.year +'-01',_end =  vm.timeFilter[1];
        vm.$http.get('/dx-economy-api/zhyxCharts/czhy',{params:{startDate:_start,endDate:_end,plat:vm.currentCode}}).then(function (resp) {
          let _data = resp.data;
          if(_data.code === 200 && !vm.$Util.isEmpty(_data.data)) {
            let t = resp.data.data
            vm.chartsTitle.left = '总产值(亿元)';
            vm.draw('chartsOne', t.xAxis, t.value);
          }
        })
      },
      getTwoData(){
        let vm = this;
        let _start = vm.year +'-01',_end =  vm.timeFilter[1];
        vm.$http.get('/dx-economy-api/zhyxCharts/qyfz',{params:{startDate:_start,endDate:_end,plat:vm.currentCode}}).then(function (resp) {
          let _data = resp.data;
          if(_data.code === 200 && !vm.$Util.isEmpty(_data.data)) {
            let t = resp.data.data
            vm.chartsTitle.left = '金额(万元)';
            vm.draw('chartsTwo', t.xAxis, t.value);
          }
        })
      },
      getThreeData(){
        let vm = this;
        let _start = vm.year +'-01',_end =  vm.timeFilter[1];
        vm.$http.get('/dx-economy-api/zhyxCharts/zhnh',{params:{startDate:_start,endDate:_end,plat:vm.currentCode}}).then(function (resp) {
          let _data = resp.data;
          if(_data.code === 200 && !vm.$Util.isEmpty(_data.data)) {
            let t = resp.data.data
            vm.chartsTitle.left = '吨标准煤';
            vm.chartsTitle.right = '同比(%)';
            vm.drawLine('chartsThree', t.xAxis, t.value, null, t.value2);
          }
        })
      },
      drawLine(container,cate,d1,d2,d3){
        let vm = this
        let myChart = vm.$echarts.init(document.getElementById(container))
        let op = {
          xAxis: {
            type:"category",
            data: cate,
            axisLine:{lineStyle:{color:'rgba(255,255,255,.3)'}}
          },
          grid:{top:30,bottom:30},
          yAxis:[
            {
              type: 'value',
              name: vm.chartsTitle.left,
              /*minInterval: 10,*/
              nameTextStyle:{color:'rgba(255,255,255,.8)'},
              axisLabel:{
                color:'rgba(255,255,255,.8)',
                formatter: function (value) {
                  let texts = [];
                  if(value<1000){
                    texts.push(value)
                  }else if(Math.ceil(value/1000)>=1&&Math.ceil(value/1000)<10){
                    texts.push(Math.ceil(value/1000) + "千")
                  }else if(Math.ceil(value/10000)>=1&&Math.ceil(value/10000)<100){
                    texts.push(Math.ceil(value/10000) + "万")
                  }else if(Math.ceil(value/1000000)>=1){
                    texts.push(Math.ceil(value/1000000) + "百万")
                  }
                  return texts
                }},
              axisLine:{lineStyle:{color:'rgba(255,255,255,.3)'}},
              splitLine:{lineStyle:{color:'rgba(255,255,255,.1)'}}
            },
            {
              type: 'value',
              name: vm.chartsTitle.right,
              /*minInterval: 100,*/
              nameTextStyle:{color:'rgba(255,255,255,.8)'},
              axisLabel:{color:'rgba(255,255,255,.8)'},
              axisLine:{lineStyle:{color:'rgba(255,255,255,.3)'}},
              splitLine:{show:false}
            }
          ],
          series: [
            {
              name: vm.chartsTitle.left,
              type: 'bar',
              color:"#6ee988",
              data: d1,//[100,200,33,56,188,123,143,23,99],//res.zcz
              itemStyle: {
                color: {
                  type: 'linear', x: 0, y: 0, x2: 0, y2: 1,
                  colorStops: [{
                    offset: 0, color: '#6ee988' // 0% 处的颜色
                  }, {
                    offset: 1, color: '#6ee988' // 100% 处的颜色
                  }]
                }
              }
            },
            {
              name: vm.chartsTitle.left,
              type: 'bar',
              color:"#16e1ff",
              data: d2,//[100,200,33,56,188,123,143,23,99],//res.zcz
              itemStyle: {
                color: {
                  type: 'linear', x: 0, y: 0, x2: 0, y2: 1,
                  colorStops: [{
                    offset: 0, color: '#16e1ff' // 0% 处的颜色
                  }, {
                    offset: 1, color: '#16e1ff' // 100% 处的颜色
                  }]
                }
              }
            },
            {
              name: vm.chartsTitle.right,
              type: 'line',
              yAxisIndex: 1,
              color:"#e0e63d",
              data: d3,//[10,20,30,44,77,55,66,22,100],//res.tb
              areaStyle: {
                color: {
                  type: 'linear', x: 0, y: 0, x2: 0, y2: 1,
                  colorStops: [{
                    offset: 0, color: '#e0e63d' // 0% 处的颜色
                  }, {
                    offset: 1, color: 'rgba(255,255,255,0)' // 100% 处的颜色
                  }]
                }
              }
            }]
        }
        myChart.setOption($.extend(true,op,vm.defaultOp));
      },
      draw(container,cate,d1,d2,d3){
        let vm = this
        let myChart = vm.$echarts.init(document.getElementById(container))
        let op = {
          xAxis: {
            type:"category",
            data: cate,
            axisLine:{lineStyle:{color:'rgba(255,255,255,.3)'}}
          },
          grid:{top:30,bottom:30,right:10},
          yAxis:[
            {
              type: 'value',
              name: vm.chartsTitle.left,
              /*minInterval: 10,*/
              nameTextStyle:{color:'rgba(255,255,255,.8)'},
              axisLabel:{
                color:'rgba(255,255,255,.8)',
                formatter: function (value) {
                  let texts = [];
                  if(value<1000){
                    texts.push(value)
                  }else if(Math.ceil(value/1000)>=1&&Math.ceil(value/1000)<10){
                    texts.push(Math.ceil(value/1000) + "千")
                  }else if(Math.ceil(value/10000)>=1&&Math.ceil(value/10000)<100){
                    texts.push(Math.ceil(value/10000) + "万")
                  }else if(Math.ceil(value/1000000)>=1){
                    texts.push(Math.ceil(value/1000000) + "百万")
                  }
                  return value
                }},
              axisLine:{lineStyle:{color:'rgba(255,255,255,.3)'}},
              splitLine:{lineStyle:{color:'rgba(255,255,255,.1)'}}
            }
          ],
          series: [
            {
              name: vm.chartsTitle.left,
              type: 'bar',
              color:"#6ee988",
              data: d1,//[100,200,33,56,188,123,143,23,99],//res.zcz
              itemStyle: {
                color: {
                  type: 'linear', x: 0, y: 0, x2: 0, y2: 1,
                  colorStops: [{
                    offset: 0, color: '#6ee988' // 0% 处的颜色
                  }, {
                    offset: 1, color: '#6ee988' // 100% 处的颜色
                  }]
                }
              }
            }
            ]
        }
        myChart.setOption($.extend(true,op,vm.defaultOp));
      }
    },
  }
</script>
<style scoped>
  .main-boxs{width: 100%;height: 100%;}
  .left-box{width: 412px;height: calc(100% - 10px);padding-top: 10px;float: left;}
  .center-box{width:calc(100% - 814px);height: calc(100% - 10px);float: left;margin:0 10px;}
  .right-box{width:380px;height: calc(100% - 8px);margin-top: 10px;float: right;}
  .common-block{border:1px solid #085ba8;background: rgba(8,91,168,0.05);}
  .common-title{width: 100%;height:34px;line-height:38px;background: url("../assets/images/index/titlebg.png") no-repeat center top;color:#ec9c45;text-align: center;font-size: 16px;margin-top: -3px;}
  .gw-box{width: calc(100% - 12px);height:calc(100% - 240px);padding: 0 6px;}
  .gw-ul{width:100%;height: calc(100% - 34px);}
  .gw-li{width: calc(50% - 15px);height:calc(100% / 3 - 10px);margin:0 0px 10px 0;float: left;padding: 0 5px;border:1px solid #034d81;background: rgba(8,91,168,0.2); }
  .gw-li:nth-child(2n+1){margin-right:6px;}
  .gwli-title{width: calc(100% - 36px);height:30px;line-height:30px;padding-left:36px;color:#20dbfd;}
  .gwli-title.ywcsy{background: url("../assets/images/index/gw1.png") no-repeat left center;background-size:auto 120%;}
  .gwli-title.jgzt{background: url("../assets/images/index/gw2.png") no-repeat left center;background-size:auto 120%;}
  .gwli-title.yhqt{background: url("../assets/images/index/gw3.png") no-repeat left center;background-size:auto 120%;}
  .gwli-title.sjjzq{background: url("../assets/images/index/gw4.png") no-repeat left center;background-size:auto 120%;}
  .gwli-title.zsjly{background: url("../assets/images/index/gw5.png") no-repeat left center;background-size:auto 120%;}
  .gwli-title.rqznjczd{background: url("../assets/images/index/gw6.png") no-repeat left center;background-size:auto 120%;}
  .gwli-info{width: 100%;height:calc(100% -  30px);}
  .gwli-info>div{float: left;}
  .gwli-total{color: #20dbfd;font-size:27px;width: calc(100% - 100px);font-family:'Century';text-shadow:0px 0px 13px rgba(0,198,255,.8);}
  .gwli-other{width: 100px;height: 100%;display: flex;flex-flow: column;float: right;}
  .gwli-other>div{width:calc(100% - 22px);padding-left: 22px;color: #fff;font-size: 12px;display: flex;flex: 1;align-items: center;}
  .gwli-online{background: url("../assets/images/index/online.png") no-repeat left center; }
  .gwli-offline{background: url("../assets/images/index/offline.png") no-repeat left center;}
  .gwli-warn{background: url("../assets/images/index/warn.png") no-repeat left center;}
  .aj-box{width: calc(100% - 12px);height:230px;padding: 0 6px;margin-top: 10px;}
  .aj-ul{width: 100%;height:calc(100% - 38px);}
  .aj-box .aj-li{width: calc(50% - 18px);height:calc(100% - 30px);margin:30px 6px 0px 0;float: left;padding: 0 5px;border:1px solid #034d81;background: rgba(8,91,168,0.2);}
  .ajli-icon{width: 57px;height: 65px;margin: -33px auto 0;}
  .ajli-icon.qx{background: url("../assets/images/index/ajball.png") no-repeat center;}
  .ajli-icon.qj{background: url("../assets/images/index/ajq.png") no-repeat center;}
  .ajli-icon.kqzl{background: url("../assets/images/index/hbAir.png") no-repeat center;}
  .ajli-icon.zsyc{background: url("../assets/images/index/hbNoice.png") no-repeat center;}
  .ajli-icon.yqpf{background: url("../assets/images/index/hbYan.png") no-repeat center;}
  .ajli-icon.szjc{background: url("../assets/images/index/hbWater.png") no-repeat center;}
  .ajli-total{width: 100%;color: #20dbfd;height: 30px;line-height:20px;font-size:27px;width:100%;font-family:'Century';text-shadow:0px 0px 13px rgba(0,198,255,.8);text-align: center;}
  .ajli-name{width: 100%;color: #20dbfd;height:24px;line-height:24px;text-align: center;}
  .ajli-other{width: 100%;height: calc(100% - 100px);text-align: center;display: flex;flex-flow: column}
  .ajli-other>div{width:100%;color: #fff;font-size: 12px;display: flex;flex: 1;align-items: center;justify-content: center;text-align: center;}
  .ajli-online span{width:20px;height: 16px;background: url("../assets/images/index/online.png") no-repeat left center; }
  .ajli-offline span{width:20px;height: 16px;background: url("../assets/images/index/offline.png") no-repeat left center;}
  .ajli-warn span{width:20px;height: 16px;background: url("../assets/images/index/warn.png") no-repeat left center;}
  /*map*/
  .map-box{width: 100%;height: calc(100% - 218px);overflow-x: hidden;margin-bottom:0px;position: relative;}
  .hb-box{width: calc(100% - 12px);height:230px;padding: 0 6px;}
  .hb-box .aj-li{width: calc(100% /4 - 18px);height:calc(100% - 30px);margin:30px 6px 0px 0;float: left;padding: 0 5px;border:1px solid #034d81;background: rgba(8,91,168,0.2);}
  /*产业经济*/
  .economic-ul{height:290px;width: calc(100% - 12px);padding:0 6px;margin-bottom: 20px;}
  .el-li{width: calc(50% - 15px);/*height:calc(100% / 3 - 10px);*/height:88px;margin:0 0px 10px 0;float: left;padding: 0 5px;border:1px solid #034d81;background: rgba(8,91,168,0.2); }
  .el-li:nth-child(2n+1){margin-right: 6px;}
  .el-name{width:100%;height:30px;line-height:30px;font-size: 12px;color:#20dbfd;}
  .el-info{width: 100%;height: calc(100% - 40px);}
  .el-info>div{float: left}
  .el-total{color: #20dbfd;font-size:27px;line-height: 60px;width: calc(100% - 55px);font-family:'Century';text-shadow:0px 0px 13px rgba(0,198,255,.8);}
  .el-per{width:54px;float: right;line-height:70px;text-align: right}
  .el-per.up-red{color:#ff0000;}
  .el-per.down-green{color:#12fe81;}
  .charts-box{height: calc(100% - 336px - 10px);width:calc(100% - 12px);padding:0 6px;overflow-y:hidden;}
  .tab-box{width:calc(100% - 2px);border:1px solid #034d82;height: 42px;text-align: center;}
  .tab-li{float: left;height: 42px;line-height: 42px;width: calc(100% / 3 - 1px);border-right:1px solid #034d82;color: #fff;font-size: 12px;background:rgba(8,91,168,0.3);cursor: pointer}
  .tab-li:last-child{border-right: 0px;width: calc(100% / 3);}
  .tab-li.active{color: #ec9c45;background:rgba(8,91,168,0.5);}
  .chart-box{width:calc(100% - 10px);height: calc(100% - 54px);background:rgba(8,91,168,0.2);padding: 5px;}

  .map-info{width: 360px;height:270px;position:absolute;top:calc(50% - 120px);left:calc(50% - 165px);}


  .map-info.samllSize{width:260px;height:230px;position:absolute;top:calc(50% - 96px);left:calc(50% - 130px);}
  .map-info.normalSize{width:400px;height:340px;position:absolute;top:calc(50% - 180px);left:calc(50% - 200px);}
  .map{width: 100%;height: 100%}
  .map{/*width:400px;height:368px;position:absolute;top:calc(50% - 200px);left:calc(50% - 200px);*/background:url("../assets/images/map.png") no-repeat center;background-size:auto 108%;}
  .map-item{position: absolute;z-index: 0;text-align: center;}
  .map-item:hover{cursor:pointer;}
  .samllSize .map-item.kjfhy{width:48px;height: 73px;top:34px;left:72px;background:url("../assets/images/small/kjfhy.png") no-repeat;}
  .samllSize .map-item.kjfhy:hover,.samllSize .map-item.kjfhy.active{width:54px;height: 73px;top:34px;left:69px;background:url("../assets/images/small/kjfhyOn.png") no-repeat;}
  .samllSize .map-item.df{width: 56px;height: 54px;top:36px;left:104px;background:url("../assets/images/small/df.png") no-repeat;}
  .samllSize .map-item.df:hover,.samllSize .map-item.df.active{width: 59px;height: 59px;top:31px;left: 104px;background:url("../assets/images/small/dfOn.png") no-repeat;}
  .samllSize .map-item.qsw{width:43px;height:41px;top:30px;left:172px;background:url("../assets/images/small/qsw.png") no-repeat;}
  .samllSize .map-item.qsw:hover,.samllSize .map-item.qsw.active{width:44px;height:46px;top:25px;left:172px;background:url("../assets/images/small/qswOn.png") no-repeat;}
  .samllSize .map-item.ds{width: 71px;height: 65px;top:95px;left:34px;background:url("../assets/images/small/ds.png") no-repeat;}
  .samllSize .map-item.ds:hover,.samllSize .map-item.ds.active{width: 71px;height: 71px;top:89px;left: 34px;background:url("../assets/images/small/dsOn.png") no-repeat;}
  .samllSize .map-item.ysg{width: 103px;height: 86px;top:140px;left:55px;background:url("../assets/images/small/ysg.png") no-repeat;}
  .samllSize .map-item.ysg:hover,.samllSize .map-item.ysg.active{width: 109px;height: 91px;top:135px;left: 55px;background:url("../assets/images/small/ysgOn.png") no-repeat;}

  .normalSize .map-item.kjfhy{width:71px;height: 94px;top:85px;left:105px;background:url("../assets/images/normal/kjfhy.png") no-repeat;}
  .normalSize .map-item.kjfhy:hover,.normalSize .map-item.kjfhy.active{width:71px;height: 97px;top:82px;left: 105px;background:url("../assets/images/normal/kjfhyOn.png") no-repeat;}
  .normalSize .map-item.df{width: 74px;height: 71px;top:83px;left:166px;background:url("../assets/images/normal/df.png") no-repeat;}
  .normalSize .map-item.df:hover,.normalSize .map-item.df.active{width: 125px;height: 123px;top:78px;left: 166px;background:url("../assets/images/normal/dfOn.png") no-repeat;}
  .normalSize .map-item.qsw{width:57px;height:51px;top:80px;left: 254px;background:url("../assets/images/normal/qsw.png") no-repeat;}
  .normalSize .map-item.qsw:hover,.normalSize .map-item.qsw.active{width:97px;height:102px;top:74px;left:254px;background:url("../assets/images/normal/qswOn.png") no-repeat;}
  .normalSize .map-item.ds{width: 96px;height: 89px;top:164px;left:55px;background:url("../assets/images/normal/ds.png") no-repeat;}
  .normalSize .map-item.ds:hover,.normalSize .map-item.ds.active{width: 148px;height: 139px;top:159px;left: 55px;background:url("../assets/images/normal/dsOn.png") no-repeat;}
  .normalSize .map-item.ysg{width: 145px;height: 120px;top:230px;left:85px;background:url("../assets/images/normal/ysg.png") no-repeat;}
  .normalSize .map-item.ysg:hover,.normalSize .map-item.ysg.active{width: 196px;height: 171px;top:225px;left: 85px;background:url("../assets/images/normal/ysgOn.png") no-repeat;}

</style>