var default_building = localStorage.getItem('default_building');
var MainSub;//取得所有大類
var Building;//取得所有棟別
var SelectMain = new Array(0);//選擇的大類
var SelectSub = new Array(0);//選擇的小類
var SelectBuildings = new Array(0);//選擇的區域
var allbuildingbool = true;
var allsubbool = true;
var device_data = [];
var datatable;
var Selectdatatable;
var Itemdatatable;
var select_data = new Array(0);
var recordPage = 1;//總設備table
var selectrecordPage = 1;//選擇的設備table
var selectitem = new Array(0);
var selectitemjson = new Array(0);
var chart;
var series = [], myYAxis = []; mySeries = [];
var global_history = [];
var is_reset_series = false; //是否需要重設數組
var intervalId, chartIntervalId;
var combinations = [];
var selected_combination;
var combination_dataTable;
var combination_detail_dataTable;
var recordCombinationPage = 1;//常見組合table
var selected_edit_combination; //選擇編輯的常用組合
$(function () {
console.log("enter point");
myBaja.setRealtimeReportCallBack(ReloadHighCharts);
var url = baseApiUrl + 'api/History/GetMainSub';
var sentdata =
{
account: localStorage.getItem('account')
}
$.ajax({
type: "POST",
url: url,
data: sentdata,
success: function (rel) {
if (rel.code != "0000") {
if (rel.code == "9999") {
toast_error(rel.msg);
}
else {
toast_warning(rel.msg);
}
return;
}
//console.log(rel.data);
MainSub = rel.data.history_Main_Systems;
Building = rel.data.history_Builds;
var html = "";
Building.forEach(function (building) {
html += ``;
});
$('#building').find('.item').empty();
$('#building').find('.item').append(html);
html = "";
var subhtml = "";
MainSub.forEach(function (mainsystem) {
html += ``;
mainsystem.history_Sub_systems.forEach(function (subsystem) {
subhtml += ``;
});
});
$('#mainsystem').find('.item').empty();
$('#mainsystem').find('.item').append(html);
$('#subsystem').find('.item').empty();
$('#subsystem').find('.item').append(subhtml);
$('#subsystem').find('.item').find('.btn-outline-success').hide();
}
})
//取得常用組合
GetRealTimeCombination();
datatable = new simpleDatatables.DataTable('#Device_menu_table', {
searchable: false,
//paging: false,
perPage: 20,
data: {
"data": []
},
layout: {
top: "",
bottom: "{info}{pager}",
},
columns: [{
select: 3,
sort: "desc",
}]
});
Selectdatatable = new simpleDatatables.DataTable('#Device_select_table', {
searchable: false,
//paging: false,
perPage: 20,
data: {
"data": []
},
layout: {
top: "",
bottom: "{info}{pager}",
}
});
Itemdatatable = new simpleDatatables.DataTable('#Device_item_table', {
searchable: false,
//paging: false,
perPage: 10,
data: {
"data": new Array(0)
},
layout: {
top: "",
bottom: "{info}{pager}",
}
});
combination_dataTable = new simpleDatatables.DataTable('#combination-table', {
searchable: false,
//paging: false,
perPage: 10,
data: {
"data": []
},
layout: {
top: "",
bottom: "{info}{pager}",
},
});
combination_detail_dataTable = new simpleDatatables.DataTable('#combination-detail-table', {
searchable: false,
//paging: false,
perPage: 10,
data: {
"data": []
},
layout: {
top: "",
bottom: "{info}{pager}",
},
});
//選擇常用組合
$("#real-time-combination").change(function () {
selected_combination = combinations.filter(x => x.combination_guid == $(this).val())[0];
if (selected_combination != undefined && selected_combination != null) {
//重新繪製已選擇設備table
select_data = new Array();
selected_combination.details.forEach(function (item, index) {
var obj = {
building: item.building_full_name,
device_number: item.device_number,
device_name: item.device_full_name,
main_name: item.main_system_full_name,
sub_name: item.sub_system_full_name,
device_guid: item.device_guid
}
select_data.push(obj)
});
}
else {
selected_combination = {};
select_data = [];
}
JudgeCurrentDeviceData();
RedrawDataTable();
RedrawSelectedDataTable();
});
})
function DeviceNameSearch() {
var device_name = $("#device_name_search").val();
if (device_name != null && device_name.length > 0) {
var sent_data = {
device_name: device_name
}
var url = baseApiUrl + 'api/History/GetDevice';
$.ajax({
type: "POST",
url: url,
data: sent_data,
success: function (rel) {
if (rel.code != "0000") {
if (rel.code == "9999") {
toast_error(rel.msg);
}
else {
toast_warning(rel.msg);
}
return;
}
device_data = rel.data.map(function (item, index) {
item.is_selected = 0;
return item;
});
JudgeCurrentDeviceData();
RedrawDataTable();
}
})
}
else {
toast_warning("請輸入欲查詢內容");
}
}
//按大類顯示小類
function GetSubSystem(mainguid, e) {
if ($(e).hasClass('btn-outline-success')) {
$(e).removeClass('btn-outline-success').addClass('btn-success');
$('#subsystem').find('.item').find('.mainbtn-' + mainguid).removeClass('hide').addClass('show').show();
}
else {
$(e).removeClass('btn-success').addClass('btn-outline-success');
$('#subsystem').find('.item').find('.mainbtn-' + mainguid).find('.btn-success').removeClass('btn-success').addClass('btn-outline-success');
$('#subsystem').find('.item').find('.mainbtn-' + mainguid).removeClass('show').addClass('hide').hide();
}
GetDevice();
}
//全選小類
function allsub() {
if (allsubbool) {
$('#subsystem').find('.btn-outline-success.show').removeClass('btn-outline-success').addClass('btn-success');
allsubbool = false;
}
else {
$('#subsystem').find('.btn-success.show').removeClass('btn-success').addClass('btn-outline-success');
allsubbool = true;
}
SelectSub = new Array(0);
$('#subsystem').find('.item').find('.show.btn-success').each(function () {
SelectSub.push($(this).attr("id"));
});
GetDevice();
}
//全選棟別
function allbuilding() {
if (allbuildingbool) {
$('#building').find('.btn-outline-success').removeClass('btn-outline-success').addClass('btn-success');
allbuildingbool = false;
}
else {
$('#building').find('.btn-success').removeClass('btn-success').addClass('btn-outline-success');
allbuildingbool = true;
}
SelectBuildings = new Array(0);
$('#building').find('.item').find('.btn-success').each(function () {
SelectBuildings.push($(this).attr("id"));
});
GetDevice();
}
//選擇小類
function SelectSubSystem(e) {
if ($(e).hasClass('btn-outline-success')) {
$(e).removeClass('btn-outline-success').addClass('btn-success');
}
else {
$(e).removeClass("btn-success").addClass("btn-outline-success");
}
SelectSub = new Array(0);
$('#subsystem').find('.item').find('.show.btn-success').each(function () {
SelectSub.push($(this).attr("id"));
});
GetDevice();
}
//選擇區域
function SelectBuild(e) {
if ($(e).hasClass('btn-outline-success')) {
$(e).removeClass('btn-outline-success').addClass('btn-success');
}
else {
$(e).removeClass("btn-success").addClass("btn-outline-success");
}
SelectBuildings = new Array(0);
$('#building').find('.item').find('.btn-success').each(function () {
SelectBuildings.push($(this).attr("id"));
});
GetDevice();
}
//取得設備
function GetDevice() {
if ((SelectSub == undefined || SelectSub == null || SelectSub.length == 0)
|| (SelectBuildings == undefined || SelectBuildings == null || SelectBuildings.length == 0)) {
device_data = [];
RedrawDataTable();
return;
}
var sentdata = {
SelectSub: SelectSub,
SelectBuildings: SelectBuildings
}
var url = baseApiUrl + 'api/History/GetDevice';
$.ajax({
type: "POST",
url: url,
data: sentdata,
success: function (rel) {
if (rel.code != "0000") {
if (rel.code == "9999") {
toast_error(rel.msg);
}
else {
toast_warning(rel.msg);
}
return;
}
device_data = rel.data.map(function (item, index) {
item.is_selected = 0;
return item;
});
JudgeCurrentDeviceData();
RedrawDataTable();
}
})
}
//選擇設備至右方表格
function SelectOneDevice(building, main_name, sub_name, device_number, device_name, device_guid, e) {
// datatable.page(recordPage);
var tbody = ($(e).closest("tr"))[0].rowIndex - 1 + (recordPage - 1) * 20;
if (Math.ceil(datatable.rows().dt.activeRows.length / 20) == recordPage && (($(e).closest("tr"))[0].rowIndex - 1) == 0 && tbody + 1 == datatable.rows().dt.activeRows.length) {
if (recordPage != 1) {
recordPage--;
}
}
datatable.rows().remove(tbody);
JudgeCurrentDeviceData(device_guid);
RedrawDataTable(recordPage);
var selectobject = {
building: building,
device_number: device_number,
device_name: device_name,
main_name: main_name,
sub_name: sub_name,
device_guid: device_guid
}
select_data.push(selectobject);
RedrawSelectedDataTable();
}
//取消已選擇設備
function UnSelect(building, main_name, sub_name, device_number, device_name, device_guid, e) {
// Selectdatatable.page(selectrecordPage);
var tbody = ($(e).closest("tr"))[0].rowIndex - 1 + (selectrecordPage - 1) * 20;
if (Math.ceil(Selectdatatable.rows().dt.activeRows.length / 20) == selectrecordPage && (($(e).closest("tr"))[0].rowIndex - 1) == 0 && tbody + 1 == Selectdatatable.rows().dt.activeRows.length) {
if (selectrecordPage != 1) {
selectrecordPage--;
}
}
Selectdatatable.rows().remove(tbody);
select_data.filter(function (n, i) {
if (n.device_guid === device_guid) {
JudgeCurrentDeviceData(device_guid);
select_data.splice(i, 1);
}
});
RedrawDataTable(recordPage);
RedrawSelectedDataTable(selectrecordPage);
// datatable.rows().add([building, main_name, sub_name, device_number, device_name, ``]);
}
//清空已選擇
function CleanAll() {
select_data = [];
device_data.map(function (item, index) {
item.is_selected = 0
});
RedrawDataTable();
RedrawSelectedDataTable();
}
//判斷左邊table的資料來源是否被選擇
function JudgeCurrentDeviceData(selected_device_guid = "") {
if (device_data != undefined && device_data != null && device_data.length > 0) {
if (selected_device_guid != undefined && selected_device_guid != null && selected_device_guid != "") {
var temp_data = device_data.filter(x => x.device_guid == selected_device_guid);
if (temp_data != undefined && temp_data != null && temp_data.length > 0) {
if (temp_data[0].is_selected > 0) {
temp_data[0].is_selected = 0;
} else {
temp_data[0].is_selected = 1;
}
}
} else if (select_data != undefined && select_data != null && select_data.length > 0) {
select_data.forEach(function (selected_item, selected_index) {
var temp_data = device_data.filter(x => x.device_guid == selected_item.device_guid);
if (temp_data != undefined && temp_data != null && temp_data.length > 0) {
// if (temp_data[0].is_selected > 0) {
// temp_data[0].is_selected = 0;
// } else {
// temp_data[0].is_selected = 1;
// }
temp_data[0].is_selected = 1;
}
});
}
}
}
//重新繪製設備列表
function RedrawDataTable(current_page = 1) {
var temp_data = device_data.filter(x => x.is_selected == 0);
var dataTable_data = $.map(temp_data, function (item, index) {
var object = {
building_name: item.building_name,
main_name: item.main_name,
sub_name: item.sub_name,
device_number: item.device_number,
device_name: item.device_name,
check: ``
}
return [Object.values(object)];
});
datatable.destroy();
datatable.init({
perPage: 20,
data: {
"data": dataTable_data
},
layout: {
top: "",
bottom: "{info}{pager}",
},
columns: [{
select: 3,
sort: "desc",
}]
});
// recordPage = 1;
datatable.on('datatable.page', function (page) {
recordPage = page;
});
if (current_page != 1) {
datatable.page(current_page);
}
}
//重新繪製已選擇設備
function RedrawSelectedDataTable(current_page = 1) {
var data = $.map(select_data, function (item, index) {
var object =
{
building: item.building,
device_number: item.device_number,
device_name: item.device_name,
check: ``
};
return [Object.values(object)];
});
Selectdatatable.destroy();
Selectdatatable.init({
perPage: 20,
data: {
"data": data
},
layout: {
top: "",
bottom: "{info}{pager}",
}
});
Selectdatatable.on('datatable.page', function (page) {
selectrecordPage = page;
});
if (current_page != 1) {
datatable.page(current_page);
}
}
function LookRealTime() {
if (select_data.length == 0) {
toast_warning('請先選擇設備');
}
else {
var sentdata =
{
select_data: select_data
}
var url = baseApiUrl + 'api/History/LookRealTime';
$.ajax({
type: "POST",
url: url,
data: sentdata,
success: function (rel) {
if (rel.code != "0000") {
if (rel.code == "9999") {
toast_error(rel.msg);
}
else {
toast_warning(rel.msg);
}
return;
}
var itemdata = $.map(rel.data, function (item, index) {
// console.log(item);
var checkbox = "";
checkbox += `
`;
var object =
{
check: checkbox,
building_name: item.building_name,
device_number: item.device_number,
device_name: item.device_name,
item_name: item.item_name,
};
return [Object.values(object)];
});
Itemdatatable.destroy();
Itemdatatable.init({
searchable: false,
perPage: 10,
data: {
"data": itemdata
},
layout: {
top: "",
bottom: "{info}{pager}",
}
});
// $('#real-time-report-convas-div').empty();
// $('#real-time-report-convas-div').append('');
intervalId = setInterval(function () {
myBaja.setSubscribeRealtimeReportDevices(selectitemjson);
}, 5000);
$('#RealTimemodal').show();
}
})
}
}
//開啟常見組合管理
function OpenCombinationModal() {
GetRealTimeCombination();
// var combination_temp_data = $.map(combinations, function (item, index) {
// var fun = `
//
//
//
`;
// var obj = {
// building_name: ``,
// device_amount: item.details.length,
// fun: fun,
// };
// return [Object.values(obj)];
// });
// combination_dataTable.destroy();
// combination_dataTable.init({
// perPage: 5,
// data: {
// "data": combination_temp_data
// },
// layout: {
// top: "",
// bottom: "{info}{pager}",
// },
// });
// combination_dataTable.on('datatable.page', function (page) {
// recordCombinationPage = page;
// });
$('#combination-modal').show();
}
//重新繪製常用組合
function RedrawCombinationDataTable(current_page = 1) {
var combination_temp_data = $.map(combinations, function (item, index) {
var fun = `
`;
var obj = {
building_name: ``,
device_amount: item.details.length,
fun: fun,
};
return [Object.values(obj)];
});
combination_dataTable.destroy();
combination_dataTable.init({
perPage: 5,
data: {
"data": combination_temp_data
},
layout: {
top: "",
bottom: "{info}{pager}",
},
});
combination_dataTable.on('datatable.page', function (page) {
recordCombinationPage = page;
});
}
function GetCombinationDetailTable(selected_combination_guid) {
var temp_data = combinations.filter(x => x.combination_guid == selected_combination_guid)
temp_data[0]
var combination_detail_temp_data = $.map(temp_data[0].details, function (item, index) {
var obj = {
building_name: item.building_full_name,
main_system_full_name: item.main_system_full_name,
sub_system_full_name: item.main_system_full_name,
device_number: item.device_number,
device_name: item.device_full_name,
};
return [Object.values(obj)];
});
combination_detail_dataTable.destroy();
combination_detail_dataTable.init({
perPage: 5,
data: {
"data": combination_detail_temp_data
},
layout: {
top: "",
bottom: "{info}{pager}",
},
});
}
function checkitem(e, device_number, points, unit) {
if ($(e).hasClass('nucheck')) {
$(e).removeClass('nucheck').addClass('check');
var sobject =
{
device_number: device_number,
points: points,
unit: unit
}
selectitem.push(sobject);
}
else {
$(e).removeClass('check').addClass('nucheck');
selectitem.filter(function (n, i) {
if (n.device_number === device_number && n.points === points) {
selectitem.splice(i, 1);
}
});
}
selectitemjson = new Array(0);
$.each(selectitem, function (index, val) {
var inpoints = 0;
selectitemjson.filter(function (n, i) {
if (n.device_number === val.device_number) {
var point =
{
point_name: val.points,
unit: val.unit
}
n.points.push(point);
inpoints = 1;
}
});
if (inpoints == 0) {
var devices =
{
device_number: val.device_number,
points: new Array(0)
}
var point =
{
point_name: val.points,
unit: val.unit
}
devices.points.push(point);
selectitemjson.push(devices);
}
})
ResetHighChartsYAxis(selectitemjson);
}
function closemodal(modalid) {
$('#' + modalid).hide();
//移除定時抓取bajascript資料
if (intervalId != undefined && intervalId != null && intervalId > 0) {
clearInterval(intervalId)
intervalId = undefined;
}
//移除定時更新 Char 資料
if (chartIntervalId != undefined && chartIntervalId != null && chartIntervalId > 0) {
clearInterval(chartIntervalId)
chartIntervalId = undefined;
}
//移除 chart
chart.destroy();
chart = undefined;
series = [];
myYAxis = [];
mySeries = [];
global_history = [];
selectitem = [];
selectitemjson = [];
}
function CloseCombinationmodal(modalid) {
$('#' + modalid).hide();
}
//修改Y軸後,重新繪製
function ResetHighChartsYAxis(devices) {
var temp_series = [];
var temp_myYAxis = [];
devices.map(function (item, index) {
//判斷數組是否需要存在
mySeries.forEach(function (series, series_index) {
series_split = series.name.split(":")
if (series_split[0] == item.device_number && item.points.findIndex(x => x.point_name == series_split[1]) > -1) {
temp_series.push(series)
}
})
mySeries = temp_series;
//移除不需要存在的Y軸
myYAxis.forEach(function (yAxis, yAxis_index) {
if (item.points.findIndex(x => x.unit == yAxis.id) > -1) {
temp_myYAxis.push(yAxis);
}
});
item.points.map(function (point, point_index) {
if (myYAxis.length <= 6 && myYAxis.findIndex(x => x.id == point.unit) < 0) {
var yAxis = {
title: {
text: point.unit,
},
id: point.unit,
opposite: myYAxis.length > 0 ? true : false,
showEmpty: false
}
myYAxis.push(yAxis);
}
})
});
is_reset_series = true;
if (chart != undefined && chart != null) {
chart.destroy();
}
InitHighChart();
}
function ReloadHighCharts(history) {
// console.log("history", history);
if (history != undefined && history != null && Object.keys(history).length > 0) {
// myXAxis = Object.keys(history);
// console.log("原本的排序", Object.keys(history))
// console.log("原本的排序取最後10筆", Object.keys(history).slice(-10))
const ordered = Object.keys(history).sort().reduce(
(obj, key) => {
obj[key] = history[key];
return obj;
},
{}
);
global_history = ordered
// console.log(ordered)
// console.log("調整的排序", Object.keys(ordered))
// console.log("調整的排序取最後10筆", Object.keys(ordered).slice(-10))
Object.keys(ordered).slice(-50).map(function (item, index) {
history[item].map(function (item_device) {
var temp_series = mySeries.find(x => x.name == (item_device.device_number + ':' + item_device.point))
var temp_timestamp = item.replaceAll("/", "-");
if (temp_series != undefined && temp_series != null) {
temp_series.data.push({ x: new Date(temp_timestamp).getTime(), y: parseFloat(item_device.value) });
} else {
var series = {
type: 'spline',
name: item_device.device_number + ':' + item_device.point,
data: [],
yAxis: item_device.unit,
};
series.data.push({ x: new Date(temp_timestamp).getTime(), y: parseFloat(item_device.value) });
mySeries.push(series);
}
});
});
if (mySeries != undefined && mySeries.length > 0 && is_reset_series) {
is_reset_series = false;
mySeries.forEach(element => {
chart.addSeries(element);
});
// InitHighChart(mySeries);
}
if (mySeries != undefined) {
// console.log("mySeries", mySeries);
// Highcharts.chart('real-time-report', {
// lang: { //匯出相關中文名稱配置
// printChart: '列印圖表',
// downloadJPEG: '下載JPEG檔案',
// downloadPDF: '下載PDF檔案',
// downloadPNG: '下載PNG檔案',
// downloadSVG: '下載SVG檔案',
// downloadCSV: '下載CSV檔案',
// downloadXLS: '下載XLS檔案',
// viewData: '檢視資料表格',
// viewFullscreen: '全屏檢視'
// },
// chart: {
// type: 'spline',
// },
// title: {
// text: 'Live Data'
// },
// exporting: {
// enabled: false
// },
// xAxis: {
// categories: myXAxis,
// },
// // tooltip: {
// // headerFormat: '{series.name}
',
// // pointFormat: '{point.x:%Y-%m-%d %H:%M:%S}
{point.y:.2f}'
// // },
// // yAxis: myYAxis,
// series: mySeries
// });
}
}
}
function InitHighChart(local_mySeries) {
//移除定時更新 Char 資料
if (chartIntervalId != undefined && chartIntervalId != null && chartIntervalId > 0) {
clearInterval(chartIntervalId)
}
chart = Highcharts.chart('real-time-report', {
lang: { //匯出相關中文名稱配置
printChart: '列印圖表',
downloadJPEG: '下載JPEG檔案',
downloadPDF: '下載PDF檔案',
downloadPNG: '下載PNG檔案',
downloadSVG: '下載SVG檔案',
downloadCSV: '下載CSV檔案',
downloadXLS: '下載XLS檔案',
viewData: '檢視資料表格',
viewFullscreen: '全屏檢視'
},
time: {
useUTC: false
},
chart: {
type: 'spline',
events: {
load: function () {
var series = this.series;
chartIntervalId = setInterval(function () {
var date = (new Date(new Date().getTime() - 5000)) //-5秒
const formatDate = (date) => {
let formatted_date = date.getFullYear() + "/" + ((date.getMonth() + 1) < 10 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1)) + "/" + date.getDate() + " " + (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":" + (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":" + (date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds());
return formatted_date;
}
// console.log(formatDate(date));
var timestamp = formatDate(date);
// console.log(timestamp);
// console.log(global_history);
series.forEach(function (item) {
if (item != undefined && item.name != undefined && item.name != null) {
var target_name_split = item.name.split(":");
if (global_history[timestamp] != undefined) {
// item
var temp_history = global_history[timestamp].find(x => x.device_number == target_name_split[0] && x.point == target_name_split[1])
if (temp_history != undefined && temp_history != null) {
item.addPoint([date.getTime(), parseFloat(temp_history.value)], true, true);
}
}
}
});
}, 1000);
}
}
},
title: {
text: '即時趨勢圖'
},
exporting: {
enabled: false
},
xAxis: {
type: 'datetime',
},
// tooltip: {
// headerFormat: '{series.name}
',
// pointFormat: '{point.x:%Y-%m-%d %H:%M:%S}
{point.y:.2f}'
// },
yAxis: myYAxis,
series: local_mySeries
});
}
//取得所有常用組合
function GetRealTimeCombination(redraw = false) {
var combination_url = baseApiUrl + 'api/History/RealTimeCombination';
var send_data = {
building_guid: default_building
};
$.ajax({
type: "POST",
url: combination_url,
data: send_data,
success: function (rel) {
if (rel.code != "0000") {
if (rel.code == "9999") {
toast_error(rel.msg);
}
else {
toast_warning(rel.msg);
}
return;
}
if (rel.data.length > 0) {
combinations = rel.data;
$('#real-time-combination').empty();
$('#real-time-combination').append('');
$.each(rel.data, function (index, val) {
$('#real-time-combination').append($("").val(val.combination_guid).text(val.combination_full_name));
});
$('#real-time-combination').val($("#real-time-combination option:first").val())
if (redraw) {
RedrawCombinationDataTable();
// RedrawDataTable();
// RedrawSelectedDataTable();
}
} else {
$('#real-time-combination').empty();
$('#real-time-combination').append('');
$('#real-time-combination').val($("#real-time-combination option:first").val()).trigger('change');
}
if (selected_combination != undefined && selected_combination != null) {
$('#real-time-combination').val(selected_combination.combination_guid).trigger('change');
}
}
})
}
//儲存常用組合前處理
function SaveRealTimeCombination() {
if (select_data.length <= 0) {
toast_warning("請先選擇設備");
return;
}
Swal.fire(
{
title: "儲存常用組合",
text: "請選擇儲存覆蓋或另存新的常用組合?",
showDenyButton: true,
showCancelButton: true,
confirmButtonText: "儲存",
denyButtonText: "另存",
cancelButtonText: "取消"
}).then(function (result) {
var details = select_data.map(function (item, index) {
return { device_guid: item.device_guid, device_number: item.device_number }
});
if (result.isConfirmed) {
if (selected_combination != undefined && selected_combination != null) {
PostSaveRealTimeCombination(selected_combination.combination_guid, selected_combination.building_guid, "", 0, details);
}
else {
Swal.fire(
{
title: "請輸入常用組合名稱",
input: 'text',
showCancelButton: true,
confirmButtonText: "確定",
cancelButtonText: "取消"
}).then(function (result) {
if (result.isConfirmed) {
PostSaveRealTimeCombination("", default_building, result.value, 1, details);
}
});
}
} else if (result.isDenied) {
Swal.fire(
{
title: "請輸入常用組合名稱",
input: 'text',
showCancelButton: true,
confirmButtonText: "確定",
cancelButtonText: "取消"
}).then(function (result) {
if (result.isConfirmed) {
var send_data = {
Building_guid: default_building,
Combination_guid: "",
Full_name: result.value,
Save_type: 1,
Details: details
}
var url = baseApiUrl + 'api/History/SaveRealTimeCombination';
}
});
}
});
}
//儲存常用組合
function PostSaveRealTimeCombination(combination_guid = "", building_guid, full_name, save_type, details) {
var send_data = {
Combination_guid: combination_guid,
Building_guid: building_guid,
Full_name: full_name,
Save_type: save_type,
Details: details
}
var url = baseApiUrl + 'api/History/SaveRealTimeCombination';
$.ajax({
type: "POST",
url: url,
data: send_data,
success: function (rel) {
if (rel.code != "0000") {
if (rel.code == "9999") {
toast_error(rel.msg);
}
else {
toast_warning(rel.msg);
}
return;
}
toast_ok(rel.msg);
selected_combination = {
combination_guid: combination_guid,
building_guid: building_guid,
full_name: full_name,
details: details,
};
GetRealTimeCombination();
}
})
}
//修改常用組合名稱前處理
function EditCombination(combination_guid) {
selected_edit_combination = combinations.filter(x => x.combination_guid == combination_guid)[0];
if (selected_edit_combination != undefined && selected_edit_combination != null) {
$("#combination_name_modal").val(selected_edit_combination.combination_full_name)
$('#combination-edit-modal').show();
}
}
//修改常用組合名稱
function SaveEditCombination() {
var combination_name = $("#combination_name_modal").val();
if (combination_name != null && combination_name != "" && combination_name.length > 0) {
var url = baseApiUrl + "api/History/EditRealTimeCombination";
var send_data = {
combination_guid: selected_edit_combination.combination_guid,
full_name: combination_name
}
$.ajax({
type: "POST",
url: url,
data: send_data,
success: function (rel) {
if (rel.code != "0000") {
if (rel.code == "9999") {
toast_error(rel.msg);
}
else {
toast_warning(rel.msg);
}
return;
}
toast_ok(rel.msg);
GetRealTimeCombination(true);
$('#combination-edit-modal').hide();
}
})
}
else {
toast_warning("請填寫常用組合名稱");
}
}
//刪除常用組合
function DeleteCombination(combination_guid) {
var url = baseApiUrl + "api/History/DeleteRealTimeCombination";
var send_data = {
guid: combination_guid,
}
$.ajax({
type: "POST",
url: url,
data: send_data,
success: function (rel) {
if (rel.code != "0000") {
if (rel.code == "9999") {
toast_error(rel.msg);
}
else {
toast_warning(rel.msg);
}
return;
}
toast_ok(rel.msg);
GetRealTimeCombination(true);
}
})
}