照明設備開關 bug 修正

This commit is contained in:
Celeste 2023-04-28 14:01:58 +08:00
parent 605f3f8f87
commit 4e96375be4
5 changed files with 3653 additions and 3751 deletions

View File

@ -6,29 +6,23 @@
</div> </div>
<!-- Modal center Add --> <!-- Modal center Add -->
<div <div class="modal fade"
class="modal fade"
id="lightSchModal" id="lightSchModal"
tabindex="-1" tabindex="-1"
role="dialog" role="dialog"
aria-hidden="true" aria-hidden="true"
data-backdrop="static" data-backdrop="static"
data-keyboard="false" data-keyboard="false">
> <div class="modal-dialog modal-dialog-centered"
<div
class="modal-dialog modal-dialog-centered"
role="document" role="document"
style="min-width: 60%" style="min-width: 60%">
>
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h4 class="modal-title">燈控排程</h4> <h4 class="modal-title">燈控排程</h4>
<button <button type="button"
type="button"
class="close" class="close"
data-dismiss="modal" data-dismiss="modal"
aria-label="Close" aria-label="Close">
>
<span aria-hidden="true"><i class="fal fa-times"></i></span> <span aria-hidden="true"><i class="fal fa-times"></i></span>
</button> </button>
</div> </div>
@ -59,6 +53,7 @@
var forgeInvTypeDef = null; var forgeInvTypeDef = null;
$(function () { $(function () {
$(loadEle).Loading("start");
getBuildMenu((arr, data) => { getBuildMenu((arr, data) => {
buildMenuData = data; buildMenuData = data;
if (arr.indexOf(4) != -1) { if (arr.indexOf(4) != -1) {
@ -162,15 +157,31 @@
if (lightOn) { if (lightOn) {
setLightValues(matchDevice.device_guid, 200, 0xe1cf18); setLightValues(matchDevice.device_guid, 200, 0xe1cf18);
// changeColorForHotspot(matchDevice.spriteDbid, null, true) // changeColorForHotspot(matchDevice.spriteDbid, null, true)
lightOnHotColorArr.push(matchDevice.spriteDbid); if (
!lightOnHotColorArr.some(
({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
)
) {
lightOnHotColorArr.push(matchDevice);
}
lightOffHotColorArr = lightOffHotColorArr.filter(
(light) => light.spriteDbid !== matchDevice.spriteDbid
);
heatMap?.changeTemp(matchDevice.device_number, 40); heatMap?.changeTemp(matchDevice.device_number, 40);
} else { } else {
setLightValues(matchDevice.device_guid, 0, 0xffffff); setLightValues(matchDevice.device_guid, 0, 0xffffff);
// changeColorForHotspot(matchDevice.spriteDbid) // changeColorForHotspot(matchDevice.spriteDbid)
if (
!lightOffHotColorArr.some(
({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
)
) {
lightOffHotColorArr.push(matchDevice);
}
lightOnHotColorArr = lightOnHotColorArr.filter( lightOnHotColorArr = lightOnHotColorArr.filter(
(light) => light !== matchDevice.spriteDbid (light) => light.spriteDbid !== matchDevice.spriteDbid
); );
lightOffHotColorArr.push(matchDevice.spriteDbid);
heatMap?.changeTemp(matchDevice.device_number, 0); heatMap?.changeTemp(matchDevice.device_number, 0);
} }
} }
@ -187,7 +198,6 @@
? 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
@ -211,9 +221,24 @@
.attr("data-light-type", "error") .attr("data-light-type", "error")
.data("light-type", "error"); .data("light-type", "error");
} }
if (
allDevList.length ===
lightOnHotColorArr.length + lightOffHotColorArr.length
) {
changeColorForHotspot(
lightOnHotColorArr.map(({ spriteDbid }) => spriteDbid),
null,
true
);
changeColorForHotspot(
lightOffHotColorArr.map(({ spriteDbid }) => spriteDbid),
null,
false
);
}
$(loadEle).Loading("close");
changeColorForHotspot(lightOnHotColorArr, null, true);
changeColorForHotspot(lightOffHotColorArr, null, false);
setLightColor(); setLightColor();
setForgeHotSpotColor(matchDevice); setForgeHotSpotColor(matchDevice);
lightDevForgeSpotLig(matchDevice); lightDevForgeSpotLig(matchDevice);
@ -342,43 +367,32 @@
$.each(floObj.device_list, (index2, devObj) => { $.each(floObj.device_list, (index2, devObj) => {
allDevList.push(devObj); allDevList.push(devObj);
let devItem = getRiserPoiObj(); let devItem = getRiserPoiObj();
strHtml += `<div class="card m-1 border device-wrap" data-number="${ strHtml += `<div class="card m-1 border device-wrap" data-number="${devObj.device_number
devObj.device_number
}" data-position="${position}"> }" data-position="${position}">
<div class="card-body p-2"> <div class="card-body p-2">
<div class="d-flex mb-2"> <div class="d-flex mb-2">
<div class="mr-5 cur-poi"> <div class="mr-5 cur-poi">
<span class="d-inline-block mr-3"> <span class="d-inline-block mr-3">
<img src="${ <img src="${baseImgUrl +
baseImgUrl +
varPathDevIcon + varPathDevIcon +
devObj.device_image devObj.device_image
}" class="profile-image rounded-circle" onerror="defDev(this)" alt="..."> }" class="profile-image rounded-circle" onerror="defDev(this)" alt="...">
</span> </span>
<a name="devItemName" data-number="${ <a name="devItemName" data-number="${devObj.device_number
devObj.device_number }" href="javascript:;">${devObj.full_name
}" href="javascript:;">${
devObj.full_name
}</a> }</a>
</div> </div>
</div> </div>
<div class="d-flex mb-0 mt-2 align-items-center"> <div class="d-flex mb-0 mt-2 align-items-center">
<span id="${ <span id="${devObj.device_number
devObj.device_number
}_status" class="circle-light"></span> }_status" class="circle-light"></span>
<span class="${ <span class="${devItem ? "" : "d-none"
devItem ? "" : "d-none" } ml-2">${devItem?.full_name
} ml-2">${ }<span name="devItemPoiVal" data-point="${devItem?.points
devItem?.full_name
}<span name="devItemPoiVal" data-point="${
devItem?.points
}"></span>${devItem?.unit}</span> }"></span>${devItem?.unit}</span>
<a href="javascript:;" name="devItem" data-id="${ <a href="javascript:;" name="devItem" data-id="${devObj.device_guid
devObj.device_guid }" data-number="${devObj.device_number
}" data-number="${ }" data-name="${devObj.full_name
devObj.device_number
}" data-name="${
devObj.full_name
}" class=" ml-2 mb-0 " data-toggle="tooltip" title="默认的 Tooltip">詳細資料</a> }" class=" ml-2 mb-0 " data-toggle="tooltip" title="默认的 Tooltip">詳細資料</a>
</div> </div>
</div> </div>
@ -511,12 +525,11 @@
} }
function show3DModel(urn) { function show3DModel(urn) {
$(loadEle).Loading("start");
launchViewerForHotspot( launchViewerForHotspot(
urn, urn,
(viewer, nodeIds) => { (viewer, nodeIds) => {
// 隱藏 toolbar // 隱藏 toolbar
// document.querySelector("#guiviewer3d-toolbar").style.display = "none"; document.querySelector("#guiviewer3d-toolbar").style.display = "none";
let devDbIds = allDevList.map((x) => x.forge_dbid); let devDbIds = allDevList.map((x) => x.forge_dbid);
// 大類 // 大類
let subDevDbId = []; let subDevDbId = [];
@ -534,11 +547,11 @@
setInviForge(forgeInvTypeDef, [...devDbIds, ...subDevDbId]); setInviForge(forgeInvTypeDef, [...devDbIds, ...subDevDbId]);
} }
$(loadEle).Loading("close");
let sensorObjs = []; let sensorObjs = [];
let devices = []; let devices = [];
if (pageAct.sysSubTag === "M12") { if (pageAct.sysSubTag === "M12") {
addHotPoint(viewer); addHotPoint(viewer);
Forge3DSensor.sensorTimes = 0;
allDevList.forEach((device) => { allDevList.forEach((device) => {
Forge3DSensor.sensorTimes++; Forge3DSensor.sensorTimes++;
const sensorObj = new Forge3DSensor({ const sensorObj = new Forge3DSensor({
@ -670,9 +683,7 @@
getE1NodeId(viewer); getE1NodeId(viewer);
} }
}, },
() => { () => { },
$(loadEle).Loading("close");
},
"[name=forgeViewer]" "[name=forgeViewer]"
); );
} }

View File

@ -49,7 +49,7 @@
getHotspotPoint(() => { getHotspotPoint(() => {
show3DModel(pageAct.urn); show3DModel(pageAct.urn);
}); });
if (!tempSubTag.includes(pageAct.sysSubTag)) { if (tempSubTag.includes(pageAct.sysSubTag)) {
$("#topLight").html(setTopLight()); $("#topLight").html(setTopLight());
setLightColor(); setLightColor();
} }
@ -573,7 +573,13 @@
if (lightOn && matchDevice.spriteDbid) { if (lightOn && matchDevice.spriteDbid) {
// setLightValues(matchDevice.device_guid, 200, 0xe1cf18); // setLightValues(matchDevice.device_guid, 200, 0xe1cf18);
// changeColorForHotspot(matchDevice.spriteDbid, null, lightOn); // changeColorForHotspot(matchDevice.spriteDbid, null, lightOn);
if (
!lightOnHotColorArr.some(
({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
)
) {
lightOnHotColorArr.push(matchDevice); lightOnHotColorArr.push(matchDevice);
}
lightOffHotColorArr = lightOffHotColorArr.filter( lightOffHotColorArr = lightOffHotColorArr.filter(
(light) => light.spriteDbid !== matchDevice.spriteDbid (light) => light.spriteDbid !== matchDevice.spriteDbid
); );
@ -582,10 +588,16 @@
// console.log(lightOn, matchDevice); // console.log(lightOn, matchDevice);
// setLightValues(matchDevice.device_guid, 0, 0xffffff); // setLightValues(matchDevice.device_guid, 0, 0xffffff);
// changeColorForHotspot(matchDevice.spriteDbid, null, lightOn); // changeColorForHotspot(matchDevice.spriteDbid, null, lightOn);
if (
!lightOffHotColorArr.some(
({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
)
) {
lightOffHotColorArr.push(matchDevice);
}
lightOnHotColorArr = lightOnHotColorArr.filter( lightOnHotColorArr = lightOnHotColorArr.filter(
(light) => light.spriteDbid !== matchDevice.spriteDbid (light) => light.spriteDbid !== matchDevice.spriteDbid
); );
lightOffHotColorArr.push(matchDevice);
heatMap?.changeTemp(matchDevice.device_number, 0); heatMap?.changeTemp(matchDevice.device_number, 0);
} }
} }
@ -681,7 +693,6 @@
deviceScatterErrorArr.length === deviceScatterErrorArr.length ===
option.series[0].data.length option.series[0].data.length
) { ) {
console.log("deviceScatterNormalArr", deviceScatterNormalArr)
deviceScatterNormalArr.forEach((device) => { deviceScatterNormalArr.forEach((device) => {
const cur = option.series[0].data.find( const cur = option.series[0].data.find(
({ device_number }) => device_number === device.device_number ({ device_number }) => device_number === device.device_number
@ -693,7 +704,6 @@
cur.itemStyle = { color: normalColor }; cur.itemStyle = { color: normalColor };
}); });
deviceScatterCloseArr.forEach((device) => { deviceScatterCloseArr.forEach((device) => {
const cur = option.series[0].data.find( const cur = option.series[0].data.find(
({ device_number }) => device_number === device.device_number ({ device_number }) => device_number === device.device_number
@ -1150,7 +1160,7 @@
}; };
obj.itemStyle = { obj.itemStyle = {
color: item.device_color || item.device_normal_color, color: item.device_color || item.device_close_color,
}; };
res.push(obj); res.push(obj);

View File

@ -13,94 +13,64 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
<title>Marketing Dashboard - Application Intel - SmartAdmin v4.5.1</title> <title>Marketing Dashboard - Application Intel - SmartAdmin v4.5.1</title>
<meta name="description" content="Marketing Dashboard" /> <meta name="description" content="Marketing Dashboard" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta <meta name="viewport"
name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, minimal-ui" />
content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, minimal-ui"
/>
<!-- Call App Mode on ios devices --> <!-- Call App Mode on ios devices -->
<meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-capable" content="yes" />
<!-- Remove Tap Highlight on Windows Phone IE --> <!-- Remove Tap Highlight on Windows Phone IE -->
<meta name="msapplication-tap-highlight" content="no" /> <meta name="msapplication-tap-highlight" content="no" />
<!-- base css --> <!-- base css -->
<link <link id="vendorsbundle"
id="vendorsbundle"
rel="stylesheet" rel="stylesheet"
media="screen, print" media="screen, print"
href="lib/vendors.bundle.css" href="lib/vendors.bundle.css" />
/> <link id="appbundle"
<link
id="appbundle"
rel="stylesheet" rel="stylesheet"
media="screen, print" media="screen, print"
href="lib/app.bundle.css" href="lib/app.bundle.css" />
/>
<link id="mytheme" rel="stylesheet" media="screen, print" href="#" /> <link id="mytheme" rel="stylesheet" media="screen, print" href="#" />
<link <link id="myskin"
id="myskin"
rel="stylesheet" rel="stylesheet"
media="screen, print" media="screen, print"
href="lib/skins/skin-master.css" href="lib/skins/skin-master.css" />
/>
<link rel="stylesheet" href="lib/notifications/toastr/toastr.min.css" /> <link rel="stylesheet" href="lib/notifications/toastr/toastr.min.css" />
<link rel="stylesheet" href="lib/dropzone/dropzone.css" /> <link rel="stylesheet" href="lib/dropzone/dropzone.css" />
<!-- Place favicon.ico in the root directory --> <!-- Place favicon.ico in the root directory -->
<link <link rel="apple-touch-icon"
rel="apple-touch-icon"
sizes="180x180" sizes="180x180"
href="img/favicon/apple-touch-icon.png" href="img/favicon/apple-touch-icon.png" />
/> <link rel="icon"
<link
rel="icon"
type="image/png" type="image/png"
sizes="32x32" sizes="32x32"
href="img/favicon/favicon-32x32.png" href="img/favicon/favicon-32x32.png" />
/> <link rel="mask-icon"
<link
rel="mask-icon"
href="img/favicon/safari-pinned-tab.svg" href="img/favicon/safari-pinned-tab.svg"
color="#5bbad5" color="#5bbad5" />
/>
<!-- Font Awesome --> <!-- Font Awesome -->
<link href="lib/fontawesome-free/css/all.min.css" rel="stylesheet" /> <link href="lib/fontawesome-free/css/all.min.css" rel="stylesheet" />
<link href="lib/jquery-ui/jquery-ui.min.css" rel="stylesheet" /> <link href="lib/jquery-ui/jquery-ui.min.css" rel="stylesheet" />
<!--<link href="lib/chart.js/Chart.min.css" rel="stylesheet" />--> <!--<link href="lib/chart.js/Chart.min.css" rel="stylesheet" />-->
<link <link href="lib/jstree-master/themes/default/style.min.css"
href="lib/jstree-master/themes/default/style.min.css" rel="stylesheet" />
rel="stylesheet" <link href="lib/jstree-master/themes/default-dark/style.min.css"
/> rel="stylesheet" />
<link <link href="https://fonts.googleapis.com/icon?family=Material+Icons"
href="lib/jstree-master/themes/default-dark/style.min.css" rel="stylesheet" />
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/icon?family=Material+Icons"
rel="stylesheet"
/>
<!--<link rel="stylesheet" media="screen, print" href="https://cdn.datatables.net/1.10.21/css/dataTables.bootstrap.min.css">--> <!--<link rel="stylesheet" media="screen, print" href="https://cdn.datatables.net/1.10.21/css/dataTables.bootstrap.min.css">-->
<link <link rel="stylesheet"
rel="stylesheet"
media="screen, print" media="screen, print"
href="https://cdn.datatables.net/1.10.21/css/dataTables.bootstrap4.min.css" href="https://cdn.datatables.net/1.10.21/css/dataTables.bootstrap4.min.css" />
/>
<link rel="stylesheet" href="css/site.css" /> <link rel="stylesheet" href="css/site.css" />
<link <link rel="stylesheet"
rel="stylesheet" href="css/yourteam/plugins/yt-tooltip/yt-tooltip.css" />
href="css/yourteam/plugins/yt-tooltip/yt-tooltip.css" <link rel="stylesheet"
/> href="css/yourteam/plugins/yt-notice/yt-notice.css" />
<link <link rel="stylesheet"
rel="stylesheet" href="css/yourteam/plugins/yt-alert/ytpop-alert.css" />
href="css/yourteam/plugins/yt-notice/yt-notice.css" <link rel="stylesheet"
/>
<link
rel="stylesheet"
href="css/yourteam/plugins/yt-alert/ytpop-alert.css"
/>
<link
rel="stylesheet"
href="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.min.css" href="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.min.css"
type="text/css" type="text/css" />
/>
</head> </head>
<!-- BEGIN Body --> <!-- BEGIN Body -->
<!-- Possible Classes <!-- Possible Classes
@ -128,9 +98,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
>>> more settings are described inside documentation page >>> >>> more settings are described inside documentation page >>>
--> -->
<body <body class="mod-bg-1 mod-nav-link mod-skin-dark mod-hide-info-card nav-function-top nav-function-fixed mod-lean-subheader desktop chrome webkit pace-done blur">
class="mod-bg-1 mod-nav-link mod-skin-dark mod-hide-info-card nav-function-top nav-function-fixed mod-lean-subheader desktop chrome webkit pace-done blur"
>
<!-- DOC: script to save and load page settings --> <!-- DOC: script to save and load page settings -->
<script> <script>
/** /**
@ -203,17 +171,13 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
<header class="page-header" role="banner"> <header class="page-header" role="banner">
<!--we need this logo when user switches to nav-function-top--> <!--we need this logo when user switches to nav-function-top-->
<div class="page-logo"> <div class="page-logo">
<a <a href="javascript:;"
href="javascript:;"
name="topFunBtn" name="topFunBtn"
data-page="dashboard" data-page="dashboard"
class="page-logo-link press-scale-down d-flex align-items-center position-relative" class="page-logo-link press-scale-down d-flex align-items-center position-relative">
> <img src="img/logo.png"
<img
src="img/logo.png"
alt="SmartAdmin WebApp" alt="SmartAdmin WebApp"
aria-roledescription="logo" aria-roledescription="logo" />
/>
<!--<span class="page-logo-text mr-1">SmartAdmin WebApp</span>--> <!--<span class="page-logo-text mr-1">SmartAdmin WebApp</span>-->
<!--<span class="position-absolute text-white opacity-50 small pos-top pos-right mr-2 mt-n2"></span> <!--<span class="position-absolute text-white opacity-50 small pos-top pos-right mr-2 mt-n2"></span>
@ -222,35 +186,29 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
</div> </div>
<!--DOC: nav menu layout change shortcut--> <!--DOC: nav menu layout change shortcut-->
<div class="hidden-md-down dropdown-icon-menu position-relative"> <div class="hidden-md-down dropdown-icon-menu position-relative">
<a <a href="#"
href="#"
class="header-btn btn js-waves-off" class="header-btn btn js-waves-off"
data-action="toggle" data-action="toggle"
data-class="nav-function-hidden" data-class="nav-function-hidden"
title="Hide Navigation" title="Hide Navigation">
>
<i class="ni ni-menu"></i> <i class="ni ni-menu"></i>
</a> </a>
<ul> <ul>
<li> <li>
<a <a href="#"
href="#"
class="btn js-waves-off" class="btn js-waves-off"
data-action="toggle" data-action="toggle"
data-class="nav-function-minify" data-class="nav-function-minify"
title="Minify Navigation" title="Minify Navigation">
>
<i class="ni ni-minify-nav"></i> <i class="ni ni-minify-nav"></i>
</a> </a>
</li> </li>
<li> <li>
<a <a href="#"
href="#"
class="btn js-waves-off" class="btn js-waves-off"
data-action="toggle" data-action="toggle"
data-class="nav-function-fixed" data-class="nav-function-fixed"
title="Lock Navigation" title="Lock Navigation">
>
<i class="ni ni-lock-nav"></i> <i class="ni ni-lock-nav"></i>
</a> </a>
</li> </li>
@ -258,83 +216,65 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
</div> </div>
<!--DOC: mobile button appears during mobile width--> <!--DOC: mobile button appears during mobile width-->
<div class="hidden-lg-up"> <div class="hidden-lg-up">
<a <a href="#"
href="#"
class="header-btn btn press-scale-down" class="header-btn btn press-scale-down"
data-action="toggle" data-action="toggle"
data-class="mobile-nav-on" data-class="mobile-nav-on">
>
<i class="ni ni-menu"></i> <i class="ni ni-menu"></i>
</a> </a>
</div> </div>
<div class="dropdown"> <div class="dropdown">
<a <a class="dropdown-toggle fs-1"
class="dropdown-toggle fs-1"
href="javascript:;" href="javascript:;"
role="button" role="button"
id="buiActDrop" id="buiActDrop"
data-target="buiList" data-target="buiList"
data-toggle="dropdown" data-toggle="dropdown"
aria-haspopup="true" aria-haspopup="true">
>
</a> </a>
<div <div id="buiList"
id="buiList" class="dropdown-menu dropdown-select-menu js-auto-close"></div>
class="dropdown-menu dropdown-select-menu js-auto-close"
></div>
</div> </div>
<div class="ml-auto d-flex" id="froLisPage"></div> <div class="ml-auto d-flex" id="froLisPage"></div>
<div class="ml-auto d-flex mr-3"> <div class="ml-auto d-flex mr-3">
<div class="dropdown"> <div class="dropdown">
<a <a href="javascript:;"
href="javascript:;"
id="toggleNoticeBtn" id="toggleNoticeBtn"
class="d-flex align-items-center justify-content-center ml-2" class="d-flex align-items-center justify-content-center ml-2">
>
<!--<img src="img/demo/avatars/avatar-admin.png" class="profile-image rounded-circle" <!--<img src="img/demo/avatars/avatar-admin.png" class="profile-image rounded-circle"
alt="Dr. Codex Lantern">--> alt="Dr. Codex Lantern">-->
<!--you can also add username next to the avatar with the codes below:--> <!--you can also add username next to the avatar with the codes below:-->
<div class="row m-0 justify-content-center userblock"> <div class="row m-0 justify-content-center userblock">
<i id="noticeConIcon" class="fs-1-5 w-100 text-center"></i> <i id="noticeConIcon" class="fs-1-5 w-100 text-center"></i>
<span <span id="noticeConText"
id="noticeConText"
class="text-truncate text-truncate-header hidden-xs-down" class="text-truncate text-truncate-header hidden-xs-down"
data-hide="隱藏警告" data-hide="隱藏警告"
data-show="顯示警告" data-show="顯示警告"></span>
></span>
</div> </div>
</a> </a>
</div> </div>
<!--app user menu--> <!--app user menu-->
<div class="dropdown"> <div class="dropdown">
<a <a href="#"
href="#"
data-toggle="dropdown" data-toggle="dropdown"
data-target="logoutList" data-target="logoutList"
class="d-flex align-items-center justify-content-center ml-2" class="d-flex align-items-center justify-content-center ml-2">
>
<!--<img src="img/demo/avatars/avatar-admin.png" class="profile-image rounded-circle" <!--<img src="img/demo/avatars/avatar-admin.png" class="profile-image rounded-circle"
alt="Dr. Codex Lantern">--> alt="Dr. Codex Lantern">-->
<!--you can also add username next to the avatar with the codes below:--> <!--you can also add username next to the avatar with the codes below:-->
<div class="row m-0 justify-content-center userblock"> <div class="row m-0 justify-content-center userblock">
<i class="fas fa-user-circle fs-1-5 w-100 text-center"></i> <i class="fas fa-user-circle fs-1-5 w-100 text-center"></i>
<span <span id="usrName"
id="usrName" class="text-truncate text-truncate-header hidden-xs-down"></span>
class="text-truncate text-truncate-header hidden-xs-down"
></span>
</div> </div>
</a> </a>
<div <div id="logoutList"
id="logoutList" class="dropdown-menu dropdown-menu-right dropdown-lg">
class="dropdown-menu dropdown-menu-right dropdown-lg" <a id="logout"
>
<a
id="logout"
href="javascript:;" href="javascript:;"
class="dropdown-item fw-500 pt-3 pb-3" class="dropdown-item fw-500 pt-3 pb-3">
>
<span>登出</span> <span>登出</span>
</a> </a>
</div> </div>
@ -356,11 +296,9 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
<div id="app"></div> <div id="app"></div>
<!-- this overlay is activated only when mobile menu is triggered --> <!-- this overlay is activated only when mobile menu is triggered -->
<div <div class="page-content-overlay"
class="page-content-overlay"
data-action="toggle" data-action="toggle"
data-class="mobile-nav-on" data-class="mobile-nav-on"></div>
></div>
<div id="sysMonNavbar" class="yt-navbar yt-left-navbar"> <div id="sysMonNavbar" class="yt-navbar yt-left-navbar">
<div class="yt-navbar-content"> <div class="yt-navbar-content">
@ -456,106 +394,76 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
</div> </div>
<!-- END Page Wrapper --> <!-- END Page Wrapper -->
<!-- BEGIN Messenger --> <!-- BEGIN Messenger -->
<div <div class="modal fade js-modal-messenger modal-backdrop-transparent"
class="modal fade js-modal-messenger modal-backdrop-transparent"
tabindex="-1" tabindex="-1"
role="dialog" role="dialog"
aria-hidden="true" aria-hidden="true">
>
<div class="modal-dialog modal-dialog-right"> <div class="modal-dialog modal-dialog-right">
<div class="modal-content h-100"> <div class="modal-content h-100">
<div <div class="dropdown-header bg-trans-gradient d-flex align-items-center w-100">
class="dropdown-header bg-trans-gradient d-flex align-items-center w-100" <div class="d-flex flex-row align-items-center mt-1 mb-1 color-white">
>
<div
class="d-flex flex-row align-items-center mt-1 mb-1 color-white"
>
<span class="mr-2"> <span class="mr-2">
<span <span class="rounded-circle profile-image d-block"
class="rounded-circle profile-image d-block"
style=" style="
background-image: url('img/demo/avatars/avatar-d.png'); background-image: url('img/demo/avatars/avatar-d.png');
background-size: cover; background-size: cover;
" "></span>
></span>
</span> </span>
<div class="info-card-text"> <div class="info-card-text">
<a <a href="javascript:void(0);"
href="javascript:void(0);"
class="fs-lg text-truncate text-truncate-lg text-white" class="fs-lg text-truncate text-truncate-lg text-white"
data-toggle="dropdown" data-toggle="dropdown"
aria-expanded="false" aria-expanded="false">
>
Tracey Chang Tracey Chang
<i <i class="fal fa-angle-down d-inline-block ml-1 text-white fs-md"></i>
class="fal fa-angle-down d-inline-block ml-1 text-white fs-md"
></i>
</a> </a>
<div class="dropdown-menu"> <div class="dropdown-menu">
<a class="dropdown-item" href="#">Send Email</a> <a class="dropdown-item" href="#">Send Email</a>
<a class="dropdown-item" href="#">Create Appointment</a> <a class="dropdown-item" href="#">Create Appointment</a>
<a class="dropdown-item" href="#">Block User</a> <a class="dropdown-item" href="#">Block User</a>
</div> </div>
<span class="text-truncate text-truncate-md opacity-80" <span class="text-truncate text-truncate-md opacity-80">IT Director</span>
>IT Director</span
>
</div> </div>
</div> </div>
<button <button type="button"
type="button"
class="close text-white position-absolute pos-top pos-right p-2 m-1 mr-2" class="close text-white position-absolute pos-top pos-right p-2 m-1 mr-2"
data-dismiss="modal" data-dismiss="modal"
aria-label="Close" aria-label="Close">
>
<span aria-hidden="true"><i class="fal fa-times"></i></span> <span aria-hidden="true"><i class="fal fa-times"></i></span>
</button> </button>
</div> </div>
<div class="modal-body p-0 h-100 d-flex"> <div class="modal-body p-0 h-100 d-flex">
<!-- BEGIN msgr-list --> <!-- BEGIN msgr-list -->
<div <div class="msgr-list d-flex flex-column bg-faded border-faded border-top-0 border-right-0 border-bottom-0 position-absolute pos-top pos-bottom">
class="msgr-list d-flex flex-column bg-faded border-faded border-top-0 border-right-0 border-bottom-0 position-absolute pos-top pos-bottom"
>
<div> <div>
<div <div class="height-4 width-3 h3 m-0 d-flex justify-content-center flex-column color-primary-500 pl-3 mt-2">
class="height-4 width-3 h3 m-0 d-flex justify-content-center flex-column color-primary-500 pl-3 mt-2"
>
<i class="fal fa-search"></i> <i class="fal fa-search"></i>
</div> </div>
<input <input type="text"
type="text"
class="form-control bg-white" class="form-control bg-white"
id="msgr_listfilter_input" id="msgr_listfilter_input"
placeholder="Filter contacts" placeholder="Filter contacts"
aria-label="FriendSearch" aria-label="FriendSearch"
data-listfilter="#js-msgr-listfilter" data-listfilter="#js-msgr-listfilter" />
/>
</div> </div>
<div class="flex-1 h-100 custom-scroll"> <div class="flex-1 h-100 custom-scroll">
<div class="w-100"> <div class="w-100">
<ul id="js-msgr-listfilter" class="list-unstyled m-0"> <ul id="js-msgr-listfilter" class="list-unstyled m-0">
<li> <li>
<a <a href="#"
href="#"
class="d-table w-100 px-2 py-2 text-dark hover-white" class="d-table w-100 px-2 py-2 text-dark hover-white"
data-filter-tags="tracey chang online" data-filter-tags="tracey chang online">
> <div class="d-table-cell align-middle status status-success status-sm">
<div <span class="profile-image-md rounded-circle d-block"
class="d-table-cell align-middle status status-success status-sm"
>
<span
class="profile-image-md rounded-circle d-block"
style=" style="
background-image: url('img/demo/avatars/avatar-d.png'); background-image: url('img/demo/avatars/avatar-d.png');
background-size: cover; background-size: cover;
" "></span>
></span>
</div> </div>
<div class="d-table-cell w-100 align-middle pl-2 pr-2"> <div class="d-table-cell w-100 align-middle pl-2 pr-2">
<div class="text-truncate text-truncate-md"> <div class="text-truncate text-truncate-md">
Tracey Chang Tracey Chang
<small <small class="d-block font-italic text-success fs-xs">
class="d-block font-italic text-success fs-xs"
>
Online Online
</small> </small>
</div> </div>
@ -563,28 +471,20 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
</a> </a>
</li> </li>
<li> <li>
<a <a href="#"
href="#"
class="d-table w-100 px-2 py-2 text-dark hover-white" class="d-table w-100 px-2 py-2 text-dark hover-white"
data-filter-tags="oliver kopyuv online" data-filter-tags="oliver kopyuv online">
> <div class="d-table-cell align-middle status status-success status-sm">
<div <span class="profile-image-md rounded-circle d-block"
class="d-table-cell align-middle status status-success status-sm"
>
<span
class="profile-image-md rounded-circle d-block"
style=" style="
background-image: url('img/demo/avatars/avatar-b.png'); background-image: url('img/demo/avatars/avatar-b.png');
background-size: cover; background-size: cover;
" "></span>
></span>
</div> </div>
<div class="d-table-cell w-100 align-middle pl-2 pr-2"> <div class="d-table-cell w-100 align-middle pl-2 pr-2">
<div class="text-truncate text-truncate-md"> <div class="text-truncate text-truncate-md">
Oliver Kopyuv Oliver Kopyuv
<small <small class="d-block font-italic text-success fs-xs">
class="d-block font-italic text-success fs-xs"
>
Online Online
</small> </small>
</div> </div>
@ -592,21 +492,15 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
</a> </a>
</li> </li>
<li> <li>
<a <a href="#"
href="#"
class="d-table w-100 px-2 py-2 text-dark hover-white" class="d-table w-100 px-2 py-2 text-dark hover-white"
data-filter-tags="dr john cook phd away" data-filter-tags="dr john cook phd away">
> <div class="d-table-cell align-middle status status-warning status-sm">
<div <span class="profile-image-md rounded-circle d-block"
class="d-table-cell align-middle status status-warning status-sm"
>
<span
class="profile-image-md rounded-circle d-block"
style=" style="
background-image: url('img/demo/avatars/avatar-e.png'); background-image: url('img/demo/avatars/avatar-e.png');
background-size: cover; background-size: cover;
" "></span>
></span>
</div> </div>
<div class="d-table-cell w-100 align-middle pl-2 pr-2"> <div class="d-table-cell w-100 align-middle pl-2 pr-2">
<div class="text-truncate text-truncate-md"> <div class="text-truncate text-truncate-md">
@ -619,28 +513,20 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
</a> </a>
</li> </li>
<li> <li>
<a <a href="#"
href="#"
class="d-table w-100 px-2 py-2 text-dark hover-white" class="d-table w-100 px-2 py-2 text-dark hover-white"
data-filter-tags="ali amdaney online" data-filter-tags="ali amdaney online">
> <div class="d-table-cell align-middle status status-success status-sm">
<div <span class="profile-image-md rounded-circle d-block"
class="d-table-cell align-middle status status-success status-sm"
>
<span
class="profile-image-md rounded-circle d-block"
style=" style="
background-image: url('img/demo/avatars/avatar-g.png'); background-image: url('img/demo/avatars/avatar-g.png');
background-size: cover; background-size: cover;
" "></span>
></span>
</div> </div>
<div class="d-table-cell w-100 align-middle pl-2 pr-2"> <div class="d-table-cell w-100 align-middle pl-2 pr-2">
<div class="text-truncate text-truncate-md"> <div class="text-truncate text-truncate-md">
Ali Amdaney Ali Amdaney
<small <small class="d-block font-italic fs-xs text-success">
class="d-block font-italic fs-xs text-success"
>
Online Online
</small> </small>
</div> </div>
@ -648,28 +534,20 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
</a> </a>
</li> </li>
<li> <li>
<a <a href="#"
href="#"
class="d-table w-100 px-2 py-2 text-dark hover-white" class="d-table w-100 px-2 py-2 text-dark hover-white"
data-filter-tags="sarah mcbrook online" data-filter-tags="sarah mcbrook online">
> <div class="d-table-cell align-middle status status-success status-sm">
<div <span class="profile-image-md rounded-circle d-block"
class="d-table-cell align-middle status status-success status-sm"
>
<span
class="profile-image-md rounded-circle d-block"
style=" style="
background-image: url('img/demo/avatars/avatar-h.png'); background-image: url('img/demo/avatars/avatar-h.png');
background-size: cover; background-size: cover;
" "></span>
></span>
</div> </div>
<div class="d-table-cell w-100 align-middle pl-2 pr-2"> <div class="d-table-cell w-100 align-middle pl-2 pr-2">
<div class="text-truncate text-truncate-md"> <div class="text-truncate text-truncate-md">
Sarah McBrook Sarah McBrook
<small <small class="d-block font-italic fs-xs text-success">
class="d-block font-italic fs-xs text-success"
>
Online Online
</small> </small>
</div> </div>
@ -677,19 +555,15 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
</a> </a>
</li> </li>
<li> <li>
<a <a href="#"
href="#"
class="d-table w-100 px-2 py-2 text-dark hover-white" class="d-table w-100 px-2 py-2 text-dark hover-white"
data-filter-tags="ali amdaney offline" data-filter-tags="ali amdaney offline">
>
<div class="d-table-cell align-middle status status-sm"> <div class="d-table-cell align-middle status status-sm">
<span <span class="profile-image-md rounded-circle d-block"
class="profile-image-md rounded-circle d-block"
style=" style="
background-image: url('img/demo/avatars/avatar-a.png'); background-image: url('img/demo/avatars/avatar-a.png');
background-size: cover; background-size: cover;
" "></span>
></span>
</div> </div>
<div class="d-table-cell w-100 align-middle pl-2 pr-2"> <div class="d-table-cell w-100 align-middle pl-2 pr-2">
<div class="text-truncate text-truncate-md"> <div class="text-truncate text-truncate-md">
@ -702,28 +576,20 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
</a> </a>
</li> </li>
<li> <li>
<a <a href="#"
href="#"
class="d-table w-100 px-2 py-2 text-dark hover-white" class="d-table w-100 px-2 py-2 text-dark hover-white"
data-filter-tags="ali amdaney busy" data-filter-tags="ali amdaney busy">
> <div class="d-table-cell align-middle status status-danger status-sm">
<div <span class="profile-image-md rounded-circle d-block"
class="d-table-cell align-middle status status-danger status-sm"
>
<span
class="profile-image-md rounded-circle d-block"
style=" style="
background-image: url('img/demo/avatars/avatar-j.png'); background-image: url('img/demo/avatars/avatar-j.png');
background-size: cover; background-size: cover;
" "></span>
></span>
</div> </div>
<div class="d-table-cell w-100 align-middle pl-2 pr-2"> <div class="d-table-cell w-100 align-middle pl-2 pr-2">
<div class="text-truncate text-truncate-md"> <div class="text-truncate text-truncate-md">
oliver.kopyuv@gotbootstrap.com oliver.kopyuv@gotbootstrap.com
<small <small class="d-block font-italic fs-xs text-danger">
class="d-block font-italic fs-xs text-danger"
>
Busy Busy
</small> </small>
</div> </div>
@ -731,19 +597,15 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
</a> </a>
</li> </li>
<li> <li>
<a <a href="#"
href="#"
class="d-table w-100 px-2 py-2 text-dark hover-white" class="d-table w-100 px-2 py-2 text-dark hover-white"
data-filter-tags="ali amdaney offline" data-filter-tags="ali amdaney offline">
>
<div class="d-table-cell align-middle status status-sm"> <div class="d-table-cell align-middle status status-sm">
<span <span class="profile-image-md rounded-circle d-block"
class="profile-image-md rounded-circle d-block"
style=" style="
background-image: url('img/demo/avatars/avatar-c.png'); background-image: url('img/demo/avatars/avatar-c.png');
background-size: cover; background-size: cover;
" "></span>
></span>
</div> </div>
<div class="d-table-cell w-100 align-middle pl-2 pr-2"> <div class="d-table-cell w-100 align-middle pl-2 pr-2">
<div class="text-truncate text-truncate-md"> <div class="text-truncate text-truncate-md">
@ -756,19 +618,15 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
</a> </a>
</li> </li>
<li> <li>
<a <a href="#"
href="#"
class="d-table w-100 px-2 py-2 text-dark hover-white" class="d-table w-100 px-2 py-2 text-dark hover-white"
data-filter-tags="ali amdaney inactive" data-filter-tags="ali amdaney inactive">
>
<div class="d-table-cell align-middle"> <div class="d-table-cell align-middle">
<span <span class="profile-image-md rounded-circle d-block"
class="profile-image-md rounded-circle d-block"
style=" style="
background-image: url('img/demo/avatars/avatar-m.png'); background-image: url('img/demo/avatars/avatar-m.png');
background-size: cover; background-size: cover;
" "></span>
></span>
</div> </div>
<div class="d-table-cell w-100 align-middle pl-2 pr-2"> <div class="d-table-cell w-100 align-middle pl-2 pr-2">
<div class="text-truncate text-truncate-md"> <div class="text-truncate text-truncate-md">
@ -877,46 +735,34 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
<!-- END custom-scroll --> <!-- END custom-scroll -->
<!-- BEGIN msgr__chatinput --> <!-- BEGIN msgr__chatinput -->
<div class="d-flex flex-column"> <div class="d-flex flex-column">
<div <div class="border-faded border-right-0 border-bottom-0 border-left-0 flex-1 mr-3 ml-3 position-relative shadow-top">
class="border-faded border-right-0 border-bottom-0 border-left-0 flex-1 mr-3 ml-3 position-relative shadow-top"
>
<div class="pt-3 pb-1 pr-0 pl-0 rounded-0" tabindex="-1"> <div class="pt-3 pb-1 pr-0 pl-0 rounded-0" tabindex="-1">
<div <div id="msgr_input"
id="msgr_input"
contenteditable="true" contenteditable="true"
data-placeholder="Type your message here..." data-placeholder="Type your message here..."
class="height-10 form-content-editable" class="height-10 form-content-editable"></div>
></div>
</div> </div>
</div> </div>
<div <div class="height-8 px-3 d-flex flex-row align-items-center flex-wrap flex-shrink-0">
class="height-8 px-3 d-flex flex-row align-items-center flex-wrap flex-shrink-0" <a href="javascript:void(0);"
>
<a
href="javascript:void(0);"
class="btn btn-icon fs-xl width-1 mr-1" class="btn btn-icon fs-xl width-1 mr-1"
data-toggle="tooltip" data-toggle="tooltip"
data-original-title="More options" data-original-title="More options"
data-placement="top" data-placement="top">
>
<i class="fal fa-ellipsis-v-alt color-fusion-300"></i> <i class="fal fa-ellipsis-v-alt color-fusion-300"></i>
</a> </a>
<a <a href="javascript:void(0);"
href="javascript:void(0);"
class="btn btn-icon fs-xl mr-1" class="btn btn-icon fs-xl mr-1"
data-toggle="tooltip" data-toggle="tooltip"
data-original-title="Attach files" data-original-title="Attach files"
data-placement="top" data-placement="top">
>
<i class="fal fa-paperclip color-fusion-300"></i> <i class="fal fa-paperclip color-fusion-300"></i>
</a> </a>
<a <a href="javascript:void(0);"
href="javascript:void(0);"
class="btn btn-icon fs-xl mr-1" class="btn btn-icon fs-xl mr-1"
data-toggle="tooltip" data-toggle="tooltip"
data-original-title="Insert photo" data-original-title="Insert photo"
data-placement="top" data-placement="top">
>
<i class="fal fa-camera color-fusion-300"></i> <i class="fal fa-camera color-fusion-300"></i>
</a> </a>
<div class="ml-auto"> <div class="ml-auto">
@ -932,8 +778,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
</div> </div>
</div> </div>
<div <div id="noticeBlock"
id="noticeBlock"
style=" style="
position: fixed; position: fixed;
top: 70px; top: 70px;
@ -942,8 +787,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
transition: 0.2s; transition: 0.2s;
z-index: 50000; z-index: 50000;
height: 100%; height: 100%;
" "></div>
></div>
<!--<button id="testsysbtn" class="btn btn-info col-1">系統監控(測試用)</button>--> <!--<button id="testsysbtn" class="btn btn-info col-1">系統監控(測試用)</button>-->
<!-- END Messenger --> <!-- END Messenger -->
@ -1225,7 +1069,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
// 清空 loading 狀態 // 清空 loading 狀態
endPageLoading(); endPageLoading();
$(loadEle).Loading("close"); // $(loadEle).Loading("close");
$(".yt-alert").YTAlert().hide(); $(".yt-alert").YTAlert().hide();
// 取得使用者資訊 // 取得使用者資訊
getUserInfo(); getUserInfo();
@ -1858,7 +1702,6 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
} }
function crePosPopover(position, obj) { function crePosPopover(position, obj) {
console.log("obj", obj);
let _position = {}; let _position = {};
_position.tpLeft = position[0]; _position.tpLeft = position[0];
_position.tpTop = position[1]; _position.tpTop = position[1];

View File

@ -56,7 +56,6 @@ class subscriptionDevices {
var sub = new baja.Subscriber(); var sub = new baja.Subscriber();
sub.attach('changed', function (prop) { sub.attach('changed', function (prop) {
console.log("Light prop", prop.getName())
if (prop.getName() === 'out') { if (prop.getName() === 'out') {
var out_value = this.getOutDisplay(); var out_value = this.getOutDisplay();
var target_device_number = this.$parent.getDisplayName().split('_').slice(0, 5).join('_'); var target_device_number = this.$parent.getDisplayName().split('_').slice(0, 5).join('_');

View File

@ -1007,7 +1007,6 @@ class Forge3DSensor {
const viewableData = new DataVizCore.ViewableData(); const viewableData = new DataVizCore.ViewableData();
viewableData.spriteSize = 30; // Sprites as points of size 24 x 24 pixels viewableData.spriteSize = 30; // Sprites as points of size 24 x 24 pixels
this.deviceList.forEach((myData, index) => { this.deviceList.forEach((myData, index) => {
// console.log(myData)
const dbId = myData.forge_dbid; const dbId = myData.forge_dbid;
const myPosition = myData.position; const myPosition = myData.position;
const viewable = new DataVizCore.SpriteViewable( const viewable = new DataVizCore.SpriteViewable(
@ -1109,7 +1108,13 @@ class Forge3DSensor {
Forge3DSensor.highTempForSensor.push(dbid); Forge3DSensor.highTempForSensor.push(dbid);
break; break;
} }
if (
(Forge3DSensor.lowerTempForSensor.length,
Forge3DSensor.normalTempForSensor.length,
Forge3DSensor.highTempForSensor.length,
Forge3DSensor.highestTempForSensor.length,
allDevList.length)
) {
await this.changeColorForSensorHotspot( await this.changeColorForSensorHotspot(
Forge3DSensor.lowerTempForSensor, Forge3DSensor.lowerTempForSensor,
temps[0] temps[0]
@ -1127,6 +1132,7 @@ class Forge3DSensor {
temps[3] temps[3]
); );
} }
}
async changeColorForSensorHotspot(viewablesToUpdate, color) { async changeColorForSensorHotspot(viewablesToUpdate, color) {
const dataVizExtn = await viewer.loadExtension( const dataVizExtn = await viewer.loadExtension(
@ -1171,10 +1177,6 @@ class Forge3DSensor {
subData = { ...subData, [data.point_name]: data.value }; subData = { ...subData, [data.point_name]: data.value };
} }
//let norDevPoiName = matchDevice.device_normal_point_name;
//let cloDevPoiName = matchDevice.device_close_point_name || "";
//let errDevPoiName = matchDevice.device_error_point_name;
if (data.point_name == "Temp" || data.point_name == "TEMP") { if (data.point_name == "Temp" || data.point_name == "TEMP") {
this.tempVal = !isNaN(parseInt(data.value)) ? parseInt(data.value) : 0; this.tempVal = !isNaN(parseInt(data.value)) ? parseInt(data.value) : 0;
this.curDevice = { this.curDevice = {
@ -1189,6 +1191,43 @@ class Forge3DSensor {
); );
} }
} }
let matchDevice = allDevList.find(
(x) => x.device_number == data.device_number_full
);
let norDevPoiName = matchDevice.device_normal_point_name;
let cloDevPoiName = matchDevice.device_close_point_name;
let errDevPoiName = matchDevice.device_error_point_name;
if (
data.point_name == norDevPoiName &&
data.value == matchDevice.device_normal_point_value
) {
//顯示正常燈號
$(`#${matchDevice.device_number}_status`)
.attr("data-light-type", "normal")
.data("light-type", "normal");
} else if (
data.point_name == cloDevPoiName &&
data.value == matchDevice.device_close_point_value
) {
$(`#${matchDevice.device_number}_status`)
.attr("data-light-type", "close")
.data("light-type", "close");
} else if (
data.point_name == errDevPoiName &&
data.value == matchDevice.device_error_point_value
) {
$(`#${matchDevice.device_number}_status`)
.attr("data-light-type", "error")
.data("light-type", "error");
}
setLightColor();
setDevItemPoiValBySub(data);
$(loadEle).Loading("close");
}); });
myBaja.setSubscribeDeviceEndCallBack((data) => { myBaja.setSubscribeDeviceEndCallBack((data) => {