Переглянути джерело

Merge branch 'master' of http://git.xt.wenhq.top:8083/hs/zhny_ui

hsshuxian 11 місяців тому
батько
коміт
e892690b68

+ 15 - 0
ems-ui/src/api/device/powerbox.js

@@ -42,3 +42,18 @@ export function delPowerBox(id) {
     method: 'delete'
   })
 }
+// 获取配电柜指标信息
+export function getPowerIndexs(boxCode) {
+  return request({
+    url: '/ems/powerBoxIndex/latest/' + boxCode,
+    method: 'get'
+  })
+}
+// 获取空开指标信息
+export function getEqptIndexs(boxCode) {
+  return request({
+    url: '/ems/elecBoxEqptIndex/latest/list?boxCode=' + boxCode,
+    method: 'get'
+  })
+}
+

+ 6 - 2
ems-ui/src/views/mgr/components/alarm.vue

@@ -8,7 +8,7 @@
           <div >{{item.type}}</div>
           <div >{{item.createTime}}</div>
           <div >
-            <el-button type="text" size="mini">处理</el-button>
+            <el-button type="text" size="mini" @click="handlerAlarm(item)">处理</el-button>
           </div>
         </div>
       </vue-seamless-scroll>
@@ -51,7 +51,11 @@ export default {
     }
   },
   mounted() {},
-  methods: {}
+  methods: {
+    handlerAlarm(row){
+      this.$emit('handlerAlarm',row)
+    }
+  }
 }
 </script>
 <style lang='scss' scoped>

+ 91 - 102
ems-ui/src/views/mgr/powerdist.vue

@@ -26,8 +26,8 @@
         <div class="transformer">
           <el-select v-model="transformer" size="mini">
             <el-option label="变压器1" :value="1"></el-option>
-            <el-option label="变压器2" :value="2"></el-option>
-            <el-option label="变压器3" :value="3"></el-option>
+            <!-- <el-option label="变压器2" :value="2"></el-option>
+            <el-option label="变压器3" :value="3"></el-option> -->
           </el-select>
           <div class="transformer-info">
             <div class="info-header">
@@ -64,22 +64,20 @@
       </Panel>
       <Panel title="配电柜">
         <div class="power">
-          <el-select v-model="power" size="mini">
-            <el-option label="配电柜1" :value="1"></el-option>
-            <el-option label="配电柜2" :value="2"></el-option>
-            <el-option label="配电柜3" :value="3"></el-option>
+          <el-select v-model="powerCode" size="mini" @change="powerChange">
+            <el-option v-for="item in powerList" :key="item.boxCode" :label="item.location" :value="item.boxCode"></el-option>
           </el-select>
           <div class="power-info">
             <div>
-              <span>205.2A</span>
+              <span>{{powerInfo.electricityA||'--'}}A</span>
               <span>A相</span>
             </div>
             <div>
-              <span>205.2A</span>
+              <span>{{powerInfo.electricityB||'--'}}A</span>
               <span>B相</span>
             </div>
             <div>
-              <span>205.2A</span>
+              <span>{{powerInfo.electricityC||'--'}}A</span>
               <span>C相</span>
             </div>
           </div>
@@ -87,55 +85,55 @@
             <div class="power-data-title">实时数据</div>
             <div class="power-data-body">
               <div>
-                <div class="data-num">0.76</div>
+                <div class="data-num">{{powerInfo.power||'--'}}</div>
                 <div class="data-name">功率因素</div>
               </div>
               <div>
                 <div class="power-data-row">
                   <div>
-                    <span class="data-num">233.2V</span>
+                    <span class="data-num">{{powerInfo.voltageA||'--'}}V</span>
                     <span class="data-name">A相电压</span>
                   </div>
                   <div>
-                    <span class="data-num">233.2V</span>
-                    <span class="data-name">A相电压</span>
+                    <span class="data-num">{{powerInfo.voltageB||'--'}}V</span>
+                    <span class="data-name">B相电压</span>
                   </div>
                   <div>
-                    <span class="data-num">233.2V</span>
-                    <span class="data-name">A相电压</span>
+                    <span class="data-num">{{powerInfo.voltageC||'--'}}V</span>
+                    <span class="data-name">C相电压</span>
                   </div>
                 </div>
                 <div class="power-data-row">
                   <div>
                     <span class="data-num">233.2V</span>
-                    <span class="data-name">A电压</span>
+                    <span class="data-name">AB线电压</span>
                   </div>
                   <div>
                     <span class="data-num">233.2V</span>
-                    <span class="data-name">A相电压</span>
+                    <span class="data-name">BC相电压</span>
                   </div>
                   <div>
                     <span class="data-num">233.2V</span>
-                    <span class="data-name">A相电压</span>
+                    <span class="data-name">AC相电压</span>
                   </div>
                 </div>
               </div>
             </div>
           </div>
-          <alarm :alarmData="powerAlarmData" />
+          <alarm :alarmData="powerAlarmData" @handlerAlarm="handlerPowerAlarm" />
         </div>
 
       </Panel>
       <Panel title="空开">
         <div class="switch">
-          <el-table :data="switchData" style="width: 100%">
-            <el-table-column prop="name" align="center" label="支路">
+          <el-table :data="eqptList" style="width: 100%">
+            <el-table-column prop="eqptSpec" align="center" show-overflow-tooltip label="支路">
             </el-table-column>
-            <el-table-column prop="regularElec" align="center" label="额定电流">
+            <el-table-column prop="current" align="center" width="90" label="额定电流">
             </el-table-column>
-            <el-table-column prop="realElec" align="center" label="实时电流">
+            <el-table-column prop="ratedCurrent" align="center" width="90" label="实时电流">
             </el-table-column>
-            <el-table-column align="center" label="">
+            <el-table-column align="center" label="" width="50">
               <template slot-scope="scope">
                 <el-switch v-model="scope.row.status" size="mini">
                 </el-switch>
@@ -148,6 +146,8 @@
   </div>
 </template>
 <script>
+import { listPowerBox, getPowerIndexs, getEqptIndexs } from '@/api/device/powerbox.js'
+import { listAlarmInfo, updateAlarmInfo } from '@/api/alarm/alarm-info.js'
 export default {
   name: 'Powerdist',
   data() {
@@ -185,90 +185,79 @@ export default {
           createTime: '08-25 17:51:35'
         }
       ],
-      powerAlarmData: [
-        {
-          name: '配电柜A相电流:579.4A',
-          type: '过流预警',
-          createTime: '08-25 17:51:35'
-        },
-        {
-          name: '配电柜A相电流:579.4A',
-          type: '过流预警',
-          createTime: '08-25 17:51:35'
-        },
-        {
-          name: '配电柜A相电流:579.4A',
-          type: '过流预警',
-          createTime: '08-25 17:51:35'
-        },
-        {
-          name: '配电柜A相电流:579.4A',
-          type: '过流预警',
-          createTime: '08-25 17:51:35'
-        },
-        {
-          name: '配电柜A相电流:579.4A',
-          type: '过流预警',
-          createTime: '08-25 17:51:35'
-        },
-        {
-          name: '配电柜B相电流:579.4A',
-          type: '过流预警',
-          createTime: '08-25 17:51:35'
-        },
-        {
-          name: '配电柜B相电流:579.4A',
-          type: '过流预警',
-          createTime: '08-25 17:51:35'
-        }
-      ],
-      power: 1,
-      switchData: [
-        {
-          name:'总开',
-          regularElec:'63A',
-          realElec:'63A',
-          status:true,
-        },
-        {
-          name:'综合楼空调',
-          regularElec:'63A',
-          realElec:'63A',
-          status:true,
-        },
-        {
-          name:'综合楼照明',
-          regularElec:'63A',
-          realElec:'63A',
-          status:true,
-        },
-        {
-          name:'加油站照明',
-          regularElec:'63A',
-          realElec:'63A',
-          status:false,
-        },
-        {
-          name:'综合楼照明',
-          regularElec:'63A',
-          realElec:'63A',
-          status:true,
-        },
-        {
-          name:'加油站照明',
-          regularElec:'63A',
-          realElec:'63A',
-          status:false,
-        },
-      ]
+      powerAlarmData: [],
+      powerCode: 1,
+      powerList: [],
+      powerInfo: {},
+      eqptList: []
     }
   },
   components: {
     Panel: () => import('./components/panel'),
     alarm: () => import('./components/alarm.vue')
   },
-  mounted() {},
-  methods: {}
+  mounted() {
+    this.getPowerList()
+  },
+  methods: {
+    getPowerAlarmList() {
+      listAlarmInfo({
+        objType: 4,
+        objCode: this.powerCode,
+        alarmStateList: [0, 1]
+      }).then(({ rows }) => {
+        this.powerAlarmData = rows.map(item => ({
+          ...item,
+          name: item.objName,
+          type: item.alarmMsg,
+          createTime: item.alarmTime
+        }))
+      })
+    },
+    getPowerList() {
+      listPowerBox().then(({ rows }) => {
+        this.powerList = rows
+        if (rows.length) {
+          this.powerCode = rows[0].boxCode
+        }
+        this.powerChange()
+      })
+    },
+    getPowerInfo() {
+      getPowerIndexs(this.powerCode).then(({ data }) => {
+        this.powerInfo = data || {}
+      })
+    },
+    getEqptList() {
+      this.eqptList = []
+      getEqptIndexs(this.powerCode).then(({ rows }) => {
+        this.eqptList = (rows || []).map(item => ({
+          ...item,
+          current: `${item.current || '--'}A`,
+          ratedCurrent: `${item.ratedCurrent || '--'}A`,
+          status: true
+        }))
+      })
+    },
+    powerChange() {
+      this.getPowerInfo()
+      this.getEqptList()
+      this.getPowerAlarmList()
+    },
+    handlerPowerAlarm(row) {
+      updateAlarmInfo({
+        id: row.id,
+        alarmState: '2'
+      }).then(({ code }) => {
+        if (code === 200) {
+          this.$modal.msgSuccess('处理成功')
+          this.getPowerAlarmList()
+        } else {
+          this.$modal.msgError('处理失败')
+        }
+      })
+    }
+  }
 }
 </script>
 <style lang='scss' scoped>

+ 9 - 23
ems-ui/src/views/mgr/powergrid.vue

@@ -4,14 +4,10 @@
       <el-tab-pane label="电网" name="first">
         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
           <el-form-item label="服务区" prop="areaCode">
-            <el-select v-model="queryParams.areaCode" placeholder="请选择服务区" clearable>
+            <el-select v-model="queryParams.areaCode" placeholder="请选择服务区" @change="handleQuery">
               <el-option v-for="item in areaOptions" :key="item.id" :label="item.label" :value="item.id" />
             </el-select>
           </el-form-item>
-          <el-form-item>
-            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-          </el-form-item>
         </el-form>
         <BaseChart width="100%" height="300px" :option="elecOptions" />
         <el-table v-loading="loading" :data="pgSupplyHList">
@@ -37,14 +33,10 @@
       <el-tab-pane label="光伏" name="second">
         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
           <el-form-item label="服务区" prop="areaCode">
-            <el-select v-model="queryParams.areaCode" placeholder="请选择服务区" clearable>
+            <el-select v-model="queryParams.areaCode" placeholder="请选择服务区" @change="handleQuery">
               <el-option v-for="item in areaOptions" :key="item.id" :label="item.label" :value="item.id" />
             </el-select>
           </el-form-item>
-          <el-form-item>
-            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-          </el-form-item>
         </el-form>
         <BaseChart width="100%" height="300px" :option="pvOptions" />
         <el-table v-loading="loading" :data="pvSupplyHList">
@@ -94,8 +86,6 @@ export default {
       pvSupplyHList: [],
       // 查询参数
       queryParams: {
-        // pageNum: 1,
-        // pageSize: 10,
         areaCode: null
       },
       areaOptions: [],
@@ -177,7 +167,7 @@ export default {
           }
         },
         legend: {
-          data: ['自用电量', '上网电量','上网收益']
+          data: ['自用电量', '上网电量', '上网收益']
         },
         xAxis: {
           type: 'category',
@@ -252,7 +242,7 @@ export default {
           {
             name: '上网收益',
             type: 'line',
-            yAxisIndex:1,
+            yAxisIndex: 1,
             data: this.pvSupplyHList.map(item => item.upElecEarn),
             smooth: false
           }
@@ -261,15 +251,16 @@ export default {
       return option
     }
   },
-  created() {
+  async created() {
+    await this.getAreaList('Area')
     this.getList()
-    this.getAreaList('Area')
   },
   methods: {
     // 查询区域列表
-    getAreaList(tier) {
-      areaTreeSelect(tier).then(response => {
+    async getAreaList(tier) {
+      await areaTreeSelect(tier).then(response => {
         this.areaOptions = response.data
+        this.queryParams.areaCode = this.areaOptions[0].id
       })
     },
     getList() {
@@ -289,11 +280,6 @@ export default {
     /** 搜索按钮操作 */
     handleQuery() {
       this.getList()
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm('queryForm')
-      this.handleQuery()
     }
   }
 }

+ 74 - 188
ems-ui/src/views/mgr/powerstore.vue

@@ -1,46 +1,14 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="园区代码" prop="areaCode">
-        <el-input v-model="queryParams.areaCode" placeholder="请输入园区代码" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
-      <el-form-item label="设施代码" prop="facsCode">
-        <el-input v-model="queryParams.facsCode" placeholder="请输入设施代码" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
-      <el-form-item label="日期" prop="date">
-        <el-date-picker clearable v-model="queryParams.date" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期 yyyy-MM-dd">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
+      <el-form-item label="服务区" prop="areaCode">
+        <el-select v-model="queryParams.areaCode" placeholder="请选择服务区" @change="handleQuery">
+          <el-option v-for="item in areaOptions" :key="item.id" :label="item.label" :value="item.id" />
+        </el-select>
       </el-form-item>
     </el-form>
-
-    <!-- <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['ems:elecStoreH:add']">新增
-        </el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
-          v-hasPermi="['ems:elecStoreH:edit']">修改
-        </el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
-          v-hasPermi="['ems:elecStoreH:remove']">删除
-        </el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['ems:elecStoreH:export']">导出
-        </el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row> -->
-
-    <el-table v-loading="loading" :data="elecStoreHList" >
-      <el-table-column type="selection" width="55" align="center" />
+    <BaseChart width="100%" height="300px" :option="elecOptions" />
+    <el-table v-loading="loading" :data="elecStoreHList" max-height="400px">
       <el-table-column label="园区名称" align="center" prop="areaShortName" />
       <el-table-column label="设施名称" align="center" prop="facsName" />
       <el-table-column label="日期" align="center" prop="date" width="180">
@@ -49,96 +17,104 @@
       </el-table-column>
       <el-table-column label="充电电量 " align="center" prop="chargeElecQuantity" />
       <el-table-column label="放电电量" align="center" prop="dischargeElecQuantity" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-
-          <el-button size="mini" type="text"  icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['ems:elecStoreH:edit']">
-            修改</el-button>
-          <el-button size="mini" type="text" icon="el-icon-delete" class="deleteBtn" @click="handleDelete(scope.row)" v-hasPermi="['ems:elecStoreH:remove']">
-            删除</el-button>
-
-        </template>
-      </el-table-column>
     </el-table>
-
-    <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
   </div>
 </template>
 
 <script>
-import { addElecStoreH, delElecStoreH, getElecStoreH, listElecStoreH, updateElecStoreH } from '@/api/mgr/elecStoreH'
-
+import { listElecStoreH } from '@/api/mgr/elecStoreH'
+import { areaTreeSelect } from '@/api/basecfg/area'
+import BaseChart from '@/components/BaseChart'
 export default {
   name: 'ElecStoreH',
+  components: {
+    BaseChart
+  },
   data() {
     return {
       // 遮罩层
       loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
       // 储能计量-小时表格数据
       elecStoreHList: [],
-      // 弹出层标题
-      title: '',
-      // 是否显示弹出层
-      open: false,
       // 查询参数
       queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        areaCode: null,
-        facsCode: null,
-        date: null,
-        chargeElecQuantity: null,
-        dischargeElecQuantity: null
+        areaCode: null
       },
       // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        areaCode: [
-          {
-            required: true,
-            message: '园区代码不能为空',
-            trigger: 'blur'
+      areaOptions: []
+    }
+  },
+  computed: {
+    elecOptions() {
+      const xData = this.elecStoreHList.map(item => item.time)
+      const chargeQuantity = this.elecStoreHList.map(item => item.chargeElecQuantity)
+      const dischargeQuantity = this.elecStoreHList.map(item => item.dischargeElecQuantity)
+      const option = {
+        tooltip: {
+          trigger: 'axis',
+          axisPointer: {
+            type: 'cross',
+            crossStyle: {
+              color: '#999'
+            }
           }
-        ],
-        facsCode: [
-          {
-            required: true,
-            message: '设施代码不能为空',
-            trigger: 'blur'
+        },
+        legend: {
+          data: ['充电电量', '放电电量']
+        },
+        xAxis: {
+          type: 'category',
+          data: xData,
+          axisPointer: {
+            type: 'shadow'
           }
-        ],
-        date: [
+        },
+        yAxis: [
           {
-            required: true,
-            message: '日期不能为空',
-            trigger: 'blur'
+            name: 'kW-h(千瓦时)',
+            type: 'value'
           }
         ],
-        time: [
+        series: [
+          {
+            name: '充电电量',
+            type: 'bar',
+            data: chargeQuantity,
+            barWidth: 30,
+            itemStyle: {
+              normal: {
+                color: '#6395FA'
+              }
+            }
+          },
           {
-            required: true,
-            message: '时间不能为空',
-            trigger: 'blur'
+            name: '放电电量',
+            type: 'bar',
+            data: dischargeQuantity,
+            barWidth: 30,
+            itemStyle: {
+              normal: {
+                color: '#8CDF6C'
+              }
+            }
           }
         ]
       }
+      return option
     }
   },
-  created() {
+  async created() {
+    await this.getAreaList('Area')
     this.getList()
   },
   methods: {
+    // 查询区域列表
+    async getAreaList(tier) {
+      await areaTreeSelect(tier).then(response => {
+        this.areaOptions = response.data
+        this.queryParams.areaCode = this.areaOptions[0].id
+      })
+    },
     /** 查询储能计量-小时列表 */
     getList() {
       this.loading = true
@@ -148,99 +124,9 @@ export default {
         this.loading = false
       })
     },
-    // 取消按钮
-    cancel() {
-      this.open = false
-      this.reset()
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        areaCode: null,
-        facsCode: null,
-        date: null,
-        time: null,
-        chargeElecQuantity: null,
-        dischargeElecQuantity: null
-      }
-      this.resetForm('form')
-    },
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1
       this.getList()
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm('queryForm')
-      this.handleQuery()
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length !== 1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset()
-      this.open = true
-      this.title = '添加储能计量-小时'
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset()
-      const id = row.id || this.ids
-      getElecStoreH(id).then(response => {
-        this.form = response.data
-        this.open = true
-        this.title = '修改储能计量-小时'
-      })
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          if (this.form.id != null) {
-            updateElecStoreH(this.form).then(response => {
-              this.$modal.msgSuccess('修改成功')
-              this.open = false
-              this.getList()
-            })
-          } else {
-            addElecStoreH(this.form).then(response => {
-              this.$modal.msgSuccess('新增成功')
-              this.open = false
-              this.getList()
-            })
-          }
-        }
-      })
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids
-      this.$modal
-        .confirm('是否确认删除储能计量-小时编号为"' + ids + '"的数据项?')
-        .then(function() {
-          return delElecStoreH(ids)
-        })
-        .then(() => {
-          this.getList()
-          this.$modal.msgSuccess('删除成功')
-        })
-        .catch(() => {})
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download(
-        'ems/elecStoreH/export',
-        {
-          ...this.queryParams
-        },
-        `elecStoreH_${new Date().getTime()}.xlsx`
-      )
     }
   }
 }