ll
liukangdong
2024-12-24 abfe6985b2678445ea8da974b204d9fe2ffdb887
screen/src/views/EnergyConsum.vue
@@ -25,9 +25,9 @@
              <img src="@/assets/images/nenghao_ic1.png" class="co2" alt="">
              <div>
                <div class="name">本年累计循环烟箱</div>
                <div><span class="num" v-if="data1.smokeBoxTotal || data1.smokeBoxTotal == 0">{{
                <div><span class="num" style="color: #68cfb2;" v-if="data1.smokeBoxTotal || data1.smokeBoxTotal == 0">{{
                  data1.smokeBoxTotal.toLocaleString()
                    }}</span><span>只</span></div>
                    }}</span><span>个</span></div>
              </div>
            </div>
          </div>
@@ -89,7 +89,7 @@
                      Math.abs(((data1.electricityQuantity.totalNum -
                        data1.electricityQuantity.sameNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
                    }}%</span>
                  <span class="val" v-else>-</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="" />
@@ -99,7 +99,7 @@
                      Math.abs(((data1.electricityQuantity.totalNum -
                        data1.electricityQuantity.ringNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
                    }}%</span>
                  <span class="val" v-else>-</span>
                  <span class="val" v-else style="margin-left: 4px;"> -</span>
                </div>
              </div>
              <div class="item">
@@ -112,101 +112,114 @@
                </div>
                <div class="static" v-if="data1.waterQuantity">
                  <span class="lab">同比</span>
                  <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="" />
                  <span class="val" v-if="data1.waterQuantity.totalNum && data1.waterQuantity.totalNum != 0">{{
                  <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.totalNum * 100).toFixed(1)) }}%</span>
                  <span class="val" v-else>-</span>
                      data1.waterQuantity.sameNum) / data1.waterQuantity.sameNum * 100).toFixed(1)) }}%</span>
                  <span class="val" v-else style="margin-left: 4px;">-</span>
                  <span class="lab">环比</span>
                  <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="" />
                  <span class="val" v-if="data1.waterQuantity.totalNum && data1.waterQuantity.totalNum != 0">{{
                  <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.totalNum * 100).toFixed(1)) }}%</span>
                  <span class="val" v-else>-</span>
                      data1.waterQuantity.ringNum) / data1.waterQuantity.ringNum * 100).toFixed(1)) }}%</span>
                  <span class="val" v-else style="margin-left: 4px;">-</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="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>
                  <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 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>-</span>
                  <span class="val" v-else style="margin-left: 4px;">-</span>
                  <span class="lab">环比</span>
                  <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 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>-</span>
                  <span class="val" v-else style="margin-left: 4px;">-</span>
                </div>
              </div>
            </div>
          </div>
          <div class="center_box_two">
            <img class="bg" src="@/assets/images/img_city@2x.png" alt="" />
            <template v-if="data6 && data6.secondRegionDataList && data6.secondRegionDataList.length > 0">
              <div class="item item1">
                <div class="num fs_linear">{{ data6.secondRegionDataList[0].value }}<span class="unit">kw·h</span></div>
                <div class="name">{{ data6.secondRegionDataList[0].name }}</div>
            <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.secondRegionDataList.length > 1">
                <div class="num fs_linear">{{ data6.secondRegionDataList[1].value }}<span class="unit">kw·h</span></div>
                <div class="name">{{ data6.secondRegionDataList[1].name }}</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.secondRegionDataList.length > 2">
                <div class="num fs_linear">{{ data6.secondRegionDataList[2].value }}<span class="unit">kw·h</span></div>
                <div class="name">{{ data6.secondRegionDataList[2].name }}</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.secondRegionDataList.length > 3">
                <div class="num fs_linear">{{ data6.secondRegionDataList[3].value }}<span class="unit">kw·h</span></div>
                <div class="name">{{ data6.secondRegionDataList[3].name }}</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" v-if="data6.secondRegionDataList.length > 4">
                <div class="num fs_linear">{{ data6.secondRegionDataList[4].value }}<span class="unit">kw·h</span></div>
                <div class="name">{{ data6.secondRegionDataList[4].name }}</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">
                <div class="num fs_linear">{{ data1.yesterdayElectricity.total || 0 }}</div>
              <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 src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
                <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">
                <div class="num">{{ data1.todayElectricity.total || 0 }}</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 src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" />
                <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">
                <div class="num fs_linear">{{ data1.monthElectricity.total || 0 }}</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 src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
                <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>
@@ -285,7 +298,8 @@
  zxenergyDataList,
  zxlastMonthOil,
  zxloadCurve,
  zxenergyRegionData
  zxenergyRegionData,
  regionDataRanking
} from '@/api'
@@ -330,7 +344,10 @@
    xAxis: {
      type: 'category',
      boundaryGap: false,
      data: data5.value.map(i => i.timeData)
      axisLabel: {
        color: '#D2E0FF'
      },
      data: data5.value.map(i => dayjs(i.timeData).format('M'))
    },
    tooltip: {
      trigger: 'axis',
@@ -341,8 +358,12 @@
    yAxis: {
      type: 'value',
      name: '单位:L',
      axisLabel: {
        color: '#D2E0FF'
      },
      nameTextStyle: {
        padding: [0, 0, 0, -16]    // 四个数字分别为上右下左与原位置距离
        color: '#D2E0FF',
        padding: [0, 0, 0, -18]    // 四个数字分别为上右下左与原位置距离
      },
      splitLine: {
        show: true,
@@ -447,13 +468,17 @@
    xAxis: {
      type: 'category',
      boundaryGap: false,
      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,
@@ -463,10 +488,13 @@
          type: 'dashed',
        },
        splitNumber: 4
      },
      axisLabel: {
        color: '#D2E0FF'
      }
    },
    grid: {
      top: '26%',
      top: '18%',
      left: '4%',
      right: '2%',
      bottom: '2%',
@@ -533,13 +561,19 @@
    data1.value = result
  })
}
const activeDays = ref('1')
const data6 = ref({})
const changeacDay = (val) => {
  activeDays.value = val
  getData6()
}
const getData6 = () => {
  zxenergyRegionData().then(res => {
  regionDataRanking({ type: activeDays.value }).then(res => {
    const result = res.data
    data6.value = result
  })
}
const activeTab2 = ref(0)
const tabsClick2 = (v) => {
@@ -554,7 +588,7 @@
  myChart.setOption({
    grid: {
      top: '24%',
      top: '20%',
      left: '6%',
      right: '2%',
      bottom: '4%',
@@ -568,12 +602,19 @@
    },
    xAxis: {
      type: 'category',
      data: data2.value.map(i => i.timeData)
      axisLabel: {
        color: '#D2E0FF'
      },
      data: data2.value.map(i => dayjs(i.timeData).format('M'))
    },
    yAxis: {
      type: 'value',
      name: unit,
      axisLabel: {
        color: '#D2E0FF'
      },
      nameTextStyle: {
        color: '#D2E0FF',
        padding: [0, 0, 4, -30]    // 四个数字分别为上右下左与原位置距离
      },
      splitLine: {
@@ -875,6 +916,7 @@
        position: absolute;
        text-align: center;
        padding-top: 70px;
        cursor: pointer;
        .num {
          font-size: 24px;
@@ -892,6 +934,13 @@
          font-size: 14px;
          color: #D0FFFA;
        }
        .active {
          font-size: 36px;
          color: #01D9FE;
          font-weight: bold;
          margin-bottom: 10px;
        }
      }
      .bottom1 {
@@ -908,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;
        }
      }
    }
  }
@@ -976,7 +1019,7 @@
            font-weight: 500;
            margin-right: 6px;
            font-size: 13px;
            width: 64px;
            width: 68px;
          }
          .num {