1.一周充放曲线改为了时间聚合柱状图。
2.PCS最高温度修复bug展示多PCS设备的数据 3.PCS的状态根据状态枚举映射配置的内容显示 4.BMS的总览,增加工作状态、与PCS通讯、与EMS通讯的配置,及关联展示 5.增加批量导入单体电池点位的功能 6.修复计算点可能会出现id与code在一个池子内的问题,再次计算后数据正常 7.计算点增加小数位限制的功能,实时计算与7天历史接口都已经按照配置的小数位进行限制 8.统计报表中的功率曲线改为了按照分钟显示 9.功率曲线出现断点的问题是因为数据计算太密集了导致的,增加了前端连线不断的显示 10.PCS和电池堆的曲线与配置增加了关联设备显示 11.点位映射中的电池温度,增加了多设备 12.收益报表增加升序排列,合并当月所有合计 13.增加业务报表备注功能,可以根据业务设计开发,目前电表报表与收益报表均有备注列可以修改
This commit is contained in:
@ -363,27 +363,20 @@ function resolveRangeKind(startDate, endDate) {
|
||||
const end = new Date(`${normalizeDateInput(endDate || startDate)} 00:00:00`)
|
||||
if (isNaN(start.getTime()) || isNaN(end.getTime())) return 'day'
|
||||
const diffDays = Math.floor((end.getTime() - start.getTime()) / (24 * 60 * 60 * 1000))
|
||||
if (diffDays <= 0) return 'minute'
|
||||
if (diffDays < 30) return 'day'
|
||||
if (diffDays < 31) return 'minute'
|
||||
if (diffDays < 180) return 'day'
|
||||
return 'month'
|
||||
}
|
||||
|
||||
function formatTimeLabelByKind(date, kind = 'day') {
|
||||
const p = (n) => String(n).padStart(2, '0')
|
||||
if (kind === 'minute') return `${p(date.getHours())}:${p(date.getMinutes())}`
|
||||
if (kind === 'minute') return `${date.getFullYear()}-${p(date.getMonth() + 1)}-${p(date.getDate())} ${p(date.getHours())}:${p(date.getMinutes())}`
|
||||
if (kind === 'month') return `${date.getFullYear()}-${p(date.getMonth() + 1)}`
|
||||
return `${date.getFullYear()}-${p(date.getMonth() + 1)}-${p(date.getDate())}`
|
||||
}
|
||||
|
||||
function buildSortedLabels(labelSet, kind = 'day') {
|
||||
const labels = Array.from(labelSet || [])
|
||||
if (kind === 'minute') {
|
||||
return labels.sort((a, b) => {
|
||||
const [ah = 0, am = 0] = String(a || '').split(':').map(v => Number(v) || 0)
|
||||
const [bh = 0, bm = 0] = String(b || '').split(':').map(v => Number(v) || 0)
|
||||
return ah * 60 + am - (bh * 60 + bm)
|
||||
})
|
||||
}
|
||||
return labels.sort()
|
||||
}
|
||||
|
||||
@ -768,6 +761,22 @@ export function getAmmeterRevenueData(data) {
|
||||
})
|
||||
}
|
||||
|
||||
export function batchGetBizRemark(data) {
|
||||
return request({
|
||||
url: `/system/bizRemark/batchGet`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function saveBizRemark(data) {
|
||||
return request({
|
||||
url: `/system/bizRemark/save`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//策略列表
|
||||
export function strategyRunningList(siteId) {
|
||||
return request({
|
||||
|
||||
@ -260,6 +260,28 @@ export function getPointMatchList(params) {
|
||||
})
|
||||
}
|
||||
|
||||
// 下载单体电池导入模板
|
||||
export function downloadSingleBatteryMonitorImportTemplate(siteId) {
|
||||
return request({
|
||||
url: `/ems/siteConfig/downloadSingleBatteryMonitorImportTemplate`,
|
||||
method: 'get',
|
||||
params: { siteId },
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
// 导入单体电池与监控点位映射
|
||||
export function importSingleBatteryMonitorMappings(data) {
|
||||
return request({
|
||||
url: `/ems/siteConfig/importSingleBatteryMonitorMappings`,
|
||||
method: 'post',
|
||||
data,
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 点位配置详情
|
||||
export function getPointMatchDetail(id) {
|
||||
return request({
|
||||
|
||||
Reference in New Issue
Block a user