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('
'+'

緊急應變 - 設備總覽

' ); //棟別 $.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 += ''; } else { html += ''; } }) html += ''; $('#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 += ''; tablehtml += ''; tablehtml += ''; tablehtml += '
姓名部門電話LineIDEmail
'; 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 += ''; html += '
'; 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 += ''; }); } }); html += '
'; $('#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 += ''; tablehtml += ''; tablehtml += ''; tablehtml += '
項目步驟結果時間
'; $('#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 += ''; } else { html += ''; } }); } }); $('#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 += '' html += '
'; html += ''; html += ''; html += '
'; html += '
'; 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 += '' html += '
'; html += ''; html += ''; html += '
'; html += '
'; } else { html += '' html += '
'; html += ''; html += ''; html += '
'; html += '
'; } }); $('#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 += '' html += '
'; html += ''; html += ''; html += '
'; html += '
'; } else { html += '' html += '
'; html += ''; html += ''; html += '
'; html += '
'; } }); $('#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 = '' 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 += ''; tablehtml += ''; tablehtml += ''; tablehtml += '
設備編號設備類別樓層guid樓層異常時間功能
'; $('#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 `${data}` } function ChangeFloormap(device_number, floor_guid) { $("#iframe-floormap").empty(); $("#iframe-floormap").append( `` ) //&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) { // if (index == 0) { bigsetting += ''; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
    '; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; } else { bigsetting += ''; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
    '; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; smallsetting += '
'; } }); //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 += '
  • ' + val.full_name + '
  • '; } else { includeli += '
  • ' + val.full_name + '
  • '; } }); $('#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 += '
    '; buttonstr += ''; } else { buttonstr += '
    '; } buttonstr += '
    '; buttonstr += '
    '; $('#button_' + setting).empty(); $('#button_' + setting).append(buttonstr); if (has == 0) { $('#button_' + setting).find('button').attr('disabled', true); } $('#hbr_' + setting).empty(); $('#hbr_' + setting).append('

    ' + rel.data.full_name + '

    '); $('#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('' + 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('' + 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 += '
    '; grouping += ''; grouping += '
    '; }); $('#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 = ''; // $('#js-page-content').append(html); // } // function emergencyrecodeiframe() { // $('#js-page-content').empty(); // var html = ''; // $('#js-page-content').append(html); // }