[Frontend][電梯管理] 3D電梯程序調整
This commit is contained in:
		
							parent
							
								
									d943fb3fc5
								
							
						
					
					
						commit
						194ef691d4
					
				@ -51,10 +51,10 @@
 | 
			
		||||
            <div id="elevatorBlock" class="elevator">
 | 
			
		||||
                <div class="elevator-header">
 | 
			
		||||
                    <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
 | 
			
		||||
                        </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
 | 
			
		||||
                        </button>
 | 
			
		||||
                    </div>
 | 
			
		||||
@ -917,6 +917,7 @@
 | 
			
		||||
        setCards();
 | 
			
		||||
        subDeviceSetStatus();
 | 
			
		||||
        setEleManTable();
 | 
			
		||||
        
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    function getFloDevList() {
 | 
			
		||||
@ -1015,6 +1016,12 @@
 | 
			
		||||
            let main = {};
 | 
			
		||||
            // 匯入 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";
 | 
			
		||||
            result.push(main);
 | 
			
		||||
            // 該 Master 底下的設備
 | 
			
		||||
@ -1033,7 +1040,6 @@
 | 
			
		||||
                result.push(main);
 | 
			
		||||
            })
 | 
			
		||||
        })
 | 
			
		||||
        console.log("redraw", result)
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -1110,11 +1116,20 @@
 | 
			
		||||
 | 
			
		||||
            } else {
 | 
			
		||||
                let strHtml = ``;
 | 
			
		||||
                let masterArr = [];
 | 
			
		||||
                let masDiv = "";
 | 
			
		||||
                $.each(res.data, (index, floObj) => {
 | 
			
		||||
                   
 | 
			
		||||
                    $.each(floObj.device_list, (index2, devObj) => {
 | 
			
		||||
                        allDevList.push(devObj);
 | 
			
		||||
 | 
			
		||||
                        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;">
 | 
			
		||||
                        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 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">
 | 
			
		||||
                                            <span class="d-flex">
 | 
			
		||||
                                                <h5 class="card-title">號機別 : ${devObj.full_name}</h5>
 | 
			
		||||
@ -1127,10 +1142,10 @@
 | 
			
		||||
                                            </span>
 | 
			
		||||
                                        </div>
 | 
			
		||||
                                    </div>`;
 | 
			
		||||
                        masDiv.append(strHtml)
 | 
			
		||||
                    })
 | 
			
		||||
 | 
			
		||||
                })
 | 
			
		||||
                $("#eleCards").html(strHtml);
 | 
			
		||||
                $("#eleCards").html(masDiv);
 | 
			
		||||
                initPopover();
 | 
			
		||||
                //平面圖載入
 | 
			
		||||
                chartHandler(`${baseImgUrl}/upload/floor_map/${res.data[0].floor_map_name}`);
 | 
			
		||||
@ -1298,7 +1313,7 @@
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "title": "休止",
 | 
			
		||||
                "data": "RCS",
 | 
			
		||||
                "data": "SP_RCS",
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "title": "獨立運轉",
 | 
			
		||||
@ -1306,17 +1321,21 @@
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "title": "VIP",
 | 
			
		||||
                "data": "VIP",
 | 
			
		||||
                "data": "SP_VIP",
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "title": "回歸",
 | 
			
		||||
                "data": "RET",
 | 
			
		||||
                "data": "SP_RET",
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                "title": "不服務樓層",
 | 
			
		||||
                "data": null,
 | 
			
		||||
                "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");
 | 
			
		||||
        console.log(eleManTable)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // 電梯管理 Modal - 設置 Detail 訂閱內容
 | 
			
		||||
@ -1356,7 +1374,7 @@
 | 
			
		||||
 | 
			
		||||
        $("#eleManModal #detDevDiv [name=devName]").text(matchDevice.full_name);
 | 
			
		||||
        $("#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=stop]").prop("checked", bajaValToBool(subData["SP_RCS"]));
 | 
			
		||||
        $("#eleManModal #detDevDiv [name=onlyOpe]").prop("checked", bajaValToBool(subData["SP_IND"]));
 | 
			
		||||
@ -1374,6 +1392,7 @@
 | 
			
		||||
 | 
			
		||||
        $("#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]);
 | 
			
		||||
        
 | 
			
		||||
        $(`[name^=notSerChk]`).prop("checked", false);
 | 
			
		||||
        $.each(notSerFloors, (idx, floor) => {
 | 
			
		||||
            $(`[name=notSerChk${floor}]`).prop("checked", true);
 | 
			
		||||
@ -1397,7 +1416,7 @@
 | 
			
		||||
            datas.push({
 | 
			
		||||
                row: idx,
 | 
			
		||||
                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) => {
 | 
			
		||||
@ -1451,7 +1470,7 @@
 | 
			
		||||
        let master = $(this).prop("id").split("eleManMasEdit")[1];
 | 
			
		||||
        let subData = subSeviceData.filter(x => x.device_number.split("_")[5] == master)[0];
 | 
			
		||||
        $("#bajaMasSche").html("");
 | 
			
		||||
        
 | 
			
		||||
        $("#detMasDiv").data("devnum", subData.device_number);
 | 
			
		||||
        // 電梯管理 Modal 切換到 detail 頁面
 | 
			
		||||
        modalTogDiv("#eleManModal", "#tabDiv", "#detMasDiv", "next", function () {
 | 
			
		||||
            subDeviceSetEleManNotSerFloor(master);
 | 
			
		||||
@ -1462,10 +1481,21 @@
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    // 電梯管理 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) {
 | 
			
		||||
            baja.Ord.make("local:|foxs:|station:|slot:/TPE/B1/ELEV/EL/R2F/NA/ELEV1/N1").get()
 | 
			
		||||
                .then(function (table) {
 | 
			
		||||
            baja.Ord.make(`local:|foxs:|station:|slot:/${devNumPath}`).get()
 | 
			
		||||
                .then(function (folder) {
 | 
			
		||||
                    folder.getSlots().isComponent().eachValue(function (point) {
 | 
			
		||||
                        if (point.getDisplayName() == tarPoint) {
 | 
			
		||||
                            point.set1({
 | 
			
		||||
                                value: checked
 | 
			
		||||
                            })
 | 
			
		||||
                        }
 | 
			
		||||
                    })
 | 
			
		||||
                });
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
@ -1473,18 +1503,21 @@
 | 
			
		||||
 | 
			
		||||
    // 電梯管理 Modal 設備 設定點位(BAJA)
 | 
			
		||||
    onEvent("change", "#eleManDevTable input:checkbox", function () {
 | 
			
		||||
        debugger
 | 
			
		||||
        let devNum = $("#detDevDiv").data("devnum");
 | 
			
		||||
        let point = $(this).data("point");
 | 
			
		||||
        let val = $(this).val();
 | 
			
		||||
        let tarPoint = $(this).data("point");
 | 
			
		||||
        let checked = $(this).prop("checked");
 | 
			
		||||
        let devNumPath = devNum?.split("_").join("/");
 | 
			
		||||
        require(['baja!'], function (baja) {
 | 
			
		||||
            baja.Ord.make(`local:|foxs:|station:|slot:${devNumPath}`).get()
 | 
			
		||||
                .then(function (dev) {
 | 
			
		||||
                    dev.set({
 | 
			
		||||
                        slot: point,
 | 
			
		||||
                        value:val == "on"? true : false,
 | 
			
		||||
            baja.Ord.make(`local:|foxs:|station:|slot:/${devNumPath}`).get()
 | 
			
		||||
                .then(function (folder) {
 | 
			
		||||
                    folder.getSlots().isComponent().eachValue(function (point) {
 | 
			
		||||
                        if (point.getDisplayName() == tarPoint) {
 | 
			
		||||
                            point.set1({
 | 
			
		||||
                                value: checked
 | 
			
		||||
                            })
 | 
			
		||||
                        }
 | 
			
		||||
                    })
 | 
			
		||||
 | 
			
		||||
                });
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
@ -1524,7 +1557,7 @@
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //=====================================================================
 | 
			
		||||
    //                             樓層平面圖
 | 
			
		||||
    //                         ↓  樓層平面圖  ↓
 | 
			
		||||
    //=====================================================================
 | 
			
		||||
    function getDevice(devList) {
 | 
			
		||||
        let selected_floor = devList[0];
 | 
			
		||||
@ -1600,7 +1633,7 @@
 | 
			
		||||
            }
 | 
			
		||||
            return item;
 | 
			
		||||
        });
 | 
			
		||||
        console.log(currentData)
 | 
			
		||||
        
 | 
			
		||||
        if (currentData == null || currentData.length == 0) {
 | 
			
		||||
            this.currentData = [];
 | 
			
		||||
        }
 | 
			
		||||
@ -1646,7 +1679,7 @@
 | 
			
		||||
                // animationDurationUpdate: 1500,
 | 
			
		||||
                tooltip: {
 | 
			
		||||
                    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 != "") {
 | 
			
		||||
                            return `名稱:${params.data.device_node_full_name}<br>
 | 
			
		||||
                                    Guid:${params.data.device_node_guid}`
 | 
			
		||||
@ -2298,16 +2331,22 @@
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //=====================================================================
 | 
			
		||||
    //                         ↑  樓層平面圖  ↑
 | 
			
		||||
    //=====================================================================
 | 
			
		||||
 | 
			
		||||
    //載入3D模型
 | 
			
		||||
    function load3DModel() {
 | 
			
		||||
        
 | 
			
		||||
        launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6LW1vZGVsX3Rlc3QxMTIxLyVFMyU4MCU5MFRFU1QlRTMlODAlOTEubndk');
 | 
			
		||||
        setElevatorSpeed(0.2)
 | 
			
		||||
        setElevatorFloor(3)
 | 
			
		||||
        movElevator()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function show3D() {
 | 
			
		||||
        if (isFirstLoad3D) {
 | 
			
		||||
            isFirstLoad3D = false;
 | 
			
		||||
            load3DModel();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user