295 lines
8.8 KiB
JavaScript
295 lines
8.8 KiB
JavaScript
var Selectadisaster;
|
|
var selectgroupidlist = new Array(0);
|
|
var Allgroupidlist = new Array(0);
|
|
var Allgroupingbool = false;
|
|
var EmergencyContact;
|
|
$(function () {
|
|
$('#mainTitle').html('<div class="subheader">'+'<h1 class="subheader-title"><span class="fal fa-bell mr-1"></span> 緊急應變 - 聯絡清單</h1> </div>' );
|
|
GetDisasterList();
|
|
})
|
|
|
|
//取得災難類別
|
|
function GetDisasterList() {
|
|
var url = baseApiUrl + "api/DisasterList";
|
|
var send_data = {};
|
|
$.ajax({
|
|
method: "post",
|
|
url: url,
|
|
data: send_data,
|
|
async: false,
|
|
dataType: 'json',
|
|
success: function (rel) {
|
|
if (rel.code != "0000") {
|
|
if (rel.code == "9999") {
|
|
toast_error(rel.msg);
|
|
}
|
|
return;
|
|
}
|
|
else {
|
|
$('#Disasterlist').empty();
|
|
var Disasterstr = "";
|
|
$.each(rel.data, function (index, val) {
|
|
if (index == 0) {
|
|
Disasterstr += '<button type="button" class="btn btn-success waves-effect waves-themed" onclick = "SelectDisaster(' + val.value + ',this)"> ' + val.name + '</button>';
|
|
}
|
|
else {
|
|
Disasterstr += '<button type="button" class="btn btn-secondary waves-effect waves-themed" onclick = "SelectDisaster(' + val.value + ',this)">' + val.name + '</button>';
|
|
}
|
|
});
|
|
$('#Disasterlist').append(Disasterstr);
|
|
$('#Disasterlist').find('.btn-success').trigger('click');
|
|
return;
|
|
}
|
|
},
|
|
error: function (xhr, textStatus, thrownError) {
|
|
alert(textStatus);
|
|
}
|
|
});
|
|
}
|
|
|
|
//選擇災難類別
|
|
function SelectDisaster(Disaster, e) {
|
|
Selectadisaster = Disaster;
|
|
if ($("#Disasterlist").find('.btn').hasClass("btn-success")) {
|
|
$("#Disasterlist").find('.btn').removeClass("btn-success").addClass("btn-secondary");
|
|
}
|
|
$(e).removeClass("btn-secondary").addClass("btn-success");
|
|
GetGroupingList();
|
|
Allgroupingbool = false;
|
|
selectgroupidlist = [];
|
|
Allgroupingselect();
|
|
//selectsetting = 0;
|
|
EmergencyContactTable();
|
|
}
|
|
|
|
//取得編組列表
|
|
function GetGroupingList() {
|
|
var url = baseApiUrl + "api/EmergencyDevice/GetGroupingList";
|
|
var send_data = {
|
|
system_parent_id: Selectadisaster
|
|
};
|
|
$.ajax({
|
|
method: "post",
|
|
url: url,
|
|
data: send_data,
|
|
async: false,
|
|
dataType: 'json',
|
|
success: function (rel) {
|
|
if (rel.code != "0000") {
|
|
if (rel.code == "9999") {
|
|
toast_error(rel.msg);
|
|
}
|
|
return;
|
|
}
|
|
else {
|
|
var grouping = "";
|
|
$('#groupinglist').empty();
|
|
Allgroupidlist = [];
|
|
$.each(rel.data, function (index, val) {
|
|
Allgroupidlist.push(val.id);
|
|
grouping += '<div class="btn-group mb-2 mr-2" grouping = "' + val.id + '">';
|
|
grouping += '<button type="button" class="btn btn-outline-success select" onclick="SelectGrouping(' + val.id + ',this)">' + val.name + '</button>';
|
|
grouping += '</div>';
|
|
});
|
|
$('#groupinglist').append(grouping);
|
|
return;
|
|
}
|
|
},
|
|
error: function (xhr, textStatus, thrownError) {
|
|
alert(textStatus);
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
//選擇組別
|
|
function SelectGrouping(grouping, e)
|
|
{
|
|
if ($(e).hasClass("btn-outline-success")) {
|
|
$(e).removeClass("btn-outline-success").addClass("btn-success");
|
|
selectgroupidlist.push(grouping);
|
|
} else if ($(e).hasClass("btn-success")) {
|
|
$(e).removeClass("btn-success").addClass("btn-outline-success");
|
|
var a = selectgroupidlist.filter(function (n, i) {
|
|
if (n === grouping) {
|
|
selectgroupidlist.splice(i, 1);
|
|
}
|
|
});
|
|
}
|
|
EmergencyContactTable();
|
|
}
|
|
|
|
//全選所有組別
|
|
function Allgroupingselect()
|
|
{
|
|
if (Allgroupingbool) {
|
|
$('#groupinglist').find(".btn-success").removeClass("btn-success").addClass("btn-outline-success");
|
|
selectgroupidlist = [];
|
|
Allgroupingbool = false;
|
|
}
|
|
else {
|
|
$('#groupinglist').find(".btn-outline-success").removeClass("btn-outline-success").addClass("btn-success");
|
|
selectgroupidlist = Allgroupidlist;
|
|
Allgroupingbool = true;
|
|
}
|
|
EmergencyContactTable();
|
|
}
|
|
|
|
//匯出pdf
|
|
function ExportPDF() {
|
|
var url = baseApiUrl + "api/EmergencyContact/PDF";
|
|
var send_data =
|
|
{
|
|
disaster: $('#Disasterlist').find('.btn-success').html(),
|
|
groupidlist: selectgroupidlist
|
|
}
|
|
$.ajax({
|
|
method: "post",
|
|
url: url,
|
|
data: send_data,
|
|
async: false,
|
|
dataType: 'json',
|
|
success: function (rel) {
|
|
if (rel.code == "9999") {
|
|
console.log(rel);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
$('#buttonhide').empty();
|
|
var button = `<button id="buttonclick"></button>`
|
|
var html = `<a href="`+ baseApiUrl + rel.data +`" download="newfilename" >`+button+` </a>`;
|
|
$('#buttonhide').append(html);
|
|
$('#buttonclick').trigger('click');
|
|
setTimeout(function(){
|
|
DeleteFile(rel.data);
|
|
}, 500);
|
|
}
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
//匯出Excel
|
|
function ExportExcel() {
|
|
var url = baseApiUrl + "api/EmergencyContact/Excel";
|
|
var send_data =
|
|
{
|
|
disaster: $('#Disasterlist').find('.btn-success').html(),
|
|
groupidlist: selectgroupidlist
|
|
}
|
|
$.ajax({
|
|
method: "post",
|
|
url: url,
|
|
data: send_data,
|
|
async: false,
|
|
dataType: 'json',
|
|
success: function (rel) {
|
|
if (rel.code == "9999") {
|
|
console.log(rel);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
$('#buttonhide').empty();
|
|
var button = `<button id="buttonclick"></button>`
|
|
var html = `<a href="`+ baseApiUrl + rel.data +`" download>`+button+` </a>`;
|
|
$('#buttonhide').append(html);
|
|
$('#buttonclick').trigger('click');
|
|
|
|
setTimeout(function(){
|
|
DeleteFile(rel.data);
|
|
}, 500);
|
|
}
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
function DeleteFile(root) {
|
|
var send_data2 =
|
|
{
|
|
post: root
|
|
};
|
|
$.ajax({
|
|
method: "post",
|
|
url: baseApiUrl + "api/EmergencyContact/Clear",
|
|
data: send_data2,
|
|
async: false,
|
|
dataType: 'json',
|
|
success: function (rel) {
|
|
console.log(rel);
|
|
}
|
|
})
|
|
}
|
|
|
|
function EmergencyContactTable() {
|
|
|
|
$('#emergency_contact_tablediv').empty();
|
|
var html = `<table id="emergency_contact_table" class="table table-bordered table-hover m-0 text-center">
|
|
<thead class="thead-themed">
|
|
<tr>
|
|
<th>組別</th>
|
|
<th>姓名</th>
|
|
<th>部門</th>
|
|
<th>電話</th>
|
|
<th>LINE ID</th>
|
|
<th>電子信箱</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
</tbody>
|
|
</table>`;
|
|
$('#emergency_contact_tablediv').append(html);
|
|
|
|
var url = baseApiUrl + "api/EmergencyContact/EmergencyContactTable";
|
|
var send_data = {
|
|
selectgroupidlist: selectgroupidlist
|
|
};
|
|
$.ajax({
|
|
method: "post",
|
|
url: url,
|
|
data: send_data,
|
|
async: false,
|
|
dataType: 'json',
|
|
success: function (rel) {
|
|
if (rel.code == "9999") {
|
|
console.log(rel.msg);
|
|
return;
|
|
}
|
|
console.log(rel);
|
|
var data = rel.data;
|
|
if (data == null || data.length == 0) {
|
|
|
|
data = [];
|
|
}
|
|
|
|
|
|
var newda = new Array(0);
|
|
data.forEach(function(element,i){
|
|
var newoneda = new Array(0);
|
|
newoneda.push(element.groupingName);
|
|
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 emergency_contact_table = new simpleDatatables.DataTable('#emergency_contact_table', {
|
|
searchable: false,
|
|
perPage: 10,
|
|
data: {
|
|
"data": newda
|
|
}
|
|
});
|
|
$('#emergency_contact_tablediv').parent().parent().find('.dataTable-top').empty();
|
|
},
|
|
error: function (xhr, textStatus, thrownError) {
|
|
alert(textStatus);
|
|
}
|
|
});
|
|
}
|
|
|
|
|