[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