[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