From f5fc1d64ec83069e5a8ee9d369ebf7e4b2a8af5b 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, 25 Aug 2025 14:29:27 +0800 Subject: [PATCH 01/20] =?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/dzjk.js | 4 +-- src/views/ems/dzjk/gzgj/index.vue | 41 +++--------------------------- src/views/ems/dzjk/zxlt/index.vue | 42 +++++++++++++++++++++++-------- 3 files changed, 37 insertions(+), 50 deletions(-) diff --git a/src/api/ems/dzjk.js b/src/api/ems/dzjk.js index eb2d979..5faf472 100644 --- a/src/api/ems/dzjk.js +++ b/src/api/ems/dzjk.js @@ -93,9 +93,9 @@ export function getAmmeterDataList(siteId) { } // 故障告警 -export function getAlarmDetailList({siteId, deviceId, alarmLevel, alarmStartTime, alarmEndTime,pageSize,pageNum}) { +export function getAlarmDetailList({status,siteId, deviceId, alarmLevel, alarmStartTime, alarmEndTime,pageSize,pageNum}) { return request({ - url: `/ems/siteAlarm/getAlarmDetailList?siteId=${siteId}&deviceId=${deviceId}&alarmLevel=${alarmLevel}&alarmStartTime=${alarmStartTime}&alarmEndTime=${alarmEndTime}&pageSize=${pageSize}&pageNum=${pageNum}`, + url: `/ems/siteAlarm/getAlarmDetailList?siteId=${siteId}&status=${status}&deviceId=${deviceId}&alarmLevel=${alarmLevel}&alarmStartTime=${alarmStartTime}&alarmEndTime=${alarmEndTime}&pageSize=${pageSize}&pageNum=${pageNum}`, method: 'get' }) } diff --git a/src/views/ems/dzjk/gzgj/index.vue b/src/views/ems/dzjk/gzgj/index.vue index 3108136..d600f42 100644 --- a/src/views/ems/dzjk/gzgj/index.vue +++ b/src/views/ems/dzjk/gzgj/index.vue @@ -124,7 +124,7 @@ export default { return { loading:false, btnList:[ - {name:'今日告警',id:'today'}, + {name:'未处理告警',id:'today'}, {name:'历史告警',id:'history'}, ], deviceOptions:[],//设备列表 @@ -173,17 +173,6 @@ export default { onSearch(){ this.pageNum =1//每次搜索从1开始搜索 const [alarmStartTime='',alarmEndTime='']=(this.dateRange || []) - // 选中了时间范围 - if(alarmStartTime && alarmStartTime){ - // 如果选择的时间范围是今天 - if(this.isSameDay(alarmStartTime,alarmEndTime) && this.isSameDay(alarmStartTime,new Date())){ - this.activeBtn = 'today' - }else { - this.activeBtn = 'history' - } - }else{ - //没有选择时间范围 还是按照选中的今日告警、历史告警查询 - } this.getData() }, // 重置 @@ -198,17 +187,6 @@ export default { if(id !== this.activeBtn){ console.log('点击了不同的菜单,更新数据') this.activeBtn=id; - const [alarmStartTime,alarmEndTime]=(this.dateRange || []) - // 切换到今日告警,如果已经选择了时间范围清空 - if(alarmStartTime && alarmEndTime){ - // 如果切换到了今日告警,时间范围不相等或者相等但是不是今天 清空时间选择范围 - if(id === 'today' && !this.isSameDay(alarmStartTime,alarmEndTime) || (this.isSameDay(alarmStartTime,alarmEndTime) && !this.isSameDay(alarmStartTime,new Date()))){ - this.dateRange = [] - }else if(id === 'history' && this.isSameDay(alarmStartTime,alarmEndTime) && this.isSameDay(alarmStartTime,new Date())){ - // 切换成历史告警,但是选择时间范围是当天,清空时间范围 - this.dateRange = [] - } - } this.getData() } }, @@ -218,21 +196,8 @@ export default { const {deviceId,alarmLevel} = this.search const {siteId,pageNum,pageSize,activeBtn} =this const [alarmStartTime='',alarmEndTime='']=(this.dateRange || []) - let start='',end = '',now =new Date() - if(activeBtn === 'today'){ - start = end = now - }else{ - if(alarmStartTime && alarmEndTime){ - start = alarmStartTime - end = alarmEndTime - }else{ - start='' - end = '' - // now - // end.setDate(end.getDate() - 1); - } - } - getAlarmDetailList({deviceId,alarmLevel,siteId,pageSize,pageNum,alarmStartTime:formatDate(start),alarmEndTime:formatDate(end)}).then(response => { + let status = activeBtn === 'today' ? '0' : '1,2' + getAlarmDetailList({status,deviceId,alarmLevel,siteId,pageSize,pageNum,alarmStartTime:formatDate(alarmStartTime),alarmEndTime:formatDate(alarmEndTime)}).then(response => { this.tableData=response?.rows || []; this.totalSize = response?.total || 0 }).finally(() => {this.loading=false}) diff --git a/src/views/ems/dzjk/zxlt/index.vue b/src/views/ems/dzjk/zxlt/index.vue index 98a3999..d8a2dfd 100644 --- a/src/views/ems/dzjk/zxlt/index.vue +++ b/src/views/ems/dzjk/zxlt/index.vue @@ -112,11 +112,14 @@ > {{ communicationStatusOptions[item.communicationStatus] }} -
- +
+
+ +
{{item.batteryNum || 0}}
+
{{ item.deviceName }}
@@ -179,11 +182,14 @@ ] }} -
- +
+
+ +
{{item.batteryNum || 0}}
+
{{ item.children[0].deviceName }}
@@ -505,10 +511,26 @@ $lineColor: #86bcc7; .row-items-img { position: relative; padding-top: 12px; + &.row-items-img-bms{ + padding-top: 14px; + .num{ + position: absolute; + top: -2px; + right: -2px; + font-size: 10px; + line-height: 10px; + padding: 2px 4px; + text-align: center; + border-radius: 10px; + background-color: #03c69d; + color: #fff; + } + } img { width: 80px; height: auto; display: block; + position: relative; &.img-lq { width: 50px; } From 8808b256829c38a62429f070e2540fb70bd3b59e 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, 1 Sep 2025 18:06:56 +0800 Subject: [PATCH 02/20] =?UTF-8?q?=E7=BB=BC=E5=90=88=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/ems.js | 1 + src/views/ems/search/index.vue | 136 +++++++++++++++++++++++++++++++++ 2 files changed, 137 insertions(+) create mode 100644 src/views/ems/search/index.vue diff --git a/src/store/modules/ems.js b/src/store/modules/ems.js index cad9f32..2bc171c 100644 --- a/src/store/modules/ems.js +++ b/src/store/modules/ems.js @@ -14,6 +14,7 @@ const ems = { ticketStatusOptions:{0:'待处理', 1:'已处理', 2:'处理中'},//工单处理状态 strategyStatusOptions:{'0':'未启用', '1':'已运行', '2':'已暂停', '3':'禁用', '4':'删除'},//策略状态 chargeStatusOptions:{'1':'充电','2':'待机'},//冲放状态 + deviceCategoryOptions:{'PCS':'PCS','STACK':'电池堆','CLUSTER':'电池簇','COOLING':'液冷','BATTERY':'单体电池','AMMETER':'电表'},//设备类别 }, mutations: { SET_ZD_LIST(state, list) { diff --git a/src/views/ems/search/index.vue b/src/views/ems/search/index.vue new file mode 100644 index 0000000..45d4e8c --- /dev/null +++ b/src/views/ems/search/index.vue @@ -0,0 +1,136 @@ + + + + + From 243724c9a649cc8df7562e8f91442b9a77f85a82 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, 4 Sep 2025 15:37:15 +0800 Subject: [PATCH 03/20] =?UTF-8?q?=E7=BB=BC=E5=90=88=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ems/search.js | 24 ++++ src/views/ems/search/index.vue | 193 ++++++++++++++++++++++++--------- 2 files changed, 163 insertions(+), 54 deletions(-) create mode 100644 src/api/ems/search.js diff --git a/src/api/ems/search.js b/src/api/ems/search.js new file mode 100644 index 0000000..f53e504 --- /dev/null +++ b/src/api/ems/search.js @@ -0,0 +1,24 @@ +import request from '@/utils/request' +// 获取设备列表 +export function getAllDeviceCategory() { + return request({ + url: '/ems/generalQuery/getAllDeviceCategory', + method: 'get' + }) +} +// 点位列表 +export function pointFuzzyQuery(data) { + return request({ + url: '/ems/generalQuery/pointFuzzyQuery', + method: 'post', + data + }) +} +// 图表 +export function getPointValueList(data) { + return request({ + url: '/ems/generalQuery/getPointValueList', + method: 'post', + data + }) +} diff --git a/src/views/ems/search/index.vue b/src/views/ems/search/index.vue index 45d4e8c..2e4f6fe 100644 --- a/src/views/ems/search/index.vue +++ b/src/views/ems/search/index.vue @@ -3,36 +3,36 @@ - + {{ item.siteName }} - - - - {{ name }} + + + + {{ key }}
- - - + + - - - - - + + + 分钟 + 小时 +
@@ -43,7 +43,6 @@
-
@@ -53,35 +52,23 @@ From c5026887371b67f38725174734fc215665ba97c6 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, 4 Sep 2025 20:12:05 +0800 Subject: [PATCH 04/20] =?UTF-8?q?=E7=BB=BC=E5=90=88=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/filters/ems.js | 2 +- src/views/ems/search/DateTimeSelect.vue | 142 ++++++++++++++++++++++++ src/views/ems/search/index.vue | 79 ++++++++++++- 3 files changed, 220 insertions(+), 3 deletions(-) create mode 100644 src/views/ems/search/DateTimeSelect.vue diff --git a/src/filters/ems.js b/src/filters/ems.js index df51d22..cfc0572 100644 --- a/src/filters/ems.js +++ b/src/filters/ems.js @@ -17,7 +17,7 @@ export const formatDate = (val,toSeconds = false,onlyTime=false) => { if(!toSeconds){ return front } else{ - return front +''+back + return front +' '+back } diff --git a/src/views/ems/search/DateTimeSelect.vue b/src/views/ems/search/DateTimeSelect.vue new file mode 100644 index 0000000..515b760 --- /dev/null +++ b/src/views/ems/search/DateTimeSelect.vue @@ -0,0 +1,142 @@ + + + + diff --git a/src/views/ems/search/index.vue b/src/views/ems/search/index.vue index 2e4f6fe..650bff6 100644 --- a/src/views/ems/search/index.vue +++ b/src/views/ems/search/index.vue @@ -28,6 +28,13 @@ @select="handleSelect" >
+ + + 分钟 @@ -43,6 +50,7 @@
+
@@ -54,26 +62,91 @@ import * as echarts from 'echarts' import resize from '@/mixins/ems/resize' import {getAllSites} from "@/api/ems/zddt"; import {getAllDeviceCategory,getPointValueList,pointFuzzyQuery} from '@/api/ems/search' +import DateTimeSelect from "./DateTimeSelect.vue"; export default { name: "Search", mixins: [resize], + components:{DateTimeSelect}, computed: { + isDtdc(){ + return this.form.categoryName === '单体电池' + } }, data() { return { chart: null, deviceCategoryList:[],//设备列表 siteList: [],//站点列表 + childOptions:[ + { + value: '021_DDS_01', + label: '站点一', + children:[{ + value: '1', + label: '1-50', + children:[{ + value: '001', + label: '设备一' + },{ + value: '002', + label: '设备二' + },{ + value: '003', + label: '设备三' + }] + }] + }, + { + value: '021_DDS_02', + label: '站点二', + children: + [{ + value: '1', + label: '1-50', + children:[{ + value: '001', + label: '设备一' + },{ + value: '002', + label: '设备二' + }, { + value: '003', + label: '设备三' + }] + }, + { + value: '2', + label: '51-100', + children:[{ + value: '001', + label: '设备一' + },{ + value: '002', + label: '设备二' + },{ + value: '003', + label: '设备三' + }] + }] + + } + ],//二级设备列表 form: { + dataRange:[],//时间选择范围 + child:[], siteIds: [],//当前选中的站点id 默认选中第一个站点 categoryName: '',//设备 pointName: '',//点位 - dataUnit: '',//横坐标 + dataUnit: 1,//横坐标 }, loading: false, } }, methods: { + handleChildChange(data){ + console.log('选择二级设备',data) + this.form.child=data + }, showLoading(){ this.chart && this.chart.showLoading() }, @@ -150,7 +223,6 @@ export default { this.form.pointName = data.value }, querySearchAsync(query,cb){ - // query = query.trim() console.log('查询数据',query) if(this.form.siteIds.length===0 || !this.form.categoryName){ this.$message({ @@ -188,6 +260,9 @@ export default { if(!this.form.pointName){ return this.$message.error('请输入正确的点位'); } + if(this.isDtdc && (this.form.child.length === 0 || this.form.child.length > 5 )){ + return this.$message.error('请选择二级设备且不能超过5个'); + } this.loading = true const{siteIds,dataUnit,categoryName,pointName}=this.form getPointValueList({siteIds,dataUnit,categoryName,pointName}).then(response => { From e7ea8c8f447533197e478127ad3eec5f41884776 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, 5 Sep 2025 20:37:44 +0800 Subject: [PATCH 05/20] =?UTF-8?q?=E7=BB=BC=E5=90=88=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ems/search.js | 8 ++ src/views/ems/search/DateTimeSelect.vue | 15 ++- src/views/ems/search/index.vue | 167 ++++++++++++++---------- 3 files changed, 119 insertions(+), 71 deletions(-) diff --git a/src/api/ems/search.js b/src/api/ems/search.js index f53e504..32bd1ea 100644 --- a/src/api/ems/search.js +++ b/src/api/ems/search.js @@ -22,3 +22,11 @@ export function getPointValueList(data) { data }) } + +// 图表 +export function getAllBatteryIdsBySites(data) { + return request({ + url: `/ems/generalQuery/getAllBatteryIdsBySites/${data}`, + method: 'get', + }) +} \ No newline at end of file diff --git a/src/views/ems/search/DateTimeSelect.vue b/src/views/ems/search/DateTimeSelect.vue index 515b760..0827588 100644 --- a/src/views/ems/search/DateTimeSelect.vue +++ b/src/views/ems/search/DateTimeSelect.vue @@ -32,7 +32,7 @@ export default { return this.dataUnit === 3 ? 'daterange' : 'datetimerange' }, valueFormat(){ - return this.dataUnit === 3 ? 'yyyy-MM-dd' : 'yyyy-MM-dd HH:mm' + return this.dataUnit === 3 ? 'yyyy-MM-dd' :this.dataUnit === 2 ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd HH:mm:ss' }, disabledNextBtn(){ if(this.dateRange && this.dateRange.length ===2){ @@ -47,7 +47,14 @@ export default { dataUnit:{ handler(newVal,oldVal){ console.log('wacth到了dataUnit的变化',newVal,oldVal) - newVal && newVal!==oldVal && this.init() + this.init() + // if(!oldVal && newVal){ + // this.init() + // }else{ + // this.init() + // //为了触发调用图表接口 + // this.$emit('updateDate',this.dateRange || []) + // } }, immediate: true, } @@ -73,7 +80,7 @@ export default { this.dateRange = [timeAgo, formatNow]; this.defaultDateRange=[timeAgo, formatNow]; console.log('init',timeAgo,formatNow) - this.$emit('updateDate',this.dateRange || []) + this.$emit('initDate',this.dateRange || []) }, showBtnLoading(status){ this.loading = status @@ -96,6 +103,8 @@ export default { const timeDis= dataUnit === 3? 30 * 24 * 60 * 60 * 1000 :dataUnit === 2 ? 24 * 60 * 60 * 1000 : 60 * 60 * 1000 if(endTime - startTime > timeDis){ this.$message.error(`时间范围不能超过${dataUnit === 3 ? '30天' : dataUnit === 2 ? '24小时' : '1小时'}`) + }else{ + this.$emit('updateDate',this.dateRange || []) } }else{ this.$emit('updateDate',this.dateRange || []) diff --git a/src/views/ems/search/index.vue b/src/views/ems/search/index.vue index 650bff6..60c2d77 100644 --- a/src/views/ems/search/index.vue +++ b/src/views/ems/search/index.vue @@ -6,11 +6,16 @@ prop="siteIds" :rules="[{ required: true, message: '请选择站点' }]" > - - + + + + + + + {{ item.siteName }} - - + +
@@ -28,10 +33,11 @@ @select="handleSelect" > - + @@ -50,7 +56,7 @@
- +
@@ -61,7 +67,7 @@ import * as echarts from 'echarts' import resize from '@/mixins/ems/resize' import {getAllSites} from "@/api/ems/zddt"; -import {getAllDeviceCategory,getPointValueList,pointFuzzyQuery} from '@/api/ems/search' +import {getAllDeviceCategory,getPointValueList,pointFuzzyQuery,getAllBatteryIdsBySites} from '@/api/ems/search' import DateTimeSelect from "./DateTimeSelect.vue"; export default { name: "Search", @@ -70,71 +76,32 @@ export default { computed: { isDtdc(){ return this.form.categoryName === '单体电池' - } + }, + }, + watch:{ + 'form.siteIds':{ + handler(newVal){ + newVal && this.isDtdc && this.getChildList() + } + }, + isDtdc:{ + handler(newVal){ + newVal && this.form.siteIds && this.getChildList() + !newVal && (this.form.child = []) + } + }, + }, data() { return { chart: null, deviceCategoryList:[],//设备列表 siteList: [],//站点列表 - childOptions:[ - { - value: '021_DDS_01', - label: '站点一', - children:[{ - value: '1', - label: '1-50', - children:[{ - value: '001', - label: '设备一' - },{ - value: '002', - label: '设备二' - },{ - value: '003', - label: '设备三' - }] - }] - }, - { - value: '021_DDS_02', - label: '站点二', - children: - [{ - value: '1', - label: '1-50', - children:[{ - value: '001', - label: '设备一' - },{ - value: '002', - label: '设备二' - }, { - value: '003', - label: '设备三' - }] - }, - { - value: '2', - label: '51-100', - children:[{ - value: '001', - label: '设备一' - },{ - value: '002', - label: '设备二' - },{ - value: '003', - label: '设备三' - }] - }] - - } - ],//二级设备列表 + childOptions:[],//二级设备列表 form: { dataRange:[],//时间选择范围 child:[], - siteIds: [],//当前选中的站点id 默认选中第一个站点 + siteIds: '',//当前选中的站点id 默认选中第一个站点 categoryName: '',//设备 pointName: '',//点位 dataUnit: 1,//横坐标 @@ -143,6 +110,43 @@ export default { } }, methods: { + getChildList(){ + this.childOptions=[] + this.form.child=[] + const {siteIds} = this.form + getAllBatteryIdsBySites([siteIds]).then(response=>{ + const data = response?.data || {}; + const base = 50 + let options = [] + Object.entries(data).forEach(([key,value],index)=>{ + if(!value) value =[] + options.push({ + value: key, + label: this.siteList.find(s=>s.siteId === key)?.siteName || '', + children:[] + }) + const length = value.length + const num = Math.ceil(length /base ) + if(num === 0) return + for(let i = 1; i <= num; i++){ + const start = (i-1)*base+1,end = i*base + options[index].children.push({ + value:i, + label: `${start}-${end}`, + children:[] + }) + for(let s = start;s<=Math.min(length,end);s++){ + options[index].children[i-1].children.push({ + value:value[s-1], + label:value[s-1] + }) + } + } + }) + console.log('二级设备options',options) + this.childOptions = options; + }) + }, handleChildChange(data){ console.log('选择二级设备',data) this.form.child=data @@ -156,6 +160,10 @@ export default { initChart() { this.chart = echarts.init(document.querySelector('#searchChart')) }, + updateDate(val){ + this.form.dataRange =val || [] + this.getDate() + }, setOption(data) { if(!this.chart) return this.chart.clear() @@ -165,7 +173,7 @@ export default { data.forEach((item,index)=>{ item.deviceList.forEach(inner=>{ dataset.push({ - name:`${this.siteList.find(s=>s.siteId === item.siteId)?.siteName || ''}-${inner.deviceId}`, + name:`${this.isDtdc ? `${inner.parentDeviceId ? inner.parentDeviceId+'-' : ''}` : ''}${inner.deviceId}`, type:'line', xdata:[], data:[] @@ -224,7 +232,7 @@ export default { }, querySearchAsync(query,cb){ console.log('查询数据',query) - if(this.form.siteIds.length===0 || !this.form.categoryName){ + if(!this.form.siteIds || !this.form.categoryName){ this.$message({ type: 'warning', message: '请先选择站点和设备', @@ -232,7 +240,7 @@ export default { return cb([]) } pointFuzzyQuery({ - siteIds:this.form.siteIds, + siteIds:[this.form.siteIds], categoryName:this.form.categoryName, pointName:query, }).then(response => { @@ -264,8 +272,31 @@ export default { return this.$message.error('请选择二级设备且不能超过5个'); } this.loading = true - const{siteIds,dataUnit,categoryName,pointName}=this.form - getPointValueList({siteIds,dataUnit,categoryName,pointName}).then(response => { + const{siteIds,dataUnit,categoryName,pointName,dataRange:[start='',end=''],child}=this.form + let siteDeviceMap={} + child.forEach(([first,second,third])=>{ + if(siteDeviceMap[first]){ + siteDeviceMap[first].push(third) + }else{ + siteDeviceMap[first]=[] + siteDeviceMap[first].push(third) + } + }) + let startDate,endDate + if(start && dataUnit===3){ + // startDate= start + `${dataUnit === 2 ? ':00' : ' 00:00:00'}` + startDate = start + ' 00:00:00' + }else{ + startDate=start + } + if(end && dataUnit===3){ + // endDate= end + `${dataUnit === 2 ? ':00' : ' 00:00:00'}` + endDate = end + ' 00:00:00' + }else{ + endDate=end + } + + getPointValueList({siteIds:[siteIds],dataUnit,categoryName,pointName,startDate,endDate,siteDeviceMap}).then(response => { this.setOption(response?.data || []) }).finally(()=>{ this.loading = false From 2742f874ce3082d16e65a2080e145aa8a743e650 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, 5 Sep 2025 20:50:27 +0800 Subject: [PATCH 06/20] =?UTF-8?q?=E7=BB=BC=E5=90=88=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ems/search/index.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/views/ems/search/index.vue b/src/views/ems/search/index.vue index 60c2d77..aecbbed 100644 --- a/src/views/ems/search/index.vue +++ b/src/views/ems/search/index.vue @@ -25,17 +25,19 @@
- + - + 5 )){ - return this.$message.error('请选择二级设备且不能超过5个'); + return this.$message.error('请选择单体电池且不能超过5个'); } this.loading = true const{siteIds,dataUnit,categoryName,pointName,dataRange:[start='',end=''],child}=this.form From cc3164a423e316f90a31e610639efe6e36b1672c 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 Sep 2025 18:01:48 +0800 Subject: [PATCH 07/20] =?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/components/Ems/DateRangeSelect/index.vue | 4 ++-- src/components/Ems/ZdSelect/index.vue | 8 ++++---- src/views/ems/dzjk/home/ActiveChart.vue | 2 +- src/views/ems/dzjk/home/WeekChart.vue | 4 ++-- src/views/ems/dzjk/home/index.vue | 2 +- src/views/ems/dzjk/sbjk/bmsdcc/index.vue | 4 ++-- src/views/ems/search/index.vue | 6 +++--- src/views/ems/site/sblb/index.vue | 4 ++-- 8 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/components/Ems/DateRangeSelect/index.vue b/src/components/Ems/DateRangeSelect/index.vue index 10196c2..fb026df 100644 --- a/src/components/Ems/DateRangeSelect/index.vue +++ b/src/components/Ems/DateRangeSelect/index.vue @@ -38,9 +38,9 @@ export default { } }, methods: { - init(){ + init(today=false){ const now = new Date(),formatNow = formatDate(now); - const weekAgo = formatDate(new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000)) + const weekAgo = formatDate(today ? new Date(now.getTime()) : new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000)) this.dateRange = [weekAgo, formatNow]; this.defaultDateRange=[weekAgo, formatNow]; this.$emit('updateDate',this.dateRange) diff --git a/src/components/Ems/ZdSelect/index.vue b/src/components/Ems/ZdSelect/index.vue index 83e85cc..bfe869f 100644 --- a/src/components/Ems/ZdSelect/index.vue +++ b/src/components/Ems/ZdSelect/index.vue @@ -3,13 +3,13 @@
- + - - 搜索 - + + +
diff --git a/src/views/ems/dzjk/home/ActiveChart.vue b/src/views/ems/dzjk/home/ActiveChart.vue index 0b4eca4..1d768a0 100644 --- a/src/views/ems/dzjk/home/ActiveChart.vue +++ b/src/views/ems/dzjk/home/ActiveChart.vue @@ -57,7 +57,7 @@ export default { this.siteId = siteId this.timeRange=[] this.deviceId='' - this.$refs.dateRangeSelect.init() + this.$refs.dateRangeSelect.init(true) this.showLoading() getPcsNameList(siteId).then(response=>{ const data=response?.data || []; diff --git a/src/views/ems/dzjk/home/WeekChart.vue b/src/views/ems/dzjk/home/WeekChart.vue index 486f5e8..1cd685f 100644 --- a/src/views/ems/dzjk/home/WeekChart.vue +++ b/src/views/ems/dzjk/home/WeekChart.vue @@ -107,11 +107,11 @@ export default { series: [ { yAxisIndex:0, - type: 'line', + type: 'bar', }, { yAxisIndex:0, - type: 'line', + type: 'bar', }, ] }) diff --git a/src/views/ems/dzjk/home/index.vue b/src/views/ems/dzjk/home/index.vue index 9398a11..e500155 100644 --- a/src/views/ems/dzjk/home/index.vue +++ b/src/views/ems/dzjk/home/index.vue @@ -10,7 +10,7 @@ class="common-card-container common-card-container-body-no-padding" >
- 静态信息 + 站点信息
- {{index+1}}#{{baseInfo.deviceName}} + {{index+1}}#{{baseInfo.parentDeviceName?`${baseInfo.parentDeviceName} -> ` : ''}}{{baseInfo.deviceName}}
@@ -20,7 +20,7 @@
-
+
当前SOC : {{baseInfo.currentSoc}}%
diff --git a/src/views/ems/search/index.vue b/src/views/ems/search/index.vue index aecbbed..62c2c86 100644 --- a/src/views/ems/search/index.vue +++ b/src/views/ems/search/index.vue @@ -60,7 +60,7 @@
-
+
@@ -193,8 +193,8 @@ export default { console.log('图表数据',dataset) this.chart.setOption({ legend: { - left: 'center', - top: '10', + // left: 'center', + // top: '10', }, grid: { containLabel: true diff --git a/src/views/ems/site/sblb/index.vue b/src/views/ems/site/sblb/index.vue index 597ef95..1823343 100644 --- a/src/views/ems/site/sblb/index.vue +++ b/src/views/ems/site/sblb/index.vue @@ -3,12 +3,12 @@
- + - 搜索 + 重置 From f16b92582cc0a1ce2d36e579fe85ea07303a7b6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Tue, 9 Sep 2025 17:51:52 +0800 Subject: [PATCH 08/20] =?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/mixins/ems/intervalUpdate.js | 24 ++++++++++++++++++++++++ src/views/ems/dzjk/sbjk/pcs/index.vue | 9 +++++++-- src/views/ems/dzjk/sbjk/ssyx/index.vue | 16 ++++++++++------ 3 files changed, 41 insertions(+), 8 deletions(-) create mode 100644 src/mixins/ems/intervalUpdate.js diff --git a/src/mixins/ems/intervalUpdate.js b/src/mixins/ems/intervalUpdate.js new file mode 100644 index 0000000..774f221 --- /dev/null +++ b/src/mixins/ems/intervalUpdate.js @@ -0,0 +1,24 @@ +// 定时刷新 +const intervalUpdate= { + data: function () { + return { + intervalUpdateTimer:null + } + }, + beforeDestroy() { + console.log('销毁之前 清空定时器') + if( this.intervalUpdateTimer) { + window.clearInterval(this.intervalUpdateTimer) + this.intervalUpdateTimer = null + } + }, + methods:{ + updateInterval: function (cn,time=10000) { + window.clearInterval(this.intervalUpdateTimer) + this.intervalUpdateTimer = null + this.intervalUpdateTimer = window.setInterval(cn,time) + } + } + +} +export default intervalUpdate diff --git a/src/views/ems/dzjk/sbjk/pcs/index.vue b/src/views/ems/dzjk/sbjk/pcs/index.vue index 70bf861..d222055 100644 --- a/src/views/ems/dzjk/sbjk/pcs/index.vue +++ b/src/views/ems/dzjk/sbjk/pcs/index.vue @@ -51,10 +51,11 @@ import RealTimeBaseInfo from "./../RealTimeBaseInfo.vue"; import getQuerySiteId from "@/mixins/ems/getQuerySiteId"; import {getRunningHeadInfo,getPcsDetailInfo} from '@/api/ems/dzjk' +import intervalUpdate from "@/mixins/ems/intervalUpdate"; export default { name:'DzjkSbjkPcs', components:{RealTimeBaseInfo}, - mixins:[getQuerySiteId], + mixins:[getQuerySiteId,intervalUpdate], data() { return { loading:false, @@ -150,9 +151,13 @@ export default { this.pcsList = JSON.parse(JSON.stringify(data)) }).finally(()=>this.loading = false) }, - init(){ + updateData(){ this.getRunningHeadData() this.getPcsList() + }, + init(){ + this.updateData() + this.updateInterval(this.updateData,5000) } }, diff --git a/src/views/ems/dzjk/sbjk/ssyx/index.vue b/src/views/ems/dzjk/sbjk/ssyx/index.vue index c862ef8..54bce5b 100644 --- a/src/views/ems/dzjk/sbjk/ssyx/index.vue +++ b/src/views/ems/dzjk/sbjk/ssyx/index.vue @@ -34,11 +34,12 @@ import DcpjwdChart from './DcpjwdChart.vue' import DcpjsocChart from './DcpjsocChart.vue' import getQuerySiteId from "@/mixins/ems/getQuerySiteId"; import {getRunningHeadInfo} from '@/api/ems/dzjk' +import intervalUpdate from "@/mixins/ems/intervalUpdate"; export default { name:'DzjkSbjkSsyx', components:{RealTimeBaseInfo,CnglqxChart,PocpjwdChart,DcpjwdChart,DcpjsocChart}, - mixins:[getQuerySiteId], + mixins:[getQuerySiteId,intervalUpdate], data() { return { runningHeadData:{},//运行信息 @@ -51,15 +52,18 @@ export default { this.runningHeadData = response?.data || {} }) }, + updateData(){ + this.$refs.cnglqx.init(this.siteId) + this.$refs.pocpjwd.init(this.siteId) + this.$refs.dcpjsoc.init(this.siteId) + this.$refs.dcpjwd.init(this.siteId) + }, init(){ this.getRunningHeadData() this.$nextTick(()=>{ - this.$refs.cnglqx.init(this.siteId) - this.$refs.pocpjwd.init(this.siteId) - this.$refs.dcpjsoc.init(this.siteId) - this.$refs.dcpjwd.init(this.siteId) + this.updateData() + this.updateInterval(this.updateData) }) - } } From ae1c2a5d6ce55b383832aaf59d344338a1dca193 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Wed, 10 Sep 2025 09:54:29 +0800 Subject: [PATCH 09/20] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ems/dzjk/sbjk/bmsdcc/index.vue | 10 ++-- src/views/ems/dzjk/sbjk/bmszl/index.vue | 11 +++-- src/views/ems/dzjk/sbjk/db/index.vue | 61 ++++++++++++++---------- src/views/ems/dzjk/sbjk/pcs/index.vue | 2 +- src/views/ems/dzjk/sbjk/yl/index.vue | 25 +++++++--- 5 files changed, 70 insertions(+), 39 deletions(-) diff --git a/src/views/ems/dzjk/sbjk/bmsdcc/index.vue b/src/views/ems/dzjk/sbjk/bmsdcc/index.vue index 8653293..028b47e 100644 --- a/src/views/ems/dzjk/sbjk/bmsdcc/index.vue +++ b/src/views/ems/dzjk/sbjk/bmsdcc/index.vue @@ -69,9 +69,10 @@ From ba4df3217610b5a6fc735296a77da33d6f928214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Wed, 10 Sep 2025 09:56:22 +0800 Subject: [PATCH 10/20] =?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/views/ems/dzjk/sbjk/db/index.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/views/ems/dzjk/sbjk/db/index.vue b/src/views/ems/dzjk/sbjk/db/index.vue index f5945d0..75c6c50 100644 --- a/src/views/ems/dzjk/sbjk/db/index.vue +++ b/src/views/ems/dzjk/sbjk/db/index.vue @@ -130,7 +130,6 @@ export default { } } .cnb-common-card-container { - margin-top: 25px; ::v-deep { .el-card__header { background-color: #05aea3; From f0054487058179c9721e43c7e338231b5e944a74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Wed, 10 Sep 2025 14:25:00 +0800 Subject: [PATCH 11/20] =?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/mixins/ems/intervalUpdate.js | 2 +- src/views/ems/search/index.vue | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/mixins/ems/intervalUpdate.js b/src/mixins/ems/intervalUpdate.js index 774f221..d83a85c 100644 --- a/src/mixins/ems/intervalUpdate.js +++ b/src/mixins/ems/intervalUpdate.js @@ -13,7 +13,7 @@ const intervalUpdate= { } }, methods:{ - updateInterval: function (cn,time=10000) { + updateInterval: function (cn,time=60000) { window.clearInterval(this.intervalUpdateTimer) this.intervalUpdateTimer = null this.intervalUpdateTimer = window.setInterval(cn,time) diff --git a/src/views/ems/search/index.vue b/src/views/ems/search/index.vue index 62c2c86..13de9df 100644 --- a/src/views/ems/search/index.vue +++ b/src/views/ems/search/index.vue @@ -24,6 +24,15 @@ + + +
- - - 分钟 From c51baa166bb801f38a2399950b637c8068c3721f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Sat, 13 Sep 2025 14:47:37 +0800 Subject: [PATCH 12/20] =?UTF-8?q?=E7=AB=99=E7=82=B9=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E6=80=BB=E5=85=85=E7=94=B5=E9=87=8F=E3=80=81=E6=80=BB=E6=94=BE?= =?UTF-8?q?=E7=94=B5=E9=87=8F=E5=8D=95=E4=BD=8D=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ems/dzjk/home/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/ems/dzjk/home/index.vue b/src/views/ems/dzjk/home/index.vue index e500155..f9bb0c1 100644 --- a/src/views/ems/dzjk/home/index.vue +++ b/src/views/ems/dzjk/home/index.vue @@ -102,11 +102,11 @@ export default { ], sjglData: [ { - title: "今日充电量(MWh)", + title: "今日充电量(kWh)", attr: "dayChargedCap", }, { - title: "今日放电量(MWh)", + title: "今日放电量(kWh)", attr: "dayDisChargedCap", }, { From b61a202267d5266dc31e3082f8949b0a546929bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Sat, 13 Sep 2025 14:58:42 +0800 Subject: [PATCH 13/20] =?UTF-8?q?['#4472c4','#70ad47'],//=E6=89=80?= =?UTF-8?q?=E6=9C=89=E5=85=85=E6=94=BE=E7=94=B5=E9=A2=9C=E8=89=B2=E4=BF=9D?= =?UTF-8?q?=E6=8C=81=E7=BB=9F=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ems/dzjk/home/WeekChart.vue | 2 +- src/views/ems/dzjk/tjbb/gltj/Dlzb.vue | 5 ++++- src/views/ems/zddt/BarChart.vue | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/views/ems/dzjk/home/WeekChart.vue b/src/views/ems/dzjk/home/WeekChart.vue index 1cd685f..acd0685 100644 --- a/src/views/ems/dzjk/home/WeekChart.vue +++ b/src/views/ems/dzjk/home/WeekChart.vue @@ -72,7 +72,7 @@ export default { source.push([item.ammeterDate, item.chargedCap,item.disChargedCap]) }) this.chart && this.chart.setOption({ - color:['#FFBD00','#3C81FF','#05AEA3'], + color:['#4472c4','#70ad47'],//所有充放电颜色保持统一 tooltip: { trigger: 'axis', axisPointer: { // 坐标轴指示器,坐标轴触发有效 diff --git a/src/views/ems/dzjk/tjbb/gltj/Dlzb.vue b/src/views/ems/dzjk/tjbb/gltj/Dlzb.vue index dee45ae..8731f61 100644 --- a/src/views/ems/dzjk/tjbb/gltj/Dlzb.vue +++ b/src/views/ems/dzjk/tjbb/gltj/Dlzb.vue @@ -72,7 +72,6 @@ export default { source.push([item.ammeterDate, item.chargedCap,item.disChargedCap,item.dailyEfficiency]) }) this.chart.setOption({ - color:['#FFBD00','#3C81FF','#05AEA3'], legend: { left: 'center', bottom: '15', @@ -110,18 +109,22 @@ export default { dataset:{ source }, + //所有充放电颜色保持统一 series: [ { yAxisIndex:0, type: 'bar',//柱状图 + color:'#4472c4' }, { yAxisIndex:0, type: 'bar',//柱状图 + color:'#70ad47' }, { yAxisIndex:1, type: 'line',//柱状图 + color:'#FFBD00' }, ] }) diff --git a/src/views/ems/zddt/BarChart.vue b/src/views/ems/zddt/BarChart.vue index e893c44..2e03973 100644 --- a/src/views/ems/zddt/BarChart.vue +++ b/src/views/ems/zddt/BarChart.vue @@ -32,7 +32,7 @@ export default { source.push([item.ammeterDate, item.chargedCap,item.disChargedCap]) }) this.chart.setOption({ - color:['#A796FF','#FFBE01'], + color:['#4472c4','#70ad47'],//所有充放电颜色保持统一 grid: { top:30, containLabel: true From 4c31eeb837b4d3be3389276d0cc6d3f716ba30b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Sat, 13 Sep 2025 20:36:46 +0800 Subject: [PATCH 14/20] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E6=95=B0=E6=8D=AE=E6=9F=A5=E7=9C=8B=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/styles/common.scss | 21 +++ src/views/ems/dzjk/home/index.vue | 16 -- src/views/ems/dzjk/sbjk/PointChart.vue | 221 +++++++++++++++++++++++ src/views/ems/dzjk/sbjk/bmsdcc/index.vue | 54 ++++-- src/views/ems/dzjk/sbjk/bmszl/index.vue | 48 +++-- src/views/ems/dzjk/sbjk/db/index.vue | 30 +++ src/views/ems/dzjk/sbjk/pcs/index.vue | 113 ++++-------- src/views/ems/search/DateTimeSelect.vue | 18 +- src/views/ems/search/index.vue | 41 +++-- 9 files changed, 408 insertions(+), 154 deletions(-) create mode 100644 src/views/ems/dzjk/sbjk/PointChart.vue diff --git a/src/assets/styles/common.scss b/src/assets/styles/common.scss index fdfc88f..7a7d78a 100644 --- a/src/assets/styles/common.scss +++ b/src/assets/styles/common.scss @@ -50,6 +50,27 @@ background-color: transparent; } } +/* card标题里的时间选择器 */ +.time-range-card { + &.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; + } + } + } +} + + + + + //描述样式 PCS、BMS总览、BMS电池簇页面公共样式 .descriptions-main{ padding:24px; diff --git a/src/views/ems/dzjk/home/index.vue b/src/views/ems/dzjk/home/index.vue index f9bb0c1..0a8699a 100644 --- a/src/views/ems/dzjk/home/index.vue +++ b/src/views/ems/dzjk/home/index.vue @@ -199,20 +199,4 @@ export default { } } } -/* card标题里的时间选择器 */ -.time-range-card { - &.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; - } - } - } -} diff --git a/src/views/ems/dzjk/sbjk/PointChart.vue b/src/views/ems/dzjk/sbjk/PointChart.vue new file mode 100644 index 0000000..dcef16a --- /dev/null +++ b/src/views/ems/dzjk/sbjk/PointChart.vue @@ -0,0 +1,221 @@ + + + + \ No newline at end of file diff --git a/src/views/ems/dzjk/sbjk/bmsdcc/index.vue b/src/views/ems/dzjk/sbjk/bmsdcc/index.vue index 028b47e..3134f57 100644 --- a/src/views/ems/dzjk/sbjk/bmsdcc/index.vue +++ b/src/views/ems/dzjk/sbjk/bmsdcc/index.vue @@ -15,14 +15,18 @@
- {{baseInfo[item.attr] | formatNumber}} + + + {{baseInfo[item.attr] | formatNumber}} + +
-
当前SOC : {{baseInfo.currentSoc}}%
+
当前SOC : {{baseInfo.currentSoc}}%
+ + +
+
+ \ No newline at end of file diff --git a/src/views/ems/site/sblb/index.vue b/src/views/ems/site/sblb/index.vue index 1823343..cca460d 100644 --- a/src/views/ems/site/sblb/index.vue +++ b/src/views/ems/site/sblb/index.vue @@ -50,7 +50,7 @@ + width="260"> @@ -101,10 +108,11 @@ import {getDeviceInfoList,getDeviceDetailInfo,deleteService} from'@/api/ems/site' import {getAllSites} from '@/api/ems/zddt' import {formatNumber} from "@/filters/ems"; +import PointTable from './PointTable.vue' import AddDevice from "./AddDevice.vue"; export default { name: "Sblb", - components:{AddDevice}, + components:{AddDevice,PointTable}, data() { return { loading:false, @@ -142,6 +150,10 @@ export default { } }, methods:{ + // 查看设备电位表格 + pointDetail(row){ + this.$refs.pointTable.showTable({deviceCategory:row.deviceCategory,siteId:row.siteId}) + }, clearEditDeviceData(){ this.mode = ''; this.editDeviceId='' From 52b6083baad2c3a6ea844cff3716eddb973c8c09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Sat, 13 Sep 2025 22:56:07 +0800 Subject: [PATCH 16/20] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=A3=80=E6=8E=A7?= =?UTF-8?q?=E5=AE=98=E6=9F=A5=E7=9C=8B=E7=82=B9=E4=BD=8D=E5=9B=BE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ems/dzjk/sbjk/PointChart.vue | 2 +- src/views/ems/dzjk/sbjk/bmsdcc/index.vue | 2 +- src/views/ems/dzjk/sbjk/db/index.vue | 12 ++++++------ src/views/ems/dzjk/sbjk/pcs/index.vue | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/views/ems/dzjk/sbjk/PointChart.vue b/src/views/ems/dzjk/sbjk/PointChart.vue index dcef16a..a0f4ff5 100644 --- a/src/views/ems/dzjk/sbjk/PointChart.vue +++ b/src/views/ems/dzjk/sbjk/PointChart.vue @@ -130,7 +130,7 @@ export default { endDate=end } - getPointValueList({siteIds:[this.siteId],dataUnit,categoryName:this.categoryName,pointName:this.pointName,startDate,endDate,siteDeviceMap:{}}).then(response => { + getPointValueList({siteIds:[this.siteId],deviceId:this.deviceId,dataUnit,categoryName:this.categoryName,pointName:this.pointName,startDate,endDate,siteDeviceMap:{}}).then(response => { this.setOption(response?.data || []) }).finally(()=>{ this.hideLoading() diff --git a/src/views/ems/dzjk/sbjk/bmsdcc/index.vue b/src/views/ems/dzjk/sbjk/bmsdcc/index.vue index 3134f57..c0e1ebf 100644 --- a/src/views/ems/dzjk/sbjk/bmsdcc/index.vue +++ b/src/views/ems/dzjk/sbjk/bmsdcc/index.vue @@ -105,7 +105,7 @@ export default { '温度单体平均值':'温度平均值', '温度单体最大值':'最高单体温度', 'SOC单体最小值':'最低单体SOC', - 'SOC单体平均值':'', + 'SOC单体平均值':'当前SOC', 'SOC单体最大值':'最高单体SOC', }, baseInfoList:[], diff --git a/src/views/ems/dzjk/sbjk/db/index.vue b/src/views/ems/dzjk/sbjk/db/index.vue index 487663f..95f4271 100644 --- a/src/views/ems/dzjk/sbjk/db/index.vue +++ b/src/views/ems/dzjk/sbjk/db/index.vue @@ -24,7 +24,7 @@ @@ -61,7 +61,7 @@ @@ -92,18 +92,18 @@ export default { }; }, methods: { - handlerCell(row,column){ + handlerCell(id,row,column){ if(column.label !== '类别'){ const arr = row.category.split('') arr.splice(6,0,column.label[0]) - this.showChart(arr.join(''),'电表') + this.showChart(arr.join(''),'电表',id) } }, - handlerCellCN(row,column){ + handlerCellCN(id,row,column){ if(column.label !== '类别'){ const arr = row.category.split('') arr.splice(2,arr.length-2,column.label) - this.showChart(arr.join(''),'电表') + this.showChart(arr.join(''),'电表',id) } }, showChart(pointName,categoryName,deviceId){ diff --git a/src/views/ems/dzjk/sbjk/pcs/index.vue b/src/views/ems/dzjk/sbjk/pcs/index.vue index 2ca9ce7..11b2a7d 100644 --- a/src/views/ems/dzjk/sbjk/pcs/index.vue +++ b/src/views/ems/dzjk/sbjk/pcs/index.vue @@ -30,7 +30,7 @@
- + {{pcsItem[item.attr] | formatNumber}} From e3224d37a19f2b241286665b56b6c06bd9e859fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Sun, 14 Sep 2025 23:33:53 +0800 Subject: [PATCH 17/20] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8?= =?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/dzjk.js | 12 +-- src/views/ems/dzjk/tjbb/dcdqx/index.vue | 110 ++++++++++++++---------- src/views/ems/dzjk/tjbb/glqx/index.vue | 76 ++++------------ src/views/ems/dzjk/tjbb/pcsqx/index.vue | 93 ++++++++++---------- 4 files changed, 136 insertions(+), 155 deletions(-) diff --git a/src/api/ems/dzjk.js b/src/api/ems/dzjk.js index 5faf472..f14ab7a 100644 --- a/src/api/ems/dzjk.js +++ b/src/api/ems/dzjk.js @@ -116,16 +116,16 @@ export function getPcsNameList(siteId) { }) } //pcs曲线 -export function getPCSData({siteId,deviceId,startTime,endTime,dataType}) { +export function getPCSData({siteId,startTime,endTime,dataType}) { return request({ - url: `/ems/statsReport/getPCSData?siteId=${siteId}&deviceId=${deviceId}&startDate=${startTime}&endDate=${endTime}&dataType=${dataType}`, + url: `/ems/statsReport/getPCSData?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}&dataType=${dataType}`, method: 'get' }) } //电池堆曲线 -export function getStackData({siteId,deviceId,startTime,endTime,dataType}) { +export function getStackData({siteId,startTime,endTime,dataType}) { return request({ - url: `/ems/statsReport/getStackData?siteId=${siteId}&deviceId=${deviceId}&startDate=${startTime}&endDate=${endTime}&dataType=${dataType}`, + url: `/ems/statsReport/getStackData?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}&dataType=${dataType}`, method: 'get' }) } @@ -168,9 +168,9 @@ export function batteryAveTemp(siteId) { }) } // 功率曲线 -export function getPowerData({siteId,deviceId,startDate,endDate,dataType}) { +export function getPowerData({siteId,startDate,endDate}) { return request({ - url: `/ems/statsReport/getPowerData?siteId=${siteId}&deviceId=${deviceId}&startDate=${startDate}&endDate=${endDate}&dataType=${dataType}`, + url: `/ems/statsReport/getPowerData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`, method: 'get' }) } diff --git a/src/views/ems/dzjk/tjbb/dcdqx/index.vue b/src/views/ems/dzjk/tjbb/dcdqx/index.vue index 8897cee..1e9f208 100644 --- a/src/views/ems/dzjk/tjbb/dcdqx/index.vue +++ b/src/views/ems/dzjk/tjbb/dcdqx/index.vue @@ -3,11 +3,11 @@
- - - - - + + + + + { - const data = JSON.parse(JSON.stringify(response?.data || [])) - this.pcsOptions = data - this.pcs = data.length>0?data[0].id:''; - }) - }, + // getPcsList(){ + // return getStackNameList(this.siteId).then(response => { + // const data = JSON.parse(JSON.stringify(response?.data || [])) + // this.pcsOptions = data + // this.pcs = data.length>0?data[0].id:''; + // }) + // }, getData(){ - const {siteId,pcs,activeBtn}=this; + const {siteId,activeBtn}=this; const [start='',end='']=(this.dateRange || []) - if(!pcs) return //接口调用完成之后 设置图表、结束loading this.loading=true; - getStackData({siteId,deviceId:pcs,startTime:formatDate(start),endTime:formatDate(end),dataType:activeBtn}).then(response => { + getStackData({siteId,startTime:formatDate(start),endTime:formatDate(end),dataType:activeBtn}).then(response => { this.setOption(response?.data || []) }).finally(()=>{this.loading=false;}) - }, setOption(data) { + + // [{ + // "deviceId": "PCS04", + // "dataList": [ + // { + // "statisDate": "2025-09-05", + // "activePower": null, + // "reactivePower": null, + // "uCurrent": 1.30, + // "vCurrent": 0.90, + // "wCurrent": 1.00, + // "deviceId": "PCS04" + // }, + // { + // "statisDate": "2025-09-04", + // "activePower": null, + // "reactivePower": null, + // "uCurrent": 71.40, + // "vCurrent": 71.30, + // "wCurrent": 71.80, + // "deviceId": "PCS04" + // } + // ] + // }] const ele = this.btnList.find((item)=>{return item.id === this.activeBtn}) - const source = JSON.parse(JSON.stringify(ele.source)) - const length = ele.attr.length - const series = [] - data.forEach((item)=>{ - const arr = ele.attr.map(key=>item[key]) - source.push([item.statisDate,...arr]) - }) - ele.attr.forEach((item)=>{ - series.push({ - name:length>1?item:ele.name, - type:ele.type || 'scatter' + const sourceBase = JSON.parse(JSON.stringify(ele.source)) + const source=[] + const sourceTop = ['日期'] + sourceBase.forEach((outer,outerIndex)=>{ + data.forEach((item,itemIndex)=>{ + sourceTop.push(`${item.deviceId}-${outer}`) + item.dataList.forEach((inner,innerIndex)=>{ + if(itemIndex === 0 || innerIndex+1>source.length) { + source.push([inner.statisDate]) + } + source[innerIndex].push(inner[ele.attr[outerIndex]]) + }) }) }) + source.unshift(sourceTop) + console.log('========',source) this.chart.setOption({ - color:['#FFBD00','#3C81FF'], grid: { containLabel: true }, @@ -148,7 +172,11 @@ export default { type: 'value', }, dataset: {source}, - series + series:source[0].slice(1).map(item=>{ + return { + type:ele.type || 'scatter' + } + }) },true) }, initChart() { @@ -156,16 +184,10 @@ export default { }, init(){ this.loading = true - this.pcs='' - this.pcsOptions=[] + // this.pcs='' + // this.pcsOptions=[] this.initChart() - this.getPcsList().then(()=>{ - if(this.pcs){ - this.onReset() - }else{ - this.loading = false - } - }) + this.onReset() } }, mounted(){ diff --git a/src/views/ems/dzjk/tjbb/glqx/index.vue b/src/views/ems/dzjk/tjbb/glqx/index.vue index f4d8781..15270e6 100644 --- a/src/views/ems/dzjk/tjbb/glqx/index.vue +++ b/src/views/ems/dzjk/tjbb/glqx/index.vue @@ -3,16 +3,6 @@
- - - - - - - - - -
- - - - - {{item.name}} - - - -
@@ -67,26 +48,9 @@ export default { defaultDateRange:[],//默认展示的时间 dateRange:[], loading:false, - pcs:'', - pcsOptions: [], - activeBtn:'1', - btnList:[ - {name:'电网功率',id:'1',attr:'gridPower'}, - {name:'负载功率',id:'2',attr:'loadPower'}, - {name:'储能功率',id:'3',attr:'storagePower'}, - {name:'光伏功率',id:'4',attr:'pvPower'}, - ], - } }, methods: { - changeDataType(id){ - if(id !== this.activeBtn){ - console.log('点击了不同的菜单,更新数据') - this.activeBtn=id; - this.getData() - } - }, // 搜索 onSearch(){ this.getData() @@ -96,31 +60,21 @@ export default { this.dateRange=[] this.getData() }, - getPcsList(){ - return getPcsNameList(this.siteId).then(response => { - const data = response?.data || []; - this.pcsOptions = data - this.pcs = data.length>0?data[0].id:''; - }) - }, getData(){ - const {siteId,pcs,activeBtn}=this; + const {siteId}=this; const [start='',end='']=(this.dateRange || []) - if(!pcs) return //接口调用完成之后 设置图表、结束loading this.loading=true; - getPowerData({siteId,deviceId:pcs,startDate:formatDate(start),endDate:formatDate(end),dataType:activeBtn}).then(response => { + getPowerData({siteId,startDate:formatDate(start),endDate:formatDate(end)}).then(response => { this.setOption(response?.data || []) }).finally(()=>{this.loading=false;}) }, setOption(data) { - const {name,attr} =this.btnList.find(item=>item.id===this.activeBtn) - const source = [['日期',name]] - data.forEach((item,index)=>{ - source.push([item.statisDate,item[attr]]) + const source = [['日期','电网功率','负载功率','储能功率','光伏功率']] + data.forEach(item=>{ + source.push([item.statisDate,item.gridPower,item.loadPower,item.storagePower,item.pvPower]) }) this.chart.setOption({ - color:['#FFBD00','#3C81FF'], grid: { containLabel: true }, @@ -146,7 +100,15 @@ export default { dataset:{source}, series: [ { - name, + type: 'scatter', + }, + { + type: 'scatter', + }, + { + type: 'scatter', + }, + { type: 'scatter', } ] @@ -157,16 +119,8 @@ export default { }, init(){ this.loading = true - this.pcs='' - this.pcsOptions=[] this.initChart() - this.getPcsList().then(()=>{ - if(this.pcs){ - this.onReset() - }else{ - this.loading = false - } - }) + this.getData() } }, mounted(){ diff --git a/src/views/ems/dzjk/tjbb/pcsqx/index.vue b/src/views/ems/dzjk/tjbb/pcsqx/index.vue index c2ba632..62b5436 100644 --- a/src/views/ems/dzjk/tjbb/pcsqx/index.vue +++ b/src/views/ems/dzjk/tjbb/pcsqx/index.vue @@ -3,11 +3,11 @@
- - - - - + + + + + { - const data = response?.data || []; - this.pcsOptions = data - this.pcs = data.length>0?data[0].id:''; - }) - }, + // getPcsList(){ + // return getPcsNameList(this.siteId).then(response => { + // const data = response?.data || []; + // this.pcsOptions = data + // this.pcs = data.length>0?data[0].id:''; + // }) + // }, getData(){ - const {siteId,pcs,activeBtn}=this; + const {siteId,activeBtn}=this; const [start='',end='']=(this.dateRange || []) - if(!pcs) return this.loading=true; //接口调用完成之后 设置图表、结束loading - getPCSData({siteId,deviceId:pcs,startTime:formatDate(start),endTime:formatDate(end),dataType:activeBtn}).then(response => { + getPCSData({siteId,startTime:formatDate(start),endTime:formatDate(end),dataType:activeBtn}).then(response => { this.setOption(response?.data || []) }).finally(()=>{this.loading=false;}) }, setOption(data) { const ele = this.btnList.find((item)=>{return item.id === this.activeBtn}) - const source = JSON.parse(JSON.stringify(ele.source)) - const length = ele.attr.length - const series = [] - data.forEach((item)=>{ - const arr = ele.attr.map(key=>item[key]) - source.push([item.statisDate,...arr]) - }) - ele.attr.forEach((item)=>{ - series.push({ - name:length>1?item:ele.name, - type:ele.type || 'scatter' + const sourceBase = JSON.parse(JSON.stringify(ele.source)) + const source=[] + const sourceTop = ['日期'] + sourceBase.forEach((outer,outerIndex)=>{ + data.forEach((item,itemIndex)=>{ + sourceTop.push(`${item.deviceId}-${outer}`) + item.dataList.forEach((inner,innerIndex)=>{ + if(itemIndex === 0 || innerIndex+1>source.length) { + source.push([inner.statisDate]) + } + source[innerIndex].push(inner[ele.attr[outerIndex]]) + }) }) }) + source.unshift(sourceTop) + console.log('========',source) this.chart.setOption({ - color:['#FFBD00','#3C81FF','#91cc74'], grid: { containLabel: true }, @@ -151,7 +152,11 @@ export default { type: 'value', }, dataset: {source}, - series + series:source[0].slice(1).map(item=>{ + return { + type:ele.type || 'scatter' + } + }) },true) }, @@ -160,18 +165,18 @@ export default { }, init(){ this.loading = true - this.pcs='' - this.pcsOptions=[] - this.dateRange =[] + // this.pcs='' + // this.pcsOptions=[] this.initChart() - this.getPcsList().then(()=>{ - if(this.pcs){ - this.onReset() - }else{ - this.loading=false; - } - - }) + this.onReset() + // this.getPcsList().then(()=>{ + // if(this.pcs){ + // this.onReset() + // }else{ + // this.loading=false; + // } + // + // }) } }, mounted(){ From 7f560cd1402fcde279f8f6d509b73a8f82b26ec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Tue, 16 Sep 2025 18:20:48 +0800 Subject: [PATCH 18/20] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8?= =?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/views/ems/dzjk/tjbb/dcdqx/index.vue | 66 ++++++++++++++----------- src/views/ems/dzjk/tjbb/pcsqx/index.vue | 42 +++++++++++++--- 2 files changed, 72 insertions(+), 36 deletions(-) diff --git a/src/views/ems/dzjk/tjbb/dcdqx/index.vue b/src/views/ems/dzjk/tjbb/dcdqx/index.vue index 1e9f208..dae643c 100644 --- a/src/views/ems/dzjk/tjbb/dcdqx/index.vue +++ b/src/views/ems/dzjk/tjbb/dcdqx/index.vue @@ -106,47 +106,53 @@ export default { this.setOption(response?.data || []) }).finally(()=>{this.loading=false;}) }, + compareDate(date1,date2){ + console.log('比较时间',date1,date2) + // 年2025-09/天2025-09-15/时2025-09-15/10:00 + if(date1.indexOf(':') > -1 && date2.indexOf(':') > -1){ + return parseInt(date1) - parseInt(date2) + } + const [date1_Y='',date1_M='',date1_D=''] = date1.split('-')//根据空格区分[年月日,小时] + const [date2_Y='',date2_M='',date2_D=''] = date2.split('-')//根据空格区分[年月日,小时] + return (date1_Y === date2_Y && date1_M === date2_M && date1_D - date2_D) || (date1_Y === date2_Y && date1_M - date2_M) || date1_Y - date2_Y + }, setOption(data) { - - // [{ - // "deviceId": "PCS04", - // "dataList": [ - // { - // "statisDate": "2025-09-05", - // "activePower": null, - // "reactivePower": null, - // "uCurrent": 1.30, - // "vCurrent": 0.90, - // "wCurrent": 1.00, - // "deviceId": "PCS04" - // }, - // { - // "statisDate": "2025-09-04", - // "activePower": null, - // "reactivePower": null, - // "uCurrent": 71.40, - // "vCurrent": 71.30, - // "wCurrent": 71.80, - // "deviceId": "PCS04" - // } - // ] - // }] const ele = this.btnList.find((item)=>{return item.id === this.activeBtn}) const sourceBase = JSON.parse(JSON.stringify(ele.source)) + // sourceBase={name:'堆平均维度',id:'1',attr:['temp'],source:['有功功率']}, const source=[] const sourceTop = ['日期'] - sourceBase.forEach((outer,outerIndex)=>{ - data.forEach((item,itemIndex)=>{ + let map={},mapArr=[] + // 生成所有{日期:[],日期:[]}格式的对象和所有包含所有日期的[日期1,日期2...] + data.forEach((item)=>{ + item.dataList.forEach((inner)=>{ + // 日期格式 + // 年2025-09/天2025-09-15/时2025-09-15/10:00 + // 所有数据的日期格式一致 + if(!map[inner.statisDate]) { + map[inner.statisDate] = [] + mapArr.push(inner.statisDate) + } + }) + }) + data.forEach((item,itemIndex)=>{ + const dataTimeList = item.dataList.map(i =>i.statisDate) + const noDataTime = mapArr.filter(i=>!dataTimeList.includes(i)) + sourceBase.forEach((outer,outerIndex)=>{ sourceTop.push(`${item.deviceId}-${outer}`) + noDataTime.forEach(i=>map[i].push('')) item.dataList.forEach((inner,innerIndex)=>{ - if(itemIndex === 0 || innerIndex+1>source.length) { - source.push([inner.statisDate]) - } - source[innerIndex].push(inner[ele.attr[outerIndex]]) + map[inner.statisDate].push(inner[ele.attr[outerIndex]]) }) }) }) + mapArr = mapArr.sort((a,b)=>this.compareDate(a,b)) + mapArr.forEach(item=>{ + source.push([item,...map[item]]) + }) source.unshift(sourceTop) + console.log('map=',map) + console.log('mapArr=',mapArr) console.log('========',source) this.chart.setOption({ grid: { diff --git a/src/views/ems/dzjk/tjbb/pcsqx/index.vue b/src/views/ems/dzjk/tjbb/pcsqx/index.vue index 62b5436..b6c7131 100644 --- a/src/views/ems/dzjk/tjbb/pcsqx/index.vue +++ b/src/views/ems/dzjk/tjbb/pcsqx/index.vue @@ -110,23 +110,53 @@ export default { }).finally(()=>{this.loading=false;}) }, + compareDate(date1,date2){ + console.log('比较时间',date1,date2) + // 年2025-09/天2025-09-15/时2025-09-15/10:00 + if(date1.indexOf(':') > -1 && date2.indexOf(':') > -1){ + return parseInt(date1) - parseInt(date2) + } + const [date1_Y='',date1_M='',date1_D=''] = date1.split('-')//根据空格区分[年月日,小时] + const [date2_Y='',date2_M='',date2_D=''] = date2.split('-')//根据空格区分[年月日,小时] + return (date1_Y === date2_Y && date1_M === date2_M && date1_D - date2_D) || (date1_Y === date2_Y && date1_M - date2_M) || date1_Y - date2_Y + }, setOption(data) { const ele = this.btnList.find((item)=>{return item.id === this.activeBtn}) const sourceBase = JSON.parse(JSON.stringify(ele.source)) + // sourceBase={name:'堆平均维度',id:'1',attr:['temp'],source:['有功功率']}, const source=[] const sourceTop = ['日期'] - sourceBase.forEach((outer,outerIndex)=>{ - data.forEach((item,itemIndex)=>{ + let map={},mapArr=[] + // 生成所有{日期:[],日期:[]}格式的对象和所有包含所有日期的[日期1,日期2...] + data.forEach((item)=>{ + item.dataList.forEach((inner)=>{ + // 日期格式 + // 年2025-09/天2025-09-15/时2025-09-15/10:00 + // 所有数据的日期格式一致 + if(!map[inner.statisDate]) { + map[inner.statisDate] = [] + mapArr.push(inner.statisDate) + } + }) + }) + data.forEach((item,itemIndex)=>{ + const dataTimeList = item.dataList.map(i =>i.statisDate) + const noDataTime = mapArr.filter(i=>!dataTimeList.includes(i)) + sourceBase.forEach((outer,outerIndex)=>{ sourceTop.push(`${item.deviceId}-${outer}`) + noDataTime.forEach(i=>map[i].push('')) item.dataList.forEach((inner,innerIndex)=>{ - if(itemIndex === 0 || innerIndex+1>source.length) { - source.push([inner.statisDate]) - } - source[innerIndex].push(inner[ele.attr[outerIndex]]) + map[inner.statisDate].push(inner[ele.attr[outerIndex]]) }) }) }) + mapArr = mapArr.sort((a,b)=>this.compareDate(a,b)) + mapArr.forEach(item=>{ + source.push([item,...map[item]]) + }) source.unshift(sourceTop) + console.log('map=',map) + console.log('mapArr=',mapArr) console.log('========',source) this.chart.setOption({ grid: { From 902e9a0a031c5810f04e73875d515a2921d61946 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Wed, 17 Sep 2025 11:15:54 +0800 Subject: [PATCH 19/20] =?UTF-8?q?=E7=AB=99=E7=82=B9=E9=A6=96=E9=A1=B5-?= =?UTF-8?q?=E5=BD=93=E6=97=A5=E5=8A=9F=E7=8E=87=E6=9B=B2=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ems/dzjk.js | 8 ++++ src/views/ems/dzjk/home/ActiveChart.vue | 51 +++++++++++-------------- 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/api/ems/dzjk.js b/src/api/ems/dzjk.js index f14ab7a..47b89e2 100644 --- a/src/api/ems/dzjk.js +++ b/src/api/ems/dzjk.js @@ -291,3 +291,11 @@ export function curveList({siteId,strategyId}) { method: 'get', }) } + +//单站监控 首页 当日功率曲线 +export function getPointData({siteId,startDate,endDate}) { + return request({ + url: `/ems/siteMonitor/getPointData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`, + method: 'get', + }) +} \ No newline at end of file diff --git a/src/views/ems/dzjk/home/ActiveChart.vue b/src/views/ems/dzjk/home/ActiveChart.vue index 1d768a0..a1a5aa1 100644 --- a/src/views/ems/dzjk/home/ActiveChart.vue +++ b/src/views/ems/dzjk/home/ActiveChart.vue @@ -13,7 +13,7 @@ import * as echarts from 'echarts' import resize from '@/mixins/ems/resize' import DateRangeSelect from '@/components/Ems/DateRangeSelect/index.vue' -import {getPcsNameList, getPowerData} from '@/api/ems/dzjk' +import { getPointData } from '@/api/ems/dzjk' export default { mixins: [resize], @@ -23,7 +23,7 @@ export default { chart: null, timeRange:[], siteId:'', - deviceId:'' + isInit:true } }, mounted() { @@ -42,33 +42,23 @@ export default { // 更新时间范围 重置图表 updateDate(data){ this.timeRange=data - this.getGVQXData() + !this.isInit && this.getGVQXData() + this.isInit = false }, getGVQXData(){ this.showLoading() - const {siteId,deviceId,timeRange}=this - if(!deviceId) return this.hideLoading() - getPowerData({siteId,deviceId,startDate:timeRange[0],endDate:timeRange[1],dataType:'1'}).then(response => { + const {siteId,timeRange}=this + getPointData({siteId,startDate:timeRange[0],endDate:timeRange[1]}).then(response => { this.setOption(response?.data || []) }).finally(()=>this.hideLoading()) }, init(siteId){ //初始化 清空数据 this.siteId = siteId + this.isInit = true this.timeRange=[] - this.deviceId='' this.$refs.dateRangeSelect.init(true) - this.showLoading() - getPcsNameList(siteId).then(response=>{ - const data=response?.data || []; - if(data.length>0){ - this.deviceId=data[0].id - //接口调用完成之后 设置图表、结束loading - this.getGVQXData() - }else{ - this.hideLoading() - } - }) + this.getGVQXData() }, initChart() { this.chart = echarts.init(document.querySelector('#activeChart')) @@ -80,12 +70,12 @@ export default { this.chart && this.chart.hideLoading() }, setOption(data) { - const source = [['日期','电网功率']] + const source = [['日期','电网功率','负载功率','储能功率','光伏功率','soc平均值','soh平均值','电池平均温度平均值']] + console.log('source.slice(1)',source[0].slice(1)) this.chart && data.forEach((item)=>{ - source.push([item.statisDate,item.gridPower]) + source.push([item.statisDate,item.gridPower,item.loadPower,item.storagePower,item.pvPower,item.avgSoc,item.avgSoh,item.avgTemp]) }) this.chart.setOption({ - color:['#FFBD00','#3C81FF'], grid: { containLabel: true }, @@ -105,16 +95,21 @@ export default { xAxis: { type: 'category', }, - yAxis: { - type: 'value', - }, - dataset:{source}, - series: [ + yAxis: [ { - name:'电网功率', + type: 'value', + }, + { + type: 'value', + }, + ], + dataset:{source}, + series: source[0].slice(1).map((item,index)=>{ + return { type: 'line', + yAxisIndex:index<=4 ? 0 : 1 } - ] + }) }) }, From 36b1e19120dc317749b337bb57c7f7cf03a72599 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Wed, 17 Sep 2025 14:52:08 +0800 Subject: [PATCH 20/20] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=E6=A0=87=E9=A2=98=E6=A0=B7=E5=BC=8F=E7=BB=9F=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/styles/common.scss | 60 +++++++++- src/views/ems/dzjk/sbjk/bmsdcc/index.vue | 8 +- src/views/ems/dzjk/sbjk/bmszl/index.vue | 59 +++++----- src/views/ems/dzjk/sbjk/db/index.vue | 46 ++------ src/views/ems/dzjk/sbjk/dtdc/index.vue | 2 +- src/views/ems/dzjk/sbjk/pcs/index.vue | 143 +++++++++-------------- 6 files changed, 158 insertions(+), 160 deletions(-) diff --git a/src/assets/styles/common.scss b/src/assets/styles/common.scss index 7a7d78a..435ec15 100644 --- a/src/assets/styles/common.scss +++ b/src/assets/styles/common.scss @@ -26,18 +26,15 @@ border-bottom: none; font-size: 12px; background: #F1F5FB ; + position: relative; .card-title{ font-weight: 500; color:#333333; } - .large-title{ - font-size: 20px; - font-weight: 500; - line-height: 40px; - } .el-button--text{ color: #666666; } + } } .common-card-container-body-no-padding{ @@ -50,6 +47,59 @@ background-color: transparent; } } +//单站监控 设备监控card公共样式 +.sbjk-card-container{ + .el-card__header { + background-color: transparent; + padding: 10px 14px; + color: #ffffff; + position: relative; + border-radius: 5px 5px 0 0; + .large-title{ + font-size: 20px; + font-weight: 500; + line-height: 40px; + padding: 0 50px 0 11px; + display: inline-block; + vertical-align: middle; + } + .info { + display: inline-block; + vertical-align: middle; + color: #ffffff; + font-size: 12px; + line-height: 20px; + } + .el-button--text{ + color: #666666; + } + .alarm{ + position: absolute; + right: 25px; + top: 50%; + transform: translateY(-50%); + } + } + //红色背景颜色标题 + &.warning-card-container{ + .el-card__header { + background-color: #fc6b69; + } + } + //绿色背景颜色标题 + &.running-card-container { + .el-card__header { + background-color: #05aea3; + } + } + //灰色背景颜色标题 + &.timing-card-container { + .el-card__header { + background-color: #666666; + } + } +} + /* card标题里的时间选择器 */ .time-range-card { &.common-card-container .el-card__header { diff --git a/src/views/ems/dzjk/sbjk/bmsdcc/index.vue b/src/views/ems/dzjk/sbjk/bmsdcc/index.vue index c0e1ebf..cd19393 100644 --- a/src/views/ems/dzjk/sbjk/bmsdcc/index.vue +++ b/src/views/ems/dzjk/sbjk/bmsdcc/index.vue @@ -2,9 +2,13 @@