ll
liukangdong
2024-12-24 abfe6985b2678445ea8da974b204d9fe2ffdb887
screen/src/views/EnergyConsum.vue
@@ -1,241 +1,290 @@
<template>
  <div class="main_app">
    <img src="@/assets/images/bg_main_app.png" class="main_bg" alt="" />
    <div class="main_header">
      <img src="@/assets/images/maintitle@2x.png" class="main_header_bg" alt="" />
      <div class="title">安泰智慧物流园区-绿色低碳运营</div>
      <div class="time">
        <span class="date">{{ date }}</span>
        <span class="week">{{ week }}</span>
        <span class="time">{{ time }}</span>
      </div>
    </div>
    <div class="main_content">
      <div class="left_box">
        <div class="left_box_one">
          <div class="com_header">
            <div class="title">
              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
              <div>实时三相电流/电压</div>
            </div>
            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
          </div>
          <div class="content">
            <div class="item">
              <div class="lab">A相电流(A)</div>
              <div class="val">60</div>
            </div>
            <div class="item">
              <div class="lab">B相电流(A)</div>
              <div class="val">60</div>
            </div>
            <div class="item">
              <div class="lab">C相电流(A)</div>
              <div class="val">60</div>
            </div>
            <div class="item">
              <div class="lab">有功功率(KW)</div>
              <div class="val">60</div>
            </div>
            <div class="item">
              <div class="lab">功率因数</div>
              <div class="val">60</div>
            </div>
            <div class="item">
              <div class="lab">有功电度(°)</div>
              <div class="val">60</div>
            </div>
          </div>
        </div>
        <div class="left_box_two">
          <div class="com_header">
            <div class="title">
              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
              <div>实时负荷曲线</div>
            </div>
            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
          </div>
          <div class="load_wrap">
            <div class="loadRef"></div>
          </div>
        </div>
        <div class="left_box_three">
          <div class="com_header">
            <div class="title">
              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
              <div>月能耗分析</div>
            </div>
            <div class="tabs">
              <div class="tab active">用电</div>
              <div class="separate"></div>
              <div class="tab">用水</div>
              <div class="separate"></div>
              <div class="tab">用气</div>
            </div>
            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
          </div>
          <div class="energy_wrap">
            <div class="energyRef"></div>
          </div>
  <v-scale-screen width="1920" height="960">
    <div class="main_app">
      <img src="@/assets/images/bg_main_app.png" class="main_bg" alt="" />
      <div class="main_header">
        <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" />
        <div class="title">安泰智慧物流园区-绿色低碳运营</div>
        <div class="time_wrap">
          <span class="date">{{ date }}</span>
          <span class="week">{{ week }}</span>
          <span class="time">{{ time }}</span>
        </div>
      </div>
      <div class="center_box">
        <div class="center_box_one">
          <div class="list">
            <div class="item">
              <div class="header">
                <img class="icon" src="@/assets/images/ic_yongdian@2x.png" alt="" />
                <div class="content">
                  <div class="name">上月用电(kw·h)</div>
                  <div class="num">450</div>
      <div class="main_content">
        <div class="left_box">
          <div class="left_box_one">
            <div class="com_header">
              <div class="title">
                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
                <div>本年累计循环烟箱</div>
              </div>
              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
            </div>
            <div class="content">
              <img src="@/assets/images/nenghao_ic1.png" class="co2" alt="">
              <div>
                <div class="name">本年累计循环烟箱</div>
                <div><span class="num" style="color: #68cfb2;" v-if="data1.smokeBoxTotal || data1.smokeBoxTotal == 0">{{
                  data1.smokeBoxTotal.toLocaleString()
                    }}</span><span>个</span></div>
              </div>
            </div>
          </div>
          <div class="left_box_two">
            <div class="com_header">
              <div class="title">
                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
                <div>实时负荷曲线</div>
              </div>
              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
            </div>
            <div class="load_wrap">
              <div class="loadRef"></div>
            </div>
            <!-- <div v-show="data4.length == 0" class="empty_wrap load_wrap">
              <img src="@/assets/images/default_empty.png" alt="">
            </div> -->
          </div>
          <div class="left_box_three">
            <div class="com_header">
              <div class="title">
                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
                <div>月能耗分析</div>
              </div>
              <div class="tabs">
                <div class="tab" :class="{ active: activeTab2 == 0 }" @click="tabsClick2(0)">用水</div>
                <div class="separate"></div>
                <div class="tab" :class="{ active: activeTab2 == 3 }" @click="tabsClick2(3)">用电</div>
                <div class="separate"></div>
                <div class="tab" :class="{ active: activeTab2 == 1 }" @click="tabsClick2(1)">用气</div>
              </div>
              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
            </div>
            <div class="energy_wrap">
              <div class="energyRef"></div>
            </div>
          </div>
        </div>
        <div class="center_box">
          <div class="center_box_one">
            <div class="list">
              <div class="item">
                <div class="header">
                  <img class="icon" src="@/assets/images/ic_yongdian@2x.png" alt="" />
                  <div class="content">
                    <div class="name">上月用电(kw·h)</div>
                    <div class="num" v-if="data1.electricityQuantity">{{
                      data1.electricityQuantity.total.toLocaleString() }}
                    </div>
                  </div>
                </div>
                <div class="static" v-if="data1.electricityQuantity">
                  <span class="lab">同比</span>
                  <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.sameNum" class="icon"
                    src="@/assets/images/ic_up.webp" alt="" />
                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
                  <span class="val"
                    v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{
                      Math.abs(((data1.electricityQuantity.totalNum -
                        data1.electricityQuantity.sameNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
                    }}%</span>
                  <span class="val" v-else style="margin-left: 4px;"> -</span>
                  <span class="lab">环比</span>
                  <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.ringNum" class="icon"
                    src="@/assets/images/ic_up.webp" alt="" />
                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
                  <span class="val"
                    v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{
                      Math.abs(((data1.electricityQuantity.totalNum -
                        data1.electricityQuantity.ringNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
                    }}%</span>
                  <span class="val" v-else style="margin-left: 4px;"> -</span>
                </div>
              </div>
              <div class="static">
                <span class="lab">同比</span>
                <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
                <span class="val">11</span>
                <span class="lab">环比</span>
                <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
                <span class="val">11</span>
              </div>
            </div>
            <div class="item">
              <div class="header">
                <img class="icon" src="@/assets/images/ic_yongshui@2x.png" alt="" />
                <div class="content">
                  <div class="name">上月用水(t)</div>
                  <div class="num">450</div>
              <div class="item">
                <div class="header">
                  <img class="icon" src="@/assets/images/ic_yongshui@2x.png" alt="" />
                  <div class="content">
                    <div class="name">上月用水(t)</div>
                    <div class="num" v-if="data1.waterQuantity">{{ data1.waterQuantity.total.toLocaleString() }}</div>
                  </div>
                </div>
                <div class="static" v-if="data1.waterQuantity">
                  <span class="lab">同比</span>
                  <template v-if="data1.waterQuantity.sameNum">
                    <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.sameNum" class="icon"
                      src="@/assets/images/ic_up.webp" alt="" />
                    <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
                  </template>
                  <span class="val" v-if="data1.waterQuantity.sameNum && data1.waterQuantity.sameNum != 0">{{
                    Math.abs(((data1.waterQuantity.totalNum -
                      data1.waterQuantity.sameNum) / data1.waterQuantity.sameNum * 100).toFixed(1)) }}%</span>
                  <span class="val" v-else style="margin-left: 4px;">-</span>
                  <span class="lab">环比</span>
                  <template v-if="data1.waterQuantity.ringNum">
                    <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.ringNum" class="icon"
                      src="@/assets/images/ic_up.webp" alt="" />
                    <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
                  </template>
                  <span class="val" v-if="data1.waterQuantity.ringNum && data1.waterQuantity.ringNum != 0">{{
                    Math.abs(((data1.waterQuantity.totalNum -
                      data1.waterQuantity.ringNum) / data1.waterQuantity.ringNum * 100).toFixed(1)) }}%</span>
                  <span class="val" v-else style="margin-left: 4px;">-</span>
                </div>
              </div>
              <div class="static">
                <span class="lab">同比</span>
                <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
                <span class="val">11</span>
                <span class="lab">环比</span>
                <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
                <span class="val">11</span>
              </div>
            </div>
            <div class="item">
              <div class="header">
                <img class="icon" src="@/assets/images/ic_yongqi@2x.png" alt="" />
                <div class="content">
                  <div class="name">上月用气(t)</div>
                  <div class="num">450</div>
              <div class="item">
                <div class="header">
                  <img class="icon" src="@/assets/images/ic_yongqi@2x.png" alt="" />
                  <div class="content">
                    <div class="name">上月用气(m³)</div>
                    <div class="num" v-if="data1.gasQuantity">{{ data1.gasQuantity.total.toLocaleString() }}</div>
                  </div>
                </div>
                <div class="static" v-if="data1.gasQuantity">
                  <span class="lab">同比</span>
                  <template v-if="data1.gasQuantity.sameNum">
                    <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.sameNum" class="icon"
                      src="@/assets/images/ic_up.webp" alt="" />
                    <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
                  </template>
                  <span class="val" v-if="data1.gasQuantity.totalNum && data1.gasQuantity.totalNum != 0">{{
                    Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.sameNum) / data1.gasQuantity.totalNum
                      * 100).toFixed(1))
                  }}%</span>
                  <span class="val" v-else style="margin-left: 4px;">-</span>
                  <span class="lab">环比</span>
                  <template v-if="data1.gasQuantity.sameNum">
                    <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.ringNum" class="icon"
                      src="@/assets/images/ic_up.webp" alt="" />
                    <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
                  </template>
                  <span class="val" v-if="data1.gasQuantity.totalNum && data1.gasQuantity.totalNum != 0">{{
                    Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.ringNum) / data1.gasQuantity.totalNum
                      * 100).toFixed(1))
                  }}%</span>
                  <span class="val" v-else style="margin-left: 4px;">-</span>
                </div>
              </div>
              <div class="static">
                <span class="lab">同比</span>
                <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
                <span class="val">11</span>
                <span class="lab">环比</span>
                <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
                <span class="val">11</span>
            </div>
          </div>
          <div class="center_box_two">
            <img class="bg" src="@/assets/images/img_city@2x.png" alt="" />
            <template v-if="data6 && data6 && data6.length > 0">
              <div class="item item1" v-if="data6.length > 4">
                <div class="num fs_linear">{{ data6[4].value }}<span class="unit">kw·h</span></div>
                <div class="name">{{ data6[4].name }}</div>
                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
              </div>
              <div class="item item2" v-if="data6.length > 1">
                <div class="num fs_linear">{{ data6[1].value }}<span class="unit">kw·h</span></div>
                <div class="name">{{ data6[1].name }}</div>
                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
              </div>
              <div class="item item3" v-if="data6.length > 2">
                <div class="num fs_linear">{{ data6[2].value }}<span class="unit">kw·h</span></div>
                <div class="name">{{ data6[2].name }}</div>
                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
              </div>
              <div class="item item4" v-if="data6.length > 3">
                <div class="num fs_linear">{{ data6[3].value }}<span class="unit">kw·h</span></div>
                <div class="name">{{ data6[3].name }}</div>
                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
              </div>
              <div class="item item5">
                <div class="num fs_linear">{{ data6[0].value }}<span class="unit">kw·h</span></div>
                <div class="name">{{ data6[0].name }}</div>
                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
              </div>
            </template>
            <div class="bottom_wrap" v-if="data1.yesterdayElectricity">
              <div class="bottom bottom1" @click="changeacDay(3)">
                <div :class="{ active: activeDays == 3 }" class="num fs_linear">{{ data1.yesterdayElectricity.total || 0
                  }}</div>
                <div class="name">昨日用电</div>
                <div class="unit">kw·h</div>
                <img v-if="activeDays == 3" src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" />
                <img v-else src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
              </div>
              <div class="bottom bottom2" @click="changeacDay(1)">
                <div :class="{ active: activeDays == 1 }" class="num">{{ data1.todayElectricity.total || 0 }}</div>
                <div class="name">今日用电</div>
                <div class="unit">kw·h</div>
                <img v-if="activeDays == 1" src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" />
                <img v-else src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
              </div>
              <div class="bottom bottom3" @click="changeacDay(2)">
                <div :class="{ active: activeDays == 2 }" class="num fs_linear">{{ data1.monthElectricity.total || 0 }}
                </div>
                <div class="name">本月用电</div>
                <div class="unit">kw·h</div>
                <img v-if="activeDays == 2" src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" />
                <img v-else src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
              </div>
            </div>
          </div>
        </div>
        <div class="center_box_two">
          <img class="bg" src="@/assets/images/img_city@2x.png" alt="" />
          <div class="item item1">
            <div class="num fs_linear">240<span class="unit">kw·h</span></div>
            <div class="name">联合工房</div>
            <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
          </div>
          <div class="item item2">
            <div class="num fs_linear">240<span class="unit">kw·h</span></div>
            <div class="name">联合工房</div>
            <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
          </div>
          <div class="item item3">
            <div class="num fs_linear">240<span class="unit">kw·h</span></div>
            <div class="name">联合工房</div>
            <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
          </div>
          <div class="item item4">
            <div class="num fs_linear">240<span class="unit">kw·h</span></div>
            <div class="name">联合工房</div>
            <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
          </div>
          <div class="item item5">
            <div class="num fs_linear">240<span class="unit">kw·h</span></div>
            <div class="name">联合工房</div>
            <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
          </div>
          <div class="bottom_wrap">
            <div class="bottom bottom1">
              <div class="num fs_linear">240</div>
              <div class="name">昨日用电</div>
              <div class="unit">kw·h</div>
              <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
            </div>
            <div class="bottom bottom2">
              <div class="num">240</div>
              <div class="name">今日用电</div>
              <div class="unit">kw·h</div>
              <img src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" />
            </div>
            <div class="bottom bottom3">
              <div class="num fs_linear">240</div>
              <div class="name">本月用电</div>
              <div class="unit">kw·h</div>
              <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
            </div>
          </div>
        </div>
      </div>
      <div class="right_box">
        <div class="right_box_one">
          <div class="com_header">
            <div class="title">
              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
              <div>本月碳排放量统计</div>
            </div>
            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
          </div>
          <div class="content">
            <img src="@/assets/images/ic_co2@2x.png" class="co2" alt="">
            <div>
              <div class="name">本月累计碳排放</div>
              <div><span class="num">22.22</span><span>吨</span></div>
            </div>
          </div>
        </div>
        <div class="right_box_two">
          <div class="com_header">
            <div class="title">
              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
              <div>上月油耗排行统计</div>
            </div>
            <div class="tabs">油耗:L</div>
            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
          </div>
          <div class="list">
            <div class="line" v-for="item,i in 6">
              <div class="top"><span v-if="i < 3">top</span>{{ i }}</div>
              <div class="id_card">皖A12313</div>
              <div class="wrap">
                <ChargeRate :rate="15" :color />
        <div class="right_box">
          <div class="right_box_one">
            <div class="com_header">
              <div class="title">
                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
                <div>本月碳排放量统计</div>
              </div>
              <div class="num">1000</div>
              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
            </div>
            <div class="content">
              <img src="@/assets/images/ic_co2@2x.png" class="co2" alt="">
              <div>
                <div class="name">本月累计碳排放</div>
                <div><span class="num" v-if="data1.carbon || data1.carbon == 0">{{ data1.carbon.toLocaleString()
                    }}</span><span>吨</span>
                </div>
              </div>
            </div>
          </div>
        </div>
        <div class="right_box_three">
          <div class="com_header">
            <div class="title">
              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
              <div>月油耗分析</div>
          <div class="right_box_two">
            <div class="com_header">
              <div class="title">
                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
                <div>上月油耗排行统计</div>
              </div>
              <div class="tabs">油耗:L</div>
              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
            </div>
            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
            <div v-if="data3 && data3.length > 0" class="list">
              <template v-for="item, i in data3">
                <div v-if="i < 6" class="line">
                  <div class="top"><span v-if="i < 3">top</span>{{ i + 1 }}</div>
                  <div class="id_card">{{ item.carNo }}</div>
                  <div class="wrap">
                    <ChargeRate :rate="item.rate" :color="i > 2 ? 'cyan' : '#e3a83a'" />
                  </div>
                  <div class="num">{{ item.quantity }}</div>
                </div>
              </template>
            </div>
            <div v-if="data3.length == 0" class="empty_wrap list">
              <img src="@/assets/images/default_empty.png" alt="">
            </div>
          </div>
          <div class="wrap">
            <div class="analyseRef"></div>
          <div class="right_box_three">
            <div class="com_header">
              <div class="title">
                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
                <div>月油耗分析</div>
              </div>
              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
            </div>
            <div class="wrap">
              <div class="analyseRef"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  </v-scale-screen>
</template>
<script setup>
@@ -243,6 +292,16 @@
import dayjs from 'dayjs'
import ChargeRate from '@/components/ChargeRate.vue'
import * as echarts from 'echarts'
import VScaleScreen from 'v-scale-screen'
import {
  zxcenterData,
  zxenergyDataList,
  zxlastMonthOil,
  zxloadCurve,
  zxenergyRegionData,
  regionDataRanking
} from '@/api'
const weekMap = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六',]
const date = ref(dayjs().format('YYYY.MM.DD'))
@@ -285,13 +344,26 @@
    xAxis: {
      type: 'category',
      boundaryGap: false,
      data: [1,2,3,4,5,5]
      axisLabel: {
        color: '#D2E0FF'
      },
      data: data5.value.map(i => dayjs(i.timeData).format('M'))
    },
    tooltip: {
      trigger: 'axis',
      axisPointer: {
        type: 'line'
      },
    },
    yAxis: {
      type: 'value',
      name: '单位:L',
      axisLabel: {
        color: '#D2E0FF'
      },
      nameTextStyle: {
        padding: [0, 0, 0, -16]    // 四个数字分别为上右下左与原位置距离
        color: '#D2E0FF',
        padding: [0, 0, 0, -18]    // 四个数字分别为上右下左与原位置距离
      },
      splitLine: {
        show: true,
@@ -304,20 +376,15 @@
      }
    },
    grid: {
      top: '16%',
      top: '22%',
      left: '4%',
      right: '2%',
      right: '6%',
      bottom: '2%',
      containLabel: true
    },
    series: [
      {
        data: [1,2,3,4,4,5].map(i => {
          return {
            name: i,
            value: i,
          }
        }),
        data: data5.value.map(i => i.energy),
        type: 'line',
        areaStyle: {
          normal: {
@@ -353,7 +420,7 @@
          width: 2, // 线条粗细
        },
        symbol: 'circle',
        symbolSize: 10,
        symbolSize: 6,
        itemStyle: {
          normal: {
            color: '#F3BD00', //折线点的颜色
@@ -373,37 +440,45 @@
  var myChart = echarts.init(document.querySelector('.loadRef'))
  // 绘制图表
  myChart.setOption({
    // tooltip: {
    //   trigger: 'axis',
    //   axisPointer: {
    //     type: 'line'
    //   },
    //   formatter: function (params) {
    //     setTimeout(() => {
    //       console.log('params', params)
    //     })
    //     return `
    //       <div style="background-color: #091123;margin: -12px;padding: 14px;border: 2px solid rgba(1,217,254,0.5);color: #fff;">
    //         <div>${params[0].name}总销售额(万元)</div>
    //         <div style="display: flex;align-items: center;">
    //           <div style="width: 10px;height: 10px;border-radius: 50%;background-color: #ebbf40;"></div>
    //           <div style="margin: 0 4px 0 6px;">总销售</div>
    //           <span style="color: #ebbf40;">${params[0].value}</span>
    //         </div>
    //       </div>
    //     `
    //   }
    // },
    tooltip: {
      trigger: 'axis',
      axisPointer: {
        type: 'line'
      },
      // trigger: 'axis',
      // axisPointer: {
      //   type: 'line'
      // },
      // formatter: function (params) {
      //   setTimeout(() => {
      //     console.log('params', params)
      //   })
      //   return `
      //     <div style="background-color: #091123;margin: -12px;padding: 14px;border: 2px solid rgba(1,217,254,0.5);color: #fff;">
      //       <div>${params[0].name}总销售额(万元)</div>
      //       <div style="display: flex;align-items: center;">
      //         <div style="width: 10px;height: 10px;border-radius: 50%;background-color: #ebbf40;"></div>
      //         <div style="margin: 0 4px 0 6px;">总销售</div>
      //         <span style="color: #ebbf40;">${params[0].value}</span>
      //       </div>
      //     </div>
      //   `
      // }
    },
    xAxis: {
      type: 'category',
      boundaryGap: false,
      data: [1,2,3,4,5,5]
      axisLabel: {
        color: '#D2E0FF'
      },
      data: data4.value.map(i => i.timeData)
    },
    yAxis: {
      type: 'value',
      name: '单位:kw·h',
      nameTextStyle: {
        padding: [0, 0, 0, -16]    // 四个数字分别为上右下左与原位置距离
        padding: [0, 0, 0, -16],    // 四个数字分别为上右下左与原位置距离
        color: '#D2E0FF'
      },
      splitLine: {
        show: true,
@@ -413,10 +488,13 @@
          type: 'dashed',
        },
        splitNumber: 4
      },
      axisLabel: {
        color: '#D2E0FF'
      }
    },
    grid: {
      top: '16%',
      top: '18%',
      left: '4%',
      right: '2%',
      bottom: '2%',
@@ -424,12 +502,7 @@
    },
    series: [
      {
        data: [1,2,3,4,4,4000].map(i => {
          return {
            name: i,
            value: i,
          }
        }),
        data: data4.value.map(i => i.energy),
        type: 'line',
        areaStyle: {
          normal: {
@@ -440,7 +513,7 @@
              y2: 1,
              colorStops: [{
                offset: 0,
                color: "rgba(192, 156, 53,.7)" // 0% 处的颜色
                color: "#2e6ab5" // 0% 处的颜色
              }, {
                offset: 1,
                color: "#1b1b12" // 100% 处的颜色
@@ -457,18 +530,18 @@
            x2: 0,
            y2: 1,
            colorStops: [{
              offset: 0, color: '#F3BD00' // 0% 处的颜色
              offset: 0, color: '#2e6ab5' // 0% 处的颜色
            }, {
              offset: 1, color: '#F3BD00' // 100% 处的颜色
              offset: 1, color: '#2e6ab5' // 100% 处的颜色
            }],
          },
          width: 2, // 线条粗细
        },
        symbol: 'circle',
        symbolSize: 10,
        symbolSize: 0,
        itemStyle: {
          normal: {
            color: '#F3BD00', //折线点的颜色
            color: '#2e6ab5', //折线点的颜色
          },
        },
        smooth: true
@@ -480,15 +553,43 @@
    myChart.resize()
  })
}
const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a']
const data1 = ref({})
const getData1 = () => {
  zxcenterData().then(res => {
    const result = res.data
    data1.value = result
  })
}
const activeDays = ref('1')
const data6 = ref({})
const changeacDay = (val) => {
  activeDays.value = val
  getData6()
}
const getData6 = () => {
  regionDataRanking({ type: activeDays.value }).then(res => {
    const result = res.data
    data6.value = result
  })
}
const activeTab2 = ref(0)
const tabsClick2 = (v) => {
  activeTab2.value = v
  getData2()
}
const data2 = ref([])
const initEnergy = () => {
  var myChart = echarts.init(document.querySelector('.energyRef'))
  // 绘制图表
  const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a']
  let unit = activeTab2.value == 0 ? '单位:t' : activeTab2.value == 3 ? '单位:kw·h' : '单位:m³'
  myChart.setOption({
    grid: {
      top: '20%',
      left: '2%',
      left: '6%',
      right: '2%',
      bottom: '4%',
      containLabel: true
@@ -501,12 +602,19 @@
    },
    xAxis: {
      type: 'category',
      data: [1,2,3,4,4,5]
      axisLabel: {
        color: '#D2E0FF'
      },
      data: data2.value.map(i => dayjs(i.timeData).format('M'))
    },
    yAxis: {
      type: 'value',
      name: 'kw·h',
      name: unit,
      axisLabel: {
        color: '#D2E0FF'
      },
      nameTextStyle: {
        color: '#D2E0FF',
        padding: [0, 0, 4, -30]    // 四个数字分别为上右下左与原位置距离
      },
      splitLine: {
@@ -519,7 +627,7 @@
    },
    series: [
      {
        data: [1,2,3,4,5],
        data: data2.value.map(i => i.energy),
        type: 'bar',
        barWidth: 10,
        itemStyle: {
@@ -527,11 +635,11 @@
            color: new echarts.graphic.LinearGradient(
              0, 0, 0, 1,
              [
                { offset: 0, color: arr[1] },
                { offset: 1, color: '#080807' }
                { offset: 0, color: '#50afd3' },
                { offset: 1, color: '#1d4861' }
              ]
            ),
            barBorderRadius: [10, 10, 0, 0]
            barBorderRadius: [3, 3, 0, 0]
          }
        }
      }
@@ -541,12 +649,66 @@
    myChart.resize()
  })
}
const getData2 = () => {
  zxenergyDataList({ type: activeTab2.value }).then(res => {
    const result = res.data || []
    data2.value = result
    initEnergy()
  })
}
const data3 = ref([])
const getData3 = () => {
  zxlastMonthOil().then(res => {
    const result = res.data || []
    if (result.length > 0) {
      data3.value = result.map(i => {
        if (i.quantity || i.quantity == 0) {
          i.rate = ((i.quantity / result[0].quantity) * 25).toFixed(0)
        }
        return i
      })
    }
  })
}
const data4 = ref([])
const getData4 = () => {
  zxloadCurve().then(res => {
    const result = res.data
    data4.value = result
    if (data4.value && data4.value.length > 0) {
      initLoadReal()
    }
  })
}
const data5 = ref([])
const getData5 = () => {
  zxenergyDataList({ type: 2 }).then(res => {
    const result = res.data
    data5.value = result
    initOperation()
  })
}
onMounted(() => {
  initOperation()
  initLoadReal()
  initEnergy()
})
  getData1()
  getData2()
  getData3()
  getData4()
  getData5()
  getData6()
  setInterval(() => {
    getData4()
  }, 1000 * 60)
  setInterval(() => {
    getData1()
    getData2()
    getData3()
    getData5()
    getData6()
  }, 1000 * 60 * 60)
})
</script>
@@ -564,37 +726,34 @@
      margin-bottom: 20px;
      .content {
        width: 100%;
        padding: 24px 5%;
        height: 164px;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        .item {
          width: 33.3%;
          margin-bottom: 12px;
        .co2 {
          width: 100px;
          margin-right: 30px;
        }
          .lab {
            font-size: 14px;
            color: #ffffff;
          }
          .val {
            font-weight: 600;
            font-size: 20px;
            color: #01d9fe;
            margin-top: 4px;
          }
        .num {
          margin-top: 10px;
          color: #01D9FE;
          font-weight: 600;
          font-size: 36px;
          margin-right: 2px;
        }
      }
    }
    .left_box_two {
      margin-bottom: 20px;
      .load_wrap{
      .load_wrap {
        width: 100%;
        height: 210px;
        padding: 12px 12px;
        .loadRef{
        height: 250px;
        .loadRef {
          width: 100%;
          height: 100%;
        }
@@ -602,10 +761,11 @@
    }
    .left_box_three {
      .energy_wrap{
      .energy_wrap {
        width: 100%;
        height: 200px;
        .energyRef{
        height: 250px;
        .energyRef {
          width: 100%;
          height: 100%;
        }
@@ -684,7 +844,6 @@
      height: 544px;
      .item {
        width: 120px;
        height: 112px;
        position: absolute;
        text-align: center;
@@ -707,9 +866,12 @@
        }
        .bg {
          margin: 0 auto;
          width: 120px;
          height: 88px;
          top: 24px;
          left: 50%;
          transform: translate(-50%, 0);
        }
      }
@@ -754,6 +916,7 @@
        position: absolute;
        text-align: center;
        padding-top: 70px;
        cursor: pointer;
        .num {
          font-size: 24px;
@@ -771,6 +934,13 @@
          font-size: 14px;
          color: #D0FFFA;
        }
        .active {
          font-size: 36px;
          color: #01D9FE;
          font-weight: bold;
          margin-bottom: 10px;
        }
      }
      .bottom1 {
@@ -787,14 +957,8 @@
        bottom: -0px;
        left: 50%;
        transform: translate(-50%, 0);
        padding-top: 50px;
        /* padding-top: 50px; */
        .num {
          font-size: 36px;
          color: #01D9FE;
          line-height: 54px;
          font-weight: bold;
        }
      }
    }
  }
@@ -804,6 +968,7 @@
    .right_box_one {
      margin-bottom: 20px;
      .content {
        height: 164px;
        display: flex;
@@ -824,15 +989,20 @@
        }
      }
    }
    .right_box_two{
    .right_box_two {
      margin-bottom: 20px;
      .list{
      .list {
        padding: 20px 24px 4px;
        .line{
        height: 250px;
        .line {
          display: flex;
          align-items: center;
          margin-bottom: 16px;
          .top{
          .top {
            font-weight: 500;
            font-size: 12px;
            width: 33px;
@@ -843,19 +1013,24 @@
            box-shadow: inset 0px 0px 3px 0px #01D9FE;
            margin-right: 10px;
          }
          .id_card{
          .id_card {
            color: #DBEAEA;
            font-weight: 500;
            margin-right: 14px;
            font-size: 14px;
            margin-right: 6px;
            font-size: 13px;
            width: 68px;
          }
          .num{
          .num {
            font-weight: 500;
            font-size: 13px;
            color: #DBEAEA;
            margin-left: 15px;
            width: 40px;
          }
          .wrap{
          .wrap {
            flex: 1;
            height: 20px;
            border: 1px solid #686B6B;
@@ -863,12 +1038,12 @@
        }
      }
    }
    .right_box_three{
      .wrap{
        padding: 8px;
        .analyseRef{
    .right_box_three {
      .wrap {
        .analyseRef {
          width: 100%;
          height: 210px;
          height: 250px;
        }
      }
    }
@@ -909,6 +1084,10 @@
    font-size: 14px;
    color: #d2e0ff;
    .tab {
      cursor: pointer;
    }
    .separate {
      width: 1px;
      height: 14px;
@@ -946,7 +1125,7 @@
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 92px;
  height: 90px;
  position: relative;
  padding: 0px 40px 16px;
  font-weight: 600;
@@ -962,7 +1141,7 @@
    -webkit-text-fill-color: transparent;
  }
  .time {
  .time_wrap {
    font-size: 26px;
    font-weight: 600;
    background-image: -webkit-linear-gradient(top,
@@ -976,15 +1155,14 @@
    align-items: center;
    .time {
      width: 180px;
      width: 130px;
      display: flex;
      justify-content: flex-end;
      padding-bottom: 10px;
      font-size: 36px;
      font-size: 30px;
    }
    .week {
      margin-left: 36px;
      margin-left: 20px;
    }
  }
@@ -1000,8 +1178,8 @@
}
.main_app {
  width: 100%;
  min-height: 100vh;
  width: 1920px;
  height: 980px;
  color: #ffffff;
  position: relative;