歷史資料
- +
@@ -33,7 +33,7 @@
-
+
@@ -52,7 +52,7 @@
@@ -72,7 +72,7 @@
var historyTable = null;
$(function () {
initList();
-
+
// default list filter
initApp.listFilter($('#js_default_list'), $('#js_default_list_filter'));
// custom response message
@@ -90,21 +90,21 @@
onEvent('change', '#his_startdate', function () {
let today = displayDate(new Date(Date.now()), 'date').replaceAll('/', '-');
- let ytd = displayDate(new Date(new Date().setDate(new Date(Date.now()).getDate() - 1)), 'date').replaceAll('/', '-');
+ let ytd = displayDate(new Date(new Date().setDate(new Date(Date.now()).getDate() - 1)), 'date').replaceAll('/', '-');
if (pageAct.dateType == 'range') {
if ($('#his_startdate').val() > $('#his_enddate input').val() && ($('#his_startdate').val() != "" && $('#his_enddate input').val() != "")) {
- $('#his_startdate').val($('#his_startdate').data('val'));
- toast_error('不可選擇大於結束時間');
- }
- else {
- $('#his_startdate').data('val', $('#his_startdate').val());
+ $('#his_startdate').val($('#his_startdate').data('val'));
+ toast_error('不可選擇大於結束時間');
+ }
+ else {
+ $('#his_startdate').data('val', $('#his_startdate').val());
$('#his_enddate input').data('val', $('#his_enddate input').val());
- $(`[onclick="setDateType('today', this)"]`).addClass('btn-secondary');
- $(`[onclick="setDateType('today', this)"]`).removeClass('btn-info');
- $(`[onclick="setDateType('ytd', this)"]`).addClass('btn-secondary');
- $(`[onclick="setDateType('ytd', this)"]`).removeClass('btn-info');
+ $(`[onclick="setDateType('today', this)"]`).addClass('btn-secondary');
+ $(`[onclick="setDateType('today', this)"]`).removeClass('btn-info');
+ $(`[onclick="setDateType('ytd', this)"]`).addClass('btn-secondary');
+ $(`[onclick="setDateType('ytd', this)"]`).removeClass('btn-info');
if ($('#his_startdate').val() == $('#his_enddate input').val()) {
if ($('#his_startdate').val() == today) {
@@ -112,55 +112,55 @@
$(`[onclick="setDateType('today', this)"]`).addClass('btn-info');
}
else if ($('#his_startdate').val() == ytd) {
- $(`[onclick="setDateType('ytd', this)"]`).removeClass('btn-secondary');
- $(`[onclick="setDateType('ytd', this)"]`).addClass('btn-info');
- }
- }
- }
- }
+ $(`[onclick="setDateType('ytd', this)"]`).removeClass('btn-secondary');
+ $(`[onclick="setDateType('ytd', this)"]`).addClass('btn-info');
+ }
+ }
+ }
+ }
else if ($(this).val() == today) {
$(`[onclick="setDateType('today', this)"]`).removeClass('btn-secondary');
$(`[onclick="setDateType('today', this)"]`).addClass('btn-info');
- $(`[onclick="setDateType('ytd', this)"]`).addClass('btn-secondary');
- $(`[onclick="setDateType('ytd', this)"]`).removeClass('btn-info');
+ $(`[onclick="setDateType('ytd', this)"]`).addClass('btn-secondary');
+ $(`[onclick="setDateType('ytd', this)"]`).removeClass('btn-info');
}
else if ($(this).val() == ytd) {
- $(`[onclick="setDateType('today', this)"]`).addClass('btn-secondary');
- $(`[onclick="setDateType('today', this)"]`).removeClass('btn-info');
+ $(`[onclick="setDateType('today', this)"]`).addClass('btn-secondary');
+ $(`[onclick="setDateType('today', this)"]`).removeClass('btn-info');
$(`[onclick="setDateType('ytd', this)"]`).removeClass('btn-secondary');
$(`[onclick="setDateType('ytd', this)"]`).addClass('btn-info');
}
});
- onEvent('change', '#his_enddate input', function () {
- let today = displayDate(new Date(Date.now()), 'date').replaceAll('/', '-');
- let ytd = displayDate(new Date(new Date().setDate(new Date(Date.now()).getDate() - 1)), 'date').replaceAll('/', '-');
-
+ onEvent('change', '#his_enddate input', function () {
+ let today = displayDate(new Date(Date.now()), 'date').replaceAll('/', '-');
+ let ytd = displayDate(new Date(new Date().setDate(new Date(Date.now()).getDate() - 1)), 'date').replaceAll('/', '-');
+
if ($('#his_startdate').val() > $('#his_enddate input').val() && ($('#his_startdate').val() != "" && $('#his_enddate input').val() != "")) {
- $('#his_enddate input').val($('#his_enddate input').data('val'));
- toast_error('不可選擇大於結束時間');
- }
- else {
- $('#his_startdate').data('val', $('#his_startdate').val());
- $('#his_enddate input').data('val', $('#his_enddate input').val());
+ $('#his_enddate input').val($('#his_enddate input').data('val'));
+ toast_error('不可選擇大於結束時間');
+ }
+ else {
+ $('#his_startdate').data('val', $('#his_startdate').val());
+ $('#his_enddate input').data('val', $('#his_enddate input').val());
- $(`[onclick="setDateType('today', this)"]`).addClass('btn-secondary');
- $(`[onclick="setDateType('today', this)"]`).removeClass('btn-info');
- $(`[onclick="setDateType('ytd', this)"]`).addClass('btn-secondary');
- $(`[onclick="setDateType('ytd', this)"]`).removeClass('btn-info');
+ $(`[onclick="setDateType('today', this)"]`).addClass('btn-secondary');
+ $(`[onclick="setDateType('today', this)"]`).removeClass('btn-info');
+ $(`[onclick="setDateType('ytd', this)"]`).addClass('btn-secondary');
+ $(`[onclick="setDateType('ytd', this)"]`).removeClass('btn-info');
- if ($('#his_startdate').val() == $('#his_enddate input').val()) {
- if ($('#his_startdate').val() == today) {
- $(`[onclick="setDateType('today', this)"]`).removeClass('btn-secondary');
- $(`[onclick="setDateType('today', this)"]`).addClass('btn-info');
- }
- else if ($('#his_startdate').val() == ytd) {
- $(`[onclick="setDateType('ytd', this)"]`).removeClass('btn-secondary');
- $(`[onclick="setDateType('ytd', this)"]`).addClass('btn-info');
- }
- }
- }
- });
+ if ($('#his_startdate').val() == $('#his_enddate input').val()) {
+ if ($('#his_startdate').val() == today) {
+ $(`[onclick="setDateType('today', this)"]`).removeClass('btn-secondary');
+ $(`[onclick="setDateType('today', this)"]`).addClass('btn-info');
+ }
+ else if ($('#his_startdate').val() == ytd) {
+ $(`[onclick="setDateType('ytd', this)"]`).removeClass('btn-secondary');
+ $(`[onclick="setDateType('ytd', this)"]`).addClass('btn-info');
+ }
+ }
+ }
+ });
});
function initList() {
@@ -176,19 +176,19 @@
$.each(res.data.history_Main_Systems, function (index, val) {
if (pageAct.mainStatus) {
strHtml += `
-
+
${val.full_name}
`;
});
if (pageAct.mainStatus) {
- strHtml += ` `;
- }
+ strHtml += ` `;
+ }
});
$('#js_nested_list').html(strHtml);
@@ -237,54 +237,54 @@
function devPointsList() {
let sendData = {
- device_number: pageAct.deviceNumber
- }
- objSendData.Data = sendData;
- let url = baseApiUrl + "/api/History/GetDevPoi";
+ device_number: pageAct.deviceNumber
+ }
+ objSendData.Data = sendData;
+ let url = baseApiUrl + "/api/History/GetDevPoi";
function success(res) {
let strHtml = ``;
-
+
$.each(res.data, function (index, val) {
if (index == 0) {
- strHtml += ``;
+ strHtml += ``;
pageAct.deviceItem = val.points;
pageAct.devicePoiName = val.full_name + ' ' + val.points;
pageAct.deviceComName = val.parent_path;
getData();
} else {
- strHtml += ``;
- }
+ strHtml += ``;
+ }
});
$('#devPointsList').html(strHtml);
- }
- ytAjax = new YourTeam.Ajax(url, objSendData, success, null, "POST").send();
- }
+ }
+ ytAjax = new YourTeam.Ajax(url, objSendData, success, null, "POST").send();
+ }
function getData(start = null, end = null) {
var sdt = new Date();
- var edt = new Date(new Date().setDate(sdt.getDate() + 1));
+ var edt = new Date(new Date().setDate(sdt.getDate() + 1));
start = start ?? sdt.toLocaleDateString();
end = end ?? edt.toLocaleDateString();
$(loadEle).Loading("start");
callBackFromHistory()
getHistoryDataByBaja(pageAct.deviceNumber + "_" + pageAct.deviceItem,
- new Date(start).getTime(),
- new Date(end).getTime(),
- pageAct.deviceName,
- pageAct.deviceComName,
- callBackFromHistory);
+ new Date(start).getTime(),
+ new Date(end).getTime(),
+ pageAct.deviceName,
+ pageAct.deviceComName,
+ callBackFromHistory);
}
- function callBackFromHistory(res = '{"count":0,"data":[]}') {
+ function callBackFromHistory(res='{"count":0,"data":[]}') {
// console.log("@H1",res)
res = JSON.parse(res);
// console.log("@history",res.data)
loadTable(res.data);
if (historyTable != null) {
let t = $('#historyTable').dataTable();
-
- t.fnClearTable();
+
+ t.fnClearTable();
if (res.data.length > 0)
t.fnAddData(res.data);
}
@@ -303,7 +303,7 @@
pageAct.devicePoiName = $(elem).text();
pageAct.deviceItem = deviceItem;
getData();
- }
+ }
}
function setDateType(type, elem) {
@@ -320,31 +320,31 @@
$('#his_enddate').css('display', 'none');
$('#getmonth').css('display', 'none');
$('#his_startdate').val(date);
-
+
if (type == "today")
getData(formatDate(now, "date", true), formatDate(tmr, "date", true));
else if (type == "ytd")
getData(formatDate(ytd, "date", true), formatDate(now, "date", true));
else {
- $(`[onclick="setDateType('today', this)"]`).removeClass('btn-secondary');
- $(`[onclick="setDateType('today', this)"]`).addClass('btn-info');
- }
+ $(`[onclick="setDateType('today', this)"]`).removeClass('btn-secondary');
+ $(`[onclick="setDateType('today', this)"]`).addClass('btn-info');
+ }
}
else if (type == "range") {
- $(`[onclick="setDateType('today', this)"], [onclick="setDateType('ytd', this)"]`).removeClass('btn-info');
- $(`[onclick="setDateType('today', this)"], [onclick="setDateType('ytd', this)"]`).addClass('btn-secondary');
+ $(`[onclick="setDateType('today', this)"], [onclick="setDateType('ytd', this)"]`).removeClass('btn-info');
+ $(`[onclick="setDateType('today', this)"], [onclick="setDateType('ytd', this)"]`).addClass('btn-secondary');
$('#his_startdate').css('display', 'block');
$('#his_enddate').css('display', 'block');
$('#getmonth').css('display', 'none');
$('#his_startdate').val(now);
- $('#his_startdate').data('val', now);
+ $('#his_startdate').data('val', now);
$('#his_enddate input').val(tmr);
$('#his_enddate input').data('val', tmr);
}
else if (type == "month") {
- $(`[onclick="setDateType('today', this)"], [onclick="setDateType('ytd', this)"]`).removeClass('btn-info');
- $(`[onclick="setDateType('today', this)"], [onclick="setDateType('ytd', this)"]`).addClass('btn-secondary');
+ $(`[onclick="setDateType('today', this)"], [onclick="setDateType('ytd', this)"]`).removeClass('btn-info');
+ $(`[onclick="setDateType('today', this)"], [onclick="setDateType('ytd', this)"]`).addClass('btn-secondary');
$('#his_startdate').css('display', 'none');
$('#his_enddate').css('display', 'none');
@@ -352,8 +352,8 @@
$('#getmonth').val(now.substr(0, 7));
}
else if (type == "ytd") {
- $('#his_startdate').css('display', 'block');
- $('#his_enddate').css('display', 'none');
+ $('#his_startdate').css('display', 'block');
+ $('#his_enddate').css('display', 'none');
$('#getmonth').css('display', 'none');
$('#his_startdate').val(ytd);
}
@@ -361,11 +361,11 @@
function searchDate() {
let start = new Date($('#his_startdate').val());
- let end = new Date(new Date().setDate(new Date($('#his_enddate input').val()).getDate() + 1));
-
+ let end = new Date(new Date().setDate(new Date($('#his_enddate input').val()).getDate() + 1));
+
if (pageAct.dateType == "day")
end = new Date(new Date().setDate(start.getDate() + 1));
- else if (pageAct.dateType == "month") {
+ else if (pageAct.dateType == "month") {
start = new Date($('#getmonth').val());
end = new Date(new Date().setDate(start.getDate() + 30));
}
@@ -382,72 +382,72 @@
date = displayDate(date, type);
let month = date.split('/')[1];
let year = date.split('/')[0];
- let day = date.split('/')[2];
+ let day= date.split('/')[2];
return month + "/" + day + "/" + year;
- }
+ }
}
function loadTable(data) {
if (data) {
$.each(data, function (i, v) {
// console.log("loadTable",pageAct.devicePoiName.split(" ")[0])
- v.type = pageAct.devicePoiName.split(" ")[0];
+ v.type = pageAct.devicePoiName.split(" ")[0];
});
}
- let tag = "#historyTable";
-
- let column_defs = [
- { "targets": [0], "width": "20%", "sortable": true },
- { "targets": [1], "width": "20%", "sortable": true },
+ let tag = "#historyTable";
+
+ let column_defs = [
+ { "targets": [0], "width": "20%", "sortable": true },
+ { "targets": [1], "width": "20%", "sortable": true },
{ "targets": [2], "width": "20%", "sortable": true }
- ];
+ ];
let columns = [
{
"title": "類別",
"data": "type"
},
- {
- "title": "設備名稱",
- "data": "deviceName",
- },
- {
- "title": "數值",
+ {
+ "title": "設備名稱",
+ "data": "deviceName",
+ },
+ {
+ "title": "數值",
"data": "value",
"render": function (data) {
- if (isNaN(data)) {
+ if(isNaN(data)){
return data
}
return data.roundDecimal(2);
}
- },
- {
- "title": "紀錄時間",
+ },
+ {
+ "title": "紀錄時間",
"data": "timestamp",
"render": function (data) {
// console.log(data)
- return displayDate(data, "datetime");
- }
+ return displayDate(data, "datetime");
+ }
}
];
- historyTable = new YourTeam.JqDataTables.getTableByStatic(tag, data, columns, column_defs, null, null, null, null, "tpi");
+ historyTable = new YourTeam.JqDataTables.getTableByStatic(tag, data, columns, column_defs, null, null, null, null, "tpi");
}
function exportExcel() {
let url = baseApiUrl + "/History/OpeExportExcel";
objSendData.Data = $('#historyTable').dataTable().fnGetData();
-
+
$.each(objSendData.Data, function (i, v) {
- v.starttime = (pageAct.dateType == "month" ? new Date($('#getmonth').val()) : new Date($('#his_startdate').val()));
+ v.starttime = (pageAct.dateType == "month" ? new Date($('#getmonth').val()) : new Date($('#his_startdate').val()));
v.endtime = $('#his_enddate input').val() === "" ? null : new Date($('#his_enddate input').val());
v.dateType = pageAct.dateType;
});
ytAjax = new YourTeam.Ajax(url, objSendData, function (rel) {
if (rel.code == "0000")
- location.href = baseApiUrl + "/api/df?path=" + rel.data.split('/')[0] + "&fileName=" + rel.data.split('/')[1] + "&token=" + cookies.get("JWT-Authorization");
+ location.href = baseApiUrl + "/api/df?path=" + rel.data.split('/')[0] + "&fileName=" + rel.data.split('/')[1] + "&token=" + cookies.get("JWT-Authorization");
}, null, "POST").send();
}
\ No newline at end of file
diff --git a/Frontend/_operation.html b/Frontend/_operation.html
index a267a96..32e9f52 100644
--- a/Frontend/_operation.html
+++ b/Frontend/_operation.html
@@ -633,7 +633,7 @@
{
"title": "異常代號",
"data": "error_code",
- render: (data) => {
+ render:(data)=>{
return data?.split('-')[0] || '';
}
},
@@ -751,7 +751,7 @@
{
"title": "異常代號",
"data": "error_code",
- render: (data) => {
+ render:(data)=>{
return data?.split('-')[0] || '';
}
},
diff --git a/Frontend/_sysElevator.html b/Frontend/_sysElevator.html
index fd230d9..1917699 100644
--- a/Frontend/_sysElevator.html
+++ b/Frontend/_sysElevator.html
@@ -1,61 +1,25 @@
-
+
- `;
i1 = (val.history_Sub_systems != null && i1 == null) ? index : null;
- }
+ }
$.each(val.history_Sub_systems, function (index2, val2) {
i2 = (val2.device != null && i2 == null) ? index2 : null;
-
+
strHtml += `
-
-
+
${val2.full_name}
@@ -197,7 +197,7 @@
$.each(val2.device, function (index3, val3) {
strHtml += `
- - + ${val3.full_name} @@ -213,20 +213,20 @@ } } else { - if (index2 == i2 && first) { - first = false; - pageAct.deviceNumber = val3.device_number; - pageAct.deviceName = val3.full_name; - devPointsList(); - } - } + if (index2 == i2 && first) { + first = false; + pageAct.deviceNumber = val3.device_number; + pageAct.deviceName = val3.full_name; + devPointsList(); + } + } }); strHtml += `
@@ -935,7 +899,7 @@
setBuildFloor();
setCards();
-
+
setEleManTable();
show3D();
})
@@ -1013,8 +977,8 @@
}
}
//現在樓層
- if (data.point_name == "CP") {
- //console.log("電梯樓層", matchDevice.device_number, data.value)
+ if (data.point_name == "CP") {
+ console.log("電梯樓層", matchDevice.device_number, data.value)
$(`#${matchDevice.device_number}_card [name=curFloor]`).text(data.value);
}
@@ -2411,7 +2375,7 @@
// ↑ 樓層平面圖 ↑
//=====================================================================
- // 設置 模型隱藏或透明
+ // 設置 模型隱藏或透明
function setInviForge(type, devDbIds) {
// console.log("devDbIds", devDbIds)
if (type == "Hide") {
@@ -2439,8 +2403,8 @@
//載入3D模型
function load3DModel() {
launchViewer(pageAct.urn, (viewer) => {
-
-
+
+
let elevOption = {
selector: "#forgeViewer",
viewer: viewer,
@@ -2464,8 +2428,8 @@
subDeviceSetStatus(data);
}
forge3DElev.init();
-
-
+
+
});
}
diff --git a/Frontend/_sysMonAll.html b/Frontend/_sysMonAll.html
index df6a2dc..631021a 100644
--- a/Frontend/_sysMonAll.html
+++ b/Frontend/_sysMonAll.html
@@ -2,288 +2,296 @@
-
+
-
-
+
+
-
+
-
-
\ No newline at end of file
diff --git a/Frontend/_sysMonFloor.html b/Frontend/_sysMonFloor.html
index 299b12b..f378e12 100644
--- a/Frontend/_sysMonFloor.html
+++ b/Frontend/_sysMonFloor.html
@@ -1,11 +1,11 @@
-
-
- - 燈控排程 -
- -
-
-
+
+
+
+
+
+
+
+ + 燈控排程 +
+ +
+
+
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Frontend/css/site.css b/Frontend/css/site.css
index 65ee5ca..bc8a92e 100644
--- a/Frontend/css/site.css
+++ b/Frontend/css/site.css
@@ -1,100 +1,320 @@
-:root { --yt-main-gray: #c2c7d0; --yt-main-black: #212529; --yt-main-gray-hover: #c2c7d0; --yt-gray: #505050; --yt-gray-hover: #3c3c3c; --yt-gray-2: #8f8c8c; --yt-gray-2-hover: #646060; --yt-gray-3: #ededed; --yt-gray-4: #dddddd; --yt-pink: #ff95d0; --yt-pink-hover: #ef84c0; --yt-red-2: #d34949; --yt-yellow-1: #ffc902; }
+:root {
+ --yt-main-gray: #c2c7d0;
+ --yt-main-black: #212529;
+ --yt-main-gray-hover: #c2c7d0;
+ --yt-gray: #505050;
+ --yt-gray-hover: #3c3c3c;
+ --yt-gray-2: #8f8c8c;
+ --yt-gray-2-hover: #646060;
+ --yt-gray-3: #ededed;
+ --yt-gray-4: #dddddd;
+ --yt-pink: #ff95d0;
+ --yt-pink-hover: #ef84c0;
+ --yt-red-2: #d34949;
+ --yt-yellow-1: #ffc902;
+}
-.mod-skin-dark:not(.mod-skin-light) .panel-hdr, .mod-skin-dark:not(.mod-skin-light) .card-header { background: rgba(0, 0, 0, 0.03); }
+.mod-skin-dark:not(.mod-skin-light) .panel-hdr, .mod-skin-dark:not(.mod-skin-light) .card-header {
+ background: rgba(0, 0, 0, 0.03);
+}
-.btn-sm-2 { padding: 2px 19px; }
+.btn-sm-2 {
+ padding: 2px 19px;
+}
-.table td { word-break: break-all; }
+.table td {
+ word-break: break-all;
+}
-label[id$='-error'].error { color: var(--yt-red-2); }
+label[id$='-error'].error {
+ color: var(--yt-red-2);
+}
/*[id^=yt_tooltip] { min-width: 650px !important; }*/
-.circle-light { display: inline-block; width: 25px; height: 25px; border-radius: 50px; }
+.circle-light {
+ display: inline-block;
+ width: 25px;
+ height: 25px;
+ border-radius: 50px;
+}
-.light-flash { --flash-color-1: #ffa100; --flash-color-2: #26272b; animation: flashing-bg 0.5s linear infinite; }
+.light-flash {
+ --flash-color-1: #ffa100;
+ --flash-color-2: #26272b;
+ animation: flashing-bg 0.5s linear infinite;
+}
-.light-flash-c { --flash-color-1: #ffa100; --flash-color-2: #26272b; animation: flashing-c 0.5s linear infinite; }
+.light-flash-c {
+ --flash-color-1: #ffa100;
+ --flash-color-2: #26272b;
+ animation: flashing-c 0.5s linear infinite;
+}
-.light-flash-c-bd { --flash-color-1: #ffa100; --flash-color-2: #26272b; animation: flashing-c-bd 0.5s linear infinite; }
+.light-flash-c-bd {
+ --flash-color-1: #ffa100;
+ --flash-color-2: #26272b;
+ animation: flashing-c-bd 0.5s linear infinite;
+}
/* checkbox switch */
-input.toggle:checked::before { content: ''; position: absolute; top: 2px; left: 24px; display: block; border-radius: 25px; width: 20px; height: 20px; background: #3f8635; }
+input.toggle:checked::before {
+ content: '';
+ position: absolute;
+ top: 2px;
+ left: 24px;
+ display: block;
+ border-radius: 25px;
+ width: 20px;
+ height: 20px;
+ background: #3f8635;
+}
-input.toggle::before { content: ''; position: absolute; top: 2px; left: 3px; display: block; border-radius: 25px; width: 20px; height: 20px; background: #656565; transition: 0.2s; }
+input.toggle::before {
+ content: '';
+ position: absolute;
+ top: 2px;
+ left: 3px;
+ display: block;
+ border-radius: 25px;
+ width: 20px;
+ height: 20px;
+ background: #656565;
+ transition: 0.2s;
+}
-input.toggle { cursor: pointer; appearance: none; position: relative; width: 48px; height: 24px; background: #464646; border-radius: 50px; align-content: center; }
+input.toggle {
+ cursor: pointer;
+ appearance: none;
+ position: relative;
+ width: 48px;
+ height: 24px;
+ background: #464646;
+ border-radius: 50px;
+ align-content: center;
+}
-input.toggle:checked { background: #97c193; }
+ input.toggle:checked {
+ background: #97c193;
+ }
-.loading-bg { background: #0000009c; background-repeat: no-repeat; opacity: 0; width: 100%; height: 100vh; position: fixed; z-index: 3000; }
+.loading-bg {
+ background: #0000009c;
+ background-repeat: no-repeat;
+ opacity: 0;
+ width: 100%;
+ height: 100vh;
+ position: fixed;
+ z-index: 3000;
+}
-.dropdown-menu { z-index: 3000; }
+.dropdown-menu {
+ z-index: 3000;
+}
-.adsk-viewing-viewer { top: 0px; }
+.adsk-viewing-viewer {
+ top: 0px;
+}
-.lds-ring { display: inline-block; position: relative; width: 25px; height: 25px; margin-right: 0.8rem; }
+.lds-ring {
+ display: inline-block;
+ position: relative;
+ width: 25px;
+ height: 25px;
+ margin-right: 0.8rem;
+}
-.lds-ring div { top: -4px; box-sizing: border-box; display: block; position: absolute; width: 25px; height: 25px; margin: 6px; border: 6px solid #fff; border-radius: 50%; animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; border-color: #fff transparent transparent transparent; }
+ .lds-ring div {
+ top: -4px;
+ box-sizing: border-box;
+ display: block;
+ position: absolute;
+ width: 25px;
+ height: 25px;
+ margin: 6px;
+ border: 6px solid #fff;
+ border-radius: 50%;
+ animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
+ border-color: #fff transparent transparent transparent;
+ }
-.lds-ring div:nth-child(1) { animation-delay: -0.45s; }
+ .lds-ring div:nth-child(1) {
+ animation-delay: -0.45s;
+ }
-.lds-ring div:nth-child(2) { animation-delay: -0.3s; }
+ .lds-ring div:nth-child(2) {
+ animation-delay: -0.3s;
+ }
-.lds-ring div:nth-child(3) { animation-delay: -0.15s; }
+ .lds-ring div:nth-child(3) {
+ animation-delay: -0.15s;
+ }
/* js-tree */
-.jstree-node { padding-bottom: 3px; }
-.jstree-default-dark { background-color: transparent; }
-.jstree a.jstree-anchor { color: #d6d6d6 !important; }
+.jstree-node {
+ padding-bottom: 3px;
+}
-.dropzone .dz-preview.dz-file-preview .dz-image { background: linear-gradient(to bottom, #675d72, #4d4a56) !important; }
+.jstree-default-dark {
+ background-color: transparent;
+}
-.dz-remove { position: absolute; top: -8px; right: -8px; z-index: 100; }
+.jstree a.jstree-anchor {
+ color: #d6d6d6 !important;
+}
-.dz-remove span { width: 30px; height: 30px; font-size: 24px; border-radius: 10px; color: white; cursor: pointer !important; padding-top: 3px; transition: 0.2s; }
+.dropzone .dz-preview.dz-file-preview .dz-image {
+ background: linear-gradient(to bottom, #675d72, #4d4a56) !important;
+}
-.dz-remove span.mi-delete { background: var(--danger); }
+.dz-remove {
+ position: absolute;
+ top: -8px;
+ right: -8px;
+ z-index: 100;
+}
-.dz-remove span.mi-cancel { font-size: 30px; color: var(--color_grey); }
+ .dz-remove span {
+ width: 30px;
+ height: 30px;
+ font-size: 24px;
+ border-radius: 10px;
+ color: white;
+ cursor: pointer !important;
+ padding-top: 3px;
+ transition: 0.2s;
+ }
-.dz-remove:hover span { transform: scale(1.1); transition: 0.2s; }
-.dropzone .dz-preview.dz-image-preview { background-color: transparent !important; }
+ .dz-remove span.mi-delete {
+ background: var(--danger);
+ }
-input:-webkit-autofill { background-color: rgba(0, 0, 0, 0.15) !important; }
+ .dz-remove span.mi-cancel {
+ font-size: 30px;
+ color: var(--color_grey);
+ }
-.d-grid { display: grid; }
+ .dz-remove:hover span {
+ transform: scale(1.1);
+ transition: 0.2s;
+ }
-.grid-gap-1 { grid-gap: 1px; }
-.grid-gap-2 { grid-gap: 2px; }
-.grid-gap-3 { grid-gap: 3px; }
-.grid-gap-4 { grid-gap: 4px; }
-.grid-gap-5 { grid-gap: 5px; }
-.grid-gap-c { grid-gap: var(--c-grid-gap); }
+.dropzone .dz-preview.dz-image-preview {
+ background-color: transparent !important;
+}
-.grid-temp-col-c { grid-template-columns: var(--c-grid-temp-col); }
+input:-webkit-autofill {
+ background-color: rgba(0, 0, 0, 0.15) !important;
+}
-.vakata-context, .vakata-context ul { background-color: #3f3f3f; box-shadow: 2px 2px 2px #111111; }
-.vakata-context li > a { color: white; text-shadow: 1px 1px 0 #4b4b4b; }
-.vakata-context .vakata-context-hover > a { background-color: #666666; box-shadow: 0 0 2px #2f2f2f; }
-.vakata-context li > a:hover { background-color: #636363; box-shadow: 0 0 2px #2f2f2f; }
+.d-grid {
+ display: grid;
+}
-.yt-left-navbar { position: fixed; left: 0; top: 0; height: 100%; z-index: 10; background-color: rgb(25 25 25 / 95%); width: auto; max-width: 300px; margin-top: 4.125rem; }
-.yt-navbar-content ul { padding: 1rem 0rem; list-style-type: none; }
-.yt-navbar-content ul li { position: relative; display: flex; flex-wrap: wrap; }
-.yt-navbar-content ul li a { font-size: 0.9rem; padding: 0.75rem 2rem; position: relative; width: 100%; }
-.yt-navbar-content ul li a:hover { background-color: var(--theme-fusion-600); }
-.yt-navbar-content ul li a:active, .yt-navbar-content ul li a.active { background-color: var(--theme-light); }
+.grid-gap-1 {
+ grid-gap: 1px;
+}
-.card-header.p-3.ui-draggable-handle:hover { cursor: move; }
+.grid-gap-2 {
+ grid-gap: 2px;
+}
-.device-wrap .card-body #info, .device-wrap .card-body #errRec, .device-wrap .card-body #opeRec { min-width: 500px; }
-.scrolledTable { overflow-y: auto; clear: both; max-height:100%;}
+.grid-gap-3 {
+ grid-gap: 3px;
+}
+
+.grid-gap-4 {
+ grid-gap: 4px;
+}
+
+.grid-gap-5 {
+ grid-gap: 5px;
+}
+
+.grid-gap-c {
+ grid-gap: var(--c-grid-gap);
+}
+
+.grid-temp-col-c {
+ grid-template-columns: var(--c-grid-temp-col);
+}
+
+.vakata-context, .vakata-context ul {
+ background-color: #3f3f3f;
+ box-shadow: 2px 2px 2px #111111;
+}
+
+ .vakata-context li > a {
+ color: white;
+ text-shadow: 1px 1px 0 #4b4b4b;
+ }
+
+ .vakata-context .vakata-context-hover > a {
+ background-color: #666666;
+ box-shadow: 0 0 2px #2f2f2f;
+ }
+
+ .vakata-context li > a:hover {
+ background-color: #636363;
+ box-shadow: 0 0 2px #2f2f2f;
+ }
+
+.yt-left-navbar {
+ position: fixed;
+ left: 0;
+ top: 0;
+ height: 100%;
+ z-index: 10;
+ background-color: rgb(25 25 25 / 95%);
+ width: auto;
+ max-width: 300px;
+ margin-top: 4.125rem;
+}
+
+.yt-navbar-content ul {
+ padding: 1rem 0rem;
+ list-style-type: none;
+}
+
+ .yt-navbar-content ul li {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ }
+
+ .yt-navbar-content ul li a {
+ font-size: 0.9rem;
+ padding: 0.75rem 2rem;
+ position: relative;
+ width: 100%;
+ }
+
+ .yt-navbar-content ul li a:hover {
+ background-color: var(--theme-fusion-600);
+ }
+
+ .yt-navbar-content ul li a:active, .yt-navbar-content ul li a.active {
+ background-color: var(--theme-light);
+ }
+
+.card-header.p-3.ui-draggable-handle:hover {
+ cursor: move;
+}
+
+.device-wrap .card-body #info, .device-wrap .card-body #errRec, .device-wrap .card-body #opeRec {
+ min-width: 500px;
+}
+
+.scrolledTable {
+ overflow-y: auto;
+ clear: both;
+ max-height: 100%;
+}
#toast-container > div {
- width:330px !important;
+ width: 330px !important;
}
/*a[data-tabname="topFunBtn"] { color: #fff }
@@ -106,216 +326,417 @@ a[data-tabname="topFunBtn"]:hover { color: var(--theme-primary-50); }
}
.userblock:hover { color: var(--theme-primary-50); }
.dropdown.show .userblock { color: var(--theme-primary-50) !important; }*/
-.page-header a, #sysMonBtnList a { color: #fff !important; }
-.page-header a:hover, #sysMonBtnList a:hover { color: var(--theme-primary-50) !important; }
-.page-header a.active, #sysMonBtnList a.active { color: var(--theme-primary-500) !important; }
-.dropdown.show a { color: var(--theme-primary-50) !important; }
-@media screen and (max-width: 576px) { .yt-left-navbar { width: 100%; max-width: 100%; margin-top: 0; }
+.page-header a, #sysMonBtnList a {
+ color: #fff !important;
+}
+
+ .page-header a:hover, #sysMonBtnList a:hover {
+ color: var(--theme-primary-50) !important;
+ }
+
+ .page-header a.active, #sysMonBtnList a.active {
+ color: var(--theme-primary-500) !important;
+ }
+
+.dropdown.show a {
+ color: var(--theme-primary-50) !important;
+}
+
+@media screen and (max-width: 576px) {
+ .yt-left-navbar {
+ width: 100%;
+ max-width: 100%;
+ margin-top: 0;
+ }
}
@keyframes lds-ring {
- 0% { transform: rotate(0deg); }
+ 0% {
+ transform: rotate(0deg);
+ }
- 100% { transform: rotate(360deg); }
+ 100% {
+ transform: rotate(360deg);
+ }
}
@keyframes flashing-c {
- 0% { color: var(--flash-color-1); }
+ 0% {
+ color: var(--flash-color-1);
+ }
- 49% { color: var(--flash-color-1); }
+ 49% {
+ color: var(--flash-color-1);
+ }
- 50% { color: var(--flash-color-2); }
+ 50% {
+ color: var(--flash-color-2);
+ }
- 99% { color: var(--flash-color-2); }
+ 99% {
+ color: var(--flash-color-2);
+ }
}
@keyframes flashing-bg {
- 0% { background: var(--flash-color-1); }
+ 0% {
+ background: var(--flash-color-1);
+ }
- 49% { background: var(--flash-color-1); }
+ 49% {
+ background: var(--flash-color-1);
+ }
- 50% { background: var(--flash-color-2); }
+ 50% {
+ background: var(--flash-color-2);
+ }
- 99% { background: var(--flash-color-2); }
+ 99% {
+ background: var(--flash-color-2);
+ }
}
@keyframes flashing-c-bd {
- 0% { border-color: var(--flash-color-1); }
+ 0% {
+ border-color: var(--flash-color-1);
+ }
- 49% { border-color: var(--flash-color-1); }
+ 49% {
+ border-color: var(--flash-color-1);
+ }
- 50% { border-color: var(--flash-color-2); }
+ 50% {
+ border-color: var(--flash-color-2);
+ }
- 99% { border-color: var(--flash-color-2); }
+ 99% {
+ border-color: var(--flash-color-2);
+ }
}
/* ================================================================ */
/* 單一方法 */
/* ================================================================ */
/* cursor */
-.cur-def { cursor: default !important; }
+.cur-def {
+ cursor: default !important;
+}
-.cur-poi { cursor: pointer !important; }
+.cur-poi {
+ cursor: pointer !important;
+}
/*left 距離*/
-.left-05 { left: 0.5rem !important; }
+.left-05 {
+ left: 0.5rem !important;
+}
-.left-04 { left: 0.4rem !important; }
+.left-04 {
+ left: 0.4rem !important;
+}
-.left-03 { left: 0.3rem !important; }
+.left-03 {
+ left: 0.3rem !important;
+}
-.left-02 { left: 0.2rem !important; }
+.left-02 {
+ left: 0.2rem !important;
+}
-.left-01 { left: 0.1rem !important; }
+.left-01 {
+ left: 0.1rem !important;
+}
/*right 距離*/
-.right-05 { right: 0.5rem !important; }
+.right-05 {
+ right: 0.5rem !important;
+}
-.right-04 { right: 0.4rem !important; }
+.right-04 {
+ right: 0.4rem !important;
+}
-.right-03 { right: 0.3rem !important; }
+.right-03 {
+ right: 0.3rem !important;
+}
-.right-02 { right: 0.2rem !important; }
+.right-02 {
+ right: 0.2rem !important;
+}
-.right-01 { right: 0.1rem !important; }
+.right-01 {
+ right: 0.1rem !important;
+}
/*bottom 0.5rem*/
-.bm-05 { bottom: 0.5rem !important; }
+.bm-05 {
+ bottom: 0.5rem !important;
+}
-.bm-04 { bottom: 0.4rem !important; }
+.bm-04 {
+ bottom: 0.4rem !important;
+}
-.bm-03 { bottom: 0.3rem !important; }
+.bm-03 {
+ bottom: 0.3rem !important;
+}
-.bm-02 { bottom: 0.2rem !important; }
+.bm-02 {
+ bottom: 0.2rem !important;
+}
-.bm-01 { bottom: 0.1rem !important; }
+.bm-01 {
+ bottom: 0.1rem !important;
+}
/*top 0.5rem*/
-.tp-05 { top: 0.5rem !important; }
+.tp-05 {
+ top: 0.5rem !important;
+}
-.tp-04 { top: 0.4rem !important; }
+.tp-04 {
+ top: 0.4rem !important;
+}
-.tp-03 { top: 0.3rem !important; }
+.tp-03 {
+ top: 0.3rem !important;
+}
-.tp-02 { top: 0.2rem !important; }
+.tp-02 {
+ top: 0.2rem !important;
+}
-.tp-01 { top: 0.1rem !important; }
+.tp-01 {
+ top: 0.1rem !important;
+}
/* font-weight */
-.fw-1 { font-weight: 100; }
+.fw-1 {
+ font-weight: 100;
+}
-.fw-2 { font-weight: 200; }
+.fw-2 {
+ font-weight: 200;
+}
-.fw-3 { font-weight: 300; }
+.fw-3 {
+ font-weight: 300;
+}
-.fw-4 { font-weight: 400; }
+.fw-4 {
+ font-weight: 400;
+}
-.fw-5 { font-weight: 500; }
+.fw-5 {
+ font-weight: 500;
+}
-.fw-6 { font-weight: 600; }
+.fw-6 {
+ font-weight: 600;
+}
-.fw-7 { font-weight: 700; }
+.fw-7 {
+ font-weight: 700;
+}
-.fw-8 { font-weight: 800; }
+.fw-8 {
+ font-weight: 800;
+}
-.fw-9 { font-weight: 900; }
+.fw-9 {
+ font-weight: 900;
+}
/* font-size */
-.fs-05 { font-size: 0.5rem; }
+.fs-05 {
+ font-size: 0.5rem;
+}
-.fs-075 { font-size: 0.75rem; }
+.fs-075 {
+ font-size: 0.75rem;
+}
-.fs-09 { font-size: 0.9rem; }
+.fs-09 {
+ font-size: 0.9rem;
+}
-.fs-1 { font-size: 1rem; }
+.fs-1 {
+ font-size: 1rem;
+}
-.fs-1-05 { font-size: 1.05rem; }
+.fs-1-05 {
+ font-size: 1.05rem;
+}
-.fs-1-1 { font-size: 1.1rem; }
+.fs-1-1 {
+ font-size: 1.1rem;
+}
-.fs-1-2 { font-size: 1.2rem; }
+.fs-1-2 {
+ font-size: 1.2rem;
+}
-.fs-1-3 { font-size: 1.3rem; }
+.fs-1-3 {
+ font-size: 1.3rem;
+}
-.fs-1-5 { font-size: 1.5rem; }
+.fs-1-5 {
+ font-size: 1.5rem;
+}
-.fs-2 { font-size: 2rem; }
+.fs-2 {
+ font-size: 2rem;
+}
-.fs-2-5 { font-size: 2.5rem; }
+.fs-2-5 {
+ font-size: 2.5rem;
+}
/* border width */
-.bd-0 { border-width: 0px; }
+.bd-0 {
+ border-width: 0px;
+}
-.bd-1 { border-width: 1px; }
+.bd-1 {
+ border-width: 1px;
+}
-.bd-2 { border-width: 2px; }
+.bd-2 {
+ border-width: 2px;
+}
/* border direction */
-.bd-l { border-left-style: solid; }
+.bd-l {
+ border-left-style: solid;
+}
-.bd-r { border-right-style: solid; }
+.bd-r {
+ border-right-style: solid;
+}
-.bd-t { border-top-style: solid; }
+.bd-t {
+ border-top-style: solid;
+}
-.bd-b { border-bottom-style: solid; }
+.bd-b {
+ border-bottom-style: solid;
+}
/* border radius */
-.br-1 { border-radius: 1px; }
+.br-1 {
+ border-radius: 1px;
+}
-.br-2 { border-radius: 2px; }
+.br-2 {
+ border-radius: 2px;
+}
-.br-3 { border-radius: 3px; }
+.br-3 {
+ border-radius: 3px;
+}
-.br-4 { border-radius: 4px; }
+.br-4 {
+ border-radius: 4px;
+}
-.br-5 { border-radius: 5px; }
+.br-5 {
+ border-radius: 5px;
+}
/* flex-gap */
-.gap-1 { gap: 1px; }
+.gap-1 {
+ gap: 1px;
+}
-.gap-2 { gap: 2px; }
+.gap-2 {
+ gap: 2px;
+}
-.gap-3 { gap: 3px; }
+.gap-3 {
+ gap: 3px;
+}
-.gap-4 { gap: 4px; }
+.gap-4 {
+ gap: 4px;
+}
-.gap-5 { gap: 5px; }
+.gap-5 {
+ gap: 5px;
+}
-.gap-6 { gap: 6px; }
+.gap-6 {
+ gap: 6px;
+}
-.gap-7 { gap: 7px; }
+.gap-7 {
+ gap: 7px;
+}
-.gap-8 { gap: 8px; }
+.gap-8 {
+ gap: 8px;
+}
/* vertical-align */
-.va-t { vertical-align: top; }
+.va-t {
+ vertical-align: top;
+}
-.va-m { vertical-align: middle; }
+.va-m {
+ vertical-align: middle;
+}
-.va-b { vertical-align: bottom; }
+.va-b {
+ vertical-align: bottom;
+}
-.bg-orange { background-color: #ffa100; }
+.bg-orange {
+ background-color: #ffa100;
+}
/* text color */
-.t-main-purple { color: #623c80 !important; }
+.t-main-purple {
+ color: #623c80 !important;
+}
-.t-black { color: #000 !important; }
+.t-black {
+ color: #000 !important;
+}
-.t-white { color: #fff !important; }
+.t-white {
+ color: #fff !important;
+}
-.t-fb-blue { color: #466ac2 !important; }
+.t-fb-blue {
+ color: #466ac2 !important;
+}
-.t-line-green { color: #54C814 !important; }
+.t-line-green {
+ color: #54C814 !important;
+}
-.t-red { color: #db0000 !important; }
+.t-red {
+ color: #db0000 !important;
+}
-.t-red-2 { color: var(--yt-red-2) !important; }
+.t-red-2 {
+ color: var(--yt-red-2) !important;
+}
-.t-gray { color: var(--yt-gray); }
+.t-gray {
+ color: var(--yt-gray);
+}
-.t-main-gray { color: var(--yt-main-gray); }
+.t-main-gray {
+ color: var(--yt-main-gray);
+}
-.t-gray-2 { color: var(--yt-gray-2) !important; }
+.t-gray-2 {
+ color: var(--yt-gray-2) !important;
+}
-.t-gray-3 { color: var(--yt-gray-3); }
+.t-gray-3 {
+ color: var(--yt-gray-3);
+}
-.t-yellow { color: var(--yt-yellow-1); }
+.t-yellow {
+ color: var(--yt-yellow-1);
+}
diff --git a/Frontend/img/forge/sensor_circle.svg b/Frontend/img/forge/sensor_circle.svg
index e7b0325..894e8a0 100644
--- a/Frontend/img/forge/sensor_circle.svg
+++ b/Frontend/img/forge/sensor_circle.svg
@@ -1,7 +1,17 @@
-
-
+
-
-
+
+
+
+
+
+
+
+