調整報表管理頁面,新增各單位用電(月)比較

This commit is contained in:
koko 2025-08-27 15:11:56 +08:00
parent 2a1b35b2ed
commit 134714cad2

View File

@ -7,17 +7,21 @@
<div class="col-sm-12 col-xl-2"> <div class="col-sm-12 col-xl-2">
<div class="rounded border border-white"> <div class="rounded border border-white">
<!-- nav-menu-reset will reset the font colors --> <!-- nav-menu-reset will reset the font colors -->
<ul class="nav-menu nav-menu-reset nav-menu-compact mb-sm-4 mb-md-0 rounded border border-white" <ul
data-nav-accordion="true"> class="nav-menu nav-menu-reset nav-menu-compact mb-sm-4 mb-md-0 rounded border border-white"
data-nav-accordion="true"
>
<li class="active"> <li class="active">
<a name="reportTypeRadio" href="javascript:;" data-value="day"> <a name="reportTypeRadio" href="javascript:;" data-value="day">
<span class="nav-link-text"> 電錶 - 日報表 </span> <span class="nav-link-text"> 電錶 - 日報表 </span>
</a> </a>
</li> </li>
<li> <li>
<a name="reportTypeRadio" <a
href="javascript:;" name="reportTypeRadio"
data-value="month"> href="javascript:;"
data-value="month"
>
<span class="nav-link-text"> 電錶 - 月報表 </span> <span class="nav-link-text"> 電錶 - 月報表 </span>
</a> </a>
</li> </li>
@ -27,24 +31,40 @@
</a> </a>
</li> </li>
<li> <li>
<a name="reportTypeRadio" <a
href="javascript:;" name="reportTypeRadio"
data-value="compare"> href="javascript:;"
data-value="compare"
>
<span class="nav-link-text"> 電錶 - 同期比較 </span> <span class="nav-link-text"> 電錶 - 同期比較 </span>
</a> </a>
</li> </li>
<li> <li>
<a name="reportTypeRadio" <a
href="javascript:;" name="reportTypeRadio"
data-value="day" href="javascript:;"
data-type="compare"> data-value="day"
data-type="compare"
>
<span class="nav-link-text"> <span class="nav-link-text">
電錶 - 總盤與分盤 - 月份比較 電錶 - 總盤與分盤 - 月份比較
</span> </span>
</a> </a>
</li> </li>
<li>
<a
name="reportTypeRadio"
href="javascript:;"
data-value="elec"
data-type="elec"
>
<span class="nav-link-text"> 電錶 - 各單位用電(月)比較 </span>
</a>
</li>
</ul> </ul>
<div class="filter-message js-filter-message m-0 text-left pl-4 py-3 fw-500"></div> <div
class="filter-message js-filter-message m-0 text-left pl-4 py-3 fw-500"
></div>
</div> </div>
</div> </div>
<div class="col-12 col-xl-10"> <div class="col-12 col-xl-10">
@ -53,94 +73,138 @@
<div class="col-auto price"> <div class="col-auto price">
<span class="report-type-name"></span>費每度單價 <span class="report-type-name"></span>費每度單價
</div> </div>
<input type="text" <input
id="elecPriceDegree" type="text"
class="form-control col-1 price" /> id="elecPriceDegree"
<div id="compareTypeBtnsDiv" class="form-control col-1 price"
class="item btn-group btn-group-toggle offset-1" />
data-toggle="buttons" <div
style="display: none"> id="compareTypeBtnsDiv"
<label class="btn btn-outline-success waves-effect active waves-themed"> class="item btn-group btn-group-toggle offset-1"
<input type="radio" data-toggle="buttons"
name="compareTypeRadio" style="display: none"
id="compareMonth" >
value="month" <label
checked /> class="btn btn-outline-success waves-effect active waves-themed"
>
<input
type="radio"
name="compareTypeRadio"
id="compareMonth"
value="month"
checked
/>
年度同月比較 年度同月比較
</label> </label>
<label class="btn btn-outline-success waves-effect waves-themed"> <label
<input type="radio" class="btn btn-outline-success waves-effect waves-themed"
name="compareTypeRadio" >
id="compareDay" <input
value="day" /> type="radio"
name="compareTypeRadio"
id="compareDay"
value="day"
/>
月份同日比較 月份同日比較
</label> </label>
</div> </div>
<div id="compareAreaBtnsDiv" <div
class="item btn-group btn-group-toggle" id="compareAreaBtnsDiv"
data-toggle="buttons" class="item btn-group btn-group-toggle"
style="display: none"> data-toggle="buttons"
<label class="btn btn-outline-success waves-effect active waves-themed"> style="display: none"
<input type="radio" >
name="compareEleRadio" <label
id="compareAll" class="btn btn-outline-success waves-effect active waves-themed"
value="0" >
checked /> <input
type="radio"
name="compareEleRadio"
id="compareAll"
value="0"
checked
/>
總計含分盤資料 總計含分盤資料
</label> </label>
<label class="btn btn-outline-success waves-effect waves-themed"> <label
<input type="radio" class="btn btn-outline-success waves-effect waves-themed"
name="compareEleRadio" >
id="compareSeperate" <input
value="1" /> type="radio"
name="compareEleRadio"
id="compareSeperate"
value="1"
/>
總計不含分盤資料 總計不含分盤資料
</label> </label>
</div> </div>
<div class="col-auto offset-1"> <div class="col-auto">
選擇<span id="elecTimeText">單一月份</span> 選擇<span id="elecTimeText">單一月份</span>
</div> </div>
<input type="text" <input
id="elecMonthDate" type="text"
class="form-control col-2" /> id="elecMonthDate"
<input type="text" class="form-control col-2"
id="elecYearDate" />
class="form-control col-2" <input
style="display: none" /> type="text"
<div id="elecStartEndDiv" id="elecYearDate"
class="row m-0 align-items-center" class="form-control col-2"
style="display: none"> style="display: none"
<input type="text" />
id="elecSYearDate" <div
class="form-control col-4" /> id="elecStartEndDiv"
class="row m-0 align-items-center"
style="display: none"
>
<input
type="text"
id="elecSYearDate"
class="form-control col-4"
/>
<span class="px-2">~</span> <span class="px-2">~</span>
<input type="text" <input
id="elecEYearDate" type="text"
class="form-control col-4" /> id="elecEYearDate"
class="form-control col-4"
/>
</div> </div>
<div id="elecCompareDiv" <div
class="row m-0 align-items-center" id="elecCompareDiv"
style="display: none"> class="row m-0 align-items-center"
style="display: none"
>
<div id="elecComYearDiv" class="row m-0 align-items-center"> <div id="elecComYearDiv" class="row m-0 align-items-center">
<input type="text" <input
id="elecCom1YearDate" type="text"
class="form-control col-4" /> id="elecCom1YearDate"
class="form-control col-4"
/>
<span class="px-2"></span> <span class="px-2"></span>
<input type="text" <input
id="elecCom2YearDate" type="text"
class="form-control col-4" /> id="elecCom2YearDate"
class="form-control col-4"
/>
</div> </div>
<div id="elecComMonthDiv" <div
class="row m-0 align-items-center" id="elecComMonthDiv"
style="display: none"> class="row m-0 align-items-center"
<input type="text" style="display: none"
id="elecCom1MonthDate" >
class="form-control col-4" /> <input
type="text"
id="elecCom1MonthDate"
class="form-control col-4"
/>
<span class="px-2"></span> <span class="px-2"></span>
<input type="text" <input
id="elecCom2MonthDate" type="text"
class="form-control col-4" /> id="elecCom2MonthDate"
class="form-control col-4"
/>
</div> </div>
</div> </div>
</h2> </h2>
@ -148,15 +212,19 @@
<div class="panel-hdr" style="min-height: auto"> <div class="panel-hdr" style="min-height: auto">
<h2 class="py-2 col-12" id="school_zone"> <h2 class="py-2 col-12" id="school_zone">
<div class="col-1">校區</div> <div class="col-1">校區</div>
<div class="item btn-group btn-group-toggle" <div
data-toggle="buttons"></div> class="item btn-group btn-group-toggle"
data-toggle="buttons"
></div>
</h2> </h2>
</div> </div>
<div class="panel-hdr" style="min-height: auto"> <div class="panel-hdr" style="min-height: auto">
<h2 class="py-2 col-12" id="building"> <h2 class="py-2 col-12" id="building">
<div class="col-1">棟別</div> <div class="col-1">棟別</div>
<div class="item btn-group btn-group-toggle" <div
data-toggle="buttons"></div> class="item btn-group btn-group-toggle"
data-toggle="buttons"
></div>
</h2> </h2>
</div> </div>
<div class="panel-hdr" style="min-height: auto"> <div class="panel-hdr" style="min-height: auto">
@ -186,22 +254,44 @@
</h2> --> </h2> -->
</div> </div>
<div class="d-flex my-2"> <div class="d-flex my-2">
<button type="button" <button
class="btn btn-primary" type="button"
onclick="getMeterData()"> class="btn btn-primary"
onclick="getMeterData()"
>
查詢 查詢
</button> </button>
<button type="button" <button
class="btn btn-danger ml-2" type="button"
onclick="setExportList()"> class="btn btn-danger mx-2"
onclick="setExportList()"
>
匯出 匯出
</button> </button>
<div id="tableLoading" <div id="ArchiveBtnDiv" style="display: none">
class="row m-0 align-items-center" <button
style="display: none"> type="button"
<div class="spinner-border text-info mx-2" class="btn btn-info"
role="status" id="recalculateBtn"
style="width: 1.2rem; height: 1.2rem"> onclick="recalculateArchive()"
>
重新計算
</button>
<span class="h6 text-light pl-2" id="lastUpdateTime"
>最後更新時間 :
</span>
</div>
<div
id="tableLoading"
class="row m-0 align-items-center"
style="display: none"
>
<div
class="spinner-border text-info mx-2"
role="status"
style="width: 1.2rem; height: 1.2rem"
>
<span class="sr-only">Loading...</span> <span class="sr-only">Loading...</span>
</div> </div>
<span id="tableLoadingText">列表讀取中</span> <span id="tableLoadingText">列表讀取中</span>
@ -211,8 +301,10 @@
<button type="button" class="btn btn-info allbtn ml-2" onclick="LookRealTime()">查看即時資訊</button> --> <button type="button" class="btn btn-info allbtn ml-2" onclick="LookRealTime()">查看即時資訊</button> -->
</div> </div>
<span class="d-flex justify-content-end">單位kWh </span> <span class="d-flex justify-content-end">單位kWh </span>
<table id="report_table" <table
class="table table-bordered table-striped text-center m-0 w-100"></table> id="report_table"
class="table table-bordered table-striped text-center m-0 w-100"
></table>
</div> </div>
</div> </div>
</div> </div>
@ -248,6 +340,7 @@
year: "ExportElectricList", year: "ExportElectricList",
compare: "ExportElectricCompareList", compare: "ExportElectricCompareList",
compareForEachTotal: "ExportElectricEachTotalCompareList", compareForEachTotal: "ExportElectricEachTotalCompareList",
depCampareExcel: "ElecData/ExportDepCampareExcel",
}, },
}, },
}; };
@ -456,6 +549,7 @@
).hide(); ).hide();
$("#compareTypeBtnsDiv").hide(); $("#compareTypeBtnsDiv").hide();
$("#compareAreaBtnsDiv").hide(); $("#compareAreaBtnsDiv").hide();
$("#ArchiveBtnDiv").hide();
const value = $(this).data("value"); const value = $(this).data("value");
const type = $(this).data("type"); const type = $(this).data("type");
@ -472,6 +566,13 @@
$("#school_zone").hide(); $("#school_zone").hide();
$("#building").hide(); $("#building").hide();
$(".price").hide(); $(".price").hide();
} else if (type === "elec") {
$("#elecTimeText").text("月份");
$("#elecMonthDate").show();
$("#ArchiveBtnDiv").show();
$("#school_zone").hide();
$("#building").hide();
$(".price").hide();
} else if (value === "day") { } else if (value === "day") {
$("#elecTimeText").text("月份"); $("#elecTimeText").text("月份");
$("#elecMonthDate").show(); $("#elecMonthDate").show();
@ -572,20 +673,20 @@
tableType == "day" tableType == "day"
? $("#elecMonthDate").val() ? $("#elecMonthDate").val()
: tableType == "month" : tableType == "month"
? $("#elecYearDate").val() ? $("#elecYearDate").val()
: tableType == "year" : tableType == "year"
? $("#elecSYearDate").val() ? $("#elecSYearDate").val()
: tableType == "compare" : tableType == "compare" || tableType == "elec"
? compareType == "month" ? compareType == "month"
? !$("#elecCom1YearDate").val() || !$("#elecCom2YearDate").val() ? !$("#elecCom1YearDate").val() || !$("#elecCom2YearDate").val()
? null ? null
: [$("#elecCom1YearDate").val(), $("#elecCom2YearDate").val()] : [$("#elecCom1YearDate").val(), $("#elecCom2YearDate").val()]
: compareType == "day" : compareType == "day"
? !$("#elecCom1MonthDate").val() || !$("#elecCom2MonthDate").val() ? !$("#elecCom1MonthDate").val() || !$("#elecCom2MonthDate").val()
? null ? null
: [$("#elecCom1MonthDate").val(), $("#elecCom2MonthDate").val()] : [$("#elecCom1MonthDate").val(), $("#elecCom2MonthDate").val()]
: null : null
: null; : null;
if (!startTime) { if (!startTime) {
toast_error("請選擇日期"); toast_error("請選擇日期");
@ -605,33 +706,33 @@
let sent_data = Mode let sent_data = Mode
? { ? {
tableType: "month", tableType: "month",
building_tag: "", building_tag: "",
floor_tag: $("[name=floorCheckbox]:checked") floor_tag: $("[name=floorCheckbox]:checked")
.map((i, e) => $(e).val()) .map((i, e) => $(e).val())
.toArray(), .toArray(),
startTime: startTime, startTime: startTime,
endTime: endTime, endTime: endTime,
price: $("#elecPriceDegree").val() price: $("#elecPriceDegree").val()
? parseFloat($("#elecPriceDegree").val()) ? parseFloat($("#elecPriceDegree").val())
: null, : null,
Mode: parseInt(Mode), Mode: parseInt(Mode),
} }
: { : {
tableType: tableType:
$("li.active [name=reportTypeRadio]").data("value") == "compare" $("li.active [name=reportTypeRadio]").data("value") == "compare"
? $("[name=compareTypeRadio]:checked").val() ? $("[name=compareTypeRadio]:checked").val()
: $("li.active [name=reportTypeRadio]").data("value"), : $("li.active [name=reportTypeRadio]").data("value"),
building_tag: SelectBuildings.join(","), building_tag: SelectBuildings.join(","),
floor_tag: $("[name=floorCheckbox]:checked") floor_tag: $("[name=floorCheckbox]:checked")
.map((i, e) => $(e).val()) .map((i, e) => $(e).val())
.toArray(), .toArray(),
startTime: startTime, startTime: startTime,
endTime: endTime, endTime: endTime,
price: $("#elecPriceDegree").val() price: $("#elecPriceDegree").val()
? parseFloat($("#elecPriceDegree").val()) ? parseFloat($("#elecPriceDegree").val())
: null, : null,
}; };
if (Array.isArray(startTime)) { if (Array.isArray(startTime)) {
sent_data = [Object.assign({}, sent_data), Object.assign({}, sent_data)]; sent_data = [Object.assign({}, sent_data), Object.assign({}, sent_data)];
@ -663,80 +764,104 @@
toast_error("請選擇樓層"); toast_error("請選擇樓層");
return; return;
} }
var url = var url;
baseApiUrl + var isElecType =
"/api/" + $("li.active [name=reportTypeRadio]").data("type") === "elec";
`${sent_data[0]?.Mode?.toString()
? reportTypeDict["RElec"]["listApiUrlForTotal"]
: reportTypeDict["RElec"]["listApiUrl"]
}`;
setLoading(true); setLoading(true);
sent_data.forEach((sdata, i) => { if (isElecType) {
// 取得月份
var date = $("#elecMonthDate").val();
url = baseApiUrl + "/ElecData/GetMonthElecCompData?Date=" + date;
$.ajax({ $.ajax({
type: "POST", type: "GET",
headers: { headers: {
Authorization: "Bearer " + token, Authorization: "Bearer " + token,
}, },
url: url, url: url,
async: false, async: false,
data: JSON.stringify(sdata),
contentType: "application/json; charset=utf-8", contentType: "application/json; charset=utf-8",
success: function (rel) { success: function (rel) {
if (rel.code != "0000") { result = rel.data;
if (rel.code == "9999") {
toast_error(rel.msg);
} else {
toast_warning(rel.msg);
}
return;
}
if (i == 0) {
result = result.concat(rel.data);
result.forEach((r) => {
r._compare_price = null;
r._compare_total = null;
r._compare_total_price = null;
});
} else {
rel.data.forEach((r) => {
let target =
result.find(
(d) =>
d.building_tag == r.building_tag &&
d.device_serial_tag == r.device_serial_tag &&
d.device_master == r.device_master &&
d.floor_tag == r.floor_tag
) ?? null;
let _target = {};
// if(!target){
// result.push(target);
// target = {};
// }
_target.rawData = (target?.rawData ?? []).concat(r.rawData);
_target._compare_price = r.price;
_target._compare_total = r.total;
_target._compare_total_price = r.total_price;
if (!target) {
_target = Object.assign(_target, r);
_target.price = null;
_target.total = null;
_target.total_price = null;
result.push(_target);
return;
}
target = Object.assign(target, _target);
});
}
}, },
complete: () => { complete: () => {
if (sent_data.length - 1 == i) { setLoading(false);
setLoading(false);
}
}, },
}); });
}); } else {
url =
baseApiUrl +
"/api/" +
`${
sent_data[0]?.Mode?.toString()
? reportTypeDict["RElec"]["listApiUrlForTotal"]
: reportTypeDict["RElec"]["listApiUrl"]
}`;
sent_data.forEach((sdata, i) => {
$.ajax({
type: "POST",
headers: {
Authorization: "Bearer " + token,
},
url: url,
async: false,
data: JSON.stringify(sdata),
contentType: "application/json; charset=utf-8",
success: function (rel) {
if (rel.code != "0000") {
if (rel.code == "9999") {
toast_error(rel.msg);
} else {
toast_warning(rel.msg);
}
return;
}
if (i == 0) {
result = result.concat(rel.data);
result.forEach((r) => {
r._compare_price = null;
r._compare_total = null;
r._compare_total_price = null;
});
} else {
rel.data.forEach((r) => {
let target =
result.find(
(d) =>
d.building_tag == r.building_tag &&
d.device_serial_tag == r.device_serial_tag &&
d.device_master == r.device_master &&
d.floor_tag == r.floor_tag
) ?? null;
let _target = {};
// if(!target){
// result.push(target);
// target = {};
// }
_target.rawData = (target?.rawData ?? []).concat(r.rawData);
_target._compare_price = r.price;
_target._compare_total = r.total;
_target._compare_total_price = r.total_price;
if (!target) {
_target = Object.assign(_target, r);
_target.price = null;
_target.total = null;
_target.total_price = null;
result.push(_target);
return;
}
target = Object.assign(target, _target);
});
}
},
complete: () => {
if (sent_data.length - 1 == i) {
setLoading(false);
}
},
});
});
}
setReportTable(result); setReportTable(result);
} }
@ -878,30 +1003,26 @@
$("#report_table").empty(); $("#report_table").empty();
} }
const ElecEachTotal = const ElecEachTotal = $("li.active [name=reportTypeRadio]").data("type");
$("li.active [name=reportTypeRadio]").data("type") === "compare";
if (ElecEachTotal) { if (ElecEachTotal === "compare") {
let preDate = new Date($("#elecMonthDate").val().split("-") + "-01"); let preDate = new Date($("#elecMonthDate").val().split("-") + "-01");
preDate.setMonth(preDate.getMonth() - 1); preDate.setMonth(preDate.getMonth() - 1);
const [year, month] = $("#elecMonthDate").val().split("-"); const [year, month] = $("#elecMonthDate").val().split("-");
const preYear = preDate.getFullYear(); const preYear = preDate.getFullYear();
const preMonth = (preDate.getMonth() + 1).toString().padStart(2, '0'); const preMonth = (preDate.getMonth() + 1).toString().padStart(2, "0");
datesColumns = [ datesColumns = [
{ {
label: "選擇月份 <br>" + `${year}${month}` + "(A)", label: "選擇月份 <br>" + `${year}${month}` + "(A)",
value: $("#elecMonthDate").val(), value: $("#elecMonthDate").val(),
}, },
{ {
label: label: "前一月份 <br>" + `${preYear}${preMonth}` + "(B)",
"前一月份 <br>" + value: `${preYear}-${preMonth}`,
`${preYear}${preMonth}` +
"(B)",
value: `${preYear}-${preMonth}`,
}, },
{ {
label: label:
"差異比較 <br>" + "差異比較 <br>" + `${year}${month}(A)-${preYear}${preMonth}(B)`,
`${year}${month}(A)-${preYear}${preMonth}(B)`,
value: "last month different", value: "last month different",
}, },
{ {
@ -915,19 +1036,63 @@
].map((dc) => { ].map((dc) => {
return { title: dc.label, data: dc.value, width: "120px" }; return { title: dc.label, data: dc.value, width: "120px" };
}); });
} else if (ElecEachTotal === "elec") {
let preDate = new Date($("#elecMonthDate").val().split("-") + "-01");
preDate.setMonth(preDate.getMonth() - 1);
const [year, month] = $("#elecMonthDate").val().split("-");
const preYear = preDate.getFullYear();
const preMonth = (preDate.getMonth() + 1).toString().padStart(2, "0");
datesColumns = [
{ title: "項次", data: "rowIndex", width: "60px" },
{ title: "單位", data: "dep_name", width: "120px" },
{
title: `選擇月份 <br>${year}${month}(A)`,
data: "now_month_kWh",
width: "120px",
},
{
title: "當月用電度數/(第一校區+第二校區)%",
data: "proportion",
width: "120px",
},
{
title: `前一月份 <br>${preYear}${preMonth}(B)`,
data: "last_month_kWh",
width: "120px",
},
{
title: `差異比較 <br>${year}${month}(A)-${preYear}${preMonth}(B)`,
data: "compare_last_month",
width: "120px",
},
{
title: `去年同期 <br>${year - 1}${month}(C)`,
data: "last_year_same_month",
width: "120px",
},
{
title: `同期差異 <br>${year - 1}${month}(A)-${year}${month}(C)`,
data: "compare_last_year",
width: "120px",
},
];
// 自動加 rowIndex
datas = datas.map((d, idx) => ({ ...d, rowIndex: idx + 1 }));
} else { } else {
datesColumns = setTableColumns(); datesColumns = setTableColumns();
} }
const compareType = $("label.active [name=compareTypeRadio]").val(); const compareType = $("label.active [name=compareTypeRadio]").val();
datas.forEach((td) => { if (ElecEachTotal !== "elec") {
td.rawData.forEach((rd) => { datas.forEach((td) => {
td[rd.timeStamp] = rd.avg_rawdata; td.rawData.forEach((rd) => {
td[rd.timeStamp] = rd.avg_rawdata;
});
datesColumns.forEach((dc) => {
td[dc.data] = td[dc.data] === undefined ? null : td[dc.data];
});
}); });
datesColumns.forEach((dc) => { }
td[dc.data] = td[dc.data] === undefined ? null : td[dc.data];
});
});
let totalColumns = [ let totalColumns = [
{ {
@ -997,24 +1162,28 @@
language: { url: "/file/BajascriptTest/js/dataTables/zh-HANT.json" }, language: { url: "/file/BajascriptTest/js/dataTables/zh-HANT.json" },
aaSorting: [], aaSorting: [],
columns: [ columns: [
{ ...(ElecEachTotal === "elec"
title: "棟別", ? []
data: "building_name", : [
className: "text-nowrap", {
width: "100px", title: "棟別",
}, data: "building_name",
{ className: "text-nowrap",
title: "樓層", width: "100px",
data: "floor_tag", },
width: "8%", {
className: "text-nowrap", title: "樓層",
}, data: "floor_tag",
{ width: "8%",
title: "設備", className: "text-nowrap",
data: "device_full_name", },
width: "300px", {
className: "text-nowrap", title: "設備",
}, data: "device_full_name",
width: "300px",
className: "text-nowrap",
},
]),
...datesColumns, ...datesColumns,
...(ElecEachTotal ? [] : totalColumns), ...(ElecEachTotal ? [] : totalColumns),
], ],
@ -1025,6 +1194,8 @@
const tableType = const tableType =
$("li.active [name=reportTypeRadio]").data("type") === "compare" $("li.active [name=reportTypeRadio]").data("type") === "compare"
? "compareForEachTotal" ? "compareForEachTotal"
: $("li.active [name=reportTypeRadio]").data("type") === "elec"
? "depCampareExcel"
: $("li.active [name=reportTypeRadio]").data("value"); : $("li.active [name=reportTypeRadio]").data("value");
var sent_data = getListSendData(); var sent_data = getListSendData();
if (!Array.isArray(sent_data)) { if (!Array.isArray(sent_data)) {
@ -1038,10 +1209,15 @@
// toast_error("請選擇樓層"); // toast_error("請選擇樓層");
// return; // return;
// } // }
var url = var isElecType =
baseApiUrl + $("li.active [name=reportTypeRadio]").data("type") === "elec";
"/api/" + var url = isElecType
reportTypeDict["RElec"]["exportListApiUrl"][tableType]; ? baseApiUrl +
"/" +
reportTypeDict["RElec"]["exportListApiUrl"][tableType]
: baseApiUrl +
"/api/" +
reportTypeDict["RElec"]["exportListApiUrl"][tableType];
setLoading(true, "匯出中"); setLoading(true, "匯出中");
$.ajax({ $.ajax({
@ -1069,6 +1245,39 @@
}); });
} }
function recalculateArchive() {
var url = baseApiUrl + "/ElecData/ArchiveDepCampare";
$("#recalculateBtn").prop("disabled", true);
setLoading(true, "重新計算中");
$.ajax({
type: "POST",
headers: {
Authorization: "Bearer " + token,
},
url: url,
async: true,
contentType: "application/json; charset=utf-8",
success: function (rel) {
if (rel.code == "9999") {
toast_error(rel.msg);
} else {
var now = moment(rel.data[0].execute_time).format(
"YYYY-MM-DD HH:mm:ss"
);
$("#lastUpdateTime").html("最後更新時間 : " + now);
toast_ok("重新計算完成");
}
},
error: function () {
toast_error("重新計算失敗");
},
complete: function () {
setLoading(false);
$("#recalculateBtn").prop("disabled", false);
},
});
}
function setLoading(type = true, text = "列表讀取中") { function setLoading(type = true, text = "列表讀取中") {
if (type) { if (type) {
$("#tableLoading").fadeIn(200); $("#tableLoading").fadeIn(200);
@ -1196,8 +1405,9 @@
rel.data.forEach(({ system_key, system_value }) => { rel.data.forEach(({ system_key, system_value }) => {
htmlStr += ` htmlStr += `
<label <label
class="btn btn-outline-success waves-effect waves-themed ${school_zone === system_key ? "active" : "" class="btn btn-outline-success waves-effect waves-themed ${
}" school_zone === system_key ? "active" : ""
}"
> >
<input type="radio" name="buildingRadio" value=${system_key} />${system_value} <input type="radio" name="buildingRadio" value=${system_key} />${system_value}
</label>`; </label>`;