ll
liukangdong
2024-11-19 00554486047226063b1bf8200490bae5cf97e8bc
ll
已添加2个文件
已修改5个文件
480 ■■■■ 文件已修改
admin/.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaMemberWindow.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaPlatformSmokeWindow.vue 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/smokebox.vue 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/api/index.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/views/EnergyConsum.vue 258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/views/SecurityControl.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env.development
@@ -2,7 +2,7 @@
NODE_ENV = 'development'
#VUE_APP_API_URL  = 'http://localhost:10010'
# VUE_APP_API_URL  = 'http://192.168.0.103:10010'
# VUE_APP_API_URL  = 'http://192.168.0.113:10010'
# VUE_APP_API_URL  = 'http://192.168.0.173/gateway_interface'
 VUE_APP_API_URL  = 'http://10.50.250.253:8088/gateway_interface'
admin/src/components/business/OperaMemberWindow.vue
@@ -164,6 +164,7 @@
    openCamera() {
      this.paisheModal = true
      this.isShowCamera = true
      this.blobFileCamera = ''
      const that = this
      this.$nextTick(() => {
        var mediaOpts = { audio: false, video: true }
@@ -201,6 +202,7 @@
    // ç‚¹å‡»æ‹æ‘„
    setImage() {
      const that = this
      this.blobFileCamera = ''
      that.isShowCamera = false
      const video = document.querySelector('#videoCamera')
      const canvas = document.querySelector('#canvasCamera')
admin/src/components/business/OperaPlatformSmokeWindow.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,92 @@
<template>
  <GlobalWindow
    :title="title"
    width="50%"
    :visible.sync="visible"
    :confirm-working="isWorking"
    @confirm="confirm"
  >
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="月份" prop="timeInfo">
        <el-date-picker
            v-model="form.timeInfo"
            format="yyyy-MM"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="month"
        />
      </el-form-item>
      <el-form-item label="烟箱量(个):" prop="num" >
        <el-input type="number" v-model="form.num" placeholder="请输入烟箱量(个)" v-trim/>
      </el-form-item>
      <el-form-item label="说明:" prop="content">
        <el-input type="textarea"  v-model="form.content" placeholder="请输入说明" v-trim/>
      </el-form-item>
    </el-form>
  </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { allList } from '@/api/platform/platformGroup'
export default {
  name: 'OperaPlatformReasonWindow',
  extends: BaseOpera,
  components: { GlobalWindow },
  data () {
    return {
      // è¡¨å•数据
      groupList: [],
      form: {
        id: null,
        content: null,
        num: null,
        timeInfo: '',
        type:3
      },
      // éªŒè¯è§„则
      rules: {
        timeInfo: [{ required: true, message: '请输选择月份 ', trigger: 'blur' }],
        num: [{ required: true, message: '请输入烟箱量(个) ', trigger: 'blur' }]
      }
    }
  },
  created () {
    this.config({
      api: '/platform/platformWaterGas',
      'field.id': 'id'
    })
  },
  methods: {
    /**
     * æ‰“开窗口
     * @title çª—口标题
     * @target ç¼–辑的对象
     */
    open (title, target) {
      this.title = title
      this.visible = true
      // æ–°å»º
      if (target == null) {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
          this.form[this.configData['field.id']] = null
        })
        return
      }
      // ç¼–辑
      this.$nextTick(() => {
        for (const key in this.form) {
          this.form[key] = target[key]
        }
      })
    }
  }
}
</script>
<style scoped>
.labelTip{
  font-size: 12px;
  color: #666666;
}
</style>
admin/src/views/platform/smokebox.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,118 @@
<template>
  <TableLayout :permissions="['business:platformwatergas:query']">
    <SearchFormCollapse slot="search-form" :need-more="false">
      <el-form ref="searchForm" :model="searchForm"  label-width="100px" inline>
          <el-form-item title="请选择年月时间" label=""   >
            <el-date-picker
                @change="search"
                clearable
                v-model="searchForm.timeInfo"
                format="yyyy-MM"
                placeholder="请选择年月时间"
                value-format="yyyy-MM-dd HH:mm:ss"
                type="month"
            />
          </el-form-item>
        <section>
          <el-button type="primary" @click="search">搜索</el-button>
          <el-button @click="reset">重置</el-button>
        </section>
      </el-form>
    </SearchFormCollapse>
    <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:platformwatergas:create','business:platformwatergas:delete','business:notice:exportExcel']">
        <li><el-button type="primary" @click="$refs.OperaPlatformSmokeWindow.open('新建烟箱')" icon="el-icon-plus" v-permissions="['business:platformwatergas:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:platformwatergas:delete']">删除</el-button></li>
        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:notice:exportExcel']" @click="exportExcel">导出</el-button>
      </ul>
      <el-table
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="timeInfo" label="使用月份" fixed min-width="100px">
          <template slot-scope="{row}">
              {{(row.timeInfo || row.timeInfo.length >7 )?row.timeInfo.substr(0,7):'-'}}
          </template>
        </el-table-column>
        <el-table-column prop="num" label="烟箱量(个)" fixed min-width="150px"></el-table-column>
        <el-table-column prop="content" label="说明" min-width="120px"></el-table-column>
        <el-table-column prop="editDate" label="最近操作时间" min-width="140px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:platformwatergas:update', 'business:platformwatergas:delete'])"
          label="操作"
          align="center"
          min-width="150"
          fixed="right"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.OperaPlatformSmokeWindow.open('编辑烟箱', row)" icon="el-icon-edit" v-permissions="['business:platformwatergas:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:platformwatergas:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination
        @size-change="handleSizeChange"
        @current-change="handlePageChange"
        :pagination="tableData.pagination"
      >
      </pagination>
    </template>
    <!-- æ–°å»º/修改 -->
    <OperaPlatformSmokeWindow ref="OperaPlatformSmokeWindow" @success="handlePageChange"/>
  </TableLayout>
</template>
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import SearchFormCollapse from '@/components/common/SearchFormCollapse'
import Pagination from '@/components/common/Pagination'
import OperaPlatformSmokeWindow from '@/components/business/OperaPlatformSmokeWindow.vue'
import { allList } from '@/api/platform/platformGroup'
export default {
  name: 'Platform',
  extends: BaseTable,
  components: { SearchFormCollapse, TableLayout, Pagination, OperaPlatformSmokeWindow },
  data () {
    return {
      groupList: [],
      // æœç´¢
      working: false,
      working1: false,
      searchForm: {
        timeInfo: '',
        type: 3
      }
    }
  },
  created () {
    this.config({
      module: '用水信息表',
      api: '/platform/platformWaterGas',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
    this.loadGroupList()
  },
  methods: {
    loadGroupList () {
      allList({})
        .then(res => {
          this.groupList = res || []
        })
    },
    changeStatus (e, row) {
      this.api.updateStatusById({
        id: row.id,
        status: e
      })
    }
  }
}
</script>
screen/src/api/index.js
@@ -142,6 +142,10 @@
export const zxcenterData = (data) => {
  return request('visitsAdmin/cloudService/board/api/energy/centerData', data)
}
// èƒ½è€—看板 ç”¨ç”µæ€»èƒ½è€—同比、环比和区域用电量集合
export const zxenergyRegionData = (data) => {
  return request('visitsAdmin/cloudService/board/api/energy/energyRegionData', data)
}
// èƒ½è€—看板 æœˆèƒ½è€—、油耗分析
export const zxenergyDataList = (data) => {
  return request('visitsAdmin/cloudService/board/api/energy/energyDataList', data)
screen/src/views/EnergyConsum.vue
@@ -25,7 +25,8 @@
              <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.toLocaleString()
                <div><span class="num" v-if="data1.smokeBoxTotal || data1.smokeBoxTotal == 0">{{
                  data1.smokeBoxTotal.toLocaleString()
                    }}</span><span>只</span></div>
              </div>
            </div>
@@ -41,6 +42,9 @@
            <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">
@@ -51,7 +55,7 @@
              <div class="tabs">
                <div class="tab" :class="{ active: activeTab2 == 0 }" @click="tabsClick2(0)">用水</div>
                <div class="separate"></div>
                <div class="tab" :class="{ active: activeTab2 == 2 }" @click="tabsClick2(2)">用电</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>
@@ -70,17 +74,32 @@
                  <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 == 0">{{ data1.electricityQuantity.toLocaleString() }}
                    <div class="num" v-if="data1.electricityQuantity">{{
                      data1.electricityQuantity.total.toLocaleString() }}
                    </div>
                  </div>
                </div>
                <div class="static">
                <div class="static" v-if="data1.electricityQuantity">
                  <span class="lab">同比</span>
                  <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
                  <span class="val">{{ data1.electricityYear }}</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>-</span>
                  <span class="lab">环比</span>
                  <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
                  <span class="val">{{ data1.gasMonth }}</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>-</span>
                </div>
              </div>
              <div class="item">
@@ -88,16 +107,26 @@
                  <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 == 0">{{ data1.waterQuantity.toLocaleString() }}</div>
                    <div class="num" v-if="data1.waterQuantity">{{ data1.waterQuantity.total.toLocaleString() }}</div>
                  </div>
                </div>
                <div class="static">
                <div class="static" v-if="data1.waterQuantity">
                  <span class="lab">同比</span>
                  <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
                  <span class="val">{{ data1.waterMonth }}</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">{{
                    Math.abs(((data1.waterQuantity.totalNum -
                      data1.waterQuantity.sameNum) / data1.waterQuantity.totalNum * 100).toFixed(1)) }}%</span>
                  <span class="val" v-else>-</span>
                  <span class="lab">环比</span>
                  <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
                  <span class="val">{{ data1.waterYear }}</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">{{
                    Math.abs(((data1.waterQuantity.totalNum -
                      data1.waterQuantity.ringNum) / data1.waterQuantity.totalNum * 100).toFixed(1)) }}%</span>
                  <span class="val" v-else>-</span>
                </div>
              </div>
              <div class="item">
@@ -105,62 +134,76 @@
                  <img class="icon" src="@/assets/images/ic_yongqi@2x.png" alt="" />
                  <div class="content">
                    <div class="name">上月用气(t)</div>
                    <div class="num" v-if="data1.gasQuantity || data1.gasQuantity == 0">{{ data1.gasQuantity.toLocaleString() }}</div>
                    <div class="num" v-if="data1.gasQuantity">{{ data1.gasQuantity.total.toLocaleString() }}</div>
                  </div>
                </div>
                <div class="static">
                <div class="static" v-if="data1.gasQuantity">
                  <span class="lab">同比</span>
                  <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
                  <span class="val">{{ data1.gasMonth }}</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="" />
                  <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="lab">环比</span>
                  <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
                  <span class="val">{{ data1.gasYear }}</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="" />
                  <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>
                </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">{{ data1.workHouseQuantity || 0 }}<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">{{ data1.officeQuantity || 0 }}<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">{{ data1.parkQuantity || 0 }}<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">{{ data1.productHouseQuantity || 0 }}<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">{{ data1.powerQuantity || 0 }}<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">
            <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>
                <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>
                <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>
                <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>
                <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>
                <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 || 0 }}</div>
                <div 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="" />
              </div>
              <div class="bottom bottom2">
                <div class="num">{{ data1.todayElectricity || 0 }}</div>
                <div 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="" />
              </div>
              <div class="bottom bottom3">
                <div class="num fs_linear">{{ data1.monthElectricity || 0 }}</div>
                <div 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="" />
@@ -181,7 +224,8 @@
              <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.toLocaleString() }}</span><span>吨</span>
                <div><span class="num" v-if="data1.carbon || data1.carbon == 0">{{ data1.carbon.toLocaleString()
                    }}</span><span>吨</span>
                </div>
              </div>
            </div>
@@ -195,15 +239,21 @@
              <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 data3">
                <div class="top"><span v-if="i < 3">top</span>{{ i }}</div>
                <div class="id_card">{{ item.carNo }}</div>
                <div class="wrap">
                  <ChargeRate :rate="item.rate" :color="i > 2 ? 'cyan' : '#e3a83a'" />
            <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>
                <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="right_box_three">
@@ -235,6 +285,7 @@
  zxenergyDataList,
  zxlastMonthOil,
  zxloadCurve,
  zxenergyRegionData
} from '@/api'
@@ -304,7 +355,7 @@
      }
    },
    grid: {
      top: '26%',
      top: '22%',
      left: '4%',
      right: '6%',
      bottom: '2%',
@@ -474,9 +525,33 @@
    myChart.resize()
  })
}
const data1 = ref({})
const getData1 = () => {
  zxcenterData().then(res => {
    const result = res.data
    data1.value = result
  })
}
const data6 = ref({})
const getData6 = () => {
  zxenergyRegionData().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'))
  // ç»˜åˆ¶å›¾è¡¨
  let unit = activeTab2.value == 0 ? '单位:t' : activeTab2.value == 3 ? '单位:kw·h' : '单位:m³'
  myChart.setOption({
    grid: {
      top: '24%',
@@ -497,7 +572,7 @@
    },
    yAxis: {
      type: 'value',
      name: '单位:kw·h',
      name: unit,
      nameTextStyle: {
        padding: [0, 0, 4, -30]    // å››ä¸ªæ•°å­—分别为上右下左与原位置距离
      },
@@ -533,52 +608,25 @@
    myChart.resize()
  })
}
const data1 = ref({})
const getData1 = () => {
  zxcenterData().then(res => {
    const result = res.data
    data1.value = result
  })
}
const activeTab2 = ref(0)
const tabsClick2 = (v) => {
  activeTab2.value = v
  getData2()
}
const data2 = ref([])
const getData2 = () => {
  zxenergyDataList({ type: activeTab2.value }).then(res => {
    const result = res.data
    const result = res.data || []
    data2.value = result
    initEnergy()
  })
}
const data3 = ref([])
const getData3 = () => {
  data3.value = [
    { carNo: '皖A87772', maxOil: 50, quantity: 50 },
    { carNo: '皖A81222', maxOil: 50, quantity: 26 },
    { carNo: '皖A85035', maxOil: 50, quantity: 24 },
    { carNo: '皖A86057', maxOil: 50, quantity: 14 },
    { carNo: '皖A81272', maxOil: 50, quantity: 9 },
    { carNo: '皖A87772', maxOil: 50, quantity: 1 },
  ]
  data3.value = data3.value.map(i => {
    if (i.quantity && i.maxOil) {
      i.rate = ((i.quantity / i.maxOil) * 25).toFixed(0)
    }
    return i
  })
  return
  zxlastMonthOil().then(res => {
    const result = res.data || []
    data3.value = result.map(i => {
      if (i.quantity && i.maxOil) {
        i.rate = ((i.quantity / i.maxOil) * 25).toFixed(0)
      }
      return i
    })
    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([])
@@ -586,13 +634,15 @@
  zxloadCurve().then(res => {
    const result = res.data
    data4.value = result
    initLoadReal()
    if (data4.value && data4.value.length > 0) {
      initLoadReal()
    }
  })
}
const data5 = ref([])
const getData5 = () => {
  zxenergyDataList({ type: 3 }).then(res => {
  zxenergyDataList({ type: 2 }).then(res => {
    const result = res.data
    data5.value = result
    initOperation()
@@ -605,6 +655,7 @@
  getData3()
  getData4()
  getData5()
  getData6()
})
@@ -742,7 +793,6 @@
      height: 544px;
      .item {
        width: 120px;
        height: 112px;
        position: absolute;
        text-align: center;
@@ -765,9 +815,12 @@
        }
        .bg {
          margin: 0 auto;
          width: 120px;
          height: 88px;
          top: 24px;
          left: 50%;
          transform: translate(-50%, 0);
        }
      }
@@ -889,6 +942,7 @@
      .list {
        padding: 20px 24px 4px;
        height: 250px;
        .line {
          display: flex;
@@ -910,8 +964,9 @@
          .id_card {
            color: #DBEAEA;
            font-weight: 500;
            margin-right: 14px;
            font-size: 14px;
            margin-right: 6px;
            font-size: 13px;
            width: 64px;
          }
          .num {
@@ -919,6 +974,7 @@
            font-size: 13px;
            color: #DBEAEA;
            margin-left: 15px;
            width: 40px;
          }
          .wrap {
screen/src/views/SecurityControl.vue
@@ -461,8 +461,8 @@
                </div>
              </div>
            </div>
            <div class="empty_wrap">
              <img v-if="dataList3.length == 0" src="@/assets/images/default_empty.png" alt="">
            <div v-if="dataList3.length == 0" class="empty_wrap">
              <img src="@/assets/images/default_empty.png" alt="">
            </div>
          </div>
        </div>