实现系统总览、统计分析的图标数据接口

This commit is contained in:
lixiaoyuan
2025-07-31 17:56:08 +08:00
parent 0958fcc224
commit 697193a7aa
19 changed files with 984 additions and 640 deletions

View File

@@ -1,67 +1,65 @@
optionBar.xAxis.data = ['03/01', '03/02', '03/03', '03/04', '03/05', '03/06', '03/07']
var optionBar = echartGetOptionBar()
optionBar.xAxis.data = []
optionBar.legend.data = ['发电电量', '入网电量']
optionBar.series = [
{ name: '发电电量', type: 'bar', data: [50, 28, 35, 18, 36, 27, 19] },
{ name: '入网电量', type: 'bar', data: [10, 32, 20, 33, 39, 13, 22] },
{ name: '发电电量', type: 'bar', data: [] },
{ name: '入网电量', type: 'bar', data: [] },
]
optionBar.yAxis[0].name = '电量'
optionBar.yAxis[1].name = ''
var mychartSolar = echarts.init(document.getElementById('mychartSolar'))
mychartSolar.setOption(optionBar)
optionBar.legend.data = ['充电电量', '放电电量']
optionBar.series = [
{ name: '充电电量', type: 'bar', data: [50, 28, 35, 18, 36, 27, 19] },
{ name: '放电电量', type: 'bar', data: [10, 32, 20, 33, 39, 13, 22] },
{ name: '充电电量', type: 'bar', data: [] },
{ name: '放电电量', type: 'bar', data: [] },
]
optionBar.yAxis[0].name = '电量'
optionBar.yAxis[1].name = ''
var mychartStorage = echarts.init(document.getElementById('mychartStorage'))
mychartStorage.setOption(optionBar)
optionBar.legend.data = ['用电电量', '最大功率']
optionBar.series = [
{ name: '用电电量', type: 'bar', data: [50, 28, 35, 18, 36, 27, 19] },
{ name: '最大功率', type: 'bar', data: [10, 32, 20, 33, 39, 13, 22] },
{ name: '用电电量', type: 'bar', data: [] },
{ name: '最大功率', type: 'bar', data: [] },
]
optionBar.yAxis[0].name = '电量'
optionBar.yAxis[1].name = '功率'
var mychartLoad = echarts.init(document.getElementById('mychartLoad'))
mychartLoad.setOption(optionBar)
optionBar.legend.data = ['充电电量', '充电次数', '充电收益']
optionBar.series = [
{ name: '充电电量', type: 'bar', data: [50, 28, 35, 18, 36, 27, 19] },
{ name: '充电次数', type: 'bar', data: [10, 32, 20, 33, 39, 13, 22] },
{ name: '充电收益', type: 'bar', data: [10, 32, 20, 33, 39, 13, 22] },
{ name: '充电电量', type: 'bar', data: [] },
{ name: '充电次数', type: 'bar', data: [] },
{ name: '充电收益', type: 'bar', data: [] },
]
optionBar.yAxis[0].name = '电量'
optionBar.yAxis[1].name = '收益'
var mychartCharge = echarts.init(document.getElementById('mychartCharge'))
mychartCharge.setOption(optionBar)
optionBar.legend.data = ['光伏设备', '储能设备', '负荷设备']
optionBar.series = [
{ name: '光伏设备', type: 'bar', data: [50, 28, 35, 18, 36, 27, 19] },
{ name: '储能设备', type: 'bar', data: [10, 32, 20, 33, 39, 13, 22] },
{ name: '负荷设备', type: 'bar', data: [10, 32, 20, 33, 39, 13, 22] },
{ name: '光伏设备', type: 'bar', data: [] },
{ name: '储能设备', type: 'bar', data: [] },
{ name: '负荷设备', type: 'bar', data: [] },
]
optionBar.yAxis[0].name = '次数'
optionBar.yAxis[1].name = ''
var mychartAlert = echarts.init(document.getElementById('mychartAlert'))
mychartAlert.setOption(optionBar)
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) {
var t = t0 + i * step * 1000
//var y = Math.sin(i * 0.1) * (n - m) + m
y = Math.floor((y + RAND(0, 50) - 25) * 100) / 100
data[i] = { name: t, value: [t, y] }
}
return data
}
var optionCurve = echartGetOptionCurve()
optionCurve.legend.data = ['发电功率', '辐照度']
optionCurve.series = [
{ name: '发电功率', type: 'line', hoverAnimation: false, smooth: false, symbolSize: 0, data: getRandomCurveData(100, 200) },
{ name: '辐照度', type: 'line', hoverAnimation: false, smooth: false, symbolSize: 0, data: getRandomCurveData(100, 200) },
{ name: '发电功率', type: 'line', hoverAnimation: false, smooth: false, symbolSize: 0, data: [] },
{ name: '辐照度', type: 'line', hoverAnimation: false, smooth: false, symbolSize: 0, data: [] },
]
optionCurve.yAxis[0].name = '功率kw'
optionCurve.yAxis[1].name = '光照Lux'
var mychartRunning = echarts.init(document.getElementById('mychartRunning'))
mychartRunning.setOption(optionCurve)
@@ -95,8 +93,8 @@ function updatePageData() {
var charge = { d1: [], d2: [], d3: [] }
res.forEach(item => {
solar.d1.push(item['elect_gen_solar'])
solar.d2.push(item['elect_in_solar'])
solar.d1.push(item['elect_gen'])
solar.d2.push(item['elect_in'])
storage.d1.push(item['elect_store'])
storage.d2.push(item['elect_discharge'])
@@ -113,21 +111,32 @@ function updatePageData() {
// var data2 = [1, 2, 3, 4, 3, 2, 1]
// var data3 = [1, 2, 3, 4, 3, 2, 1]
mychartSolar.setOption({ series: [{ data: solar.d1 }, { data: solar.d2 }, { data: solar.d3 }] });
mychartStorage.setOption({ series: [{ data: storage.d1 }, { data: storage.d2 }, { data: storage.d3 }] });
mychartLoad.setOption({ series: [{ data: load.d1 }, { data: load.d2 }, { data: load.d3 }] });
mychartCharge.setOption({ series: [{ data: charge.d1 }, { data: charge.d2 }, { data: charge.d3 }] });
mychartAlert.setOption({ series: [{ data: solar.d1 }, { data: solar.d2 }, { data: solar.d3 }] });
var xdata = []
for (let i = 6; i >= 0; i--) {
const date = new Date();
date.setDate(date.getDate() - i);
xdata.push(G.formatDateMD(date));
}
updateEchartBar(mychartSolar, xdata, [{ data: solar.d1 }, { data: solar.d2 }, { data: solar.d3 }])
updateEchartBar(mychartStorage, xdata, [{ data: storage.d1 }, { data: storage.d2 }, { data: storage.d3 }])
updateEchartBar(mychartLoad, xdata, [{ data: load.d1 }, { data: load.d2 }, { data: load.d3 }])
updateEchartBar(mychartCharge, xdata, [{ data: charge.d1 }, { data: charge.d2 }, { data: charge.d3 }])
updateEchartBar(mychartAlert, xdata, [{ data: solar.d1 }, { data: solar.d2 }, { data: solar.d3 }])
}))
G.cppNative.getStatisticPowerDay().then(res => {
mychartRunning.setOption({ series: [{ data: res }] })
})
G.cppNative.getStatisticIrradianceDay().then(res => {
mychartRunning.setOption({ series: [{}, { data: res, yAxisIndex: 1 }] })
})
// 查询数据获取环境信息:光照、风速、环境温度、湿度
G.cppNative.getEnvironmentInfo().then(res => {
$('#envIllumination').text(res['illumination'] + ' Lux')
$('#envWindspeed').text(res['windspeed'] + ' m/s')
$('#envTemperture').text(res['temperature'] + ' ℃')
$('#envHumidity').text(res['humidity'] + ' %')
})
}
@@ -139,6 +148,8 @@ document.currentScript.addEventListener('DOMNodeRemoved', () => {
});
$(document).ready(function () {
updatePageData()
// 定时器更新页面数据