[Frontend][全域功能] Loading 程序調整 | [電梯管理] 3D 透明隱藏動態 | Loading 接口程序調整 | 部分程序修正
This commit is contained in:
		
							parent
							
								
									d3df21b0b9
								
							
						
					
					
						commit
						17b3b6429a
					
				@ -266,6 +266,8 @@
 | 
				
			|||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $(document).ready(function () {
 | 
					    $(document).ready(function () {
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        $(loadEle).Loading("start");
 | 
				
			||||||
        show3DModel();
 | 
					        show3DModel();
 | 
				
			||||||
        getSubList();
 | 
					        getSubList();
 | 
				
			||||||
        getFirstEletric();
 | 
					        getFirstEletric();
 | 
				
			||||||
@ -331,7 +333,6 @@
 | 
				
			|||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                subSysElecList = res.data;
 | 
					                subSysElecList = res.data;
 | 
				
			||||||
                tarElePath = subSysElecList.filter(x => x.mainSubTag == "total")[0]?.system_device_tag ?? "";
 | 
					                tarElePath = subSysElecList.filter(x => x.mainSubTag == "total")[0]?.system_device_tag ?? "";
 | 
				
			||||||
                startPageLoading();
 | 
					 | 
				
			||||||
                getSubBaja();
 | 
					                getSubBaja();
 | 
				
			||||||
                getElectricBaja();
 | 
					                getElectricBaja();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@ -431,7 +432,7 @@
 | 
				
			|||||||
            chartWorOrdErr();
 | 
					            chartWorOrdErr();
 | 
				
			||||||
            chartWorOrdFin();
 | 
					            chartWorOrdFin();
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            endPageLoading();
 | 
					            $(loadEle).Loading("close");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -891,8 +891,11 @@
 | 
				
			|||||||
    var zoomToggle = 3;
 | 
					    var zoomToggle = 3;
 | 
				
			||||||
    var isFirstLoad3D = true;
 | 
					    var isFirstLoad3D = true;
 | 
				
			||||||
    var isFirstLoadSub = true;
 | 
					    var isFirstLoadSub = true;
 | 
				
			||||||
 | 
					    var forgeInvType = null;
 | 
				
			||||||
 | 
					    var forgeInvTypeDef = null;
 | 
				
			||||||
    $(function () {
 | 
					    $(function () {
 | 
				
			||||||
        initChart();
 | 
					        initChart();
 | 
				
			||||||
 | 
					        getInviForge();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        setBuildFloor();
 | 
					        setBuildFloor();
 | 
				
			||||||
        setCards();
 | 
					        setCards();
 | 
				
			||||||
@ -2371,6 +2374,31 @@
 | 
				
			|||||||
    //                         ↑  樓層平面圖  ↑
 | 
					    //                         ↑  樓層平面圖  ↑
 | 
				
			||||||
    //=====================================================================
 | 
					    //=====================================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 設置 模型隱藏或透明 
 | 
				
			||||||
 | 
					    function setInviForge(type, devDbIds) {
 | 
				
			||||||
 | 
					        console.log("devDbIds", devDbIds)
 | 
				
			||||||
 | 
					        if (type == "Hide") {
 | 
				
			||||||
 | 
					            hideAllObjects(devDbIds);
 | 
				
			||||||
 | 
					        } else if (type == "Opacity") {
 | 
				
			||||||
 | 
					            setTransparentBuilding(0, devDbIds);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 取得 不可視 3D 模型類型
 | 
				
			||||||
 | 
					    function getInviForge() {
 | 
				
			||||||
 | 
					        let url = baseApiUrl + "/api/Device/GetForgeInvType";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ytAjax = new YourTeam.Ajax(url, null, function (res) {
 | 
				
			||||||
 | 
					            if (!res || res.code != "0000" || !res.data) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                let datas = res.data;
 | 
				
			||||||
 | 
					                forgeInvType = datas.filter(x => x.sub_system_tag == pageAct.sysSubTag)[0]?.invisible_value;
 | 
				
			||||||
 | 
					                forgeInvTypeDef = datas.filter(x => x.invisible_type == "default_value")[0]?.invisible_value;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }, null, "POST").send();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //載入3D模型
 | 
					    //載入3D模型
 | 
				
			||||||
    function load3DModel() {
 | 
					    function load3DModel() {
 | 
				
			||||||
        launchViewer(pageAct.urn, (viewer) => {
 | 
					        launchViewer(pageAct.urn, (viewer) => {
 | 
				
			||||||
@ -2385,8 +2413,12 @@
 | 
				
			|||||||
            // 電梯移動訂閱程序載入
 | 
					            // 電梯移動訂閱程序載入
 | 
				
			||||||
            let forge3DElev = new Forge3DElevFull(elevOption);
 | 
					            let forge3DElev = new Forge3DElevFull(elevOption);
 | 
				
			||||||
            forge3DElev.bajaEndCallback = function () {
 | 
					            forge3DElev.bajaEndCallback = function () {
 | 
				
			||||||
                debugger
 | 
					                // 從資料庫設定不可視模型的類型,若沒有取道該小類不可視類型,則套用資料庫設定預設類型
 | 
				
			||||||
                /*hideAllObjects(this.getNodeIds());*/
 | 
					                if (forgeInvType) {
 | 
				
			||||||
 | 
					                    setInviForge(forgeInvType, this.getNodeIds);
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                    setInviForge(forgeInvTypeDef, this.getNodeIds);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                setTransparentBuilding(0);
 | 
					                setTransparentBuilding(0);
 | 
				
			||||||
                endPageLoading();
 | 
					                endPageLoading();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
				
			|||||||
@ -367,7 +367,7 @@
 | 
				
			|||||||
                let option = floChart.getOption();
 | 
					                let option = floChart.getOption();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                option.series.forEach(function (series) {
 | 
					                option.series.forEach(function (series) {
 | 
				
			||||||
                    series.data.forEach(function (point) {
 | 
					                    (series.data ?? []).forEach(function (point) {
 | 
				
			||||||
                        let dbid = obj.myDataList.filter(x => x.device_number == point.device_number)[0]?._dbId;
 | 
					                        let dbid = obj.myDataList.filter(x => x.device_number == point.device_number)[0]?._dbId;
 | 
				
			||||||
                        point._dbId = dbid;
 | 
					                        point._dbId = dbid;
 | 
				
			||||||
                        currentData.forEach(function (cData) { 
 | 
					                        currentData.forEach(function (cData) { 
 | 
				
			||||||
 | 
				
			|||||||
@ -86,7 +86,7 @@ input:-webkit-autofill { background-color: rgba(0, 0, 0, 0.15) !important; }
 | 
				
			|||||||
.yt-navbar-content ul li { position: relative; display: flex; flex-wrap: wrap; }
 | 
					.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 { 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: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-fusion-500); }
 | 
					.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; }
 | 
					.card-header.p-3.ui-draggable-handle:hover { cursor: move; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -106,9 +106,9 @@ a[data-tabname="topFunBtn"]:hover { color: var(--theme-primary-50); }
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
.userblock:hover { color: var(--theme-primary-50); }
 | 
					.userblock:hover { color: var(--theme-primary-50); }
 | 
				
			||||||
.dropdown.show .userblock { color: var(--theme-primary-50) !important; }*/
 | 
					.dropdown.show .userblock { color: var(--theme-primary-50) !important; }*/
 | 
				
			||||||
.page-header a { color: #fff !important; }
 | 
					.page-header a, #sysMonBtnList a { color: #fff !important; }
 | 
				
			||||||
.page-header a:hover { color: var(--theme-primary-50) !important; }
 | 
					.page-header a:hover, #sysMonBtnList a:hover { color: var(--theme-primary-50) !important; }
 | 
				
			||||||
.page-header a.active { color: var(--theme-primary-500) !important; }
 | 
					.page-header a.active, #sysMonBtnList a.active { color: var(--theme-primary-500) !important; }
 | 
				
			||||||
.dropdown.show a { color: var(--theme-primary-50) !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; }
 | 
					@media screen and (max-width: 576px) { .yt-left-navbar { width: 100%; max-width: 100%; margin-top: 0; }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								Frontend/css/yourteam/plugins/yt-notice/yt-notice.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Frontend/css/yourteam/plugins/yt-notice/yt-notice.css
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					.yt-notice-block-scrollbody::-webkit-scrollbar { display: none; }
 | 
				
			||||||
@ -867,7 +867,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
                    if (isJSON(sessionStorage.getItem("pageAct"))) {
 | 
					                    if (isJSON(sessionStorage.getItem("pageAct"))) {
 | 
				
			||||||
                        lastPageAct = JSON.parse(sessionStorage.getItem("pageAct"));
 | 
					                        lastPageAct = JSON.parse(sessionStorage.getItem("pageAct"));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (lastPageAct.sysSubTag && lastPage == "systemMonitor") {
 | 
					                    if ((lastPageAct.sysSubTag && lastPage == "systemMonitor") || lastPage == "sysElevator") {
 | 
				
			||||||
                        $(`#subSysBtn${lastPageAct.sysSubTag}`).click();
 | 
					                        $(`#subSysBtn${lastPageAct.sysSubTag}`).click();
 | 
				
			||||||
                        $("#sysMonTopBtn").YTTab("set");
 | 
					                        $("#sysMonTopBtn").YTTab("set");
 | 
				
			||||||
                    } else {
 | 
					                    } else {
 | 
				
			||||||
@ -944,7 +944,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
                        return;
 | 
					                        return;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (page != "systemMonitor" && page != "sysElevator") {
 | 
					                    if (page != "systemMonitor" && page != "sysElevator") {
 | 
				
			||||||
                        $("#sysMonBtnList .dropdown-item").removeClass("active");
 | 
					                        $("#sysMonBtnList [name=topFunBtn]").removeClass("active");
 | 
				
			||||||
                        pageAct.sysMainTag = null;
 | 
					                        pageAct.sysMainTag = null;
 | 
				
			||||||
                        pageAct.sysSubTag = null;
 | 
					                        pageAct.sysSubTag = null;
 | 
				
			||||||
                    } else {
 | 
					                    } else {
 | 
				
			||||||
@ -952,20 +952,24 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
                        $("#sysMonTopBtn").YTTab("set");
 | 
					                        $("#sysMonTopBtn").YTTab("set");
 | 
				
			||||||
                        $(`#subSysBtn${pageAct.sysSubTag}`).YTTab("set");
 | 
					                        $(`#subSysBtn${pageAct.sysSubTag}`).YTTab("set");
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					                    // 取消當前所有 baja 訂閱
 | 
				
			||||||
                    $.each(tolSubList, (idx, sub) => {
 | 
					                    $.each(tolSubList, (idx, sub) => {
 | 
				
			||||||
                        sub.unsubscribeAll();
 | 
					                        sub.unsubscribeAll();
 | 
				
			||||||
                        sub.detach();
 | 
					                        sub.detach();
 | 
				
			||||||
                    })
 | 
					                    })
 | 
				
			||||||
 | 
					                    // 清空 baja 訂閱紀錄 
 | 
				
			||||||
                    tolSubList = [];
 | 
					                    tolSubList = [];
 | 
				
			||||||
 | 
					                    // 清空 loading 狀態
 | 
				
			||||||
                    endPageLoading();
 | 
					                    endPageLoading();
 | 
				
			||||||
 | 
					                    
 | 
				
			||||||
 | 
					                    $(loadEle).Loading("close");
 | 
				
			||||||
                    $(".yt-alert").YTAlert().hide();
 | 
					                    $(".yt-alert").YTAlert().hide();
 | 
				
			||||||
 | 
					                    // 取得使用者資訊
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    getUserInfo();
 | 
					                    getUserInfo();
 | 
				
			||||||
 | 
					                    // 存取現在頁面 (重整讀取紀錄用)
 | 
				
			||||||
                    sessionStorage.setItem("lastPage", page);
 | 
					                    sessionStorage.setItem("lastPage", page);
 | 
				
			||||||
                    sessionStorage.setItem("pageAct", JSON.stringify(pageAct));
 | 
					                    sessionStorage.setItem("pageAct", JSON.stringify(pageAct));
 | 
				
			||||||
 | 
					                    // 讀取子頁面
 | 
				
			||||||
                    $("#app").load(`_${page}.html`, loadCallback);
 | 
					                    $("#app").load(`_${page}.html`, loadCallback);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                })
 | 
					                })
 | 
				
			||||||
 | 
				
			|||||||
@ -348,7 +348,7 @@ function onDocumentLoadSuccess(doc, eleOption) {
 | 
				
			|||||||
    // });
 | 
					    // });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, function () {
 | 
					    viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, function () {
 | 
				
			||||||
        let instanceTree = viewer.model.getData().instanceTree;
 | 
					        let instanceTree = viewer.model?.getData().instanceTree;
 | 
				
			||||||
        console.log(instanceTree.nodeAccess)
 | 
					        console.log(instanceTree.nodeAccess)
 | 
				
			||||||
        allDbIdsStr = Object.keys(instanceTree.nodeAccess.dbIdToIndex);
 | 
					        allDbIdsStr = Object.keys(instanceTree.nodeAccess.dbIdToIndex);
 | 
				
			||||||
        /*getNodeIdByDbIds("【電梯】", (nodeIds) => {*/
 | 
					        /*getNodeIdByDbIds("【電梯】", (nodeIds) => {*/
 | 
				
			||||||
@ -448,7 +448,7 @@ function setElevatorSpeed(speed) { //0.01 ~ 1
 | 
				
			|||||||
function movElevator() {
 | 
					function movElevator() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let tree = viewer.model.getData().instanceTree;
 | 
					    let tree = viewer.model?.getData().instanceTree;
 | 
				
			||||||
    let nodeId = 10952;
 | 
					    let nodeId = 10952;
 | 
				
			||||||
    let fragProxyZ = 0;
 | 
					    let fragProxyZ = 0;
 | 
				
			||||||
    var movStatus = 0; // 0=no 1=up 2=down
 | 
					    var movStatus = 0; // 0=no 1=up 2=down
 | 
				
			||||||
@ -504,7 +504,7 @@ function movElevator() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function getAllDbIds(viewer) {
 | 
					function getAllDbIds(viewer) {
 | 
				
			||||||
    var instanceTree = viewer.model.getData().instanceTree;
 | 
					    var instanceTree = viewer.model?.getData().instanceTree;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var allDbIdsStr = Object.keys(instanceTree.nodeAccess.dbIdToIndex);
 | 
					    var allDbIdsStr = Object.keys(instanceTree.nodeAccess.dbIdToIndex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -687,7 +687,7 @@ function setTransparency(nodeId, opacity) {
 | 
				
			|||||||
function changeColor(nodeId, color = [0, 255, 0, 1]) {//電梯變綠色
 | 
					function changeColor(nodeId, color = [0, 255, 0, 1]) {//電梯變綠色
 | 
				
			||||||
    let model = viewer.model;
 | 
					    let model = viewer.model;
 | 
				
			||||||
    let fragList = viewer.model.getFragmentList();
 | 
					    let fragList = viewer.model.getFragmentList();
 | 
				
			||||||
    let instanceTree = viewer.model.getData().instanceTree;
 | 
					    let instanceTree = viewer.model?.getData().instanceTree;
 | 
				
			||||||
    color = color.map((x, i) => i < 3 ? x / 255 : x);
 | 
					    color = color.map((x, i) => i < 3 ? x / 255 : x);
 | 
				
			||||||
    color = new THREE.Vector4().fromArray(color);
 | 
					    color = new THREE.Vector4().fromArray(color);
 | 
				
			||||||
    model.getData().instanceTree.enumNodeFragments(
 | 
					    model.getData().instanceTree.enumNodeFragments(
 | 
				
			||||||
@ -715,7 +715,7 @@ function changeColor(nodeId, color = [0, 255, 0, 1]) {//電梯變綠色
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function hideColor(nodeId) {//顏色改成透明
 | 
					function hideColor(nodeId) {//顏色改成透明
 | 
				
			||||||
    let instanceTree = viewer.model.getData().instanceTree;
 | 
					    let instanceTree = viewer.model?.getData().instanceTree;
 | 
				
			||||||
    instanceTree.enumNodeChildren(nodeId, function (chiNodeId) {
 | 
					    instanceTree.enumNodeChildren(nodeId, function (chiNodeId) {
 | 
				
			||||||
        var color = new THREE.Vector4(0, 1, 0, 0);
 | 
					        var color = new THREE.Vector4(0, 1, 0, 0);
 | 
				
			||||||
        viewer.setThemingColor(chiNodeId, color);
 | 
					        viewer.setThemingColor(chiNodeId, color);
 | 
				
			||||||
 | 
				
			|||||||
@ -27,15 +27,20 @@ $.fn.outerHtml = function () {
 | 
				
			|||||||
$.fn.Loading = function (type = "close", text) {
 | 
					$.fn.Loading = function (type = "close", text) {
 | 
				
			||||||
    let ele = this;
 | 
					    let ele = this;
 | 
				
			||||||
    let aleObj = $(this)[0]._aleObj;
 | 
					    let aleObj = $(this)[0]._aleObj;
 | 
				
			||||||
 | 
					    let showStatus = $(ele).data("loading-show-status");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function closeLoading() {
 | 
					    function closeLoading() {
 | 
				
			||||||
 | 
					        $(ele).data("loading-show-status", "close");
 | 
				
			||||||
        $("body").css("overflow", "auto");
 | 
					        $("body").css("overflow", "auto");
 | 
				
			||||||
        $(aleObj.ele).YTAlert().hide();
 | 
					        $(aleObj.ele).YTAlert().hide();
 | 
				
			||||||
        $(ele).animate({ opacity: 0 }, 300, () => {
 | 
					        $(ele).animate({ opacity: 0 }, 300, () => {
 | 
				
			||||||
            $(ele).hide();
 | 
					            if ($(ele).data("loading-show-status") == "close") { 
 | 
				
			||||||
 | 
					                $(ele).hide();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    function showLoading() {
 | 
					    function showLoading() {
 | 
				
			||||||
 | 
					        $(ele).data("loading-show-status", "show");
 | 
				
			||||||
        $("body").css("overflow", "hidden");
 | 
					        $("body").css("overflow", "hidden");
 | 
				
			||||||
        let aleObj = YT.Alert.Tip(text || "讀取中,請稍後", "show");
 | 
					        let aleObj = YT.Alert.Tip(text || "讀取中,請稍後", "show");
 | 
				
			||||||
        $(ele)[0]._aleObj = aleObj;
 | 
					        $(ele)[0]._aleObj = aleObj;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user