mirror of
https://gitee.com/js-yhsec/energy_storage.git
synced 2026-05-27 18:59:26 +08:00
129 lines
4.0 KiB
JavaScript
129 lines
4.0 KiB
JavaScript
|
|
var pageDef = {
|
|
solar: {
|
|
charts: [
|
|
{ id: 'solarEchart1', echart: null, type: 'bar', series: ['发电电量', '入网电量'] },
|
|
{ id: 'solarEchart2', echart: null, type: 'bar', series: ['发电时长', '故障次数'] },
|
|
{ id: 'solarEchart3', echart: null, type: 'line', series: ['日电压', '日电流'] },
|
|
{ id: 'solarEchart4', echart: null, type: 'line', series: ['日功率'] }
|
|
],
|
|
},
|
|
|
|
storage: {
|
|
charts: [
|
|
{ id: 'storageEchart1', echart: null, type: 'bar', series: ['储能电量', '放电电量'] },
|
|
{ id: 'storageEchart2', echart: null, type: 'bar', series: ['储能时长', '放电时长', '故障次数'] },
|
|
{ id: 'storageEchart3', echart: null, type: 'line', series: ['日电压', '日电流'] },
|
|
{ id: 'storageEchart4', echart: null, type: 'line', series: ['日功率'] }
|
|
],
|
|
},
|
|
|
|
charge: {
|
|
charts: [
|
|
{ id: 'chargeEchart1', echart: null, type: 'bar', series: ['充电电量', '充电收益'] },
|
|
{ id: 'chargeEchart2', echart: null, type: 'bar', series: ['充电次数', '充电时长', '故障次数'] },
|
|
{ id: 'chargeEchart3', echart: null, type: 'line', series: ['日电压', '日电流'] },
|
|
{ id: 'chargeEchart4', echart: null, type: 'line', series: ['日功率'] }
|
|
],
|
|
}
|
|
}
|
|
var xdataBar = ['2025/3/1', '2025/3/2', '2025/3/3', '2025/3/4', '2025/3/5', '2025/3/6', '2025/3/7']
|
|
var ydataBar = [
|
|
[30, 28, 35, 18, 36, 27, 19],
|
|
[10, 32, 20, 33, 39, 13, 22],
|
|
]
|
|
var curActiveId = 'solar'
|
|
|
|
function getRandomCurveData(m, n) {
|
|
var data = []
|
|
var t0 = Date.parse('2025-03-01 00:00:00')
|
|
var step = 600
|
|
var N = 86400 / step
|
|
var y = 500;
|
|
for (var i = 0; i < N; ++i) {
|
|
// data[i] = { x: t0 + i * step * 1000, y: Math.sin(i * 0.1) * (n - m) }
|
|
y = Math.floor((y + RAND(0, 50) - 25) * 100) / 100
|
|
data[i] = { x: t0 + i * step * 1000, y: y }
|
|
}
|
|
return data
|
|
}
|
|
|
|
function getCurveData(a, b, n) {
|
|
var d = [[], []]
|
|
for (var i = 0; i < n; ++i) {
|
|
var v = RAND(a, b)
|
|
d[0].push(v)
|
|
d[1].push(v - RAND(50, 200))
|
|
}
|
|
return d
|
|
}
|
|
|
|
function RAND(a, b) {
|
|
return a + Math.random() * (b - a)
|
|
}
|
|
|
|
// 点击子页面菜单按钮,切换子页面
|
|
function initSubPage(id) {
|
|
//if (curActiveId == id) return
|
|
// 切换子菜单按钮样式,旧选择按钮恢复样式
|
|
if (curActiveId && curActiveId != '') {
|
|
document.getElementById(curActiveId + 'Btn').className = 'btn btn-primary'
|
|
// 隐藏旧菜单对应的表格子页面
|
|
$('#' + curActiveId).hide()
|
|
}
|
|
curActiveId = id
|
|
// 切换子菜单按钮样式,新选择按钮设置样式
|
|
document.getElementById(curActiveId + 'Btn').className = 'btn btn-success btn-lg'
|
|
// 显示新菜单对应的表格子页面
|
|
$('#' + curActiveId).show()
|
|
|
|
var page = pageDef[id]
|
|
if (!page) {
|
|
alert("subpage [" + id + "] is undefined")
|
|
return
|
|
}
|
|
|
|
page.charts.forEach(item => {
|
|
if (item.type == 'bar') {
|
|
item.echart = initEchartBar(item.id, item.series)
|
|
for (var i = 0; i < item.series.length; ++i) {
|
|
//updateEchartBar(item.echart, i, xdataBar, ydataBar[i])
|
|
}
|
|
} else if (item.type == 'line') {
|
|
item.echart = initEchartCurve(item.id, item.series)
|
|
for (var i = 0; i < item.series.length; ++i) {
|
|
updateEchartCurve(item.echart, i, G.getRandDataDay(100 * (i + 1), 200 * (i + 1)))
|
|
}
|
|
}
|
|
|
|
if (id == 'solar') {
|
|
if (item.id == 'solarEchart1') {
|
|
var d = getCurveData(400, 500, 7)
|
|
updateEchartBar(item.echart, 0, xdataBar, d[0])
|
|
updateEchartBar(item.echart, 1, xdataBar, d[1])
|
|
} else if (item.id == 'solarEchart2') {
|
|
var d = getCurveData(480, 780, 7)
|
|
updateEchartBar(item.echart, 0, xdataBar, d[0])
|
|
updateEchartBar(item.echart, 1, xdataBar, [0, 2, 0, 0, 3, 0, 1])
|
|
}
|
|
|
|
} else if (id == 'storage') {
|
|
|
|
} else if (id == 'charge') {
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
window.onresize = () => {
|
|
var page = pageDef[curActiveId]
|
|
charts.charts.forEach(item => {
|
|
if (item.echart) { item.echart.resize() }
|
|
})
|
|
}
|
|
|
|
$(document).ready(function () {
|
|
initSubPage("solar")
|
|
})
|
|
|