1034 lines
40 KiB
JavaScript
1034 lines
40 KiB
JavaScript
var buildtofloor;
|
|
var AllFloorsBool = false;//全選按鈕狀態
|
|
//var Disaster;
|
|
var selectdisaster;//選擇的防災
|
|
var selectbuilding;//選擇的棟別
|
|
var SelectFloorArray = new Array(0);//選擇的樓層
|
|
var AllSelectFloorArray = new Array(0);//全選的樓層
|
|
var SelectAlarm = false;
|
|
var table;
|
|
var reldata;
|
|
// = JSON.parse(localStorage.getItem('emergency_alarm_device_number'));
|
|
var Allgroupidlist = new Array(0);
|
|
var Allgroupingbool = false;
|
|
var EmergencyContact;
|
|
var EmerNowsetting;
|
|
var Historytable;
|
|
var SimulationExerciseGuid;
|
|
var SelectMemberDepart = new Array(0);
|
|
var de_number;
|
|
var current_devices = new Array(0);
|
|
|
|
var GetDeviceGroupResult;//Api打回來的結果
|
|
var GetBuildings;//Building
|
|
var GetFloors;
|
|
var Setsystem = new Array(0);
|
|
var SetLayer3 = new Array(0);
|
|
var Selectsys;//選擇的大類
|
|
var SelectLayer3;//選擇的小類
|
|
var newdata = new Array(0);
|
|
var datatable;
|
|
var myBaja;
|
|
$(function () {
|
|
//myBaja = new MyBaja();
|
|
//myBaja.setMyUserAccount(myUser);
|
|
//myBaja.setEmergencyCallBack(calljson);
|
|
setInterval(function () { makeTable() }, 3000);
|
|
$('#mainTitle').html('<div class="subheader">'+'<h1 class="subheader-title"><span class="fal fa-bell mr-1"></span> 緊急應變 - 設備總覽</h1> </div>' );
|
|
//棟別
|
|
$.ajax({
|
|
url: baseApiUrl + 'api/EmergencyDevice/GetDeviceGroup',
|
|
data: "",
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
success: function (rel, statut) {
|
|
console.log(rel);
|
|
GetDeviceGroupResult = rel.data;
|
|
$('#disaster').empty();
|
|
var html = "防災類別 ";
|
|
GetDeviceGroupResult.forEach(function (element, i) {
|
|
if (i == 0) {
|
|
html += '<button type="button" class="btn btn-success ml-2" onclick="SelectDisaster(' + element.value + ',this)">' + element.name + '</button>';
|
|
}
|
|
else {
|
|
html += '<button type="button" class="btn btn-secondary ml-2" onclick="SelectDisaster(' + element.value + ',this)">' + element.name + '</button>';
|
|
}
|
|
})
|
|
html += '<button type="button" class="btn btn-secondary ml-auto" onclick="OnSimulationExercise(``,1)">' + '模擬演練' + '</button>';
|
|
$('#disaster').append(html);
|
|
$('#disaster').find('.btn-success').click();
|
|
|
|
}
|
|
});
|
|
})
|
|
|
|
function myUser(account){
|
|
|
|
}
|
|
|
|
|
|
|
|
function calljson(jsonlist = [] ) {
|
|
// json = new Array(0);
|
|
// json = JSON.parse(localStorage.getItem('emergency_alarm_device_number'));
|
|
json = jsonlist;
|
|
console.log(jsonlist);
|
|
makeTable();
|
|
}
|
|
|
|
function EmergencyContact() {
|
|
var send_data = {
|
|
selectgroupidlist: SelectMemberDepart
|
|
};
|
|
$.ajax({
|
|
url: baseApiUrl + "api/EmergencyDevice/EmergencyContactTable",
|
|
data: send_data,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
success: function (rel, statut) {
|
|
if (rel.code == "9999") {
|
|
console.log(rel.msg);
|
|
return;
|
|
}
|
|
var data = rel.data.data;
|
|
if (data == null || data.length == 0) {
|
|
data = [];
|
|
}
|
|
var tablehtml = "";
|
|
tablehtml += '<table class="table table-bordered m-0" id="membertable">';
|
|
tablehtml += '<thead class="thead-themed">';
|
|
tablehtml += '<tr>';
|
|
tablehtml += '<th>姓名</th><th>部門</th><th>電話</th><th>LineID</th><th>Email</th></tr></thead><tbody></tbody></table>';
|
|
console.log(data);
|
|
|
|
|
|
|
|
$('#membertablediv').empty();
|
|
$('#membertablediv').append(tablehtml);
|
|
var newda = new Array(0);
|
|
data.forEach(function (element, i) {
|
|
var newoneda = new Array(0);
|
|
newoneda.push(element.full_name);
|
|
newoneda.push(element.departmentName);
|
|
newoneda.push(element.phone);
|
|
newoneda.push(element.lineid);
|
|
newoneda.push(element.email);
|
|
newda.push(newoneda);
|
|
})
|
|
var membertable = new simpleDatatables.DataTable('#membertable', {
|
|
searchable: false,
|
|
perPage: 5,
|
|
data: {
|
|
"data": newda
|
|
}
|
|
});
|
|
$('#membertablediv').parent().parent().find('.dataTable-top').empty();
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
//取樓層
|
|
function SetFloors(buildguid, e) {
|
|
selectbuilding = buildguid
|
|
AllFloorsBool = false;
|
|
SelectFloorArray = [];
|
|
AllSelectFloorArray = [];
|
|
$(e).parent().find('.btn-success').removeClass('btn-success').addClass('btn-secondary');
|
|
$(e).removeClass('btn-secondary').addClass('btn-success');
|
|
|
|
$('#floors').empty();
|
|
var html = "樓層 ";
|
|
html += '<button type="button" class="btn btn-secondary ml-2 allbutton" onclick="AllFloors()">全選</button>';
|
|
html += '<div class="col-10 pl-2">';
|
|
console.log(GetBuildings);
|
|
GetBuildings.groupBuildings.filter(function (n, i) {
|
|
if (String(n.guid) === String(buildguid)) {
|
|
GetFloors = n;
|
|
//GetBuildings = n;
|
|
n.groupFloors.forEach(function (element, i) {
|
|
AllSelectFloorArray.push(element.guid);
|
|
html += '<button type="button" class="col-1 btn btn-outline-success ml-2 mb-2" onclick="SelectFloors(\'' + element.guid + '\',this)">' + element.name + '</button>';
|
|
});
|
|
}
|
|
});
|
|
html += '</div >';
|
|
$('#floors').append(html);
|
|
$('#floors').find('.allbutton').click();
|
|
|
|
//table.ajax.reload();
|
|
}
|
|
|
|
function HistoryTable() {
|
|
var send_data = {
|
|
eventguid: SimulationExerciseGuid
|
|
};
|
|
$.ajax({
|
|
url: baseApiUrl + "api/EmergencyDevice/Dohistorytotable",
|
|
data: send_data,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
success: function (rel, statut) {
|
|
if (rel.code == "9999") {
|
|
console.log(rel.msg);
|
|
return;
|
|
}
|
|
var data = rel.data.data;
|
|
if (data == null || data.length == 0) {
|
|
data = [];
|
|
} else {
|
|
$.each(data, function (index, value) {
|
|
if (value.finished == 0) {
|
|
value.finished = "未執行";
|
|
} else if (value.finished == 1) {
|
|
value.finished = "完成";
|
|
} else if (value.finished == 2) {
|
|
value.finished = "不執行";
|
|
if (value.reason != null) {
|
|
value.finished += "-" + value.reason;
|
|
}
|
|
}
|
|
if (value.updated_at == "0001-01-01 00:00:00") {
|
|
value.updated_at = "";
|
|
}
|
|
|
|
})
|
|
};
|
|
var tablehtml = "";
|
|
tablehtml += '<table class="table table-bordered m-0" id="dohistorytable">';
|
|
tablehtml += '<thead class="thead-themed">';
|
|
tablehtml += '<tr>';
|
|
tablehtml += '<th>項目</th><th>步驟</th><th>結果</th><th>時間</th></tr></thead><tbody></tbody></table>';
|
|
|
|
|
|
|
|
$('#dohistorytablediv').empty();
|
|
$('#dohistorytablediv').append(tablehtml);
|
|
var newda = new Array(0);
|
|
data.forEach(function (element, i) {
|
|
var newoneda = new Array(0);
|
|
newoneda.push(element.big_setting);
|
|
newoneda.push(element.step_setting);
|
|
newoneda.push(element.finished);
|
|
newoneda.push(element.updated_at);
|
|
newda.push(newoneda);
|
|
})
|
|
var hisdatatable = new simpleDatatables.DataTable('#dohistorytable', {
|
|
searchable: false,
|
|
perPage: 5,
|
|
columns: [{
|
|
select: 3,
|
|
sort: "desc",
|
|
}],
|
|
data: {
|
|
"data": newda
|
|
}
|
|
});
|
|
$('#dohistorytablediv').parent().parent().find('.dataTable-top').empty();
|
|
}
|
|
});
|
|
|
|
}
|
|
//樓層全選
|
|
function AllFloors() {
|
|
newdata = new Array(0);
|
|
if (AllFloorsBool) {
|
|
$('#floors').find('.btn-success').removeClass('btn-success').addClass('btn-outline-success');
|
|
SelectFloorArray = [];
|
|
AllFloorsBool = false;
|
|
}
|
|
else {
|
|
$('#floors').find('.btn-outline-success').removeClass('btn-outline-success').addClass('btn-success');
|
|
SelectFloorArray = AllSelectFloorArray;
|
|
AllFloorsBool = true;
|
|
}
|
|
Devicetable();
|
|
FloortoMakeSys();
|
|
//table.ajax.reload();
|
|
}
|
|
//選擇災害
|
|
function SelectDisaster(disaster, e) {
|
|
$(e).parent().find('.btn-success').removeClass('btn-success').addClass('btn-secondary');
|
|
$(e).removeClass('btn-secondary').addClass('btn-success');
|
|
selectdisaster = disaster;
|
|
$('#building').empty();
|
|
var html = "棟別 ";
|
|
GetDeviceGroupResult.filter(function (n, i) {
|
|
if (String(n.value) === String(disaster)) {
|
|
GetBuildings = n;
|
|
n.groupBuildings.forEach(function (element, i) {
|
|
if (i == 0) {
|
|
html += '<button type="button" class="btn btn-success ml-2" onclick="SetFloors(\'' + element.guid + '\',this)">' + element.name + '</button>';
|
|
} else {
|
|
html += '<button type="button" class="btn btn-secondary ml-2 " onclick="SetFloors(\'' + element.guid + '\',this)">' + element.name + '</button>';
|
|
}
|
|
});
|
|
}
|
|
});
|
|
$('#building').append(html);
|
|
$('#building').find('.btn-success').click();
|
|
|
|
|
|
|
|
//table.ajax.reload();
|
|
}
|
|
//選擇樓層
|
|
function SelectFloors(floorguid, e) {
|
|
newdata = new Array(0);
|
|
if ($(e).hasClass("btn-outline-success")) {
|
|
$(e).removeClass("btn-outline-success").addClass("btn-success");
|
|
SelectFloorArray.push(floorguid);
|
|
} else if ($(e).hasClass("btn-success")) {
|
|
$(e).removeClass("btn-success").addClass("btn-outline-success");
|
|
var a = SelectFloorArray.filter(function (n, i) {
|
|
if (n === floorguid) {
|
|
SelectFloorArray.splice(i, 1);
|
|
}
|
|
});
|
|
}
|
|
Devicetable();
|
|
|
|
FloortoMakeSys();
|
|
|
|
//table.ajax.reload();
|
|
}
|
|
|
|
function FloortoMakeSys() {
|
|
Setsystem = [];
|
|
$('#system').empty();
|
|
$('#layer3').empty();
|
|
var html = "設備小類 ";
|
|
$('#layer3').append(html);
|
|
html = "設備大類 ";
|
|
html += '<a href="javascript:void(0);" onclick="GetAlarm(this)">'
|
|
html += '<div class="btn-group mb-2 mr-2">';
|
|
html += '<button type="button" class="btn btn-success ml-2 " >報警設備</button>';
|
|
html += '<button type="button" class="btn btn-success edit jsonlenght" >0</button>';
|
|
html += '</div>';
|
|
html += '</a>';
|
|
SelectFloorArray.forEach(function (element, i) {
|
|
GetFloors.groupFloors.filter(function (n, fi) {
|
|
if (String(element) === String(n.guid)) {
|
|
|
|
n.groupLayer2s.forEach(function (elements, is) {
|
|
var count = 0;
|
|
elements.groupLayer3s.forEach(function name(el, index) {
|
|
count += el.device_amount;
|
|
})
|
|
var onesys =
|
|
{
|
|
name: elements.name,
|
|
value: elements.value,
|
|
count: count
|
|
};
|
|
var booly = true;
|
|
Setsystem.findIndex(function ($el) {
|
|
if (onesys.value === $el.value) {
|
|
$el.count += onesys.count
|
|
booly = false;
|
|
|
|
}
|
|
})
|
|
if (booly) {
|
|
Setsystem.push(onesys);
|
|
}
|
|
});
|
|
};
|
|
|
|
|
|
})
|
|
})
|
|
Setsystem.forEach(function (element, i) {
|
|
if (i == 0) {
|
|
html += '<a href="javascript:void(0);" onclick="Setlayer3(\'' + element.value + '\',this)">'
|
|
html += '<div class="btn-group mb-2 mr-2">';
|
|
html += '<button type="button" class="btn btn-success ml-2 btfirst" >' + element.name + '</button>';
|
|
html += '<button type="button" class="btn btn-success edit" >' + element.count + '</button>';
|
|
html += '</div>';
|
|
html += '</a>';
|
|
}
|
|
else {
|
|
html += '<a href="javascript:void(0);" onclick="Setlayer3(\'' + element.value + '\',this)">'
|
|
html += '<div class="btn-group mb-2 mr-2">';
|
|
html += '<button type="button" class="btn btn-secondary ml-2 " >' + element.name + '</button>';
|
|
html += '<button type="button" class="btn btn-secondary edit" >' + element.count + '</button>';
|
|
html += '</div>';
|
|
html += '</a>';
|
|
}
|
|
});
|
|
|
|
$('#system').append(html);
|
|
$('#system').find('.btfirst').first().parent().parent().click();
|
|
}
|
|
|
|
function Setlayer3(systemValue, e) {
|
|
Selectsys = systemValue;
|
|
$(e).parent().find('.btn-success').removeClass('btn-success').addClass('btn-secondary');
|
|
$(e).find('.btn-secondary').removeClass('btn-secondary').addClass('btn-success');
|
|
|
|
|
|
//$(e).find('.btn-secondary').removeClass('btn-success')
|
|
|
|
$('#layer3').empty();
|
|
SetLayer3 = [];
|
|
SelectFloorArray.forEach(function (element, i) {
|
|
GetFloors.groupFloors.filter(function (n, fi) {
|
|
if (String(element) === String(n.guid)) {
|
|
n.groupLayer2s.filter(
|
|
function (el, fi) {
|
|
if (el.value === systemValue) {
|
|
el.groupLayer3s.forEach(function (layer3ele, layerind) {
|
|
var layer3one =
|
|
{
|
|
name: layer3ele.name,
|
|
value: layer3ele.value,
|
|
count: layer3ele.device_amount
|
|
};
|
|
var booly = true;
|
|
SetLayer3.findIndex(function ($el) {
|
|
if (layer3one.value === $el.value) {
|
|
$el.count += layer3one.count
|
|
booly = false;
|
|
}
|
|
})
|
|
if (booly) {
|
|
SetLayer3.push(layer3one);
|
|
}
|
|
})
|
|
}
|
|
}
|
|
)
|
|
}
|
|
})
|
|
})
|
|
|
|
var html = '設備小類 ';
|
|
SetLayer3.forEach(function (element, i) {
|
|
if (i == 0) {
|
|
html += '<a href="javascript:void(0);" onclick="SelectL3(\'' + element.value + '\',this)">'
|
|
html += '<div class="btn-group mb-2 mr-2">';
|
|
html += '<button type="button" class="btn btn-success ml-2 " >' + element.name + '</button>';
|
|
html += '<button type="button" class="btn btn-success edit" >' + element.count + '</button>';
|
|
html += '</div>';
|
|
html += '</a>';
|
|
}
|
|
else {
|
|
html += '<a href="javascript:void(0);" onclick="SelectL3(\'' + element.value + '\',this)">'
|
|
html += '<div class="btn-group mb-2 mr-2">';
|
|
html += '<button type="button" class="btn btn-secondary ml-2 " >' + element.name + '</button>';
|
|
html += '<button type="button" class="btn btn-secondary edit" >' + element.count + '</button>';
|
|
html += '</div>';
|
|
html += '</a>';
|
|
}
|
|
});
|
|
$('#layer3').append(html);
|
|
$('#layer3').find('.btn-success').first().parent().parent().click();
|
|
|
|
}
|
|
|
|
function SelectL3(lay, e) {
|
|
SelectLayer3 = lay;
|
|
$(e).parent().find('.btn-success').removeClass('btn-success').addClass('btn-secondary');
|
|
$(e).find('.btn-secondary').removeClass('btn-secondary').addClass('btn-success');
|
|
makeTable();
|
|
}
|
|
|
|
function makeTable() {
|
|
var send_data = {
|
|
selectdisaster: selectdisaster,
|
|
selectbuilding: selectbuilding,
|
|
selectFloorArray: SelectFloorArray,
|
|
|
|
Layer3: SelectLayer3
|
|
};
|
|
//var cast =
|
|
//$('#system').find('.jsonlenght').html(0);
|
|
$.ajax({
|
|
url: baseApiUrl + 'api/EmergencyDevice',
|
|
data: send_data,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
success: function (rel, statut) {
|
|
|
|
if (rel.code == "9999") {
|
|
console.log(rel);
|
|
return;
|
|
}
|
|
var data = rel.data;
|
|
var reldata = [];
|
|
|
|
var current_devices = [];
|
|
if (data == null || data.length == 0) {
|
|
this.data = [];
|
|
this.reldata = [];
|
|
} else {
|
|
var cas = 0;
|
|
//reldata = data;
|
|
data.forEach(element => {
|
|
var send_device = {
|
|
device_number: element.device_number
|
|
};
|
|
current_devices.push(send_device);
|
|
if(json.length == 0)
|
|
{
|
|
if(!SelectAlarm)
|
|
{
|
|
reldata = data;
|
|
}
|
|
else
|
|
{
|
|
reldata = [];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//reldata = [];
|
|
json.filter(function (n, i) {
|
|
if(n.device_number === element.device_number)
|
|
{
|
|
console.log(n.device_number,element.device_number);
|
|
cas++;
|
|
|
|
console.log(cas);
|
|
if(n.finish == 1)
|
|
{
|
|
|
|
////console.log(element);
|
|
element.alarm_timestamp = n.alarm_timestamp;
|
|
element.function = '<button type="button" class="btn btn-danger ml-2 popup-btn" href="#SimulationExercisemodal" onclick="OnSimulationExercise(\''+element.device_guid+'\',0)">啟動SOP</button>'
|
|
if(!SelectAlarm)
|
|
{
|
|
reldata = data;
|
|
}
|
|
else
|
|
{
|
|
reldata.push(element);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if(!SelectAlarm)
|
|
{
|
|
reldata = data;
|
|
}
|
|
}
|
|
}
|
|
if(i == json.length-1)
|
|
{
|
|
if(!SelectAlarm && reldata.length==0 )
|
|
{
|
|
reldata = data;
|
|
}
|
|
$('#system').find('.jsonlenght').text(cas);
|
|
}
|
|
})
|
|
|
|
}
|
|
})
|
|
|
|
}
|
|
newdata = new Array(0);
|
|
//console.log(data);
|
|
|
|
var html = '';
|
|
reldata.forEach(function (element, i) {
|
|
var newonedata = new Array(0);
|
|
newonedata.push(element.device_number);
|
|
newonedata.push(element.system_key);
|
|
newonedata.push(element.floorguid);
|
|
newonedata.push(element.floorname);
|
|
newonedata.push(element.alarm_timestamp);
|
|
newonedata.push(element.function);
|
|
newdata.push(newonedata);
|
|
})
|
|
Devicetable();
|
|
}
|
|
});
|
|
}
|
|
|
|
function Devicetable() {
|
|
|
|
var tablehtml = "";
|
|
tablehtml += '<table class="table table-bordered table-hover m-0 text-center" id="Device_menu_table">';
|
|
tablehtml += '<thead class="thead-themed">';
|
|
tablehtml += '<tr>';
|
|
tablehtml += '<th>設備編號</th><th>設備類別</th><th>樓層guid</th><th>樓層</th><th>異常時間</th><th>功能</th></tr></thead><tbody></tbody></table>';
|
|
|
|
$('#datatablediv').empty();
|
|
$('#datatablediv').append(tablehtml);
|
|
datatable = new simpleDatatables.DataTable('#Device_menu_table', {
|
|
searchable: false,
|
|
perPage: 10,
|
|
columns: [
|
|
{ select: 0, render: renderDeviceNumber },
|
|
{ select: 2, hidden: true },
|
|
{ select: 4, sort: "desc", },
|
|
],
|
|
headings: ["device_number", "system_key", "floorguid", "floorname", "alarm_timestamp", "function"],
|
|
data: {
|
|
"data": newdata
|
|
}
|
|
});
|
|
$('#Device_menu_table').parent().parent().find('.dataTable-top').empty();
|
|
}
|
|
|
|
function renderDeviceNumber(data, cell, row) {
|
|
return `<a href="javascript:void(0)" data-row-index="${row.dataIndex}" onclick="ChangeFloormap('${data}', '${row.cells[2].data}')">${data}</a>`
|
|
}
|
|
|
|
function ChangeFloormap(device_number, floor_guid) {
|
|
$("#iframe-floormap").empty();
|
|
$("#iframe-floormap").append(
|
|
`<iframe src="./_FloorMap.html?building_guid=${selectbuilding}&floor_guid=${floor_guid}&layer3=${SelectLayer3}&device_number=${device_number}&show_cctv=1" width="100%" height="100%;" scrolling="no"></iframe>`
|
|
)
|
|
//&device_disaster=${selectdisaster}
|
|
}
|
|
|
|
//全選或是報警
|
|
function GetAlarm(e){
|
|
if($(e).find('.btn').first().hasClass("btn-success"))
|
|
{
|
|
SelectAlarm = false;
|
|
$(e).find('.btn').removeClass('btn-success').addClass('btn-secondary');
|
|
}
|
|
else if($(e).find('.btn').first().hasClass("btn-secondary"))
|
|
{
|
|
SelectAlarm = true;
|
|
$(e).find('.btn').removeClass('btn-secondary').addClass('btn-success');
|
|
}
|
|
makeTable();
|
|
}
|
|
|
|
//SOP
|
|
function OnSimulationExercise(guid,type) {
|
|
GetbuttonList();
|
|
|
|
$('#closemodal').attr('disabled', true);
|
|
// de_number = $(e).parent().parent().attr('de-number');
|
|
var url = baseApiUrl + "api/EmergencyDevice/SaveAndOpenSimulationExercise";
|
|
var send_data = {
|
|
build: selectbuilding,
|
|
disaster: selectdisaster,
|
|
type: type,
|
|
device: guid
|
|
};
|
|
$.ajax({
|
|
url: url,
|
|
data: send_data,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
success: function (rel, statut) {
|
|
if (rel.code != "0000") {
|
|
if (rel.code == "9999") {
|
|
toast_error(rel.msg);
|
|
}
|
|
return;
|
|
}
|
|
else {
|
|
SimulationExerciseGuid = rel.data;
|
|
|
|
$('#tab_content').find('.allbtn').click();
|
|
GetBigsetting();
|
|
return;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
//組成頁面
|
|
function GetBigsetting() {
|
|
var url = baseApiUrl + "api/EmergencyDevice/GetBigsetting";
|
|
var send_data = {
|
|
disaster: selectdisaster
|
|
};
|
|
$.ajax({
|
|
url: url,
|
|
data: send_data,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
success: function (rel, statut) {
|
|
if (rel.code != "0000") {
|
|
if (rel.code == "9999") {
|
|
toast_error(rel.msg);
|
|
}
|
|
return;
|
|
}
|
|
else {
|
|
var bigsetting = "";
|
|
var smallsetting = "";
|
|
$('#bigsetting').empty();
|
|
$.each(rel.data, function (index, val) {
|
|
//<li class="nav-item"> <a class="nav-link fs-xl py-3 px-5" data-toggle="tab" href="#" role="tab"> <i class="fal fa-check text-success"></i> <span class="hidden-sm-down ml-1 text-secondary">確認與通報</span> </a> </li>
|
|
|
|
if (index == 0) {
|
|
bigsetting += '<li class="nav-item">';
|
|
bigsetting += '<a class="nav-link fs-xl py-3 px-5 active" data-toggle="tab" href="#t' + val.value + '_modal" id="t' + val.value + '_tab" onclick="ChangeBigSetting(' + val.value + ')" role="tab">';
|
|
bigsetting += '<span class="hidden-sm-down ml-1 text-secondary">';
|
|
bigsetting += val.name + '</span > </a > </li >';
|
|
|
|
smallsetting += '<div class="tab-pane fade show active" id="t' + val.value + '_modal" role="tabpanel" aria-labelledby="' + val.value + '_modal">';
|
|
smallsetting += '<div class="row">';
|
|
smallsetting += '<div class="pr-2" style="width:38.5%">';
|
|
smallsetting += '<div id="panel-1" class="panel">';
|
|
smallsetting += '<div class="panel-container show">';
|
|
smallsetting += '<div class="panel-content">';
|
|
smallsetting += '<ul class="list-group" id="list_' + val.value + '">';
|
|
smallsetting += '</ul>';
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
|
|
smallsetting += '<div class="" style="width:61.5%">';
|
|
smallsetting += '<div class="panel">';
|
|
smallsetting += '<div class="panel-hdr" id="hbr_' + val.value + '">';
|
|
smallsetting += '</div>';
|
|
smallsetting += '<div class="panel-container show">';
|
|
smallsetting += '<div class="panel-content">';
|
|
smallsetting += '<div class="panel-tag" id="tag_' + val.value + '">';
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
smallsetting += '<div class="panel-content py-2 border-faded border-left-0 border-right-0 border-bottom-0 text-muted d-flex justify-content-between" id="button_' + val.value + '">';
|
|
smallsetting += '<div class=""><button type="button" class="btn btn-danger waves-effect waves-themed mr-2"> 不通報 </button><input type="text" class=""></div>';
|
|
smallsetting += '<div><button type="button" class="btn btn-success waves-effect waves-themed"> 下一步 </button></div>';
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
} else {
|
|
bigsetting += '<li class="nav-item">';
|
|
bigsetting += '<a class="nav-link fs-xl py-3 px-5" data-toggle="tab" href="#t' + val.value + '_modal" id="t' + val.value + '_tab" onclick="ChangeBigSetting(' + val.value + ')" role="tab">';
|
|
bigsetting += '<span class="hidden-sm-down ml-1 text-secondary">';
|
|
bigsetting += val.name + '</span > </a > </li >';
|
|
smallsetting += '<div class="tab-pane fade" id="t' + val.value + '_modal" role="tabpanel" aria-labelledby="' + val.value + '_modal">';
|
|
smallsetting += '<div class="row">';
|
|
smallsetting += '<div class="pr-2" style="width:38.5%">';
|
|
smallsetting += '<div id="panel-1" class="panel">';
|
|
smallsetting += '<div class="panel-container show">';
|
|
smallsetting += '<div class="panel-content">';
|
|
smallsetting += '<ul class="list-group" id="list_' + val.value + '">';
|
|
smallsetting += '</ul>';
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
|
|
smallsetting += '<div class="" style="width:61.5%">';
|
|
smallsetting += '<div class="panel">';
|
|
smallsetting += '<div class="panel-hdr" id="hbr_' + val.value + '">';
|
|
smallsetting += '</div>';
|
|
smallsetting += '<div class="panel-container show">';
|
|
smallsetting += '<div class="panel-content">';
|
|
smallsetting += '<div class="panel-tag" id="tag_' + val.value + '">';
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
smallsetting += '<div class="panel-content py-2 border-faded border-left-0 border-right-0 border-bottom-0 text-muted d-flex justify-content-between" id="button_' + val.value + '">';
|
|
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
|
|
smallsetting += '</div>';
|
|
smallsetting += '</div>';
|
|
}
|
|
});
|
|
|
|
//console.log(smallsetting);
|
|
$('#bigsetting').append(bigsetting);
|
|
$('#small_setting').empty();
|
|
$('#small_setting').append(smallsetting);
|
|
|
|
|
|
|
|
$.each(rel.data, function (index, val) {
|
|
if (index == 0) {
|
|
GetEmergencySetting(val.value, true);
|
|
} else {
|
|
GetEmergencySetting(val.value, false);
|
|
}
|
|
})
|
|
EmergencyContact();
|
|
$('#SimulationExercisemodal').show();
|
|
// $('#SimulationExercisemodal').modal();
|
|
|
|
return;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
//生成左邊按鈕
|
|
function GetEmergencySetting(setting, bool) {
|
|
var url = baseApiUrl + "api/EmergencyDevice/GetEmergencySetting";
|
|
var send_data = {
|
|
selectsetting: setting
|
|
};
|
|
$.ajax({
|
|
url: url,
|
|
data: send_data,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
success: function (rel, statut) {
|
|
if (rel.code != "0000") {
|
|
if (rel.code == "9999") {
|
|
toast_error(rel.msg);
|
|
}
|
|
return;
|
|
}
|
|
else {
|
|
var includeli = "";
|
|
$.each(rel.data, function (index, val) {
|
|
if (index == 0) {
|
|
includeli += '<li class="list-group-item active" id="li_' + val.emergency_guid + '" > <a class="abc" onclick="GetContentAndMakeItem(\'' + val.emergency_guid + '\',this,' + setting + ')" >' + val.full_name + '</a></li>';
|
|
} else {
|
|
includeli += '<li class="list-group-item" id="li_' + val.emergency_guid + '"> <a class="abc" onclick="GetContentAndMakeItem(\'' + val.emergency_guid + '\',this,' + setting + ')" >' + val.full_name + '</a></li>';
|
|
}
|
|
});
|
|
$('#list_' + setting).append(includeli);
|
|
if (bool) {
|
|
$('#bigsetting').find('.active').children().trigger('click');
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
//小項目,按鈕,大項目 //點選左邊按鈕
|
|
function GetContentAndMakeItem(smallsetting, e, setting) {
|
|
var FirstNotSend = $('#list_' + EmerNowsetting).children().not('.send').first().attr('id'); //當前要執行的步驟
|
|
var touch = $(e).parent().attr('id');//觸碰的按鈕
|
|
var has;
|
|
if (FirstNotSend == touch) {
|
|
has = 1; //true
|
|
} else {
|
|
has = 0; //false
|
|
}
|
|
$(e).parent().parent().find('.active').removeClass('active');
|
|
$(e).parent().addClass('active');
|
|
|
|
var url = baseApiUrl + "api/EmergencyDevice/GetContentAndMakeItem";
|
|
var send_data = {
|
|
emergency_guid: smallsetting,
|
|
big_setting: $('#li_' + smallsetting).find('.abc').html(),
|
|
step_setting: $('#t' + setting + '_tab').find('.text-secondary').html(),
|
|
event_guid: SimulationExerciseGuid,
|
|
make_item: has
|
|
};
|
|
$.ajax({
|
|
url: url,
|
|
data: send_data,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
success: function (rel, statut) {
|
|
if (rel.code != "0000") {
|
|
if (rel.code == "9999") {
|
|
toast_error(rel.msg);
|
|
}
|
|
return;
|
|
}
|
|
else {
|
|
//console.log(rel);
|
|
var buttonstr = "";
|
|
|
|
if (rel.data.not_answer == 1) {
|
|
buttonstr += '<div><button type="button" class="btn btn-danger waves-effect waves-themed mr-2" onclick="NextStep(\'' + rel.data.emergency_item_guid + '\',1)"> 不執行 </button>';
|
|
buttonstr += '<input type="text" id="text_' + rel.data.emergency_item_guid + '" />';
|
|
} else {
|
|
buttonstr += '<div><button type="button" class="btn btn-danger waves-effect waves-themed mr-2" onclick="NextStep(\'' + rel.data.emergency_item_guid + '\',2)"> 不執行 </button>';
|
|
}
|
|
buttonstr += '</div>';
|
|
buttonstr += '<div><button type="button" class="btn btn-success waves-effect waves-themed" onclick="NextStep(\'' + rel.data.emergency_item_guid + '\',0)"> 執行 </button></div>';
|
|
|
|
|
|
$('#button_' + setting).empty();
|
|
$('#button_' + setting).append(buttonstr);
|
|
if (has == 0) {
|
|
$('#button_' + setting).find('button').attr('disabled', true);
|
|
}
|
|
|
|
$('#hbr_' + setting).empty();
|
|
$('#hbr_' + setting).append('<h2>' + rel.data.full_name + '</h2>');
|
|
$('#tag_' + setting).empty();
|
|
$('#tag_' + setting).append(rel.data.set_doing);
|
|
|
|
HistoryTable()
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
}
|
|
|
|
//choose:選擇 0:下一步 1:不通報(需要原因) 2:不通報(不用原因)
|
|
function NextStep(eventguid, choose) {
|
|
var url = baseApiUrl + "api/EmergencyDevice/NextStep";
|
|
var send_data = {
|
|
eventguid: eventguid,
|
|
choose: choose,
|
|
reason: $('#text_' + eventguid).val()
|
|
};
|
|
$.ajax({
|
|
url: url,
|
|
data: send_data,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
success: function (rel, statut) {
|
|
if (rel.code != "0000") {
|
|
if (rel.code == "9999") {
|
|
toast_error(rel.msg);
|
|
}
|
|
return;
|
|
}
|
|
else {
|
|
$('#list_' + EmerNowsetting).find('.active').addClass('send');
|
|
//給予完成勾勾
|
|
var strnow = $('#list_' + EmerNowsetting).find('.active').find('.abc').html();
|
|
$('#list_' + EmerNowsetting).find('.active').find('.abc').html('<i class="fal fa-check text-success"></i>' + strnow);
|
|
//找下一個沒有的做動作
|
|
var a = $('#list_' + EmerNowsetting).children().not('.send').not('.active').first().attr('id');
|
|
//如果沒下一個動作則到下一格大步驟
|
|
if (a == undefined) {
|
|
strnow = $('#t' + EmerNowsetting + '_tab').find('.text-secondary').html();
|
|
$('#t' + EmerNowsetting + '_tab').find('.text-secondary').html('<i class="fal fa-check text-success"></i>' + strnow);
|
|
$('#t' + EmerNowsetting + '_tab').addClass('send');
|
|
var tablist = $('#t' + EmerNowsetting + '_tab').parent().parent().children().children().not('.send').not('.active').first().attr('id');
|
|
//console.log(tablist);
|
|
|
|
if (tablist == undefined) {
|
|
$('#button_' + EmerNowsetting).find('button').attr('disabled', true);
|
|
$('#closemodal').attr('disabled', false);
|
|
} else {
|
|
var lists = '#' + tablist;
|
|
//console.log( $(`#bigsetting ${lists}`));
|
|
// $(lists).hide();
|
|
$('#bigsetting').find('.nav-link').removeClass('active');
|
|
|
|
$(lists).addClass('active');
|
|
var long = lists.length - 3;
|
|
var tabname = lists.substring(0, long);
|
|
//console.log(tabname);
|
|
$('#small_setting').find('.tab-pane').removeClass('show').removeClass('active');
|
|
$(tabname + 'modal').addClass('show').addClass('active');
|
|
//console.log(Number(tabname.substring(2, tabname.length - 1)));
|
|
ChangeBigSetting(Number(tabname.substring(2, tabname.length - 1)));
|
|
// $(`#bigsetting ${lists}`).trigger('click');
|
|
// $(`#bigsetting ${lists}`).tab('show')
|
|
// $(lists)
|
|
}
|
|
}
|
|
else {
|
|
$('#' + a).find('.abc').trigger('click');
|
|
}
|
|
|
|
}
|
|
}
|
|
});
|
|
HistoryTable()
|
|
|
|
}
|
|
|
|
function ChangeBigSetting(setting) {
|
|
EmerNowsetting = setting;
|
|
$('#list_' + EmerNowsetting).find('.active').children().trigger('click');
|
|
}
|
|
|
|
function GetbuttonList() {
|
|
var url = baseApiUrl + "api/EmergencyDevice/GetGroupingList";
|
|
var send_data = {
|
|
system_parent_id: selectdisaster
|
|
};
|
|
$.ajax({
|
|
url: url,
|
|
data: send_data,
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
success: function (rel, statut) {
|
|
if (rel.code != "0000") {
|
|
if (rel.code == "9999") {
|
|
toast_error(rel.msg);
|
|
}
|
|
return;
|
|
}
|
|
else {
|
|
//console.log(rel);
|
|
var grouping = "";
|
|
$('#button_grouping').empty();
|
|
Allgroupidlist = [];
|
|
$.each(rel.data, function (index, val) {
|
|
Allgroupidlist.push(val.id);
|
|
grouping += '<div class="btn-group mb-2 mr-2">';
|
|
grouping += '<button type="button" class="btn btn-outline-success select" onclick="SelectGrouping(' + val.id + ',this)">' + val.name + '</button>';
|
|
grouping += '</div>';
|
|
});
|
|
$('#button_grouping').append(grouping);
|
|
return;
|
|
//$('#button_grouping').empty();
|
|
}
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
function SelectGrouping(grouping, e) {
|
|
if ($(e).hasClass("btn-outline-success")) {
|
|
$(e).removeClass("btn-outline-success").addClass("btn-success");
|
|
SelectMemberDepart.push(grouping);
|
|
} else if ($(e).hasClass("btn-success")) {
|
|
$(e).removeClass("btn-success").addClass("btn-outline-success");
|
|
var a = SelectMemberDepart.filter(function (n, i) {
|
|
if (n === grouping) {
|
|
SelectMemberDepart.splice(i, 1);
|
|
}
|
|
});
|
|
}
|
|
EmergencyContact()
|
|
}
|
|
|
|
//全選所有組別
|
|
function Allgroupingselect() {
|
|
if (Allgroupingbool) {
|
|
$('#button_grouping').find(".btn-success").removeClass("btn-success").addClass("btn-outline-success");
|
|
SelectMemberDepart = [];
|
|
Allgroupingbool = false;
|
|
}
|
|
else {
|
|
$('#button_grouping').find(".btn-outline-success").removeClass("btn-outline-success").addClass("btn-success");
|
|
SelectMemberDepart = Allgroupidlist;
|
|
Allgroupingbool = true;
|
|
}
|
|
EmergencyContact()
|
|
}
|
|
|
|
function Closemodal() {
|
|
// json.filter(function (n, i) {
|
|
// if(n.device_number === de_number)
|
|
// {
|
|
// n.finish = 0;
|
|
// }
|
|
// })
|
|
// console.log(json);
|
|
// table.ajax.reload();
|
|
$('#SimulationExercisemodal').hide();
|
|
// $('#SimulationExercisemodal').modal('hide');
|
|
}
|
|
|
|
|
|
// function emergencycontactiframe() {
|
|
// $('#js-page-content').empty();
|
|
// var jwt = localStorage.getItem('JWT-Authorization');
|
|
// var src = 'https://localhost:5001/Jump/Index?post=' + jwt;
|
|
// // window.open(src);
|
|
|
|
// var html = '<iframe id="alarm-table" class="embed-responsive-item" width="100%" height="100%" src="'+src+'"></iframe>';
|
|
// $('#js-page-content').append(html);
|
|
// }
|
|
|
|
// function emergencyrecodeiframe() {
|
|
// $('#js-page-content').empty();
|
|
// var html = '<iframe id="alarm-table" class="embed-responsive-item" width="100%" height="100%" src="https://www.google.com/"></iframe>';
|
|
// $('#js-page-content').append(html);
|
|
// }
|