Merge pull request '[前台] subDevice 結束 loading bug | dashbord 修正 chart 更新時機' (#1) from hotfix/system into master

Reviewed-on: BIMS/BIMS#1
This commit is contained in:
celeste 2023-05-29 06:24:33 +00:00
commit e9a8013767
3 changed files with 3177 additions and 3003 deletions

File diff suppressed because it is too large Load Diff

View File

@ -55,6 +55,7 @@
$(function () { $(function () {
$(loadEle).Loading("start"); $(loadEle).Loading("start");
getBuildMenu((arr, data) => { getBuildMenu((arr, data) => {
console.log("@@@@@@@@@@@@@@@@@@@@@@@@@@@", arr, data);
buildMenuData = data; buildMenuData = data;
if (arr.indexOf(4) != -1) { if (arr.indexOf(4) != -1) {
getFloDevList(arr[0] == 4 ? "left" : "right"); getFloDevList(arr[0] == 4 ? "left" : "right");
@ -114,8 +115,8 @@
let lightOnHotColorArr = []; let lightOnHotColorArr = [];
let lightOffHotColorArr = []; let lightOffHotColorArr = [];
// 燈光圈用 // 燈光圈用
let lightOnGuidArr = []; let deviceNormalArr = [];
let lightOffGuidArr = []; let deviceCloseArr = [];
myBaja.setSubscribeDevicesCallBack(function (data) { myBaja.setSubscribeDevicesCallBack(function (data) {
// console.log(data) // console.log(data)
@ -123,6 +124,7 @@
(x) => x.device_number == data.device_number_full (x) => x.device_number == data.device_number_full
)[0]; )[0];
if (!matchDevice) { if (!matchDevice) {
$(loadEle).Loading("close");
return false; return false;
} }
@ -146,43 +148,39 @@
subData[data.point_name] = data.value; subData[data.point_name] = data.value;
} }
// setForgeHotSpotColor(matchDevice);
let norDevPoiName = matchDevice.device_normal_point_name; let norDevPoiName = matchDevice.device_normal_point_name;
let cloDevPoiName = matchDevice.device_close_point_name; let cloDevPoiName = matchDevice.device_close_point_name;
let errDevPoiName = matchDevice.device_error_point_name; let errDevPoiName = matchDevice.device_error_point_name;
if (data.point_name == "SSC" && pageAct.sysSubTag === "L1") { if (data.point_name == "SSC" && pageAct.sysSubTag === "L1") {
const lightOn = data.value.includes("true"); const lightOn = data.value.includes("true");
setLightOpenOrClose(lightOn, matchDevice);
setLightOpenOrClose(lightOn, matchDevice.device_guid); if (lightOn && matchDevice.spriteDbid) {
if (lightOn) {
setLightValues(matchDevice.device_guid, 200, 0xe1cf18);
// changeColorForHotspot(matchDevice.spriteDbid, null, true)
if ( if (
!lightOnHotColorArr.some( !lightOnHotColorArr.some(
({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid ({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
) )
) { ) {
setLightValues(matchDevice.device_node_guid, 200, 0xe1cf18);
lightOnHotColorArr.push(matchDevice); lightOnHotColorArr.push(matchDevice);
} }
lightOffHotColorArr = lightOffHotColorArr.filter( lightOffHotColorArr = lightOffHotColorArr.filter(
(light) => light.spriteDbid !== matchDevice.spriteDbid (light) => light.spriteDbid !== matchDevice.spriteDbid
); );
heatMap?.changeTemp(matchDevice.device_number, 40); } else if (matchDevice.spriteDbid) {
} else {
setLightValues(matchDevice.device_guid, 0, 0xffffff);
// changeColorForHotspot(matchDevice.spriteDbid)
if ( if (
!lightOffHotColorArr.some( !lightOffHotColorArr.some(
({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid ({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
) )
) { ) {
setLightValues(matchDevice.device_node_guid, 0, 0xffffff);
lightOffHotColorArr.push(matchDevice); lightOffHotColorArr.push(matchDevice);
} }
lightOnHotColorArr = lightOnHotColorArr.filter( lightOnHotColorArr = lightOnHotColorArr.filter(
(light) => light.spriteDbid !== matchDevice.spriteDbid (light) => light.spriteDbid !== matchDevice.spriteDbid
); );
heatMap?.changeTemp(matchDevice.device_number, 0);
} }
} }
@ -198,49 +196,92 @@
? parseInt(data.value) ? parseInt(data.value)
: 0; : 0;
} }
if ( if (
data.point_name == norDevPoiName && data.point_name == norDevPoiName &&
data.value == matchDevice.device_normal_point_value data.value == matchDevice.device_normal_point_value &&
!deviceNormalArr.some(
({ device_number }) => device_number === matchDevice.device_number
)
) { ) {
//顯示正常燈號 //顯示正常燈號
$(`#${matchDevice.device_number}_status`) $(`#${matchDevice.device_number}_status`)
.attr("data-light-type", "normal") .attr("data-light-type", "normal")
.data("light-type", "normal"); .data("light-type", "normal");
deviceNormalArr.push(matchDevice);
deviceCloseArr = deviceCloseArr.filter(
(device) => device.spriteDbid !== matchDevice.spriteDbid
);
} else if ( } else if (
data.point_name == cloDevPoiName && data.point_name == cloDevPoiName &&
data.value == matchDevice.device_close_point_value data.value == matchDevice.device_close_point_value &&
!deviceCloseArr.some(
({ device_number }) => device_number === matchDevice.device_number
)
) { ) {
$(`#${matchDevice.device_number}_status`) $(`#${matchDevice.device_number}_status`)
.attr("data-light-type", "close") .attr("data-light-type", "close")
.data("light-type", "close"); .data("light-type", "close");
} else if (
deviceCloseArr.push(matchDevice);
deviceNormalArr = deviceNormalArr.filter(
(device) => device.spriteDbid !== matchDevice.spriteDbid
);
}
if (
data.point_name == errDevPoiName && data.point_name == errDevPoiName &&
data.value == matchDevice.device_error_point_value data.value == matchDevice.device_error_point_value &&
!alarmDbIdList.some(
(device) => device.device_number === matchDevice.device_number
)
) { ) {
if (pageAct.sysSubTag === "L1") {
$(`#${matchDevice.device_number}_status`)
.attr("data-light-error-type", "error")
.data("light-error-type", "error");
} else {
$(`#${matchDevice.device_number}_status`) $(`#${matchDevice.device_number}_status`)
.attr("data-light-type", "error") .attr("data-light-type", "error")
.data("light-type", "error"); .data("light-type", "error");
} }
alarmDbIdList.push(matchDevice);
} else if (
data.point_name == errDevPoiName &&
data.value !== matchDevice.device_error_point_value
) {
$(`#${matchDevice.device_number}_status`)
.attr("data-light-error-type", "")
.data("light-error-type", "");
alarmDbIdList = alarmDbIdList.filter(
(device) => device.device_number !== matchDevice.device_number
);
}
if ( if (
allDevList.length === allDevList.length ===
lightOnHotColorArr.length + lightOffHotColorArr.length deviceNormalArr.length + deviceCloseArr.length + alarmDbIdList.length
) { ) {
changeColorForHotspot( changeColorForHotspot(
lightOnHotColorArr.map(({ spriteDbid }) => spriteDbid), deviceNormalArr.map(({ spriteDbid }) => spriteDbid),
null, null,
true true
); );
changeColorForHotspot( changeColorForHotspot(
lightOffHotColorArr.map(({ spriteDbid }) => spriteDbid), deviceCloseArr.map(({ spriteDbid }) => spriteDbid),
null, null,
false false
); );
} }
changeColorForHotspot(
alarmDbIdList.map(({ spriteDbid }) => spriteDbid),
"error",
false
);
$(loadEle).Loading("close"); $(loadEle).Loading("close");
setLightColor(); setLightColor();
setForgeHotSpotColor(matchDevice);
lightDevForgeSpotLig(matchDevice); lightDevForgeSpotLig(matchDevice);
// 從設備訂閱更新每個設備卡片即時點位 // 從設備訂閱更新每個設備卡片即時點位
setDevItemPoiValBySub(data); setDevItemPoiValBySub(data);
@ -248,7 +289,10 @@
myBaja.setSubscribeDeviceEndCallBack(function (data) { myBaja.setSubscribeDeviceEndCallBack(function (data) {
endPageLoading(); endPageLoading();
if (data.findIndex((x) => x.point_name == "Temp") != -1) { if (data.findIndex((x) => x.point_name == "CO2") != -1) {
// 顯示溫度條
showHeatCO2("[name=forgeHeatBar]");
} else if (data.findIndex((x) => x.point_name == "Temp") != -1) {
// 顯示溫度條 // 顯示溫度條
showHeat("[name=forgeHeatBar]"); showHeat("[name=forgeHeatBar]");
} }

View File

@ -16,10 +16,8 @@
</div> --> </div> -->
<div class="d-flex"> <div class="d-flex">
<div class="col-6 my-3"> <div class="col-6 my-3">
<div <div id="floChart"
id="floChart" style="height: 100%; width: 100%; background-color: #fff"></div>
style="height: 100%; width: 100%; background-color: #fff"
></div>
</div> </div>
<div class="col-6 my-3"> <div class="col-6 my-3">
<!-- <div id="forgeViewer" class="position-relative" style="height:100%"> <!-- <div id="forgeViewer" class="position-relative" style="height:100%">
@ -27,11 +25,9 @@
</div> </div>
</div> --> </div> -->
<div id="forgeViewer" class="position-relative" style="height: 80vh"> <div id="forgeViewer" class="position-relative" style="height: 80vh">
<div <div id="forgeHeatBarDiv"
id="forgeHeatBarDiv"
class="d-flex mb-4 position-absolute" class="d-flex mb-4 position-absolute"
style="gap: 15px" style="gap: 15px"></div>
></div>
</div> </div>
</div> </div>
</div> </div>
@ -540,6 +536,7 @@
(x) => x.device_number == data.device_number_full (x) => x.device_number == data.device_number_full
)[0]; )[0];
if (!matchDevice) { if (!matchDevice) {
$(loadEle).Loading("close");
return false; return false;
} }
//將訂閱值塞入 subDeviceData //將訂閱值塞入 subDeviceData
@ -645,6 +642,9 @@
(device) => device.spriteDbid !== matchDevice.spriteDbid (device) => device.spriteDbid !== matchDevice.spriteDbid
); );
} }
console.log(deviceScatterCloseArr.length,
deviceScatterNormalArr.length,
deviceScatterErrorArr.length)
if ( if (
option.series[0].data.length === option.series[0].data.length ===
lightOnHotColorArr.length + lightOffHotColorArr.length lightOnHotColorArr.length + lightOffHotColorArr.length