From 9b14d96e248c53e9b48c992ddb420f358876d6bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Thu, 11 Dec 2025 17:59:34 +0800 Subject: [PATCH 1/2] =?UTF-8?q?pcs=E5=BC=80=E5=85=B3=E6=9C=BA,=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=88=97=E8=A1=A8=E4=B8=8A=E4=BC=A0=E3=80=81=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ems/site.js | 7 +- src/views/ems/dzjk/sbjk/pcs/index.vue | 207 +++++++++++++----------- src/views/ems/site/sblb/PcsSwitch.vue | 96 +++++++++++ src/views/ems/site/sblb/PointUpload.vue | 4 +- src/views/ems/site/sblb/index.vue | 69 ++++++-- 5 files changed, 267 insertions(+), 116 deletions(-) create mode 100644 src/views/ems/site/sblb/PcsSwitch.vue diff --git a/src/api/ems/site.js b/src/api/ems/site.js index f906bd2..7fc8f2c 100644 --- a/src/api/ems/site.js +++ b/src/api/ems/site.js @@ -9,10 +9,11 @@ export function getSiteInfoList({siteName, startTime, endTime, pageSize, pageNum } // 设备列表 -export function getDeviceInfoList({siteId, pageSize, pageNum}) { +export function getDeviceInfoList(data) { return request({ - url: `/ems/siteConfig/getDeviceInfoList?siteId=${siteId}&pageSize=${pageSize}&pageNum=${pageNum}`, - method: 'get' + url: `/ems/siteConfig/getDeviceInfoList`, + method: 'get', + params: data }) } diff --git a/src/views/ems/dzjk/sbjk/pcs/index.vue b/src/views/ems/dzjk/sbjk/pcs/index.vue index 39aa17f..3e76dba 100644 --- a/src/views/ems/dzjk/sbjk/pcs/index.vue +++ b/src/views/ems/dzjk/sbjk/pcs/index.vue @@ -1,41 +1,47 @@ @@ -180,11 +191,13 @@ import pointChart from "./../PointChart.vue"; import PointTable from "@/views/ems/site/sblb/PointTable.vue"; import RealTimeBaseInfo from "./../RealTimeBaseInfo.vue"; import getQuerySiteId from "@/mixins/ems/getQuerySiteId"; -import { getRunningHeadInfo, getPcsDetailInfo } from "@/api/ems/dzjk"; +import {getPcsDetailInfo, getRunningHeadInfo} from "@/api/ems/dzjk"; import intervalUpdate from "@/mixins/ems/intervalUpdate"; +import PcsSwitch from "@/views/ems/site/sblb/PcsSwitch.vue"; + export default { name: "DzjkSbjkPcs", - components: { RealTimeBaseInfo, pointChart ,PointTable}, + components: {RealTimeBaseInfo, pointChart, PointTable, PcsSwitch}, mixins: [getQuerySiteId, intervalUpdate], data() { return { @@ -204,7 +217,7 @@ export default { unit: "kWh", pointName: "当天交流充电量 (kWh)", }, - { label: "A相电压", attr: "aPhaseVoltage", unit: "V", pointName: "" }, + {label: "A相电压", attr: "aPhaseVoltage", unit: "V", pointName: ""}, { label: "A相电流", attr: "aPhaseCurrent", @@ -223,7 +236,7 @@ export default { unit: "kWh", pointName: "当天交流放电量 (kWh)", }, - { label: "B相电压", attr: "bPhaseVoltage", unit: "V", pointName: "" }, + {label: "B相电压", attr: "bPhaseVoltage", unit: "V", pointName: ""}, { label: "B相电流", attr: "bPhaseCurrent", @@ -242,7 +255,7 @@ export default { unit: "℃", pointName: "", }, - { label: "C相电压", attr: "cPhaseVoltage", unit: "V", pointName: "" }, + {label: "C相电压", attr: "cPhaseVoltage", unit: "V", pointName: ""}, { label: "C相电流", attr: "cPhaseCurrent", @@ -273,13 +286,13 @@ export default { }, methods: { // 查看设备电位表格 - pointDetail(row,dataType){ + pointDetail(row, dataType) { const {deviceId} = row - this.$refs.pointTable.showTable({siteId:this.siteId,deviceId,deviceCategory:'PCS'},dataType) + this.$refs.pointTable.showTable({siteId: this.siteId, deviceId, deviceCategory: 'PCS'}, dataType) }, - showChart(pointName, deviceId,isBranch=false) { + showChart(pointName, deviceId, isBranch = false) { pointName && - this.$refs.pointChart.showChart({ pointName,deviceCategory:isBranch ? 'BRANCH' : 'PCS', deviceId }); + this.$refs.pointChart.showChart({pointName, deviceCategory: isBranch ? 'BRANCH' : 'PCS', deviceId}); }, //6个方块数据 getRunningHeadData() { @@ -290,11 +303,11 @@ export default { getPcsList() { this.loading = true; getPcsDetailInfo(this.siteId) - .then((response) => { - const data = response?.data || {}; - this.pcsList = JSON.parse(JSON.stringify(data)); - }) - .finally(() => (this.loading = false)); + .then((response) => { + const data = response?.data || {}; + this.pcsList = JSON.parse(JSON.stringify(data)); + }) + .finally(() => (this.loading = false)); }, updateData() { this.getRunningHeadData(); diff --git a/src/views/ems/site/sblb/PcsSwitch.vue b/src/views/ems/site/sblb/PcsSwitch.vue new file mode 100644 index 0000000..13a0518 --- /dev/null +++ b/src/views/ems/site/sblb/PcsSwitch.vue @@ -0,0 +1,96 @@ + + + + diff --git a/src/views/ems/site/sblb/PointUpload.vue b/src/views/ems/site/sblb/PointUpload.vue index 433a7dd..9b963f5 100644 --- a/src/views/ems/site/sblb/PointUpload.vue +++ b/src/views/ems/site/sblb/PointUpload.vue @@ -42,8 +42,8 @@ export default { } }, methods: { - showDialog({siteId, code}) { - this.upload.data = {siteId, deviceCategory: code} + showDialog({siteId, deviceCategory, deviceId}) { + this.upload.data = {siteId, deviceCategory, deviceId} this.show = true; }, //关闭弹窗 重置数据 diff --git a/src/views/ems/site/sblb/index.vue b/src/views/ems/site/sblb/index.vue index de1bc07..d87d1f5 100644 --- a/src/views/ems/site/sblb/index.vue +++ b/src/views/ems/site/sblb/index.vue @@ -8,13 +8,23 @@ :key="index+'zdxeSelect'"> + + + + + + 新增设备 - + - + - -
+ + 下载点位清单 + + + 上传点位清单 + +
{ + const {siteId, deviceCategory, pageNum, pageSize} = this + getDeviceInfoList({siteId, deviceCategory, pageNum, pageSize}).then(response => { this.tableData = response?.rows || []; this.totalSize = response?.total || 0 }).finally(() => { From dd4fa3659717dcd18bca3ffb18be267ea7ed04ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Fri, 12 Dec 2025 17:38:26 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ems/site.js | 9 + src/assets/styles/common.scss | 217 ++++++++++++-------- src/views/ems/dzjk/sbjk/bmsdcc/index.vue | 222 +++++++++++--------- src/views/ems/dzjk/sbjk/bmszl/index.vue | 185 ++++++++++------- src/views/ems/dzjk/sbjk/db/index.vue | 202 ++++++++++--------- src/views/ems/dzjk/sbjk/dh/index.vue | 124 ++++++------ src/views/ems/dzjk/sbjk/ems/index.vue | 2 +- src/views/ems/dzjk/sbjk/pcs/index.vue | 5 +- src/views/ems/dzjk/sbjk/xf/index.vue | 142 +++++++------ src/views/ems/dzjk/sbjk/yl/index.vue | 118 +++++------ src/views/ems/dzjk/zxlt/index.vue | 246 +++++++++++++---------- src/views/ems/site/sblb/PcsSwitch.vue | 50 +++-- src/views/ems/site/sblb/index.vue | 8 +- 13 files changed, 851 insertions(+), 679 deletions(-) diff --git a/src/api/ems/site.js b/src/api/ems/site.js index 7fc8f2c..2f25903 100644 --- a/src/api/ems/site.js +++ b/src/api/ems/site.js @@ -59,6 +59,15 @@ export function deleteService(id) { }) } +//pcs开、关机 +export function updateDeviceStatus(data) { + return request({ + url: `/ems/siteConfig/updateDeviceStatus`, + method: 'post', + data + }) +} + // 获取上级设备id列表 export function getParentDeviceId({siteId, deviceCategory}) { return request({ diff --git a/src/assets/styles/common.scss b/src/assets/styles/common.scss index 1dd6d05..109825f 100644 --- a/src/assets/styles/common.scss +++ b/src/assets/styles/common.scss @@ -4,58 +4,66 @@ //右侧内容区域 //父元素 -.ems-dashboard-editor-container{ +.ems-dashboard-editor-container { background-color: #F1F5FC; padding: 24px; font-size: 12px; } + //除去顶部信息(如搜索栏、站点基本信息等)外的 白色背景内容区域 -.ems-content-container{ +.ems-content-container { background-color: #ffffff; margin-top: 24px; } + //需要设置内padding的白色背景区域 -.ems-content-container-padding{ +.ems-content-container-padding { padding: 24px; } //card通用样式 标题、body -.common-card-container{ - .el-card__header{ - padding:14px; - border-bottom: none; - font-size: 12px; - background: #F1F5FB ; - position: relative; - .card-title{ - font-weight: 500; - color:#333333; - } - .el-button--text{ - color: #666666; - } +.common-card-container { + .el-card__header { + padding: 14px; + border-bottom: none; + font-size: 12px; + background: #F1F5FB; + position: relative; + .card-title { + font-weight: 500; + color: #333333; } -} -.common-card-container-body-no-padding{ - .el-card__body{ - padding:0; + + .el-button--text { + color: #666666; } + + } } + +.common-card-container-body-no-padding { + .el-card__body { + padding: 0; + } +} + .common-card-container-no-title-bg { - .el-card__header{ - background-color: transparent; - } + .el-card__header { + background-color: transparent; + } } + //单站监控 设备监控card公共样式 -.sbjk-card-container{ +.sbjk-card-container { .el-card__header { background-color: transparent; padding: 5px 14px; color: #ffffff; position: relative; border-radius: 5px 5px 0 0; - .large-title{ + + .large-title { font-size: 18px; font-weight: 500; line-height: 40px; @@ -63,6 +71,7 @@ display: inline-block; vertical-align: middle; } + .info { display: inline-block; vertical-align: middle; @@ -70,15 +79,18 @@ font-size: 12px; line-height: 20px; } - .el-button--text{ + + .el-button--text { color: #666666; } - .alarm{ + + .alarm { position: absolute; right: 25px; top: 50%; transform: translateY(-50%); - .alarm-icon{ + + .alarm-icon { font-size: 22px; color: #fff; display: block; @@ -86,18 +98,21 @@ } } } + //红色背景颜色标题 - &.warning-card-container{ + &.warning-card-container { .el-card__header { - background-color: #fc6b69; + background-color: #b64040; //#fc6b69; } } + //绿色背景颜色标题 &.running-card-container { .el-card__header { - background-color: #05aea3; + background-color: #40b6a5; //#05aea3; } } + //灰色背景颜色标题 &.timing-card-container { .el-card__header { @@ -111,11 +126,13 @@ &.common-card-container .el-card__header { padding-top: 0; padding-bottom: 0; + .time-range-header { height: 40px; display: flex; justify-content: space-between; align-items: center; + .card-title { line-height: 40px; } @@ -124,86 +141,100 @@ } - - - //描述样式 PCS、BMS总览、BMS电池簇页面公共样式 -.descriptions-main{ - padding:24px; +.descriptions-main { + padding: 24px; position: relative; - &.descriptions-main-bg-color{ - background-color:#f1f5fc ; - .el-descriptions__body{ - background-color:#f1f5fc ; + + &.descriptions-main-bg-color { + background-color: #f1f5fc; + + .el-descriptions__body { + background-color: #f1f5fc; } } - .el-descriptions-item__cell[colspan='1']{ - width:25% + + .el-descriptions-item__cell[colspan='1'] { + width: 25% } - .el-descriptions__body .el-descriptions__table{ - .descriptions-direction{ + + .el-descriptions__body .el-descriptions__table { + .descriptions-direction { line-height: 19px; color: #666666; font-size: 16px; font-weight: 500; } - .descriptions-label{ + + .descriptions-label { line-height: 14px; color: #666666; font-size: 12px; } - .danger{ - color:#FC6B69; + + .danger { + color: #FC6B69; } - .save{ - color:#09ADA3; + + .save { + color: #09ADA3; } - .keep{ - color:#3C81FF; + + .keep { + color: #3C81FF; } } } + //电表、液冷公共样式 -.device-info-row{ +.device-info-row { box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); border-left: 1px solid #eee; border-top: 1px solid #eee; - .device-info-col{ + + .device-info-col { padding: 10px 0; text-align: center; - font-size:12px; - color:#666666; + font-size: 12px; + color: #666666; line-height: 14px; border-bottom: 1px solid #eee; border-right: 1px solid #eee; - .left{ + + .left { } - .right{ + + .right { display: block; font-weight: 500; - font-size:16px; + font-size: 16px; line-height: 18px; - margin-top:10px; + margin-top: 10px; } } } //公共表格样式 -.el-table{ - font-size:13px; +.el-table { + font-size: 13px; } -.common-table.el-table{ - color:#333333; + +.common-table.el-table { + color: #333333; + .el-table__header-wrapper th, .el-table__fixed-header-wrapper th { background: #f1f5fc; border-bottom: none; + .table-head { color: #515a6e; } } - .warning-status{ - color:#FC6B69; + + .warning-status { + color: #FC6B69; + &.circle::before { content: ""; display: inline-block; @@ -217,54 +248,61 @@ } //二、三级菜单栏样式 -.ems-second-menu{ - width:fit-content; - .el-menu-item{ +.ems-second-menu { + width: fit-content; + + .el-menu-item { line-height: 40px; height: 40px; - padding:0; + padding: 0; } - &.el-menu--horizontal > .el-menu-item.is-active,&.el-menu--horizontal > .el-menu-item{ - border-bottom:none!important; + + &.el-menu--horizontal > .el-menu-item.is-active, &.el-menu--horizontal > .el-menu-item { + border-bottom: none !important; } - .el-menu-item.is-active{ - background: #0366c1!important; + + .el-menu-item.is-active { + background: #0366c1 !important; } } -.ems-third-menu-container{ + +.ems-third-menu-container { position: relative; padding-left: 140px; background-color: #ffffff; - .ems-third-menu{ + + .ems-third-menu { border-right: none; box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); height: fit-content; position: absolute; - top:0; - left:0; - .el-menu-item{ + top: 0; + left: 0; + + .el-menu-item { line-height: 45px; height: 45px; padding: 0 !important; width: 125px; text-align: center; } - .el-menu-item:hover{ - background: #67b1ff!important; - color:#ffffff!important; + + .el-menu-item:hover { + background: #67b1ff !important; + color: #ffffff !important; } - .el-menu-item.is-active{ - background: #409eff!important; + + .el-menu-item.is-active { + background: #409eff !important; } } } - //按钮栏 选中样式 -.ems-btns-group{ - .activeBtn{ +.ems-btns-group { + .activeBtn { background-color: #0366c1; border-color: #0366c1; color: #ffffff; @@ -273,11 +311,12 @@ } //搜索栏样式 -.select-container.el-form--inline .el-form-item{ +.select-container.el-form--inline .el-form-item { margin-right: 15px; } + //红色背景颜色按钮 -.alarm-btn,.alarm-btn:hover, .alarm-btn:focus{ +.alarm-btn, .alarm-btn:hover, .alarm-btn:focus { background-color: #FC6B69; border-color: #FC6B69; } diff --git a/src/views/ems/dzjk/sbjk/bmsdcc/index.vue b/src/views/ems/dzjk/sbjk/bmsdcc/index.vue index 96be67d..cade3db 100644 --- a/src/views/ems/dzjk/sbjk/bmsdcc/index.vue +++ b/src/views/ems/dzjk/sbjk/bmsdcc/index.vue @@ -1,19 +1,22 @@ -