318 lines
12 KiB
JavaScript
318 lines
12 KiB
JavaScript
|
// Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
|
|||
|
// for details on configuring this project to bundle and minify static web assets.
|
|||
|
|
|||
|
// Write your JavaScript code.
|
|||
|
|
|||
|
//#region dataTable 預設
|
|||
|
$(function () {
|
|||
|
$.extend(true, $.fn.dataTable.defaults, {
|
|||
|
"paging": true,
|
|||
|
"lengthChange": false,
|
|||
|
"searching": false,
|
|||
|
"ordering": true,
|
|||
|
"info": true,
|
|||
|
"autoWidth": false,
|
|||
|
"responsive": true,
|
|||
|
"language": {
|
|||
|
"emptyTable": "無資料...",
|
|||
|
"processing": "處理中...",
|
|||
|
"loadingRecords": "載入中...",
|
|||
|
"lengthMenu": "顯示 _MENU_ 項結果",
|
|||
|
"zeroRecords": "沒有符合的結果",
|
|||
|
"info": "顯示第 _START_ 至 _END_ 項結果,共 _TOTAL_ 項",
|
|||
|
"infoEmpty": "顯示第 0 至 0 項結果,共 0 項",
|
|||
|
"infoFiltered": "(從 _MAX_ 項結果中過濾)",
|
|||
|
"infoPostFix": "",
|
|||
|
"search": "搜尋:",
|
|||
|
"paginate": {
|
|||
|
"first": "第一頁",
|
|||
|
"previous": "上一頁",
|
|||
|
"next": "下一頁",
|
|||
|
"last": "最後一頁"
|
|||
|
},
|
|||
|
"aria": {
|
|||
|
"sortAscending": ": 升冪排列",
|
|||
|
"sortDescending": ": 降冪排列"
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
//驗證是否為空白
|
|||
|
jQuery.validator.addMethod("filterspace", function (value, element) {
|
|||
|
var str = value;
|
|||
|
var result = false;
|
|||
|
if (str.length > 0) {
|
|||
|
if ($.trim(str) != '') {
|
|||
|
result = true;
|
|||
|
}
|
|||
|
else {
|
|||
|
result = false;
|
|||
|
}
|
|||
|
}
|
|||
|
return result;
|
|||
|
}, "不可填入空白");
|
|||
|
});
|
|||
|
//#endregion
|
|||
|
|
|||
|
$(function () {
|
|||
|
|
|||
|
$.ajaxSetup({
|
|||
|
//headers: {
|
|||
|
// Authorization: 'Basic ' + localStorage.getItem('JWT-Authorization'),
|
|||
|
// 'Access-Control-Allow-Origin': "*"
|
|||
|
//},
|
|||
|
beforeSend: function (xhr) {
|
|||
|
xhr.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem('JWT-Authorization'));
|
|||
|
},
|
|||
|
xhrFields: {
|
|||
|
withCredentials: true
|
|||
|
},
|
|||
|
//contentType: "application/json; charset=utf-8",
|
|||
|
//完成请求后触发。即在success或error触发后触发
|
|||
|
complete: function (XMLHttpRequest, status) {
|
|||
|
if ('400' == XMLHttpRequest.status) {
|
|||
|
window.location.href = "/Login/Index";
|
|||
|
}
|
|||
|
},
|
|||
|
//})
|
|||
|
});
|
|||
|
var top_menu;
|
|||
|
function GetMenu(baseApiUrl) {
|
|||
|
var url = baseApiUrl + 'api/GetMenu';
|
|||
|
$.ajax({
|
|||
|
type: "POST",
|
|||
|
url: url,
|
|||
|
data: null,
|
|||
|
success: function (rel) {
|
|||
|
//rel = JSON.stringify(rel);
|
|||
|
if (rel.code != "0000") {
|
|||
|
if (rel.code == "9999") {
|
|||
|
toast_error(rel.msg);
|
|||
|
}
|
|||
|
else {
|
|||
|
toast_warning(rel.msg);
|
|||
|
}
|
|||
|
return;
|
|||
|
}
|
|||
|
else {
|
|||
|
top_menu = rel;
|
|||
|
//console.log(top_menu);
|
|||
|
$('.search > .nav').empty();
|
|||
|
top_menu.data.forEach(function (building_item) {
|
|||
|
|
|||
|
var html = `<li class="nav-item hidden-sm-down mx-30">
|
|||
|
<a class="nav-link icon wb-order" onclick="ChangeSideMenu('${building_item.building_guid}',this)" role="button">
|
|||
|
<i class="fal fa-building"></i>
|
|||
|
<span>${building_item.full_name}</span>
|
|||
|
</a>
|
|||
|
</li>`
|
|||
|
|
|||
|
$('.search > .nav').append(html);
|
|||
|
|
|||
|
});
|
|||
|
$('.search > .nav').append(`<li class="nav-item hidden-sm-down mx-30">
|
|||
|
<a class="nav-link icon wb-order" href="#" role="button">
|
|||
|
<i class="fal fa-bell"></i>
|
|||
|
<span> 緊急應變</span>
|
|||
|
</a>
|
|||
|
</li>`);
|
|||
|
}
|
|||
|
|
|||
|
if (rel.str_jwt != null) {
|
|||
|
localStorage.setItem('JWT-Authorization', rel.str_jwt);
|
|||
|
}
|
|||
|
},
|
|||
|
error: function (xhr, textStatus, thrownError) {
|
|||
|
alert(textStatus);
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//var fileReader = new FileReader();
|
|||
|
|
|||
|
|
|||
|
//let json = JSON.stringify();
|
|||
|
|
|||
|
//const blob = new Blob("response.json", { type: "application/json" });
|
|||
|
|
|||
|
//fileReader.readAsText(blob);
|
|||
|
|
|||
|
//fileReader.onload = function () {
|
|||
|
// console.log("讀取結果:", this.result);//當讀取完成之後會回撥這個函式,然後此時檔案的內容儲存到了result中。直接操作即可。
|
|||
|
|
|||
|
// console.log("讀取結果轉為JSON:");
|
|||
|
// let json = JSON.parse(this.result);
|
|||
|
// console.log(json.name);
|
|||
|
// console.log(json.age);
|
|||
|
//}
|
|||
|
|
|||
|
function readTextFile(file, callback) {
|
|||
|
var rawFile = new XMLHttpRequest();
|
|||
|
rawFile.overrideMimeType("application/json");
|
|||
|
rawFile.open("GET", file, true);
|
|||
|
rawFile.onreadystatechange = function () {
|
|||
|
if (rawFile.readyState === 4 && rawFile.status == "200") {
|
|||
|
callback(rawFile.responseText);
|
|||
|
}
|
|||
|
}
|
|||
|
rawFile.send(null);
|
|||
|
}
|
|||
|
|
|||
|
//usage:
|
|||
|
//readTextFile("/js/response.json", function (text) {
|
|||
|
// top_menu = JSON.parse(text);
|
|||
|
// console.log(top_menu);
|
|||
|
|
|||
|
// $('.search > .nav').empty();
|
|||
|
// top_menu.data.forEach(function (building_item) {
|
|||
|
|
|||
|
// var html = `<li class="nav-item hidden-sm-down mx-30">
|
|||
|
// <a class="nav-link icon wb-order" onclick="ChangeSideMenu('${building_item.building_guid}')" role="button">
|
|||
|
// <i class="fal fa-building"></i>
|
|||
|
// <span>${building_item.full_name}</span>
|
|||
|
// </a>
|
|||
|
// </li>`
|
|||
|
|
|||
|
// // $('.search > .nav').append(html);
|
|||
|
|
|||
|
// });
|
|||
|
|
|||
|
// $('.search > .nav').append(`<li class="nav-item hidden-sm-down mx-30">
|
|||
|
// <a class="nav-link icon wb-order" href="#" role="button">
|
|||
|
// <i class="fal fa-bell"></i>
|
|||
|
// <span> 緊急應變</span>
|
|||
|
// </a>
|
|||
|
// </li>`);
|
|||
|
// });
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//}
|
|||
|
var selected_building;
|
|||
|
function ChangeSideMenu(building_guid,e) {
|
|||
|
selected_building = top_menu.data.filter(building => building.building_guid == building_guid)[0];
|
|||
|
$('.search > .nav').find('.nav-item').removeClass('active');
|
|||
|
$(e).parent('li').addClass("active");
|
|||
|
$('#js-nav-menu').navigationDestroy();
|
|||
|
$('#js-nav-menu').empty();
|
|||
|
selected_building.main_system.forEach(function (main_system_item) {
|
|||
|
|
|||
|
var sub_html = '';
|
|||
|
main_system_item.sub_system.forEach(function (sub_system_item) {
|
|||
|
sub_html += `<li onclick="GetsubtoFloor('${sub_system_item.sub_system_guid}',this)">
|
|||
|
<a href="javascript:void(0);" title="${sub_system_item.full_name}" data-filter-tags="utilities disabled item" >
|
|||
|
<span class="nav-link-text" data-i18n="nav.utilities_disabled_item">${sub_system_item.full_name}</span>
|
|||
|
</a>
|
|||
|
</li>`;
|
|||
|
|
|||
|
});
|
|||
|
|
|||
|
var html = `<li onclick = "GetmaintoSub('${main_system_item.main_system_guid}')">
|
|||
|
<a href="javascript:void(0);" title="${main_system_item.full_name}" data-filter-tags="category" style="background: #B28F01;">
|
|||
|
<i class="fal fa-bolt"></i>
|
|||
|
<span class="nav-link-text" data-i18n="nav.category">${main_system_item.full_name}</span>
|
|||
|
</a>
|
|||
|
<ul>
|
|||
|
${sub_html}
|
|||
|
</ul>
|
|||
|
</li>`;
|
|||
|
$('#js-nav-menu').append(html);
|
|||
|
});
|
|||
|
|
|||
|
$('#js-nav-menu').append(`<li><hr class="mx-4" style="border-bottom: 1px solid #fff;"></li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="javascript:void(0);" title="告警記錄" data-filter-tags="blank page">
|
|||
|
<i class="fal fa-alarm-snooze"></i>
|
|||
|
<span class="nav-link-text" data-i18n="nav.blankpage">告警記錄</span>
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="javascript:void(0);" title="歷史數據" data-filter-tags="blank page">
|
|||
|
<i class="fal fa-history"></i>
|
|||
|
<span class="nav-link-text" data-i18n="nav.blankpage">歷史數據</span>
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="javascript:void(0);" title="報表下載" data-filter-tags="blank page">
|
|||
|
<i class="fal fa-download"></i>
|
|||
|
<span class="nav-link-text" data-i18n="nav.blankpage">報表下載</span>
|
|||
|
</a>
|
|||
|
</li>
|
|||
|
|
|||
|
<li>
|
|||
|
<a href="javascript:void(0);" title="操作記錄" data-filter-tags="blank page">
|
|||
|
<i class="fal fa-record-vinyl"></i>
|
|||
|
<span class="nav-link-text" data-i18n="nav.blankpage">操作記錄</span>
|
|||
|
</a>
|
|||
|
</li>`);
|
|||
|
|
|||
|
|
|||
|
$('#js-nav-menu').navigation({
|
|||
|
accordion: myapp_config.navAccordion,
|
|||
|
speed: myapp_config.navSpeed,
|
|||
|
closedSign: '<em class="' + myapp_config.navClosedSign + '"></em>',
|
|||
|
openedSign: '<em class="' + myapp_config.navOpenedSign + '"></em>',
|
|||
|
initClass: myapp_config.navInitalized
|
|||
|
});
|
|||
|
|
|||
|
}
|
|||
|
var selected_mainsystem;
|
|||
|
function GetmaintoSub(main) {
|
|||
|
selected_mainsystem = selected_building.main_system.filter(mainsystem => mainsystem.main_system_guid == main)[0];
|
|||
|
|
|||
|
//console.log(selected_mainsystem);
|
|||
|
}
|
|||
|
|
|||
|
var selected_subsystem;
|
|||
|
function GetsubtoFloor(subsystem, e) {
|
|||
|
$(e).parent().parent().parent().find('.active').removeClass('active');
|
|||
|
$(e).parents('li').addClass('active');
|
|||
|
$(e).addClass('active');
|
|||
|
selected_subsystem = selected_mainsystem.sub_system.filter(sub_system => sub_system.sub_system_guid == subsystem)[0];
|
|||
|
//console.log(selected_subsystem);
|
|||
|
var floor_html = '';
|
|||
|
$('#navbarColor02').empty();
|
|||
|
if (selected_subsystem.drawing != 1) {
|
|||
|
floor_html += `<li class="nav-item mr-3 active">
|
|||
|
<a class="nav-link" href="#"><i class="fal fa-bookmark"></i> 總覽 <span class="sr-only">(current)</span></a>
|
|||
|
</li>`;
|
|||
|
}
|
|||
|
if (selected_subsystem.floors.length > 0) {
|
|||
|
if (selected_subsystem.planimetric_click == 1) {
|
|||
|
selected_subsystem.floors.forEach(function (floor_item) {
|
|||
|
if (selected_subsystem.drawing == 1) {
|
|||
|
if (selected_subsystem.planimetric_floor_guid == floor_item.floor_guid) {
|
|||
|
floor_html += `<li class="nav-item mr-3 active" >
|
|||
|
<a class="nav-link" href="javascript:void(0);" ><i class="fal fa-bookmark"></i> ${floor_item.full_name}</a>
|
|||
|
</li>`;
|
|||
|
} else {
|
|||
|
floor_html += `<li class="nav-item mr-3">
|
|||
|
<a class="nav-link" href="javascript:void(0);"><i class="fal fa-bookmark"></i> ${floor_item.full_name}</a>
|
|||
|
</li>`;
|
|||
|
}
|
|||
|
|
|||
|
} else {
|
|||
|
floor_html += `<li class="nav-item mr-3">
|
|||
|
<a class="nav-link" href="javascript:void(0);" onclick="GetFloortoDrawing()"><i class="fal fa-bookmark"></i> ${floor_item.full_name}</a>
|
|||
|
</li>`;
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
var htnl = `
|
|||
|
<ul class="navbar-nav mr-auto pl-4" id="navbarColor02_child">
|
|||
|
${floor_html}
|
|||
|
</ul>`;
|
|||
|
$('#navbarColor02').append(htnl);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
function GetFloortoDrawing(floorguid,e) {
|
|||
|
|
|||
|
}
|