[Frontend] index.html 及 forgemodel.js 合併
This commit is contained in:
		
						commit
						dd2a66075c
					
				@ -184,7 +184,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    <script>
 | 
					    <script>
 | 
				
			||||||
        var curLightIsOpen = true;
 | 
					        var curLightIsOpen = true;
 | 
				
			||||||
        var objSendData = { Data: null };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $(document).ready(function () {
 | 
					        $(document).ready(function () {
 | 
				
			||||||
            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDLm53ZA');
 | 
					            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDLm53ZA');
 | 
				
			||||||
@ -238,8 +237,10 @@
 | 
				
			|||||||
            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8lRTUlOEQlOEElRTklODAlOEYlRTYlOTglOEUlRTUlQkIlQkElRTclQUYlODlfMTJfMzAubndk');
 | 
					            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8lRTUlOEQlOEElRTklODAlOEYlRTYlOTglOEUlRTUlQkIlQkElRTclQUYlODlfMTJfMzAubndk');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            //12.31 整棟樓
 | 
					            //12.31 整棟樓
 | 
				
			||||||
            launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dGEzaHFzZmZ6cWJub3V4a3BsZGt1a3NldzRzajIxdzUtYmltc19tb2RlbHMvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDJUU5JTlCJTk5JUU2JUE4JUExJUU1JUJDJThGK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8yMDIyXzEyXzMxLm53ZA');
 | 
					            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dGEzaHFzZmZ6cWJub3V4a3BsZGt1a3NldzRzajIxdzUtYmltc19tb2RlbHMvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDJUU5JTlCJTk5JUU2JUE4JUExJUU1JUJDJThGK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8yMDIyXzEyXzMxLm53ZA');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //雙模式
 | 
				
			||||||
 | 
					            launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dGEzaHFzZmZ6cWJub3V4a3BsZGt1a3NldzRzajIxdzUtYmltc19tb2RlbHMvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDJUU5JTlCJTk5JUU2JUE4JUExJUU1JUJDJThGK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8yMDIyXzEyXzMxLm53ZA==');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwQVJDJUUzJTgwJTkxXzIwMjJfMTJfMTMubndk');//new ARC
 | 
					            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwQVJDJUUzJTgwJTkxXzIwMjJfMTJfMTMubndk');//new ARC
 | 
				
			||||||
@ -384,75 +385,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        function ImportDevForCor() {//callback = null
 | 
					        function ImportDevForCor() {//callback = null
 | 
				
			||||||
            var url = "/DeviceImport/ImportDevForCor";
 | 
					            var url = "/DeviceImport/ImportDevForCor";
 | 
				
			||||||
            //let sendData = {
 | 
					 | 
				
			||||||
            //    "device_number": pageAct.AreaTag,
 | 
					 | 
				
			||||||
            //    "device_coordinate_3d": "",
 | 
					 | 
				
			||||||
            //    "device_dbid": "",
 | 
					 | 
				
			||||||
            //};
 | 
					 | 
				
			||||||
            objSendData.Data = tagIdDevList;
 | 
					 | 
				
			||||||
            //ytAjax = new YourTeam.Ajax(url, objSendData, function (res) {
 | 
					 | 
				
			||||||
            //    if (!res || res.code != "0000" || !res.data) {
 | 
					 | 
				
			||||||
            //        console.log(rel.msg);
 | 
					 | 
				
			||||||
            //    } else {
 | 
					 | 
				
			||||||
            //        console.log(rel.msg);
 | 
					 | 
				
			||||||
            //    }
 | 
					 | 
				
			||||||
            //}, null, "POST").send();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //$.post(url, objSendData.Data, function (rel) {
 | 
					 | 
				
			||||||
            //    if (rel.code != "0000") {
 | 
					 | 
				
			||||||
            //        if (rel.code == "9999") {
 | 
					 | 
				
			||||||
            //            //toast_error(rel.msg);
 | 
					 | 
				
			||||||
            //            console.log(rel.msg);
 | 
					 | 
				
			||||||
            //        }
 | 
					 | 
				
			||||||
            //        else {
 | 
					 | 
				
			||||||
            //            //toast_warning(rel.msg);
 | 
					 | 
				
			||||||
            //            console.log(rel.msg);
 | 
					 | 
				
			||||||
            //        }
 | 
					 | 
				
			||||||
            //        return;
 | 
					 | 
				
			||||||
            //    }
 | 
					 | 
				
			||||||
            //    else {
 | 
					 | 
				
			||||||
            //        //toast_ok(rel.msg);
 | 
					 | 
				
			||||||
            //        console.log(rel.msg);
 | 
					 | 
				
			||||||
            //        //ReloadRawDataCheckTable();
 | 
					 | 
				
			||||||
            //    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //}, 'json');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //headers={'content-type': 'application/json'}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //$.ajax({
 | 
					 | 
				
			||||||
            //    type: "POST",
 | 
					 | 
				
			||||||
            //    url: url,
 | 
					 | 
				
			||||||
            //    data: objSendData.Data,
 | 
					 | 
				
			||||||
            //    cache: false,
 | 
					 | 
				
			||||||
            //    contentType: 'application/json',
 | 
					 | 
				
			||||||
            //    processData: false,
 | 
					 | 
				
			||||||
            //    success: function (rel) {
 | 
					 | 
				
			||||||
            //        //$("#save-building-btn").html('確定').attr("disabled", false);
 | 
					 | 
				
			||||||
            //        if (rel.code != "0000") {
 | 
					 | 
				
			||||||
            //            if (rel.code == "9999") {
 | 
					 | 
				
			||||||
            //                //toast_error(rel.msg);
 | 
					 | 
				
			||||||
            //                console.log(rel.msg);
 | 
					 | 
				
			||||||
            //            }
 | 
					 | 
				
			||||||
            //            else {
 | 
					 | 
				
			||||||
            //                //toast_warning(rel.msg);
 | 
					 | 
				
			||||||
            //                console.log(rel.msg);
 | 
					 | 
				
			||||||
            //            }
 | 
					 | 
				
			||||||
            //            return;
 | 
					 | 
				
			||||||
            //        }
 | 
					 | 
				
			||||||
            //        else {
 | 
					 | 
				
			||||||
            //            //toast_ok(rel.msg);
 | 
					 | 
				
			||||||
            //            console.log(rel.msg);
 | 
					 | 
				
			||||||
            //            //buildInfoTable.ajax.reload(null, false);
 | 
					 | 
				
			||||||
            //            //$('#build-modal').modal('hide');
 | 
					 | 
				
			||||||
            //            return;
 | 
					 | 
				
			||||||
            //        }
 | 
					 | 
				
			||||||
            //    },
 | 
					 | 
				
			||||||
            //    fail: function (xhr, status, error) {
 | 
					 | 
				
			||||||
            //        //$("#save-building-btn").html('確定').attr("disabled", false);
 | 
					 | 
				
			||||||
            //        //toast_error(rel.msg);
 | 
					 | 
				
			||||||
            //    }
 | 
					 | 
				
			||||||
            //});
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            $.ajax({
 | 
					            $.ajax({
 | 
				
			||||||
                method: "POST",
 | 
					                method: "POST",
 | 
				
			||||||
@ -463,29 +395,21 @@
 | 
				
			|||||||
                contentType: "application/json; charset=UTF-8",
 | 
					                contentType: "application/json; charset=UTF-8",
 | 
				
			||||||
                dataType: 'json',
 | 
					                dataType: 'json',
 | 
				
			||||||
                success: function (rel) {
 | 
					                success: function (rel) {
 | 
				
			||||||
                    //$("#save-building-btn").html('確定').attr("disabled", false);
 | 
					 | 
				
			||||||
                    if (rel.code != "0000") {
 | 
					                    if (rel.code != "0000") {
 | 
				
			||||||
                        if (rel.code == "9999") {
 | 
					                        if (rel.code == "9999") {
 | 
				
			||||||
                            //toast_error(rel.msg);
 | 
					 | 
				
			||||||
                            console.log(rel.msg);
 | 
					                            console.log(rel.msg);
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        else {
 | 
					                        else {
 | 
				
			||||||
                            //toast_warning(rel.msg);
 | 
					 | 
				
			||||||
                            console.log(rel.msg);
 | 
					                            console.log(rel.msg);
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        return;
 | 
					                        return;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    else {
 | 
					                    else {
 | 
				
			||||||
                        //toast_ok(rel.msg);
 | 
					 | 
				
			||||||
                        console.log(rel.msg);
 | 
					                        console.log(rel.msg);
 | 
				
			||||||
                        //buildInfoTable.ajax.reload(null, false);
 | 
					 | 
				
			||||||
                        //$('#build-modal').modal('hide');
 | 
					 | 
				
			||||||
                        return;
 | 
					                        return;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
                fail: function (xhr, status, error) {
 | 
					                fail: function (xhr, status, error) {
 | 
				
			||||||
                    //$("#save-building-btn").html('確定').attr("disabled", false);
 | 
					 | 
				
			||||||
                    //toast_error(rel.msg);
 | 
					 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -253,6 +253,7 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
    var rolAuthTable = null;
 | 
					    var rolAuthTable = null;
 | 
				
			||||||
    $(function () {
 | 
					    $(function () {
 | 
				
			||||||
 | 
							asyncUser();
 | 
				
			||||||
        clearPagSes();
 | 
					        clearPagSes();
 | 
				
			||||||
        getRoleSel();
 | 
					        getRoleSel();
 | 
				
			||||||
        loadAccManTable();
 | 
					        loadAccManTable();
 | 
				
			||||||
@ -904,4 +905,16 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        ytAjax = new YourTeam.Ajax(url, objSendData, success, null, "POST").send();
 | 
					        ytAjax = new YourTeam.Ajax(url, objSendData, success, null, "POST").send();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function asyncUser() {
 | 
				
			||||||
 | 
							getUserByBaja(syncUsrCallBack)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function syncUsrCallBack(rel) {
 | 
				
			||||||
 | 
					        let url = baseApiUrl + "/User/SyncUser";
 | 
				
			||||||
 | 
							var data = JSON.parse(rel);
 | 
				
			||||||
 | 
					        objSendData.Data = data.data;
 | 
				
			||||||
 | 
					        console.log(objSendData);
 | 
				
			||||||
 | 
							ytAjax = new YourTeam.Ajax(url, objSendData, null, null, "POST").send();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
@ -45,7 +45,9 @@
 | 
				
			|||||||
                setLightColor();
 | 
					                setLightColor();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (arr.indexOf(3) != -1) {
 | 
					            if (arr.indexOf(3) != -1) {
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
                getHotspotPoint(() => {
 | 
					                getHotspotPoint(() => {
 | 
				
			||||||
 | 
					                    getLightDevice();
 | 
				
			||||||
                    show3DModel(data.urn_3D);
 | 
					                    show3DModel(data.urn_3D);
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -335,11 +337,50 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    async function getLightDevice() {//callback = null
 | 
				
			||||||
 | 
					        getLightData(null);
 | 
				
			||||||
 | 
					        let url = baseApiUrl + "/api/GetDevNodeForCor";
 | 
				
			||||||
 | 
					        let sendData = {
 | 
				
			||||||
 | 
					            "device_area_tag": pageAct.AreaTag,
 | 
				
			||||||
 | 
					            "device_building_tag": pageAct.buiTag,
 | 
				
			||||||
 | 
					            "device_system_tag": pageAct.sysMainTag,
 | 
				
			||||||
 | 
					            "device_name_tag": pageAct.sysSubTag,
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        objSendData.Data = sendData;
 | 
				
			||||||
 | 
					        ytAjax = new YourTeam.Ajax(url, objSendData, function (res) {
 | 
				
			||||||
 | 
					            if (!res || res.code != "0000" || !res.data) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                let myLightList = [];
 | 
				
			||||||
 | 
					                $.each(res.data, (idx, data) => {
 | 
				
			||||||
 | 
					                    let item = {};
 | 
				
			||||||
 | 
					                    item.position = {};
 | 
				
			||||||
 | 
					                    if (data.device_node_coordinate_3d != null && isJSON(data.device_node_coordinate_3d)) {
 | 
				
			||||||
 | 
					                        item.position = JSON.parse(data.device_node_coordinate_3d);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    $.extend(item, data);
 | 
				
			||||||
 | 
					                    myLightList.push(item);
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                console.log("2", myLightList);
 | 
				
			||||||
 | 
					                setLightList(myLightList);
 | 
				
			||||||
 | 
					                //callback ? callback() : "";
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }, null, "POST").send();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function setHotspotPoint(myDataList = []) {
 | 
					    function setHotspotPoint(myDataList = []) {
 | 
				
			||||||
        console.log(myDataList)
 | 
					        console.log(myDataList)
 | 
				
			||||||
        getHopspotPoint(myDataList);
 | 
					        getHopspotPoint(myDataList);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    async function setLightList(myDataList = []) {
 | 
				
			||||||
 | 
					        console.log(myDataList);
 | 
				
			||||||
 | 
					        getLightData(myDataList);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var parentEle = "";
 | 
					    var parentEle = "";
 | 
				
			||||||
    onEvent("autodesk:click:sprite", "[name=forgeViewer]", function (e, obj) {
 | 
					    onEvent("autodesk:click:sprite", "[name=forgeViewer]", function (e, obj) {
 | 
				
			||||||
        forgeUnFocusAll();
 | 
					        forgeUnFocusAll();
 | 
				
			||||||
 | 
				
			|||||||
@ -140,7 +140,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
                    <!--we need this logo when user switches to nav-function-top-->
 | 
					                    <!--we need this logo when user switches to nav-function-top-->
 | 
				
			||||||
                    <div class="page-logo">
 | 
					                    <div class="page-logo">
 | 
				
			||||||
                        <a href="javascript:;" name="topFunBtn" data-page="dashboard" class="page-logo-link press-scale-down d-flex align-items-center position-relative">
 | 
					                        <a href="javascript:;" name="topFunBtn" data-page="dashboard" class="page-logo-link press-scale-down d-flex align-items-center position-relative">
 | 
				
			||||||
                            <img src="img/logo.png" alt="SmartAdmin WebApp" aria-roledescription="logo">
 | 
					                            <img name="webLogo" src="img/logo.png" alt="SmartAdmin WebApp" aria-roledescription="logo">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                            <!--<span class="page-logo-text mr-1">SmartAdmin WebApp</span>-->
 | 
					                            <!--<span class="page-logo-text mr-1">SmartAdmin WebApp</span>-->
 | 
				
			||||||
                            <!--<span class="position-absolute text-white opacity-50 small pos-top pos-right mr-2 mt-n2"></span>
 | 
					                            <!--<span class="position-absolute text-white opacity-50 small pos-top pos-right mr-2 mt-n2"></span>
 | 
				
			||||||
@ -824,6 +824,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
            function isValidLogin() {
 | 
					            function isValidLogin() {
 | 
				
			||||||
                $("#app").load("_dashboard.html", loadCallback);
 | 
					                $("#app").load("_dashboard.html", loadCallback);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                getLogo();
 | 
				
			||||||
                getUserInfo();
 | 
					                getUserInfo();
 | 
				
			||||||
                iniFroList();
 | 
					                iniFroList();
 | 
				
			||||||
                showMainSys();
 | 
					                showMainSys();
 | 
				
			||||||
@ -1467,6 +1468,17 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
            }, null, "POST").send();
 | 
					            }, null, "POST").send();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							function getLogo() {
 | 
				
			||||||
 | 
								$.ajax({
 | 
				
			||||||
 | 
									method: "post",
 | 
				
			||||||
 | 
									url: 'api/GetLogo',
 | 
				
			||||||
 | 
									async: false,
 | 
				
			||||||
 | 
									success: function (rel) {
 | 
				
			||||||
 | 
										$('[name=webLogo]').attr('src', 'img/' + rel);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function getUserInfo() {
 | 
					        function getUserInfo() {
 | 
				
			||||||
            let url = baseApiUrl + varApiUrl + "getUserFull";
 | 
					            let url = baseApiUrl + varApiUrl + "getUserFull";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -4,7 +4,9 @@ let fragProxy;
 | 
				
			|||||||
var targetFloorZ;
 | 
					var targetFloorZ;
 | 
				
			||||||
var elevatorSpeed;
 | 
					var elevatorSpeed;
 | 
				
			||||||
var selector = "#forgeViewer";
 | 
					var selector = "#forgeViewer";
 | 
				
			||||||
let myDataList;
 | 
					var myDataList;
 | 
				
			||||||
 | 
					var lightDataList;
 | 
				
			||||||
 | 
					var lightList = [];//燈光清單
 | 
				
			||||||
var levels;//剖面用
 | 
					var levels;//剖面用
 | 
				
			||||||
var lowerIdx;//剖面的下方樓層
 | 
					var lowerIdx;//剖面的下方樓層
 | 
				
			||||||
var upperIdx;//剖面的上方樓層
 | 
					var upperIdx;//剖面的上方樓層
 | 
				
			||||||
@ -304,6 +306,16 @@ class elevator3D {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function onDocumentLoadSuccess(doc, eleOption) {
 | 
					function onDocumentLoadSuccess(doc, eleOption) {
 | 
				
			||||||
 | 
					    //取得燈光清單
 | 
				
			||||||
 | 
					    if (lightDataList != undefined && lightDataList != null && lightDataList.length > 0) {
 | 
				
			||||||
 | 
					        lightDataList.forEach((myData, index) => {
 | 
				
			||||||
 | 
					            //if (myData.priority == 5) {
 | 
				
			||||||
 | 
					                const position = JSON.parse(myData.device_node_coordinate_3d);
 | 
				
			||||||
 | 
					                lightList.push({ dbid: myData.forge_dbid, spotLight: newLight(position) });
 | 
				
			||||||
 | 
					            //}
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var viewables = doc.getRoot().getDefaultGeometry();
 | 
					    var viewables = doc.getRoot().getDefaultGeometry();
 | 
				
			||||||
    viewer.loadDocumentNode(doc, viewables).then(i => {
 | 
					    viewer.loadDocumentNode(doc, viewables).then(i => {
 | 
				
			||||||
        // documented loaded, any action?
 | 
					        // documented loaded, any action?
 | 
				
			||||||
@ -323,6 +335,7 @@ function onDocumentLoadSuccess(doc, eleOption) {
 | 
				
			|||||||
        $(selector).trigger("autodesk:loaded");
 | 
					        $(selector).trigger("autodesk:loaded");
 | 
				
			||||||
        /*});*/
 | 
					        /*});*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
@ -608,35 +621,18 @@ class ADHeatMaps {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//全部物件 透明度: 輸入0:透明;輸入1:不透明
 | 
				
			||||||
function setTransparentBuilding() {
 | 
					function setTransparentBuilding(transparent) {
 | 
				
			||||||
    //allDbIdsStr.forEach((dbId) => {
 | 
					 | 
				
			||||||
    //    setTransparency(dbId, 0.2);
 | 
					 | 
				
			||||||
    //})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        for (var i = 0; i < allDbIdsStr.length; i++) {
 | 
					        for (var i = 0; i < allDbIdsStr.length; i++) {
 | 
				
			||||||
        setTransparency(parseInt(allDbIdsStr[i]), 0.2);
 | 
					            setTransparency(parseInt(allDbIdsStr[i]), transparent);
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function recoverTransparentBuilding() {
 | 
					 | 
				
			||||||
    //allDbIdsStr.forEach((dbId) => {
 | 
					 | 
				
			||||||
    //    setTransparency(dbId, 1);
 | 
					 | 
				
			||||||
    //})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for (var i = 0; i < allDbIdsStr.length; i++) {
 | 
					 | 
				
			||||||
        setTransparency(parseInt(allDbIdsStr[i]), 1);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//設定模型 透明度
 | 
					//設定模型 透明度
 | 
				
			||||||
function setTransparency(nodeId, opacity) {
 | 
					function setTransparency(nodeId, opacity) {
 | 
				
			||||||
    var model = viewer.model;
 | 
					    var model = viewer.model;
 | 
				
			||||||
    //var nodeId = 1633;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    var fragList = viewer.model.getFragmentList();
 | 
					    var fragList = viewer.model.getFragmentList();
 | 
				
			||||||
 | 
					    var fragIds = [];
 | 
				
			||||||
    var fragIds = []
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    model.getData().instanceTree.enumNodeFragments(
 | 
					    model.getData().instanceTree.enumNodeFragments(
 | 
				
			||||||
        nodeId, (fragId) => {
 | 
					        nodeId, (fragId) => {
 | 
				
			||||||
@ -703,6 +699,14 @@ async function addHotPoint(data) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    const style = new DataVizCore.ViewableStyle(viewableType, spriteColor, spriteIcon);
 | 
					    const style = new DataVizCore.ViewableStyle(viewableType, spriteColor, spriteIcon);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //取得燈光清單
 | 
				
			||||||
 | 
					    //if (lightDataList != undefined && lightDataList != null && lightDataList.length > 0) {
 | 
				
			||||||
 | 
					    //    lightDataList.forEach((myData, index) => {
 | 
				
			||||||
 | 
					    //        const position = JSON.parse(myData.device_node_coordinate_3d);
 | 
				
			||||||
 | 
					    //        lightList.push({ dbid: myData.forge_dbid, spotLight: newLight(position) });
 | 
				
			||||||
 | 
					    //    });
 | 
				
			||||||
 | 
					    //}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //熱點 點擊事件註冊
 | 
					    //熱點 點擊事件註冊
 | 
				
			||||||
    viewer.addEventListener(DataVizCore.MOUSE_CLICK, onSpriteClicked);// SPRITE_SELECTED
 | 
					    viewer.addEventListener(DataVizCore.MOUSE_CLICK, onSpriteClicked);// SPRITE_SELECTED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1040,3 +1044,81 @@ function profile() {
 | 
				
			|||||||
    this.viewer.setCutPlanes([upperCutPlaneParam, lowerCutPlaneParam]);
 | 
					    this.viewer.setCutPlanes([upperCutPlaneParam, lowerCutPlaneParam]);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
//----------------- end -----------------------------------------------
 | 
					//----------------- end -----------------------------------------------
 | 
				
			||||||
 | 
					//新增燈光
 | 
				
			||||||
 | 
					async function newLight(lightPosition) {
 | 
				
			||||||
 | 
					    //聚光燈
 | 
				
			||||||
 | 
					    var spotLight = new THREE.SpotLight(0xffffff, 200, 20, 0.6, 0.5, 10);
 | 
				
			||||||
 | 
					    spotLight.position.set(lightPosition.x, lightPosition.y, lightPosition.z);
 | 
				
			||||||
 | 
					    spotLight.castShadow = false;
 | 
				
			||||||
 | 
					    spotLight.visible = true;
 | 
				
			||||||
 | 
					    spotLight.target.position.set(lightPosition.x, lightPosition.y, lightPosition.z-20);
 | 
				
			||||||
 | 
					    viewer.scene.add(spotLight.target);
 | 
				
			||||||
 | 
					    viewer.scene.add(spotLight);
 | 
				
			||||||
 | 
					    viewer.impl.sceneUpdated(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return spotLight;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//調整燈光 強度、顏色
 | 
				
			||||||
 | 
					async function setLightValues(dbid, intensity, color) {
 | 
				
			||||||
 | 
					    for (var i = 0; i < lightList.length; i++) {
 | 
				
			||||||
 | 
					        if (lightList[i].dbid == dbid) {
 | 
				
			||||||
 | 
					            lightList[i].spotLight.intensity = intensity;
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            var tempcolor = new THREE.Color().setHex(color);
 | 
				
			||||||
 | 
					            lightList[i].spotLight.color = tempcolor;
 | 
				
			||||||
 | 
					            viewer.impl.sceneUpdated(true);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//燈光開關
 | 
				
			||||||
 | 
					function setLightOpenOrClose(value, light) {
 | 
				
			||||||
 | 
					    if (value) {
 | 
				
			||||||
 | 
					        light.visible = true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else {
 | 
				
			||||||
 | 
					        light.visible = false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    viewer.impl.sceneUpdated(true);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//透過nodeId,更改物件顏色或顯示與否;color請填寫THREE.Vector4
 | 
				
			||||||
 | 
					function changeColorTransparency(nodeId, color) {//變綠色
 | 
				
			||||||
 | 
					    //var color = new THREE.Vector4(0, 1, 0, 1);//綠色;前三個代表r、g、b; 亦可填入255/255
 | 
				
			||||||
 | 
					    //var color = new THREE.Vector4(0, 1, 0, 0);//不顯示顏色;最後的參數為透明度
 | 
				
			||||||
 | 
					    viewer.setThemingColor(nodeId, color);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//隱藏全物件
 | 
				
			||||||
 | 
					function hideAllObjects() {
 | 
				
			||||||
 | 
					    //viewer.hide(4);//只針對一個物件(dbid為4)做隱藏
 | 
				
			||||||
 | 
					    for (var i = 0; i < allDbIdsStr.length; i++) {
 | 
				
			||||||
 | 
					        viewer.hide(parseInt(allDbIdsStr[i]));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					//顯示全物件
 | 
				
			||||||
 | 
					function showAllObjects() {
 | 
				
			||||||
 | 
					    //viewer.show(4); //只針對一個物件(dbid為4)做顯示
 | 
				
			||||||
 | 
					    for (var i = 0; i < allDbIdsStr.length; i++) {
 | 
				
			||||||
 | 
					        viewer.show(parseInt(allDbIdsStr[i]));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//======================== 外部呼叫function ===========================
 | 
				
			||||||
 | 
					//紀錄熱點座標
 | 
				
			||||||
 | 
					function getHopspotPoint(data) {
 | 
				
			||||||
 | 
					    myDataList = data;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//紀錄燈具座標
 | 
				
			||||||
 | 
					async function getLightData(data) {
 | 
				
			||||||
 | 
					    lightDataList = data;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//呼叫載入熱圖
 | 
				
			||||||
 | 
					async function toLoadHeatmap(roomArr) {
 | 
				
			||||||
 | 
					    const model = viewer.model;
 | 
				
			||||||
 | 
					    loadHeatmaps(model, roomArr);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					//============================= end ===================================
 | 
				
			||||||
							
								
								
									
										32
									
								
								Frontend/js/n4js/accmanbaja.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								Frontend/js/n4js/accmanbaja.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					function getUserByBaja(callback) {
 | 
				
			||||||
 | 
						var _result = "";
 | 
				
			||||||
 | 
						var _ss = "";
 | 
				
			||||||
 | 
						var _index = 0;
 | 
				
			||||||
 | 
						var syncAcc = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						require(['baja!'], function (baja) {
 | 
				
			||||||
 | 
							baja.Ord.make("local:|foxs:|station:|slot:/Services/UserService|bql:select * from baja:User where enabled = 'true' and toString != 'defaultPrototype'").get()
 | 
				
			||||||
 | 
								.then(function (table) {
 | 
				
			||||||
 | 
									table.cursor({
 | 
				
			||||||
 | 
										each: function (item) {
 | 
				
			||||||
 | 
											if (_index == 0)
 | 
				
			||||||
 | 
												_ss += '{"Account": "' + item.$map.$map.toString.$display + '"}';
 | 
				
			||||||
 | 
											else
 | 
				
			||||||
 | 
												_ss += ',{"Account": "' + item.$map.$map.toString.$display + '"}';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											_index++;
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										after: function () {
 | 
				
			||||||
 | 
											_result += '{' + '"count": ' + _index + ', "data":[';
 | 
				
			||||||
 | 
											_result += _ss;
 | 
				
			||||||
 | 
											_result += ']}';
 | 
				
			||||||
 | 
											if (typeof callback === 'function') {
 | 
				
			||||||
 | 
												callback(_result);
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										limit: -1,
 | 
				
			||||||
 | 
										offset: 0
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -27,7 +27,7 @@
 | 
				
			|||||||
    <div class="blankpage-form-field">
 | 
					    <div class="blankpage-form-field">
 | 
				
			||||||
        <div class="page-logo m-0 w-100 align-items-center justify-content-center rounded border-bottom-left-radius-0 border-bottom-right-radius-0 px-4">
 | 
					        <div class="page-logo m-0 w-100 align-items-center justify-content-center rounded border-bottom-left-radius-0 border-bottom-right-radius-0 px-4">
 | 
				
			||||||
            <div class="page-logo-link press-scale-down d-flex align-items-center">
 | 
					            <div class="page-logo-link press-scale-down d-flex align-items-center">
 | 
				
			||||||
                <img src="img/logo.png" aria-roledescription="logo">
 | 
					                <img name="webLogo" src="img/logo.png" aria-roledescription="logo">
 | 
				
			||||||
                <span class="page-logo-text mr-1">全方位監控系統</span>
 | 
					                <span class="page-logo-text mr-1">全方位監控系統</span>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
@ -198,8 +198,9 @@
 | 
				
			|||||||
            e.preventDefault();
 | 
					            e.preventDefault();
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      
 | 
					        getLogo();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function Login(account, e) {
 | 
					    function Login(account, e) {
 | 
				
			||||||
        cookies = new YourTeam.Utility.Cookie();
 | 
					        cookies = new YourTeam.Utility.Cookie();
 | 
				
			||||||
        e ? e.preventDefault() : "";
 | 
					        e ? e.preventDefault() : "";
 | 
				
			||||||
@ -244,6 +245,17 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function getLogo() {
 | 
				
			||||||
 | 
					        $.ajax({
 | 
				
			||||||
 | 
					            method: "post",
 | 
				
			||||||
 | 
					            url: 'api/GetLogo',
 | 
				
			||||||
 | 
					            async: false,
 | 
				
			||||||
 | 
					            success: function (rel) {
 | 
				
			||||||
 | 
					                $('[name=webLogo]').attr('src', 'img/' + rel);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script type="text/javascript">
 | 
					<script type="text/javascript">
 | 
				
			||||||
 | 
				
			|||||||
@ -711,6 +711,37 @@ namespace FrontendWebApi.ApiControllers
 | 
				
			|||||||
            return Ok(apiResult);
 | 
					            return Ok(apiResult);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [HttpPost]
 | 
				
			||||||
 | 
					        [Route("api/GetDevNodeForCor")]
 | 
				
			||||||
 | 
					        public async Task<ActionResult<List<DevNodeForCor>>> GetDevNodeForCor([FromBody] Device p)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            ApiResult<List<DevNodeForCor>> apiResult = new ApiResult<List<DevNodeForCor>>();
 | 
				
			||||||
 | 
					            List<DevNodeForCor> device = new List<DevNodeForCor>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            try
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                apiResult.Code = "0001";
 | 
				
			||||||
 | 
					                if (p != null )
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    if (p.device_system_tag == "LT" && p.device_name_tag == "L1")
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        var d = await backendRepository.GetAllAsync<DevNodeForCor>($@"select device_guid,priority,device_node_coordinate_3d,forge_dbid from device_node where deleted = 0");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        apiResult.Data = d;
 | 
				
			||||||
 | 
					                        apiResult.Code = "0000";
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch (Exception exception)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                apiResult.Code = "9999";
 | 
				
			||||||
 | 
					                apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
 | 
				
			||||||
 | 
					                Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
 | 
				
			||||||
 | 
					                return Ok(apiResult);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            return Ok(apiResult);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 燈控排程列表
 | 
					        /// 燈控排程列表
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
 | 
				
			|||||||
@ -915,5 +915,60 @@ namespace FrontendWebApi.ApiControllers
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
            return Ok(apiResult);
 | 
					            return Ok(apiResult);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [HttpPost]
 | 
				
			||||||
 | 
					        public async Task<ActionResult<ApiResult<string>>> SyncUser([FromBody] List<SaveUserManager> post)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            ApiResult<string> apiResult = new ApiResult<string>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            try
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                await backendRepository.ExecuteSql("update userinfo deleted = 1 where deleted = 0");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (post != null)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    if (post.Count > 0)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        foreach(var acc in post)
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                            var account = await frontendRepository.GetOneAsync<UserManagerList>("select * from userinfo where account = @account", new { @account = acc.Account });
 | 
				
			||||||
 | 
					                            if (account != null)
 | 
				
			||||||
 | 
					                            {
 | 
				
			||||||
 | 
					                                await backendRepository.ExecuteSql("update userinfo set deleted = 0 where userinfo_guid = @guid", new { @guid = account.Userinfo_guid });
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                            else
 | 
				
			||||||
 | 
					                            {
 | 
				
			||||||
 | 
					                                //產生一組GUID
 | 
				
			||||||
 | 
					                                var guid = Guid.NewGuid();  //角色GUID
 | 
				
			||||||
 | 
					                                Dictionary<string, object> user = new Dictionary<string, object>();
 | 
				
			||||||
 | 
					                                user = new Dictionary<string, object>()
 | 
				
			||||||
 | 
					                                {
 | 
				
			||||||
 | 
					                                    { "@userinfo_guid", guid},
 | 
				
			||||||
 | 
					                                    { "@full_name", acc.Account},
 | 
				
			||||||
 | 
					                                    { "@account", acc.Account},
 | 
				
			||||||
 | 
					                                    { "@role_guid", "F127F501-A7BB-4C46-AB82-0809C1C8D2C1"},
 | 
				
			||||||
 | 
					                                    { "@created_by", myUser.userinfo_guid},
 | 
				
			||||||
 | 
					                                    { "@created_at", DateTime.Now}
 | 
				
			||||||
 | 
					                                };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                await backendRepository.AddOneByCustomTable(user, "userinfo");
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                apiResult.Code = "0000";
 | 
				
			||||||
 | 
					                apiResult.Data = "同步成功";
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch (Exception exception)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                apiResult.Code = "9999";
 | 
				
			||||||
 | 
					                apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
 | 
				
			||||||
 | 
					                Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
 | 
				
			||||||
 | 
					                return Ok(apiResult);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return Ok(apiResult);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -155,5 +155,28 @@ namespace FrontendWebApi.ApiControllers
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            return apiResult;
 | 
					            return apiResult;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [HttpPost]
 | 
				
			||||||
 | 
					        [Route("api/GetLogo")]
 | 
				
			||||||
 | 
					        public async Task<ApiResult<string>> GetLogo()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            ApiResult<string> apiResult = new ApiResult<string>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            try
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                var sqlString = $@"select system_type from variable where system_type = 'logo'";
 | 
				
			||||||
 | 
					                var data = await backendRepository.GetOneAsync<string>(sqlString);
 | 
				
			||||||
 | 
					                apiResult.Code = "0000";
 | 
				
			||||||
 | 
					                apiResult.Data = data;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch (Exception exception)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                apiResult.Code = "9999";
 | 
				
			||||||
 | 
					                apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
 | 
				
			||||||
 | 
					                Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return apiResult;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -133,4 +133,12 @@ namespace FrontendWebApi.Models
 | 
				
			|||||||
        public string device_coordinate_3d { get; set; }
 | 
					        public string device_coordinate_3d { get; set; }
 | 
				
			||||||
        public int? forge_dbid { get; set; }
 | 
					        public int? forge_dbid { get; set; }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public class DevNodeForCor
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public string device_guid { get; set; }
 | 
				
			||||||
 | 
					        public int priority { get; set; }
 | 
				
			||||||
 | 
					        public string device_node_coordinate_3d { get; set; }
 | 
				
			||||||
 | 
					        public int? forge_dbid { get; set; }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user