[Frontend][電梯管理] 3D電梯程序調整
This commit is contained in:
parent
d943fb3fc5
commit
194ef691d4
@ -51,10 +51,10 @@
|
|||||||
<div id="elevatorBlock" class="elevator">
|
<div id="elevatorBlock" class="elevator">
|
||||||
<div class="elevator-header">
|
<div class="elevator-header">
|
||||||
<div class="row m-0 align-items-center p-2 gap-3 btn-group btn-group-toggle">
|
<div class="row m-0 align-items-center p-2 gap-3 btn-group btn-group-toggle">
|
||||||
<button class="btn btn-secondary btn-sm active" data-tabname="floShowType" data-target="#2dDiv">
|
<button class="btn btn-secondary btn-sm" data-tabname="floShowType" data-target="#2dDiv">
|
||||||
2D
|
2D
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-secondary btn-sm" data-tabname="floShowType" data-target="#3dDiv" onclick="show3D()">
|
<button class="btn btn-secondary btn-sm active" data-tabname="floShowType" data-target="#3dDiv" onclick="show3D()">
|
||||||
3D
|
3D
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@ -917,6 +917,7 @@
|
|||||||
setCards();
|
setCards();
|
||||||
subDeviceSetStatus();
|
subDeviceSetStatus();
|
||||||
setEleManTable();
|
setEleManTable();
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
function getFloDevList() {
|
function getFloDevList() {
|
||||||
@ -1015,6 +1016,12 @@
|
|||||||
let main = {};
|
let main = {};
|
||||||
// 匯入 Master 名稱`
|
// 匯入 Master 名稱`
|
||||||
main.devName = master;
|
main.devName = master;
|
||||||
|
let subData = subSeviceData.filter(x => x.device_number.split("_")[5] == master)[0];
|
||||||
|
$.each(Object.keys(subData), (idx3, subKey) => {
|
||||||
|
if (subKey.startsWith("SP_FLS_")) {
|
||||||
|
main[subKey] = subData[subKey];
|
||||||
|
}
|
||||||
|
})
|
||||||
main._rowType = "master";
|
main._rowType = "master";
|
||||||
result.push(main);
|
result.push(main);
|
||||||
// 該 Master 底下的設備
|
// 該 Master 底下的設備
|
||||||
@ -1033,7 +1040,6 @@
|
|||||||
result.push(main);
|
result.push(main);
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
console.log("redraw", result)
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1110,11 +1116,20 @@
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
let strHtml = ``;
|
let strHtml = ``;
|
||||||
|
let masterArr = [];
|
||||||
|
let masDiv = "";
|
||||||
$.each(res.data, (index, floObj) => {
|
$.each(res.data, (index, floObj) => {
|
||||||
|
|
||||||
$.each(floObj.device_list, (index2, devObj) => {
|
$.each(floObj.device_list, (index2, devObj) => {
|
||||||
allDevList.push(devObj);
|
allDevList.push(devObj);
|
||||||
|
if (masterArr.indexOf(devObj?.device_number?.split("_")[5]) == -1) {
|
||||||
|
let master = devObj?.device_number?.split("_")[5];
|
||||||
|
masDiv = creDiv(["col-12"]);
|
||||||
|
masDiv.append(creEle("h2", master, null, null))
|
||||||
|
masterArr.push(master);
|
||||||
|
}
|
||||||
|
|
||||||
strHtml += `<div id="${devObj.device_number}_card" class="card dev-card text-white mx-1 mb-3 col-4 " name="devItem" data-id="${devObj.device_guid}" data-number="${devObj.device_number}" data-name="${devObj.full_name}" style="max-width: 18rem;">
|
strHtml += `<div id="${devObj.device_number}_card" class="card dev-card text-white mb-3 col-4 " name="devItem" data-id="${devObj.device_guid}" data-number="${devObj.device_number}" data-name="${devObj.full_name}" style="max-width: 18rem;">
|
||||||
<div type="button" class="card-body">
|
<div type="button" class="card-body">
|
||||||
<span class="d-flex">
|
<span class="d-flex">
|
||||||
<h5 class="card-title">號機別 : ${devObj.full_name}</h5>
|
<h5 class="card-title">號機別 : ${devObj.full_name}</h5>
|
||||||
@ -1127,10 +1142,10 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>`;
|
</div>`;
|
||||||
|
masDiv.append(strHtml)
|
||||||
})
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
$("#eleCards").html(strHtml);
|
$("#eleCards").html(masDiv);
|
||||||
initPopover();
|
initPopover();
|
||||||
//平面圖載入
|
//平面圖載入
|
||||||
chartHandler(`${baseImgUrl}/upload/floor_map/${res.data[0].floor_map_name}`);
|
chartHandler(`${baseImgUrl}/upload/floor_map/${res.data[0].floor_map_name}`);
|
||||||
@ -1298,7 +1313,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "休止",
|
"title": "休止",
|
||||||
"data": "RCS",
|
"data": "SP_RCS",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "獨立運轉",
|
"title": "獨立運轉",
|
||||||
@ -1306,17 +1321,21 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "VIP",
|
"title": "VIP",
|
||||||
"data": "VIP",
|
"data": "SP_VIP",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "回歸",
|
"title": "回歸",
|
||||||
"data": "RET",
|
"data": "SP_RET",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "不服務樓層",
|
"title": "不服務樓層",
|
||||||
"data": null,
|
"data": null,
|
||||||
"render": function (data, type, row) {
|
"render": function (data, type, row) {
|
||||||
return Object.keys(row).filter(x => x.startsWith("SP_FLS_") && row[x] == "trueText").map(x => x?.split("SP_FLS_")[1]).join("、");
|
let result = "";
|
||||||
|
if (row._rowType == "master") {
|
||||||
|
result = Object.keys(row).filter(x => x.startsWith("SP_FLS_") && row[x] == "trueText").map(x => x?.split("SP_FLS_")[1]).join("、");
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1337,7 +1356,6 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
eleManTable = new YourTeam.JqDataTables.getTableByStatic(tag, datas, columns, column_defs, null, null, null, null, "tpi");
|
eleManTable = new YourTeam.JqDataTables.getTableByStatic(tag, datas, columns, column_defs, null, null, null, null, "tpi");
|
||||||
console.log(eleManTable)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 電梯管理 Modal - 設置 Detail 訂閱內容
|
// 電梯管理 Modal - 設置 Detail 訂閱內容
|
||||||
@ -1356,7 +1374,7 @@
|
|||||||
|
|
||||||
$("#eleManModal #detDevDiv [name=devName]").text(matchDevice.full_name);
|
$("#eleManModal #detDevDiv [name=devName]").text(matchDevice.full_name);
|
||||||
$("#eleManModal #detDevDiv [name=status]").text(subData["ST"]);
|
$("#eleManModal #detDevDiv [name=status]").text(subData["ST"]);
|
||||||
$("#eleManModal #detDevDiv [name=curFloor]").text(subData["CP"] + "F");
|
$("#eleManModal #detDevDiv [name=curFloor]").text(subData["CP"]);
|
||||||
$("#eleManModal #detDevDiv [name=preMea]").prop("checked", bajaValToBool(subData["SP_DP"])); //防疫對策
|
$("#eleManModal #detDevDiv [name=preMea]").prop("checked", bajaValToBool(subData["SP_DP"])); //防疫對策
|
||||||
$("#eleManModal #detDevDiv [name=stop]").prop("checked", bajaValToBool(subData["SP_RCS"]));
|
$("#eleManModal #detDevDiv [name=stop]").prop("checked", bajaValToBool(subData["SP_RCS"]));
|
||||||
$("#eleManModal #detDevDiv [name=onlyOpe]").prop("checked", bajaValToBool(subData["SP_IND"]));
|
$("#eleManModal #detDevDiv [name=onlyOpe]").prop("checked", bajaValToBool(subData["SP_IND"]));
|
||||||
@ -1374,6 +1392,7 @@
|
|||||||
|
|
||||||
$("#notSerFloTable").html(setNotSerFloTable(allSerFloors));
|
$("#notSerFloTable").html(setNotSerFloTable(allSerFloors));
|
||||||
let notSerFloors = Object.keys(subData).filter(x => x.startsWith("SP_FLS_") && subData[x] == "trueText").map(x => x?.split("SP_FLS_")[1]);
|
let notSerFloors = Object.keys(subData).filter(x => x.startsWith("SP_FLS_") && subData[x] == "trueText").map(x => x?.split("SP_FLS_")[1]);
|
||||||
|
|
||||||
$(`[name^=notSerChk]`).prop("checked", false);
|
$(`[name^=notSerChk]`).prop("checked", false);
|
||||||
$.each(notSerFloors, (idx, floor) => {
|
$.each(notSerFloors, (idx, floor) => {
|
||||||
$(`[name=notSerChk${floor}]`).prop("checked", true);
|
$(`[name=notSerChk${floor}]`).prop("checked", true);
|
||||||
@ -1397,7 +1416,7 @@
|
|||||||
datas.push({
|
datas.push({
|
||||||
row: idx,
|
row: idx,
|
||||||
col: 1,
|
col: 1,
|
||||||
data: `<input name="notSerChk${row.text}" type="checkbox" class="toggle" data-toggle="toggle">`,
|
data: `<input name="notSerChk${row.text}" data-point="SP_FLS_${row.id}" type="checkbox" class="toggle" data-toggle="toggle">`,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
$.each(rows, (index, row) => {
|
$.each(rows, (index, row) => {
|
||||||
@ -1451,7 +1470,7 @@
|
|||||||
let master = $(this).prop("id").split("eleManMasEdit")[1];
|
let master = $(this).prop("id").split("eleManMasEdit")[1];
|
||||||
let subData = subSeviceData.filter(x => x.device_number.split("_")[5] == master)[0];
|
let subData = subSeviceData.filter(x => x.device_number.split("_")[5] == master)[0];
|
||||||
$("#bajaMasSche").html("");
|
$("#bajaMasSche").html("");
|
||||||
|
$("#detMasDiv").data("devnum", subData.device_number);
|
||||||
// 電梯管理 Modal 切換到 detail 頁面
|
// 電梯管理 Modal 切換到 detail 頁面
|
||||||
modalTogDiv("#eleManModal", "#tabDiv", "#detMasDiv", "next", function () {
|
modalTogDiv("#eleManModal", "#tabDiv", "#detMasDiv", "next", function () {
|
||||||
subDeviceSetEleManNotSerFloor(master);
|
subDeviceSetEleManNotSerFloor(master);
|
||||||
@ -1462,10 +1481,21 @@
|
|||||||
})
|
})
|
||||||
|
|
||||||
// 電梯管理 Modal 不服務樓層 設定不服務樓層(BAJA)
|
// 電梯管理 Modal 不服務樓層 設定不服務樓層(BAJA)
|
||||||
onEvent("click", "#eleManTable [name^=notSerChk]", function () {
|
onEvent("change", "#notSerFloTable [name^=notSerChk]", function () {
|
||||||
|
let devNum = $("#detMasDiv").data("devnum");
|
||||||
|
let devNumPath = devNum?.split("_").join("/");
|
||||||
|
let checked = $(this).prop("checked");
|
||||||
|
let tarPoint = $(this).data("point");
|
||||||
require(['baja!'], function (baja) {
|
require(['baja!'], function (baja) {
|
||||||
baja.Ord.make("local:|foxs:|station:|slot:/TPE/B1/ELEV/EL/R2F/NA/ELEV1/N1").get()
|
baja.Ord.make(`local:|foxs:|station:|slot:/${devNumPath}`).get()
|
||||||
.then(function (table) {
|
.then(function (folder) {
|
||||||
|
folder.getSlots().isComponent().eachValue(function (point) {
|
||||||
|
if (point.getDisplayName() == tarPoint) {
|
||||||
|
point.set1({
|
||||||
|
value: checked
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1473,18 +1503,21 @@
|
|||||||
|
|
||||||
// 電梯管理 Modal 設備 設定點位(BAJA)
|
// 電梯管理 Modal 設備 設定點位(BAJA)
|
||||||
onEvent("change", "#eleManDevTable input:checkbox", function () {
|
onEvent("change", "#eleManDevTable input:checkbox", function () {
|
||||||
debugger
|
|
||||||
let devNum = $("#detDevDiv").data("devnum");
|
let devNum = $("#detDevDiv").data("devnum");
|
||||||
let point = $(this).data("point");
|
let tarPoint = $(this).data("point");
|
||||||
let val = $(this).val();
|
let checked = $(this).prop("checked");
|
||||||
let devNumPath = devNum?.split("_").join("/");
|
let devNumPath = devNum?.split("_").join("/");
|
||||||
require(['baja!'], function (baja) {
|
require(['baja!'], function (baja) {
|
||||||
baja.Ord.make(`local:|foxs:|station:|slot:${devNumPath}`).get()
|
baja.Ord.make(`local:|foxs:|station:|slot:/${devNumPath}`).get()
|
||||||
.then(function (dev) {
|
.then(function (folder) {
|
||||||
dev.set({
|
folder.getSlots().isComponent().eachValue(function (point) {
|
||||||
slot: point,
|
if (point.getDisplayName() == tarPoint) {
|
||||||
value:val == "on"? true : false,
|
point.set1({
|
||||||
|
value: checked
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1524,7 +1557,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
//=====================================================================
|
//=====================================================================
|
||||||
// 樓層平面圖
|
// ↓ 樓層平面圖 ↓
|
||||||
//=====================================================================
|
//=====================================================================
|
||||||
function getDevice(devList) {
|
function getDevice(devList) {
|
||||||
let selected_floor = devList[0];
|
let selected_floor = devList[0];
|
||||||
@ -1600,7 +1633,7 @@
|
|||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
});
|
});
|
||||||
console.log(currentData)
|
|
||||||
if (currentData == null || currentData.length == 0) {
|
if (currentData == null || currentData.length == 0) {
|
||||||
this.currentData = [];
|
this.currentData = [];
|
||||||
}
|
}
|
||||||
@ -1646,7 +1679,7 @@
|
|||||||
// animationDurationUpdate: 1500,
|
// animationDurationUpdate: 1500,
|
||||||
tooltip: {
|
tooltip: {
|
||||||
formatter: function (params) {
|
formatter: function (params) {
|
||||||
console.log("23", params)
|
|
||||||
if (params.data.device_node_guid != undefined && params.data.device_node_guid != null && params.data.device_node_guid != "") {
|
if (params.data.device_node_guid != undefined && params.data.device_node_guid != null && params.data.device_node_guid != "") {
|
||||||
return `名稱:${params.data.device_node_full_name}<br>
|
return `名稱:${params.data.device_node_full_name}<br>
|
||||||
Guid:${params.data.device_node_guid}`
|
Guid:${params.data.device_node_guid}`
|
||||||
@ -2298,16 +2331,22 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
// ↑ 樓層平面圖 ↑
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
//載入3D模型
|
//載入3D模型
|
||||||
function load3DModel() {
|
function load3DModel() {
|
||||||
launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6LW1vZGVsX3Rlc3QxMTIxLyVFMyU4MCU5MFRFU1QlRTMlODAlOTEubndk');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6LW1vZGVsX3Rlc3QxMTIxLyVFMyU4MCU5MFRFU1QlRTMlODAlOTEubndk');
|
||||||
|
setElevatorSpeed(0.2)
|
||||||
|
setElevatorFloor(3)
|
||||||
|
movElevator()
|
||||||
|
}
|
||||||
function show3D() {
|
function show3D() {
|
||||||
if (isFirstLoad3D) {
|
if (isFirstLoad3D) {
|
||||||
isFirstLoad3D = false;
|
isFirstLoad3D = false;
|
||||||
load3DModel();
|
load3DModel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
Reference in New Issue
Block a user