修正首頁圖表為定時更新

This commit is contained in:
JouChun 2024-03-09 15:03:37 -05:00
parent 2ef31fc7ea
commit 631128c79a
2 changed files with 1270 additions and 1244 deletions

View File

@ -391,6 +391,7 @@
"POST" "POST"
).send(); ).send();
} }
// 取得 自動須量 // 取得 自動須量
function getAutDemVal() { function getAutDemVal() {
let url = baseApiUrl + "/api/Dashboard/GetContractValue"; let url = baseApiUrl + "/api/Dashboard/GetContractValue";
@ -439,7 +440,7 @@
function getSubBaja() { function getSubBaja() {
let devPath = tarElePath.split("/")[1]?.split("_").slice(0, 8).join("/"); let devPath = tarElePath.split("/")[1]?.split("_").slice(0, 8).join("/");
let tempOrdPath = { devicePath: devPath }; let tempOrdPath = {devicePath: devPath};
let myBaja = new subscriptionElectricmeter(); let myBaja = new subscriptionElectricmeter();
const deviceTag = devPath.split("/")[devPath.split("/").length - 1] const deviceTag = devPath.split("/")[devPath.split("/").length - 1]
myBaja.setSubscribeElectricmeterByBql(tempOrdPath); myBaja.setSubscribeElectricmeterByBql(tempOrdPath);
@ -458,15 +459,15 @@
function getContractValueChange(compus) { function getContractValueChange(compus) {
let devPath = `Data/${compus}`; let devPath = `Data/${compus}`;
BajaSubscribeElectricmeterByBql({ devicePath: devPath }, (data) => { BajaSubscribeElectricmeterByBql({devicePath: devPath}, (data) => {
let value = data let value = data
.find(({ point_name }) => point_name === "P") .find(({point_name}) => point_name === "P")
?.value.replaceAll(",", ""); ?.value.replaceAll(",", "");
if (value && compus === "Area1") { if (value && compus === "Area1") {
if (data.some(({ point_name }) => point_name === "Capacity")) { if (data.some(({point_name}) => point_name === "Capacity")) {
contractCapacityForchart1 = data.find( contractCapacityForchart1 = data.find(
({ point_name }) => point_name === "Capacity" ({point_name}) => point_name === "Capacity"
)?.value; )?.value;
} }
$("#contractCapacityForArea1").text(` (${contractCapacityForchart1} kW)`); $("#contractCapacityForArea1").text(` (${contractCapacityForchart1} kW)`);
@ -476,9 +477,9 @@
value value
); );
} else if (value && compus === "Area2") { } else if (value && compus === "Area2") {
if (data.some(({ point_name }) => point_name === "Capacity")) { if (data.some(({point_name}) => point_name === "Capacity")) {
contractCapacityForchart2 = data.find( contractCapacityForchart2 = data.find(
({ point_name }) => point_name === "Capacity" ({point_name}) => point_name === "Capacity"
)?.value; )?.value;
} }
$("#contractCapacityForArea2").text(` (${contractCapacityForchart2} kW)`); $("#contractCapacityForArea2").text(` (${contractCapacityForchart2} kW)`);
@ -677,12 +678,14 @@
// 圖表 - 今天與昨天用電量 (長條圖) // 圖表 - 今天與昨天用電量 (長條圖)
function chartEveDaysElec(todayData, yesData) { function chartEveDaysElec(todayData, yesData) {
let eveDayElecChartCanvas = $("#eveDayElecChart").get(0).getContext("2d"); let eveDayElecChartCanvas = $("#eveDayElecChart").get(0).getContext("2d");
let curHour = new Date().getHours(); let curHour = new Date().getHours();
todayData.data = todayData.filter((x) => x.timestamp.$time.$hour < curHour); todayData.data = todayData.filter((x) => x.timestamp.$time.$hour <= curHour);
yesData.data = yesData.filter((x) => x.timestamp.$time.$hour < curHour); yesData.data = yesData.filter((x) => x.timestamp.$time.$hour <= curHour);
let labels = todayData?.data?.map((x) => x.timestamp.$time.$hour);
let eveDayElecChartData = { let eveDayElecChartData = {
labels: todayData?.data.map((x) => x.timestamp.$time.$hour), labels,
datasets: [ datasets: [
{ {
id: "today", id: "today",
@ -710,7 +713,6 @@
}, },
], ],
}; };
let eveDayElecChartOptions = { let eveDayElecChartOptions = {
maintainAspectRatio: false, maintainAspectRatio: false,
responsive: true, responsive: true,
@ -720,7 +722,7 @@
scales: { scales: {
x: { x: {
offset: true, offset: true,
grid: { color: color.fusion._500 }, grid: {color: color.fusion._500},
}, },
y: { y: {
beginAtZero: true, beginAtZero: true,
@ -752,25 +754,35 @@
}); });
// console.log(eveDayElecChart) // console.log(eveDayElecChart)
} else { } else {
eveDayElecChart.data.labels.splice(0, eveDayElecChart.data.labels.length);
eveDayElecChart.data.labels.push(...labels);
eveDayElecChart.data.datasets.forEach((dataset) => { eveDayElecChart.data.datasets.forEach((dataset) => {
if (dataset.order == 1) { if (dataset.order == 1) {
dataset.data = todayData?.data.map((x) => x.sum); dataset.data.splice(0, dataset.data.length);
dataset.data.push(...yesData?.data.map((x) => x.sum));
// dataset.data = yesData?.data.map((x) => x.sum);
} else { } else {
dataset.data = yesData?.data.map((x) => x.sum);
dataset.data.splice(0, dataset.data.length);
dataset.data.push(...todayData?.data.map((x) => x.sum));
//dataset.data = todayData?.data.map((x) => x.sum);
} }
eveDayElecChart.update();
}); });
} }
} }
// 圖表 - 這週與上週用電量 (長條圖) // 圖表 - 這週與上週用電量 (長條圖)
function chartEveWeeksElec(curWeekData, prevWeekData) { function chartEveWeeksElec(curWeekData, prevWeekData) {
// console.log(curWeekData.map(x => x.sum),prevWeekData.map(x => x.sum))
let eveWeekElecChartCanvas = $("#eveWeekElecChart").get(0).getContext("2d");
let eveWeekElecChartData = { let eveWeekElecChartCanvas = $("#eveWeekElecChart").get(0).getContext("2d");
labels: curWeekData.map((x) => let labels = curWeekData?.map((x) =>
dayToChiDay(strToDate(x.timestamp.$cEncStr, "day")) dayToChiDay(strToDate(x.timestamp.$cEncStr, "day"))
), );
let eveWeekElecChartData = {
labels,
datasets: [ datasets: [
{ {
id: "today", id: "today",
@ -808,7 +820,7 @@
scales: { scales: {
x: { x: {
offset: true, offset: true,
grid: { color: color.fusion._500 }, grid: {color: color.fusion._500},
}, },
y: { y: {
beginAtZero: true, beginAtZero: true,
@ -839,12 +851,20 @@
}); });
// console.log(eveWeekElecChart,eveWeekElecChartData, eveWeekElecChartOptions) // console.log(eveWeekElecChart,eveWeekElecChartData, eveWeekElecChartOptions)
} else { } else {
eveWeekElecChart.data.labels.splice(0, eveWeekElecChart.data.labels.length);
eveWeekElecChart.data.labels.push(...labels);
eveWeekElecChart.data.datasets.forEach((dataset) => { eveWeekElecChart.data.datasets.forEach((dataset) => {
if (dataset.order == 1) { if (dataset.order == 1) {
dataset.data = curWeekData.map((x) => x.sum); dataset.data.splice(0, dataset.data.length);
dataset.data.push(...prevWeekData.map((x) => x.sum));
//dataset.data = prevWeekData.map((x) => x.sum);
} else { } else {
dataset.data = prevWeekData.map((x) => x.sum); dataset.data.splice(0, dataset.data.length);
dataset.data.push(...curWeekData.map((x) => x.sum));
//dataset.data = curWeekData.map((x) => x.sum);
} }
eveWeekElecChart.update();
}); });
} }
} }
@ -852,9 +872,9 @@
// 圖表 - 本月即上月用電量 // 圖表 - 本月即上月用電量
function chartEveMonsElec(curMonData, prevMonData) { function chartEveMonsElec(curMonData, prevMonData) {
let eveMonElecChartCanvas = $("#eveMonElecChart").get(0).getContext("2d"); let eveMonElecChartCanvas = $("#eveMonElecChart").get(0).getContext("2d");
let labels = curMonData?.map((x) => x.timestamp.$date.$day);
let eveMonElecChartData = { let eveMonElecChartData = {
labels: curMonData.map((x) => x.timestamp.$date.$day), labels,
datasets: [ datasets: [
{ {
id: "curMon", id: "curMon",
@ -892,7 +912,7 @@
scales: { scales: {
x: { x: {
offset: true, offset: true,
grid: { color: color.fusion._500 }, grid: {color: color.fusion._500},
}, },
y: { y: {
beginAtZero: true, beginAtZero: true,
@ -923,13 +943,18 @@
}); });
// console.log(eveWeekElecChart,eveWeekElecChartData, eveWeekElecChartOptions) // console.log(eveWeekElecChart,eveWeekElecChartData, eveWeekElecChartOptions)
} else { } else {
eveMonElecChart.data.labels.splice(0, eveMonElecChart.data.labels.length);
eveMonElecChart.data.labels.push(...labels);
eveMonElecChart.data.datasets.forEach((dataset) => { eveMonElecChart.data.datasets.forEach((dataset) => {
if (dataset.order == 1) { if (dataset.order == 1) {
dataset.data = curMonData.map((x) => x.sum); dataset.data.splice(0, dataset.data.length);
dataset.data.push(...prevMonData.map((x) => x.sum));
} else { } else {
dataset.data = prevMonData.map((x) => x.sum); dataset.data.splice(0, dataset.data.length);
dataset.data.push(... curMonData.map((x) => x.sum));
} }
}); });
eveMonElecChart.update();
} }
} }
@ -1178,7 +1203,9 @@
}, },
detail: { detail: {
valueAnimation: true, valueAnimation: true,
formatter: (value) => { return `\t\n ${value} % \t\n ${Math.round(pValue)} kW` }, formatter: (value) => {
return `\t\n ${value} % \t\n ${Math.round(pValue)} kW`
},
color: "inherit", color: "inherit",
fontSize: 20, fontSize: 20,
}, },
@ -1277,10 +1304,15 @@
} }
} }
$(window).on("timeout:5m", function () { //$(window).on("timeout:5m", function () {
//console.log("五分鐘更新");
// getElectricBaja();
// });
setInterval(() => {
console.log("五分鐘更新"); console.log("五分鐘更新");
getElectricBaja(); getElectricBaja();
}); }, 300000)
onEvent("click", "button[id^=sysSubCardBtn]", function () { onEvent("click", "button[id^=sysSubCardBtn]", function () {
let subSysTag = $(this).data("id"); let subSysTag = $(this).data("id");

View File

@ -14,15 +14,9 @@
}, },
"DBConfig": { "DBConfig": {
"MySqlDBConfig": { "MySqlDBConfig": {
"Server": "FYlY+w0XDIz+jmF2rlZWJw==", //0.201 "Server": "CYGthbCeGtAXT4s1NOSJHQ==", //0.201"
"Port": "js2LutKe+rdjzdxMPQUrvQ==", "Port": "mkF51jVbg40V5K5eTh2Ckw==", //306"
//"Database": "VJB2XC+lAtzuHObDGMVOAA==", //30 "Database": "XZ2fOBnta9kdVGEb7y92cg==", //ibms_mcut
//"Database": "IgYBsgG2VLKKxFb64j7LOA==", //wsp
//"Database": "7gWfmZ28HGIJZbxEbK+0yg==", //tpe_dome_dome
//"Database": "siTUcDaC/g2yGTMFWD72Kg==", //tpe_dome_hotel
//"Database": "iuaY0h0+TWkir44/eZLDqw==", //tpe_dome_office
//"Database": "Rq7Gn4x6LwBvVtl7GY8LbA==", //MCUT
"Database": "j9LOmjFh2/9PpuwnVB8ugqnKdBDJHx1AAT7aTWeh37E=", // ibms_mcut_online
"Root": "SzdxEgaJJ7tcTCrUl2zKsA==", "Root": "SzdxEgaJJ7tcTCrUl2zKsA==",
"Password": "FVAPxztxpY4gJJKQ/se4bQ==" "Password": "FVAPxztxpY4gJJKQ/se4bQ=="
} }