From 674a0c6c335900c1dd73ca538e64e5b137653cce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Mon, 8 Dec 2025 16:58:43 +0800 Subject: [PATCH] =?UTF-8?q?ems=E3=80=81=E6=94=B6=E7=9B=8A=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ems/dzjk.js | 440 ++++++++++++----------- src/router/ems.js | 465 ++++++++++++++++--------- src/store/modules/ems.js | 108 +++--- src/views/ems/dzjk/sbjk/ems/index.vue | 257 ++++++++++++++ src/views/ems/dzjk/tjbb/sybb/index.vue | 249 ++++++------- 5 files changed, 976 insertions(+), 543 deletions(-) create mode 100644 src/views/ems/dzjk/sbjk/ems/index.vue diff --git a/src/api/ems/dzjk.js b/src/api/ems/dzjk.js index db755b4..f60a9fd 100644 --- a/src/api/ems/dzjk.js +++ b/src/api/ems/dzjk.js @@ -2,331 +2,375 @@ import request from '@/utils/request' //获取单个站点的信息 export function getDzjkHomeView(siteId) { - return request({ - url: `/ems/siteMonitor/homeView?siteId=${siteId}`, - method: 'get' - }) + return request({ + url: `/ems/siteMonitor/homeView?siteId=${siteId}`, + method: 'get' + }) } + //站点首页 冲放曲线 -export function getSevenChargeData({siteId,startDate,endDate}) { - return request({ - url: `/ems/siteMap/getSevenChargeData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`, - method: 'get' - }) +export function getSevenChargeData({siteId, startDate, endDate}) { + return request({ + url: `/ems/siteMap/getSevenChargeData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`, + method: 'get' + }) } + // 获取站点包含的设备种类 用来判断单站监控设备监控的菜单栏展示 export function getSiteAllDeviceCategory(siteId) { - return request({ - url: `/ems/siteConfig/getSiteAllDeviceCategory?siteId=${siteId}`, - method: 'get' - }) + return request({ + url: `/ems/siteConfig/getSiteAllDeviceCategory?siteId=${siteId}`, + method: 'get' + }) } + //获取pcs、实时运行头部的设备信息 export function getRunningHeadInfo(siteId) { - return request({ - url: `/ems/siteMonitor/runningHeadInfo?siteId=${siteId}`, - method: 'get' - }) + return request({ + url: `/ems/siteMonitor/runningHeadInfo?siteId=${siteId}`, + method: 'get' + }) } + //获取pcs列表 export function getPcsDetailInfo(siteId) { - return request({ - url: `/ems/siteMonitor/getPcsDetailInfo?siteId=${siteId}`, - method: 'get' - }) + return request({ + url: `/ems/siteMonitor/getPcsDetailInfo?siteId=${siteId}`, + method: 'get' + }) } //获取BMS总览数据 export function getBMSOverView(siteId) { - return request({ - url: `/ems/siteMonitor/getBMSOverView?siteId=${siteId}`, - method: 'get' - }) + return request({ + url: `/ems/siteMonitor/getBMSOverView?siteId=${siteId}`, + method: 'get' + }) } //获取BMS电池簇总览数据 export function getBMSBatteryCluster(siteId) { - return request({ - url: `/ems/siteMonitor/getBMSBatteryCluster?siteId=${siteId}`, - method: 'get' - }) + return request({ + url: `/ems/siteMonitor/getBMSBatteryCluster?siteId=${siteId}`, + method: 'get' + }) } //获取单体电池 电池堆列表数据 export function getStackNameList(siteId) { - return request({ - url: `/ems/siteMonitor/getStackNameList?siteId=${siteId}`, - method: 'get' - }) + return request({ + url: `/ems/siteMonitor/getStackNameList?siteId=${siteId}`, + method: 'get' + }) } + //获取单体电池 电池簇列表数据 -export function getClusterNameList({stackDeviceId,siteId}) { - return request({ - url: `/ems/siteMonitor/getClusterNameList?stackDeviceId=${stackDeviceId}&siteId=${siteId}`, - method: 'get' - }) +export function getClusterNameList({stackDeviceId, siteId}) { + return request({ + url: `/ems/siteMonitor/getClusterNameList?stackDeviceId=${stackDeviceId}&siteId=${siteId}`, + method: 'get' + }) } + //单体电池表格数据 -export function getClusterDataInfoList({siteId, stackDeviceId, clusterDeviceId,batteryId, pageSize, pageNum}) { - return request({ - url: `/ems/siteMonitor/getClusterDataInfoList?clusterDeviceId=${clusterDeviceId}&siteId=${siteId}&stackDeviceId=${stackDeviceId}&batteryId=${batteryId}&pageSize=${pageSize}&pageNum=${pageNum}`, - method: 'get' - }) +export function getClusterDataInfoList({siteId, stackDeviceId, clusterDeviceId, batteryId, pageSize, pageNum}) { + return request({ + url: `/ems/siteMonitor/getClusterDataInfoList?clusterDeviceId=${clusterDeviceId}&siteId=${siteId}&stackDeviceId=${stackDeviceId}&batteryId=${batteryId}&pageSize=${pageSize}&pageNum=${pageNum}`, + method: 'get' + }) } + // 单体电池图表 //http://localhost:8089/ems/siteMonitor/getSingleBatteryData?clusterDeviceId=BMSC01&siteId=021_FXX_01&deviceId=001&startDate=2025-07-11&endDate=2025-07-18 -export function getSingleBatteryData({siteId,deviceId,clusterDeviceId,startDate,endDate}) { - return request({ - url: `/ems/siteMonitor/getSingleBatteryData?siteId=${siteId}&deviceId=${deviceId}&startDate=${startDate}&endDate=${endDate}&clusterDeviceId=${clusterDeviceId}`, - method: 'get' - }) +export function getSingleBatteryData({siteId, deviceId, clusterDeviceId, startDate, endDate}) { + return request({ + url: `/ems/siteMonitor/getSingleBatteryData?siteId=${siteId}&deviceId=${deviceId}&startDate=${startDate}&endDate=${endDate}&clusterDeviceId=${clusterDeviceId}`, + method: 'get' + }) } //获取液冷列表数据 export function getCoolingDataList(siteId) { - return request({ - url: `/ems/siteMonitor/getCoolingDataList?siteId=${siteId}`, - method: 'get' - }) + return request({ + url: `/ems/siteMonitor/getCoolingDataList?siteId=${siteId}`, + method: 'get' + }) } //获取动环数据 export function getDhDataList(siteId) { - return request({ - url: `/ems/siteMonitor/getDhDataList?siteId=${siteId}`, - method: 'get' - }) + return request({ + url: `/ems/siteMonitor/getDhDataList?siteId=${siteId}`, + method: 'get' + }) } //获取消防数据 export function getXfDataList(siteId) { - return request({ - url: `/ems/siteMonitor/getXfDataList?siteId=${siteId}`, - method: 'get' - }) + return request({ + url: `/ems/siteMonitor/getXfDataList?siteId=${siteId}`, + method: 'get' + }) } //获取电表数据 export function getAmmeterDataList(siteId) { - return request({ - url: `/ems/siteMonitor/getAmmeterDataList?siteId=${siteId}`, - method: 'get' - }) + return request({ + url: `/ems/siteMonitor/getAmmeterDataList?siteId=${siteId}`, + method: 'get' + }) } // 故障告警 -export function getAlarmDetailList({status,siteId, deviceId, alarmLevel, alarmStartTime, alarmEndTime,pageSize,pageNum}) { - return request({ - url: `/ems/siteAlarm/getAlarmDetailList?siteId=${siteId}&status=${status}&deviceId=${deviceId}&alarmLevel=${alarmLevel}&alarmStartTime=${alarmStartTime}&alarmEndTime=${alarmEndTime}&pageSize=${pageSize}&pageNum=${pageNum}`, - method: 'get' - }) +export function getAlarmDetailList({ + status, + siteId, + deviceId, + alarmLevel, + alarmStartTime, + alarmEndTime, + pageSize, + pageNum + }) { + return request({ + url: `/ems/siteAlarm/getAlarmDetailList?siteId=${siteId}&status=${status}&deviceId=${deviceId}&alarmLevel=${alarmLevel}&alarmStartTime=${alarmStartTime}&alarmEndTime=${alarmEndTime}&pageSize=${pageSize}&pageNum=${pageNum}`, + method: 'get' + }) } // 告警生成工单 export function createTicketNo(data) { - return request({ - url: `/ems/siteAlarm/createTicketNo`, - method: 'post', - data - }) + return request({ + url: `/ems/siteAlarm/createTicketNo`, + method: 'post', + data + }) } + // 概率统计 //获取概率统计 电量指标接口 -export function getElectricData({siteId,startDate,endDate}) { - return request({ - url: `/ems/statsReport/getElectricData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`, - method: 'get' - }) +export function getElectricData({siteId, startDate, endDate}) { + return request({ + url: `/ems/statsReport/getElectricData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`, + method: 'get' + }) } + //获取pcs列表 export function getPcsNameList(siteId) { - return request({ - url: `/ems/siteMonitor/getPcsNameList?siteId=${siteId}`, - method: 'get' - }) + return request({ + url: `/ems/siteMonitor/getPcsNameList?siteId=${siteId}`, + method: 'get' + }) } + //pcs曲线 -export function getPCSData({siteId,startTime,endTime,dataType}) { - return request({ - url: `/ems/statsReport/getPCSData?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}&dataType=${dataType}`, - method: 'get' - }) +export function getPCSData({siteId, startTime, endTime, dataType}) { + return request({ + url: `/ems/statsReport/getPCSData?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}&dataType=${dataType}`, + method: 'get' + }) } + //电池堆曲线 -export function getStackData({siteId,startTime,endTime,dataType}) { - return request({ - url: `/ems/statsReport/getStackData?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}&dataType=${dataType}`, - method: 'get' - }) +export function getStackData({siteId, startTime, endTime, dataType}) { + return request({ + url: `/ems/statsReport/getStackData?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}&dataType=${dataType}`, + method: 'get' + }) } + //电池温度 -export function getClusterData({siteId,stackId,clusterId,dateTime,pageNum,pageSize}) { - return request({ - url: `/ems/statsReport/getClusterData?siteId=${siteId}&stackId=${stackId}&clusterId=${clusterId}&dateTime=${dateTime}&pageNum=${pageNum}&pageSize=${pageSize}`, - method: 'get' - }) +export function getClusterData({siteId, stackId, clusterId, dateTime, pageNum, pageSize}) { + return request({ + url: `/ems/statsReport/getClusterData?siteId=${siteId}&stackId=${stackId}&clusterId=${clusterId}&dateTime=${dateTime}&pageNum=${pageNum}&pageSize=${pageSize}`, + method: 'get' + }) } // 实时运行 //储能 -export function storagePower(siteId,startTime,endTime) { - return request({ - url: `/ems/siteMonitor/runningGraph/storagePower?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}`, - method: 'get' - }) +export function storagePower(siteId, startTime, endTime) { + return request({ + url: `/ems/siteMonitor/runningGraph/storagePower?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}`, + method: 'get' + }) } + //poc温度 -export function pcsMaxTemp(siteId,startTime,endTime) { - return request({ - url: `/ems/siteMonitor/runningGraph/pcsMaxTemp?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}`, - method: 'get' - }) +export function pcsMaxTemp(siteId, startTime, endTime) { + return request({ + url: `/ems/siteMonitor/runningGraph/pcsMaxTemp?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}`, + method: 'get' + }) } + // 电池平均soc -export function batteryAveSoc(siteId,startTime,endTime) { - return request({ - url: `/ems/siteMonitor/runningGraph/batteryAveSoc?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}`, - method: 'get' - }) +export function batteryAveSoc(siteId, startTime, endTime) { + return request({ + url: `/ems/siteMonitor/runningGraph/batteryAveSoc?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}`, + method: 'get' + }) } + // 电池平均温度 -export function batteryAveTemp(siteId,startTime,endTime) { - return request({ - url: `/ems/siteMonitor/runningGraph/batteryAveTemp?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}`, - method: 'get' - }) +export function batteryAveTemp(siteId, startTime, endTime) { + return request({ + url: `/ems/siteMonitor/runningGraph/batteryAveTemp?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}`, + method: 'get' + }) } + // 功率曲线 -export function getPowerData({siteId,startDate,endDate}) { - return request({ - url: `/ems/statsReport/getPowerData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`, - method: 'get' - }) +export function getPowerData({siteId, startDate, endDate}) { + return request({ + url: `/ems/statsReport/getPowerData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`, + method: 'get' + }) } //电表列表 export function getLoadNameList(siteId) { - return request({ - url: `/ems/statsReport/getLoadNameList?siteId=${siteId}`, - method: 'get' - }) -} -// 电表报表 -export function getAmmeterData({siteId,startTime,endTime, pageSize, pageNum}) { - return request({ - url: `/ems/statsReport/getAmmeterData?siteId=${siteId}&startTime=${startTime}&endTime=${endTime}&pageSize=${pageSize}&pageNum=${pageNum}`, - method: 'get' - }) + return request({ + url: `/ems/statsReport/getLoadNameList?siteId=${siteId}`, + method: 'get' + }) } +// 电表报表 +export function getAmmeterData({siteId, startTime, endTime, pageSize, pageNum}) { + return request({ + url: `/ems/statsReport/getAmmeterData?siteId=${siteId}&startTime=${startTime}&endTime=${endTime}&pageSize=${pageSize}&pageNum=${pageNum}`, + method: 'get' + }) +} + +// 电价报表 +export function getAmmeterRevenueData(data) { + return request({ + url: `/ems/statsReport/getAmmeterRevenueData`, + method: 'get', + params: data + }) +} //策略列表 export function strategyRunningList(siteId) { - return request({ - url: `/system/strategyRunning/list?siteId=${siteId}`, - method: 'get' - }) + return request({ + url: `/system/strategyRunning/list?siteId=${siteId}`, + method: 'get' + }) } + //停止策略 export function stopStrategyRunning(id) { - return request({ - url: `/system/strategyRunning/stop?id=${id}`, - method: 'get' - }) + return request({ + url: `/system/strategyRunning/stop?id=${id}`, + method: 'get' + }) } + // 获取所有主策略 export function getMainStrategyList() { - return request({ - url: `/system/strategyRunning/getMainStrategyList`, - method: 'get' - }) + return request({ + url: `/system/strategyRunning/getMainStrategyList`, + method: 'get' + }) } + //获取所有辅助策略 export function getAuxStrategyList() { - return request({ - url: `/system/strategyRunning/getAuxStrategyList`, - method: 'get' - }) + return request({ + url: `/system/strategyRunning/getAuxStrategyList`, + method: 'get' + }) } + //配置策略 export function configStrategy(data) { - return request({ - url: `/system/strategyRunning/configStrategy`, - method: 'post', - data - }) + return request({ + url: `/system/strategyRunning/configStrategy`, + method: 'post', + data + }) } //http://localhost:8089/strategy/temp/getTempNameList?strategyId=1&siteId=021_FXX_01 //获取策略下的所有模板列表 -export function getTempNameList({siteId,strategyId}) { - return request({ - url: `/strategy/temp/getTempNameList?siteId=${siteId}&strategyId=${strategyId}`, - method: 'get', - }) +export function getTempNameList({siteId, strategyId}) { + return request({ + url: `/strategy/temp/getTempNameList?siteId=${siteId}&strategyId=${strategyId}`, + method: 'get', + }) } + //获取模板详情 ///strategy/temp/list?templateId=1 export function getStrategyTempDetail(templateId) { - return request({ - url: `/strategy/temp/list?templateId=${templateId}`, - method: 'get', - }) + return request({ + url: `/strategy/temp/list?templateId=${templateId}`, + method: 'get', + }) } + //新增模板 export function addStrategyTemp(data) { - return request({ - url: `/strategy/temp`, - method: 'post', - data - }) + return request({ + url: `/strategy/temp`, + method: 'post', + data + }) } + export function editStrategyTemp(data) { - return request({ - url: `/strategy/temp`, - method: 'put', - data - }) + return request({ + url: `/strategy/temp`, + method: 'put', + data + }) } + //http://localhost:8089/strategy/temp/{id} export function deleteStrategyTemp(id) { - return request({ - url: `/strategy/temp/`+id, - method: 'delete', - }) + return request({ + url: `/strategy/temp/` + id, + method: 'delete', + }) } //http://localhost:8089/strategy/timeConfig/list?strategyId=1&siteId=021_FXX_01 -export function timeConfigList({siteId,strategyId}) { - return request({ - url: `/strategy/timeConfig/list?siteId=${siteId}&strategyId=${strategyId}`, - method: 'get', - }) +export function timeConfigList({siteId, strategyId}) { + return request({ + url: `/strategy/timeConfig/list?siteId=${siteId}&strategyId=${strategyId}`, + method: 'get', + }) } + //保存时间配置 // http://localhost:8089/strategy/timeConfig export function setTimeConfigList(data) { - return request({ - url: `/strategy/timeConfig`, - method: 'post', - data - }) + return request({ + url: `/strategy/timeConfig`, + method: 'post', + data + }) } + // 策略曲线图 //http://localhost:8089/strategy/curve/curveList?strategyId=1&siteId=021_FXX_01 -export function curveList({siteId,strategyId}) { - return request({ - url: `/strategy/curve/curveList?siteId=${siteId}&strategyId=${strategyId}`, - method: 'get', - }) +export function curveList({siteId, strategyId}) { + return request({ + url: `/strategy/curve/curveList?siteId=${siteId}&strategyId=${strategyId}`, + method: 'get', + }) } //单站监控 首页 当日功率曲线 -export function getPointData({siteId,startDate,endDate}) { - return request({ - url: `/ems/siteMonitor/getPointData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`, - method: 'get', - }) +export function getPointData({siteId, startDate, endDate}) { + return request({ + url: `/ems/siteMonitor/getPointData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`, + method: 'get', + }) } diff --git a/src/router/ems.js b/src/router/ems.js index 9d0415e..4aad241 100644 --- a/src/router/ems.js +++ b/src/router/ems.js @@ -2,182 +2,303 @@ import Layout from "@/layout/index.vue"; //单站监控 // todo 本地设置了 hidden:true,不会显示在侧边栏,需要在系统管理、菜单管理中手动添加菜单后才会展示在侧边栏 -export const dzjk=[ - { - path: '/dzjk', - component: Layout, - redirect: '/dzjk/home', - meta: { title: '单站监控', icon: 'dashboard',}, - alwaysShow: false, - name:'Dzjk', - hidden:true, - children: [ - { - path: '', - component: () => import('@/views/ems/dzjk/index'), - name: 'Dzjk', +export const dzjk = [ + { + path: '/dzjk', + component: Layout, redirect: '/dzjk/home', + meta: {title: '单站监控', icon: 'dashboard',}, + alwaysShow: false, + name: 'Dzjk', hidden: true, children: [ - { - path: '/dzjk/home', - component: () => import('@/views/ems/dzjk/home/index.vue'), - name: 'DzjkHome', - meta: { title: '站点首页',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkHome' } - }, - { - path: '/dzjk/zxlt', - component: () => import('@/views/ems/dzjk/zxlt/index.vue'), - name: 'DzjkZxlt', - meta: { title: '主线路图',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkZxlt' } - }, - { - path: '/dzjk/sbjk', - component: () => import('@/views/ems/dzjk/sbjk/index.vue'), - name: 'DzjkSbjk', - meta: { title: '设备监控',breadcrumb: false,activeMenu: '/dzjk'}, - redirect: '/dzjk/sbjk/ssyx', - children: [ - { - path: 'ssyx', - component: () => import('@/views/ems/dzjk/sbjk/ssyx/index.vue'), - name: 'DzjkSbjkSsyx', - meta: { title: '实时运行',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkSbjk',deviceCategory:'SSYX'}, - }, - { - path: 'pcs', - component: () => import('@/views/ems/dzjk/sbjk/pcs/index.vue'), - name: 'DzjkSbjkPcs', - meta: { title: 'PCS',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkSbjk',deviceCategory:'PCS'}, - }, - { - path: 'bmszl', - component: () => import('@/views/ems/dzjk/sbjk/bmszl/index.vue'), - name: 'DzjkSbjkBmszl', - meta: { title: 'BMS总览',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkSbjk', deviceCategory:'STACK'}, - }, - { - path: 'bmsdcc', - component: () => import('@/views/ems/dzjk/sbjk/bmsdcc/index.vue'), - name: 'DzjkSbjkBmsdcc', - meta: { title: 'BMS电池簇',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkSbjk',deviceCategory:'CLUSTER'}, - }, - { - path: 'dtdc', - component: () => import('@/views/ems/dzjk/sbjk/dtdc/index.vue'), - name: 'DzjkSbjkDtdc', - meta: { title: '单体电池',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkSbjk',deviceCategory:'BATTERY'}, - }, - { - path: 'db', - component: () => import('@/views/ems/dzjk/sbjk/db/index.vue'), - name: 'DzjkSbjkDb', - meta: { title: '电表',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkSbjk',deviceCategory:'AMMETER'}, - }, - { - path: 'yl', - component: () => import('@/views/ems/dzjk/sbjk/yl/index.vue'), - name: 'DzjkSbjkYl', - meta: { title: '液冷',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkSbjk',deviceCategory:'COOLING'}, - }, - { - path: 'dh', - component: () => import('@/views/ems/dzjk/sbjk/dh/index.vue'), - name: 'DzjkSbjkDh', - meta: { title: '动环',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkSbjk',deviceCategory:'DH'}, - }, - { - path: 'xf', - component: () => import('@/views/ems/dzjk/sbjk/xf/index.vue'), - name: 'DzjkSbjkXf', - meta: { title: '消防',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkSbjk',deviceCategory:'XF'}, - } - ] - }, - { - path: '/dzjk/gzgj', - component: () => import('@/views/ems/dzjk/gzgj/index.vue'), - name: 'DzjkGzgj', - meta: { title: '故障告警',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkGzgj' } - }, - { - path: '/dzjk/tjbb', - component: () => import('@/views/ems/dzjk/tjbb/index.vue'), - name: 'DzjkTjbb', - meta: {title: '统计报表', breadcrumb: false, activeMenu: '/dzjk'}, - redirect: '/dzjk/tjbb/gltj', - children: [ - { - path: 'gltj', - component: () => import('@/views/ems/dzjk/tjbb/gltj/index.vue'), - name: 'DzjkTjbbGltj', - meta: { title: '概率统计',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkTjbb'}, - }, - { - path: 'glqx', - component: () => import('@/views/ems/dzjk/tjbb/glqx/index.vue'), - name: 'DzjkTjbbGlqx', - meta: { title: '功率曲线',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkTjbb'}, - }, - { - path: 'pcsqx', - component: () => import('@/views/ems/dzjk/tjbb/pcsqx/index.vue'), - name: 'DzjkTjbbPcsqx', - meta: { title: 'PCS曲线',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkTjbb'}, - }, - { - path: 'dcdqx', - component: () => import('@/views/ems/dzjk/tjbb/dcdqx/index.vue'), - name: 'DzjkTjbbDcdqx', - meta: { title: '电池堆曲线',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkTjbb'}, - }, - { - path: 'dcwd', - component: () => import('@/views/ems/dzjk/tjbb/dcwd/index.vue'), - name: 'DzjkTjbbDcwd', - meta: { title: '电池温度',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkTjbb'}, - }, - { - path: 'dbbb', - component: () => import('@/views/ems/dzjk/tjbb/dbbb/index.vue'), - name: 'DzjkTjbbDbbb', - meta: { title: '电表报表',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkTjbb'}, - }, - { - path: 'sybb', - component: () => import('@/views/ems/dzjk/tjbb/sybb/index.vue'), - name: 'DzjkTjbbSybb', - meta: { title: '收益报表',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkTjbb'}, - } - ] - }, - { - path: '/dzjk/clpz', - component: () => import('@/views/ems/dzjk/clpz/index.vue'), - name: 'DzjkClpz', - meta: {title: '策略配置', breadcrumb: false, activeMenu: '/dzjk'}, - redirect: '/dzjk/clpz/clyx', - children: [ - { - path: 'clyx', - component: () => import('@/views/ems/dzjk/clpz/clyx/index.vue'), - name: 'DzjkClpzClyx', - meta: { title: '策略运行',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkClpz'}, - }, - // { - // path: 'xftg', - // component: () => import('@/views/ems/dzjk/clpz/xftg/index.vue'), - // hidden:true, - // breadcrumb: false, - // name: 'DzjkClpzXftg', - // meta: { title: '削峰填谷',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkClpz'}, - // } - ] - } + { + path: '', + component: () => import('@/views/ems/dzjk/index'), + name: 'Dzjk', + redirect: '/dzjk/home', + hidden: true, + children: [ + { + path: '/dzjk/home', + component: () => import('@/views/ems/dzjk/home/index.vue'), + name: 'DzjkHome', + meta: { + title: '站点首页', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkHome' + } + }, + { + path: '/dzjk/zxlt', + component: () => import('@/views/ems/dzjk/zxlt/index.vue'), + name: 'DzjkZxlt', + meta: { + title: '主线路图', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkZxlt' + } + }, + { + path: '/dzjk/sbjk', + component: () => import('@/views/ems/dzjk/sbjk/index.vue'), + name: 'DzjkSbjk', + meta: {title: '设备监控', breadcrumb: false, activeMenu: '/dzjk'}, + redirect: '/dzjk/sbjk/ssyx', + children: [ + { + path: 'ssyx', + component: () => import('@/views/ems/dzjk/sbjk/ssyx/index.vue'), + name: 'DzjkSbjkSsyx', + meta: { + title: '实时运行', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkSbjk', + deviceCategory: 'SSYX' + }, + }, + { + path: 'ems', + component: () => import('@/views/ems/dzjk/sbjk/ems/index.vue'), + name: 'DzjkSbjkEms', + meta: { + title: 'EMS', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkSbjk', + deviceCategory: 'EMS' + }, + }, + { + path: 'pcs', + component: () => import('@/views/ems/dzjk/sbjk/pcs/index.vue'), + name: 'DzjkSbjkPcs', + meta: { + title: 'PCS', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkSbjk', + deviceCategory: 'PCS' + }, + }, + { + path: 'bmszl', + component: () => import('@/views/ems/dzjk/sbjk/bmszl/index.vue'), + name: 'DzjkSbjkBmszl', + meta: { + title: 'BMS总览', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkSbjk', + deviceCategory: 'STACK' + }, + }, + { + path: 'bmsdcc', + component: () => import('@/views/ems/dzjk/sbjk/bmsdcc/index.vue'), + name: 'DzjkSbjkBmsdcc', + meta: { + title: 'BMS电池簇', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkSbjk', + deviceCategory: 'CLUSTER' + }, + }, + { + path: 'dtdc', + component: () => import('@/views/ems/dzjk/sbjk/dtdc/index.vue'), + name: 'DzjkSbjkDtdc', + meta: { + title: 'BMS单体电池', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkSbjk', + deviceCategory: 'BATTERY' + }, + }, + { + path: 'db', + component: () => import('@/views/ems/dzjk/sbjk/db/index.vue'), + name: 'DzjkSbjkDb', + meta: { + title: '电表', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkSbjk', + deviceCategory: 'AMMETER' + }, + }, + { + path: 'yl', + component: () => import('@/views/ems/dzjk/sbjk/yl/index.vue'), + name: 'DzjkSbjkYl', + meta: { + title: '冷却', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkSbjk', + deviceCategory: 'COOLING' + }, + }, + { + path: 'dh', + component: () => import('@/views/ems/dzjk/sbjk/dh/index.vue'), + name: 'DzjkSbjkDh', + meta: { + title: '动环', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkSbjk', + deviceCategory: 'DH' + }, + }, + { + path: 'xf', + component: () => import('@/views/ems/dzjk/sbjk/xf/index.vue'), + name: 'DzjkSbjkXf', + meta: { + title: '消防', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkSbjk', + deviceCategory: 'XF' + }, + } + ] + }, + { + path: '/dzjk/gzgj', + component: () => import('@/views/ems/dzjk/gzgj/index.vue'), + name: 'DzjkGzgj', + meta: { + title: '故障告警', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkGzgj' + } + }, + { + path: '/dzjk/tjbb', + component: () => import('@/views/ems/dzjk/tjbb/index.vue'), + name: 'DzjkTjbb', + meta: {title: '统计报表', breadcrumb: false, activeMenu: '/dzjk'}, + redirect: '/dzjk/tjbb/gltj', + children: [ + { + path: 'gltj', + component: () => import('@/views/ems/dzjk/tjbb/gltj/index.vue'), + name: 'DzjkTjbbGltj', + meta: { + title: '概率统计', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkTjbb' + }, + }, + { + path: 'glqx', + component: () => import('@/views/ems/dzjk/tjbb/glqx/index.vue'), + name: 'DzjkTjbbGlqx', + meta: { + title: '功率曲线', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkTjbb' + }, + }, + { + path: 'pcsqx', + component: () => import('@/views/ems/dzjk/tjbb/pcsqx/index.vue'), + name: 'DzjkTjbbPcsqx', + meta: { + title: 'PCS曲线', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkTjbb' + }, + }, + { + path: 'dcdqx', + component: () => import('@/views/ems/dzjk/tjbb/dcdqx/index.vue'), + name: 'DzjkTjbbDcdqx', + meta: { + title: '电池堆曲线', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkTjbb' + }, + }, + { + path: 'dcwd', + component: () => import('@/views/ems/dzjk/tjbb/dcwd/index.vue'), + name: 'DzjkTjbbDcwd', + meta: { + title: '电池温度', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkTjbb' + }, + }, + { + path: 'dbbb', + component: () => import('@/views/ems/dzjk/tjbb/dbbb/index.vue'), + name: 'DzjkTjbbDbbb', + meta: { + title: '电表报表', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkTjbb' + }, + }, + { + path: 'sybb', + component: () => import('@/views/ems/dzjk/tjbb/sybb/index.vue'), + name: 'DzjkTjbbSybb', + meta: { + title: '收益报表', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkTjbb' + }, + } + ] + }, + { + path: '/dzjk/clpz', + component: () => import('@/views/ems/dzjk/clpz/index.vue'), + name: 'DzjkClpz', + meta: {title: '策略配置', breadcrumb: false, activeMenu: '/dzjk'}, + redirect: '/dzjk/clpz/clyx', + children: [ + { + path: 'clyx', + component: () => import('@/views/ems/dzjk/clpz/clyx/index.vue'), + name: 'DzjkClpzClyx', + meta: { + title: '策略运行', + breadcrumb: false, + activeMenu: '/dzjk', + activeSecondMenuName: 'DzjkClpz' + }, + }, + // { + // path: 'xftg', + // component: () => import('@/views/ems/dzjk/clpz/xftg/index.vue'), + // hidden:true, + // breadcrumb: false, + // name: 'DzjkClpzXftg', + // meta: { title: '削峰填谷',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkClpz'}, + // } + ] + } + ] + } ] - } - ] - } + } ] diff --git a/src/store/modules/ems.js b/src/store/modules/ems.js index e8a5b53..635c6fb 100644 --- a/src/store/modules/ems.js +++ b/src/store/modules/ems.js @@ -1,53 +1,63 @@ -import {getAlarmDetailList,getSiteAllDeviceCategory} from'@/api/ems/dzjk' -const ems = { - state: { - dzjkAlarmLighting:false,//单站监控 告警统计红点标志 - zdList:[], - zdDeviceCategoryOptions:{},//站点各个站点包含的设备种类 {021_DDS_01:["BATTERY","CLUSTER","STACK", "DH", "AMMETER", "PCS", "XF"],021_DDS_02:[]...} - workStatusOptions:{'0':'正常','1':'异常','2':'停止'},//工作状态 - deviceStatusOptions:{'0':'离线','1':'待机','2':'运行','3':'故障','4':'停机'},//设备状态 - gridStatusOptions:{'0':'并网','1':'未并网'},//并网状态 - controlModeOptions:{'0':'远程','1':'本地'},//控制模式 - warnOptions:{0:'正常', 1:'中断', 2:'不在线',3:'异常'},//告警状态 - communicationStatusOptions:{'0':'正常','1':'通讯中断','2':'异常'},//通讯状态 - workModeOptions:{'0':'正常','1':'停止'},//工作模式 - alarmLevelOptions:{'A':'提示','B':'一般','C':'严重','D':'紧急'},//告警等级 - alarmStatusOptions:{'0':'待处理','1':'已处理','2':'处理中'},//告警状态 - deviceTypeOptions:{'TCP':'TCP','RTU':'RTU'},//设备类型 - ticketStatusOptions:{1:'待处理', 2:'处理中', 3:'已处理'},//工单处理状态 - strategyStatusOptions:{'0':'未启用', '1':'已运行', '2':'已暂停', '3':'禁用', '4':'删除'},//策略状态 - chargeStatusOptions:{'1':'充电','2':'待机'},//冲放状态 - deviceCategoryOptions:{'PCS':'PCS','STACK':'电池堆','CLUSTER':'电池簇','COOLING':'液冷','BATTERY':'单体电池','AMMETER':'电表'},//设备类别 - comparisonOperatorOptions:{'>':'>','<':'<','=':'=','>=':'>=','<=':'<='}, - relationWithPoint:{'||':'||','&&':'&&'} - }, - mutations: { - SET_ZD_LIST(state, list) { - state.zdList = list || [] - }, - SET_DZJK_ALARM_LIGHTING(state, status) { - state.dzjkAlarmLighting = status - }, - SET_ZD_DEVICE_CATEGORY_OPTIONS(state,{siteId,data}){ - state.zdDeviceCategoryOptions = Object.assign({}, state.zdDeviceCategoryOptions, {[siteId]:data}) - } - }, - actions: { - //查询站点的所有待处理0的告警 存在展示红点标志 - getSiteAlarmNum({state,commit},siteId){ - getAlarmDetailList({status:0,siteId,pageSize:10,pageNum:1,deviceId:'',alarmLevel:'',alarmStartTime:'',alarmEndTime:''}).then(response=>{ - commit('SET_DZJK_ALARM_LIGHTING',!!response?.total || false) - }) - }, - getSiteDeviceCategory({state,commit},siteId){ - getSiteAllDeviceCategory(siteId).then(response=>{ - let data = response?.data || []; - data.unshift('SSYX'); - commit('SET_ZD_DEVICE_CATEGORY_OPTIONS',{siteId,data}) - }) - } +import {getAlarmDetailList, getSiteAllDeviceCategory} from '@/api/ems/dzjk' - } +const ems = { + state: { + dzjkAlarmLighting: false,//单站监控 告警统计红点标志 + zdList: [], + zdDeviceCategoryOptions: {},//站点各个站点包含的设备种类 {021_DDS_01:["BATTERY","CLUSTER","STACK", "DH", "AMMETER", "PCS", "XF"],021_DDS_02:[]...} + workStatusOptions: {'0': '正常', '1': '异常', '2': '停止'},//工作状态 + deviceStatusOptions: {'0': '离线', '1': '待机', '2': '运行', '3': '故障', '4': '停机'},//设备状态 + gridStatusOptions: {'0': '并网', '1': '未并网'},//并网状态 + controlModeOptions: {'0': '远程', '1': '本地'},//控制模式 + warnOptions: {0: '正常', 1: '中断', 2: '不在线', 3: '异常'},//告警状态 + communicationStatusOptions: {'0': '正常', '1': '通讯中断', '2': '异常'},//通讯状态 + workModeOptions: {'0': '正常', '1': '停止'},//工作模式 + alarmLevelOptions: {'A': '提示', 'B': '一般', 'C': '严重', 'D': '紧急'},//告警等级 + alarmStatusOptions: {'0': '待处理', '1': '已处理', '2': '处理中'},//告警状态 + deviceTypeOptions: {'TCP': 'TCP', 'RTU': 'RTU'},//设备类型 + ticketStatusOptions: {1: '待处理', 2: '处理中', 3: '已处理'},//工单处理状态 + strategyStatusOptions: {'0': '未启用', '1': '已运行', '2': '已暂停', '3': '禁用', '4': '删除'},//策略状态 + chargeStatusOptions: {'1': '充电', '2': '待机'},//冲放状态 + comparisonOperatorOptions: {'>': '>', '<': '<', '=': '=', '>=': '>=', '<=': '<='}, + relationWithPoint: {'||': '||', '&&': '&&'} + }, + mutations: { + SET_ZD_LIST(state, list) { + state.zdList = list || [] + }, + SET_DZJK_ALARM_LIGHTING(state, status) { + state.dzjkAlarmLighting = status + }, + SET_ZD_DEVICE_CATEGORY_OPTIONS(state, {siteId, data}) { + state.zdDeviceCategoryOptions = Object.assign({}, state.zdDeviceCategoryOptions, {[siteId]: data}) + } + }, + actions: { + //查询站点的所有待处理0的告警 存在展示红点标志 + getSiteAlarmNum({state, commit}, siteId) { + getAlarmDetailList({ + status: 0, + siteId, + pageSize: 10, + pageNum: 1, + deviceId: '', + alarmLevel: '', + alarmStartTime: '', + alarmEndTime: '' + }).then(response => { + commit('SET_DZJK_ALARM_LIGHTING', !!response?.total || false) + }) + }, + getSiteDeviceCategory({state, commit}, siteId) { + getSiteAllDeviceCategory(siteId).then(response => { + let data = response?.data || []; + data.unshift('SSYX'); + data.unshift('EMS');//todo delete + commit('SET_ZD_DEVICE_CATEGORY_OPTIONS', {siteId, data}) + }) + } + + } } export default ems diff --git a/src/views/ems/dzjk/sbjk/ems/index.vue b/src/views/ems/dzjk/sbjk/ems/index.vue new file mode 100644 index 0000000..f440f7a --- /dev/null +++ b/src/views/ems/dzjk/sbjk/ems/index.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/src/views/ems/dzjk/tjbb/sybb/index.vue b/src/views/ems/dzjk/tjbb/sybb/index.vue index 677b9b4..dc37dec 100644 --- a/src/views/ems/dzjk/tjbb/sybb/index.vue +++ b/src/views/ems/dzjk/tjbb/sybb/index.vue @@ -1,4 +1,3 @@ -