This commit is contained in:
cesar liu 2022-08-04 16:02:37 +08:00
commit c32abb1d63
22 changed files with 244 additions and 228 deletions

View File

@ -356,7 +356,7 @@ namespace SolarPower.Controllers
PowerIrradianceChart powerIrradianceTodayChart = new PowerIrradianceChart(); PowerIrradianceChart powerIrradianceTodayChart = new PowerIrradianceChart();
powerIrradianceTodayChart.Labels = powerIrradianceToday.Select(x => x.Label).ToList(); powerIrradianceTodayChart.Labels = powerIrradianceToday.Select(x => x.Label).ToList();
powerIrradianceTodayChart.PowerDatas = powerIrradianceToday.Select(x => x.PowerData).ToList(); powerIrradianceTodayChart.PowerDatas = powerIrradianceToday.Select(x => x.PowerData).ToList();
powerIrradianceTodayChart.IrradianceDatas = powerIrradianceToday.Select(x => x.IrradianceData).ToList(); powerIrradianceTodayChart.IrradianceDatas = powerIrradianceToday.Select(x => x.IrrDayHourData).ToList();
powerIrradianceTodayChart.TemperatureDatas = powerIrradianceToday.Select(x => x.TemperatureData).ToList(); powerIrradianceTodayChart.TemperatureDatas = powerIrradianceToday.Select(x => x.TemperatureData).ToList();
chartUptoDate.ChartToday = powerIrradianceTodayChart; chartUptoDate.ChartToday = powerIrradianceTodayChart;

View File

@ -244,7 +244,7 @@ namespace SolarPower.Controllers
{ {
"小時發電量(kWh)", "小時發電量(kWh)",
"小時發電量百分比(%)", "小時發電量百分比(%)",
"小時累積日照度(W/㎡)", "累積日照度(Wh/㎡)",
"小時平均模組溫度(°C)" "小時平均模組溫度(°C)"
}; };
if(Formhead.Result.Data.ShowMoney == 1) if(Formhead.Result.Data.ShowMoney == 1)
@ -443,7 +443,7 @@ namespace SolarPower.Controllers
"日照小時(hr)", "日照小時(hr)",
"日均發電度數", "日均發電度數",
"PR%", "PR%",
"累積日照度(W/㎡)", "累積日照度(Wh/㎡)",
"日平均模組溫度(°C)" "日平均模組溫度(°C)"
}; };
@ -717,7 +717,7 @@ namespace SolarPower.Controllers
"日照小時(hr)", "日照小時(hr)",
"日均發電度數", "日均發電度數",
"PR%", "PR%",
"累積日照度(W/㎡)", "累積日照度(Wh/㎡)",
"月平均模組溫度(°C)" "月平均模組溫度(°C)"
}; };
@ -1116,7 +1116,7 @@ namespace SolarPower.Controllers
{ {
"小時發電量(kWh)", "小時發電量(kWh)",
"小時發電量百分比(%)", "小時發電量百分比(%)",
"小時累積日照度(W/㎡)", "累積日照度(Wh/㎡)",
"小時平均模組溫度(°C)" "小時平均模組溫度(°C)"
}; };
if (Formhead.Result.Data.ShowMoney == 1) if (Formhead.Result.Data.ShowMoney == 1)
@ -1317,7 +1317,7 @@ namespace SolarPower.Controllers
"日照小時(hr)", "日照小時(hr)",
"有效發電小時", "有效發電小時",
"PR%", "PR%",
"累積日照量(W/㎡)", "累積日照量(Wh/㎡)",
"日平均模組溫度(°C)" "日平均模組溫度(°C)"
}; };

View File

@ -95,6 +95,7 @@ namespace SolarPower.Models
public double PowerData { get; set; } public double PowerData { get; set; }
public double IrradianceData { get; set; } public double IrradianceData { get; set; }
public double TemperatureData { get; set; } public double TemperatureData { get; set; }
public double IrrDayHourData { get; set; }
} }
public class PowerIrradianceChart public class PowerIrradianceChart
@ -202,6 +203,7 @@ namespace SolarPower.Models
/// 累計日照 /// 累計日照
/// </summary> /// </summary>
public double IrrDay { get; set; } public double IrrDay { get; set; }
public double IrrDayHour { get; set; }
} }
public class ExceptionEmailInfo public class ExceptionEmailInfo

View File

@ -733,6 +733,7 @@ namespace SolarPower.Models.PowerStation
public double Dust { get; set; } //落塵計 public double Dust { get; set; } //落塵計
public double WingDirection { get; set; } //風向計 public double WingDirection { get; set; } //風向計
public double IrrDay { get; set; } //累計日照量 public double IrrDay { get; set; } //累計日照量
public double IrrDayHour { get; set; }//每小時的累積日照
} }
public class AvgPyrheliometerHistory public class AvgPyrheliometerHistory

View File

@ -97,6 +97,9 @@ namespace SolarPower.Models
public double PowerRate { get; set; } public double PowerRate { get; set; }
public double GeneratingCapacity { get; set; } public double GeneratingCapacity { get; set; }
public double TotalKWH { get; set; } public double TotalKWH { get; set; }
public double IrrDay { get; set; }
public double IrrDayHour { get; set; }
private string mintime; private string mintime;
private string maxtime; private string maxtime;

View File

@ -212,7 +212,7 @@ namespace SolarPower.Repository.Implement
{ {
try try
{ {
var sql_power = @$"SELECT DATE_FORMAT(ps.timestamp,'%H %p') AS Label, ps.KWH AS PowerData, pyr.Irradiance AS IrradianceData, pyr.Temperature AS TemperatureData var sql_power = @$"SELECT DATE_FORMAT(ps.timestamp,'%H %p') AS Label, ps.KWH AS PowerData, pyr.IrrDayHour AS IrrDayHourData, pyr.Temperature AS TemperatureData
FROM power_station_history_hour ps FROM power_station_history_hour ps
LEFT JOIN sensor_history_hour pyr ON ps.PowerStationId = pyr.PowerStationId AND DATE_FORMAT(ps.timestamp, '%Y-%m-%d %H') = DATE_FORMAT(pyr.timestamp, '%Y-%m-%d %H') LEFT JOIN sensor_history_hour pyr ON ps.PowerStationId = pyr.PowerStationId AND DATE_FORMAT(ps.timestamp, '%Y-%m-%d %H') = DATE_FORMAT(pyr.timestamp, '%Y-%m-%d %H')
WHERE ps.PowerStationId = @PowerStationId WHERE ps.PowerStationId = @PowerStationId
@ -681,7 +681,7 @@ namespace SolarPower.Repository.Implement
{ // range 查詢同一天 { // range 查詢同一天
range2 = @$" AND DATE_FORMAT(C.`TIMESTAMP`,'%Y-%m-%d') BETWEEN '{ d1 }' AND '{ d2 }'"; range2 = @$" AND DATE_FORMAT(C.`TIMESTAMP`,'%Y-%m-%d') BETWEEN '{ d1 }' AND '{ d2 }'";
sql = $@" SELECT C.TIMESTAMP, C.KWH AS KWH,C.SOLARHOUR, C.PR, sql = $@" SELECT C.TIMESTAMP, C.KWH AS KWH,C.SOLARHOUR, C.PR,
P.Irradiance, P.Temperature AS Temp , C.KWHKWP, P.IrrDay, 0 AS DiffSOLARHOUR, C.PR avgPR P.Irradiance, P.IrrDayHour, P.Temperature AS Temp , C.KWHKWP, P.IrrDay, 0 AS DiffSOLARHOUR, C.PR avgPR
FROM power_station_history_hour C FROM power_station_history_hour C
LEFT JOIN sensor_history_hour P ON P.`TIMESTAMP` =C.`TIMESTAMP` AND P.PowerStationId = C.PowerStationId LEFT JOIN sensor_history_hour P ON P.`TIMESTAMP` =C.`TIMESTAMP` AND P.PowerStationId = C.PowerStationId
WHERE C.PowerStationId = {post.PowerstationId}{range2} "; WHERE C.PowerStationId = {post.PowerstationId}{range2} ";
@ -696,7 +696,7 @@ namespace SolarPower.Repository.Implement
// LEFT JOIN sensor_history_day P ON DATE_FORMAT(P.TIMESTAMP, '%Y-%m-%d') = DATE_FORMAT(C.TIMESTAMP, '%Y-%m-%d') AND P.PowerStationId = C.PowerStationId // LEFT JOIN sensor_history_day P ON DATE_FORMAT(P.TIMESTAMP, '%Y-%m-%d') = DATE_FORMAT(C.TIMESTAMP, '%Y-%m-%d') AND P.PowerStationId = C.PowerStationId
// join power_station_history_month m on DATE_FORMAT(P.TIMESTAMP, '%Y-%m') = DATE_FORMAT(m.TIMESTAMP, '%Y-%m') AND m.PowerStationId = C.PowerStationId // join power_station_history_month m on DATE_FORMAT(P.TIMESTAMP, '%Y-%m') = DATE_FORMAT(m.TIMESTAMP, '%Y-%m') AND m.PowerStationId = C.PowerStationId
// WHERE C.PowerStationId = {post.PowerstationId}{range} order by C.TIMESTAMP"; // WHERE C.PowerStationId = {post.PowerstationId}{range} order by C.TIMESTAMP";
sql = $@" SELECT C.TIMESTAMP, C.TODAYKWH AS KWH, C.SOLARHOUR, C.PR, P.Irradiance, P.Temperature AS Temp ,C.KWHKWP, P.IrrDay, 0 AS DiffSOLARHOUR, C.PR avgPR sql = $@" SELECT C.TIMESTAMP, C.TODAYKWH AS KWH, C.SOLARHOUR, C.PR, P.Irradiance, P.IrrDayHour, P.Temperature AS Temp ,C.KWHKWP, P.IrrDay, 0 AS DiffSOLARHOUR, C.PR avgPR
FROM power_station_history_day C FROM power_station_history_day C
LEFT JOIN sensor_history_day P ON DATE_FORMAT(P.TIMESTAMP, '%Y-%m-%d') = DATE_FORMAT(C.TIMESTAMP, '%Y-%m-%d') AND P.PowerStationId = C.PowerStationId LEFT JOIN sensor_history_day P ON DATE_FORMAT(P.TIMESTAMP, '%Y-%m-%d') = DATE_FORMAT(C.TIMESTAMP, '%Y-%m-%d') AND P.PowerStationId = C.PowerStationId
WHERE C.PowerStationId = {post.PowerstationId}{range} order by C.TIMESTAMP"; break; WHERE C.PowerStationId = {post.PowerstationId}{range} order by C.TIMESTAMP"; break;
@ -704,16 +704,16 @@ namespace SolarPower.Repository.Implement
} }
break; break;
case 1: // day 沒有 dateRange - 月 case 1: // day 沒有 dateRange - 月
sql = $@" SELECT C.TIMESTAMP, {kwh} AS KWH, C.SOLARHOUR, C.PR, P.Irradiance, P.Temperature AS Temp ,C.KWHKWP, P.IrrDay, 0 AS DiffSOLARHOUR, C.PR avgPR sql = $@" SELECT C.TIMESTAMP, {kwh} AS KWH, C.SOLARHOUR, C.PR, P.Irradiance, P.IrrDayHour, P.Temperature AS Temp ,C.KWHKWP, P.IrrDay, 0 AS DiffSOLARHOUR, C.PR avgPR
FROM {usedb} C FROM {usedb} C
LEFT JOIN {pyrdb} P ON DATE_FORMAT(P.TIMESTAMP, '%Y-%m-%d') = DATE_FORMAT(C.TIMESTAMP, '%Y-%m-%d') AND P.PowerStationId = C.PowerStationId LEFT JOIN {pyrdb} P ON DATE_FORMAT(P.TIMESTAMP, '%Y-%m-%d') = DATE_FORMAT(C.TIMESTAMP, '%Y-%m-%d') AND P.PowerStationId = C.PowerStationId
WHERE C.PowerStationId = {post.PowerstationId}{range} order by C.TIMESTAMP"; break; WHERE C.PowerStationId = {post.PowerstationId}{range} order by C.TIMESTAMP"; break;
case 2: // month 單月 case 2: // month 單月
//sql = $@" SELECT C.TIMESTAMP, C.MONTHKWH AS KWH, C.SOLARHOUR, C.PR, P.Irradiance, P.Temperature AS Temp ,C.KWHKWP, P.IrrDay, 0 AS DiffSOLARHOUR //sql = $@" SELECT C.TIMESTAMP, C.MONTHKWH AS KWH, C.SOLARHOUR, C.PR, P.Irradiance, P.IrrDayHour, P.Temperature AS Temp ,C.KWHKWP, P.IrrDay, 0 AS DiffSOLARHOUR
// FROM power_station_history_month C // FROM power_station_history_month C
// LEFT JOIN sensor_history_month P ON DATE_FORMAT(P.TIMESTAMP, '%Y-%m') = DATE_FORMAT(C.TIMESTAMP, '%Y-%m') AND P.PowerStationId = C.PowerStationId // LEFT JOIN sensor_history_month P ON DATE_FORMAT(P.TIMESTAMP, '%Y-%m') = DATE_FORMAT(C.TIMESTAMP, '%Y-%m') AND P.PowerStationId = C.PowerStationId
// WHERE C.PowerStationId = {post.PowerstationId}{range}"; // WHERE C.PowerStationId = {post.PowerstationId}{range}";
sql = $@" SELECT C.TIMESTAMP, C.MONTHKWH AS KWH, C.SOLARHOUR, C.PR, P.Irradiance, P.Temperature AS Temp ,C.KWHKWP, P.IrrDay, 0 AS DiffSOLARHOUR, C.PR avgPR sql = $@" SELECT C.TIMESTAMP, C.MONTHKWH AS KWH, C.SOLARHOUR, C.PR, P.Irradiance, P.IrrDayHour, P.Temperature AS Temp ,C.KWHKWP, P.IrrDay, 0 AS DiffSOLARHOUR, C.PR avgPR
FROM power_station_history_month C FROM power_station_history_month C
LEFT JOIN sensor_history_month P ON DATE_FORMAT(P.TIMESTAMP, '%Y-%m') = DATE_FORMAT(C.TIMESTAMP, '%Y-%m') AND P.PowerStationId = C.PowerStationId LEFT JOIN sensor_history_month P ON DATE_FORMAT(P.TIMESTAMP, '%Y-%m') = DATE_FORMAT(C.TIMESTAMP, '%Y-%m') AND P.PowerStationId = C.PowerStationId
WHERE C.PowerStationId = {post.PowerstationId}{range}"; WHERE C.PowerStationId = {post.PowerstationId}{range}";

View File

@ -89,7 +89,7 @@ namespace SolarPower.Repository.Implement
DROP TABLE IF EXISTS temp_inv; DROP TABLE IF EXISTS temp_inv;
create TEMPORARY TABLE temp_inv as create TEMPORARY TABLE temp_inv as
SELECT DATE_FORMAT(a.report_date,'%m-%d %H') report_date, {inv} SELECT DATE_FORMAT(a.report_date,'%m-%d %H') report_date, {inv}
a.hourKWH hourKWH, a.hourKWHp 'hourKWHp', a.irradiance 'irradiance', a.Temperature 'temperature', a.hourKWH hourKWH, a.hourKWHp 'hourKWHp', IFNULL(a.irrDay, 0) irrDay, IFNULL(a.irrDayHour, 0) irrDayHour, a.Temperature 'temperature',
a.hourmoney 'hourmoney', c.TODAYKWH 'totKWH', c.KWHKWP 'totKWHKWP', c.money 'totmoney', stationName, powerRate daymoney, c.SOLARHOUR tothour,round(a.PR, 2) as pr,GeneratingCapacity a.hourmoney 'hourmoney', c.TODAYKWH 'totKWH', c.KWHKWP 'totKWHKWP', c.money 'totmoney', stationName, powerRate daymoney, c.SOLARHOUR tothour,round(a.PR, 2) as pr,GeneratingCapacity
FROM report_invday a FROM report_invday a
left join left join
@ -114,7 +114,7 @@ namespace SolarPower.Repository.Implement
select * from temp_inv select * from temp_inv
union union
SELECT '' report_date, {inv} SELECT '' report_date, {inv}
round(sum(hourKWH), 2) hourKWH, round(sum(hourKWHp), 2) hourKWHp, round(sum(irradiance), 2) irradiance, round(sum(hourKWH), 2) hourKWH, round(sum(hourKWHp), 2) hourKWHp, avg(irrDay) irrDay, avg(irrDayHour) irrDayHour,
avg(temperature) temperature, round(sum(hourmoney), 2) hourmoney, avg(totKWH) totKWH, avg(totKWHKWP) totKWHKWP, avg(totmoney) totmoney, '' stationName, avg(temperature) temperature, round(sum(hourmoney), 2) hourmoney, avg(totKWH) totKWH, avg(totKWHKWP) totKWHKWP, avg(totmoney) totmoney, '' stationName,
avg(daymoney) daymoney, avg(tothour) tothour, avg(pr) pr, avg(GeneratingCapacity) GeneratingCapacity avg(daymoney) daymoney, avg(tothour) tothour, avg(pr) pr, avg(GeneratingCapacity) GeneratingCapacity
from temp_inv2 a; "; from temp_inv2 a; ";
@ -363,7 +363,7 @@ namespace SolarPower.Repository.Implement
break; break;
} }
a = await conn.QueryAsync<dynamic>(sql, commandTimeout: 300); a = await conn.QueryAsync<dynamic>(sql, commandTimeout: 600);
} }
catch (Exception exception) catch (Exception exception)
{ {
@ -406,7 +406,7 @@ namespace SolarPower.Repository.Implement
sql = @$"select Id from power_station_history_month where powerstationid = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,'%Y') = '{post.Time}'"; sql = @$"select Id from power_station_history_month where powerstationid = {post.PowerStation} and DATE_FORMAT(`TIMESTAMP`,'%Y') = '{post.Time}'";
break; break;
} }
a = await conn.QueryFirstOrDefaultAsync<int>(sql); a = await conn.QueryFirstOrDefaultAsync<int>(sql, 600);
} }
catch (Exception exception) catch (Exception exception)
{ {
@ -572,7 +572,7 @@ namespace SolarPower.Repository.Implement
LEFT JOIN area ar ON ar.Id = ps.AreaId LEFT JOIN area ar ON ar.Id = ps.AreaId
left JOIN left JOIN
( (
SELECT powerStationid id, ps.SOLARHOUR AS 'SolarHour',ps.TODAYKWH 'Kwh' , PR, KWHKWP, TODAYKWH, TOTALKWH, SELECT powerStationid id, ps.SOLARHOUR AS 'SolarHour',SUM(ps.TODAYKWH) 'Kwh' , PR, KWHKWP, TODAYKWH, TOTALKWH,
DATE_FORMAT(ps.TIMESTAMP,'%Y-%m-%d') AS 'time', DATE_FORMAT(ps.TIMESTAMP,'%Y-%m-%d') AS 'time',
MAX(DATE_FORMAT(ps.TIMESTAMP,'%Y-%m-%d %H:%i')) AS 'maxtime', MAX(DATE_FORMAT(ps.TIMESTAMP,'%Y-%m-%d %H:%i')) AS 'maxtime',
MIN(DATE_FORMAT(ps.TIMESTAMP,'%Y-%m-%d %H:%i')) AS 'mintime', ps.PowerStationId MIN(DATE_FORMAT(ps.TIMESTAMP,'%Y-%m-%d %H:%i')) AS 'mintime', ps.PowerStationId
@ -588,7 +588,7 @@ namespace SolarPower.Repository.Implement
GROUP BY ps.PowerStationId GROUP BY ps.PowerStationId
) c ON a.Id = c.PowerStationId and a.time = c.time ) c ON a.Id = c.PowerStationId and a.time = c.time
WHERE ps.Id IN @ids ORDER BY ps.CityId"; WHERE ps.Id IN @ids ORDER BY ps.CityId";
result = (await conn.QueryAsync<MaxFormbody>(sql,new { ids = ids}, commandTimeout: 300)).ToList(); result = (await conn.QueryAsync<MaxFormbody>(sql,new { ids = ids}, commandTimeout: 600)).ToList();
} }
catch (Exception exception) catch (Exception exception)
{ {
@ -792,7 +792,7 @@ namespace SolarPower.Repository.Implement
break; break;
} }
a = await conn.QueryAsync<dynamic>(sql,commandTimeout: 300); a = await conn.QueryAsync<dynamic>(sql,commandTimeout: 600);
} }
catch (Exception exception) catch (Exception exception)
{ {

View File

@ -11,7 +11,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row flex-nowrap wrapper"> <div class="row flex-nowrap wrapper">
<div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto"> <div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto">
<div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width: 90%"> <div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width: 300px">
<div class="border bg-light rounded-top"> <div class="border bg-light rounded-top">
<div class="form-group p-2 m-0 rounded-top"> <div class="form-group p-2 m-0 rounded-top">
@ -482,8 +482,8 @@
'<input type="checkbox" class="" name="selectedInverterLayer2[]" >' + '<input type="checkbox" class="" name="selectedInverterLayer2[]" >' +
'</div>' + '</div>' +
'<a href="javascript:;" class="" data-toggle="collapse" data-target="#cp-' + index1 + '-' + index2 + ' > .card-body" aria-expanded="true">' + '<a href="javascript:;" class="" data-toggle="collapse" data-target="#cp-' + index1 + '-' + index2 + ' > .card-body" aria-expanded="true">' +
'<span class="collapsed-hidden"><h5 class="font-weight-bold mb-0">' + powerStationkey + '<i class="fal fa-chevron-down fs-xl ml-2"></i></h5></span>' + '<span class="collapsed-hidden"><h5 class="font-weight-bold mb-0" style="overflow: hidden;display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 3; -webkit-box-orient: vertical;white-space: normal;">' + powerStationkey + '<i class="fal fa-chevron-down fs-xl ml-2"></i></h5></span>' +
'<span class="collapsed-reveal"><h5 class="font-weight-bold mb-0">' + powerStationkey + '<i class="fal fa-chevron-up fs-xl ml-2"></i></h5></span>' + '<span class="collapsed-reveal"><h5 class="font-weight-bold mb-0" style="overflow: hidden;display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 3; -webkit-box-orient: vertical;white-space: normal;">' + powerStationkey + '<i class="fal fa-chevron-up fs-xl ml-2"></i></h5></span>' +
'</a>' + '</a>' +
'</div>' + '</div>' +
'<div class="card-body p-0 collapse show">' + '<div class="card-body p-0 collapse show">' +

View File

@ -13,12 +13,12 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row flex-nowrap wrapper"> <div class="row flex-nowrap wrapper">
<div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto"> <div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto">
<div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width: 90%"> <div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width:300px">
<div class="border bg-light rounded-top"> <div class="border bg-light rounded-top">
<div class="form-group p-2 m-0 rounded-top"> <div class="form-group p-2 m-0 rounded-top" style="width:300px">
<input type="text" class="form-control form-control-lg shadow-inset-2 m-0" id="js_list_accordion_filter" placeholder=""> <input type="text" class="form-control form-control-lg shadow-inset-2 m-0" id="js_list_accordion_filter" placeholder="">
</div> </div>
<div id="js_list_accordion" class="accordion accordion-hover accordion-clean js-list-filter"> <div id="js_list_accordion" class="accordion accordion-hover accordion-clean js-list-filter" style="width:300px">
</div> </div>
<span class="filter-message js-filter-message"></span> <span class="filter-message js-filter-message"></span>
</div> </div>
@ -75,36 +75,36 @@
<div class="frame-wrap"> <div class="frame-wrap">
<div class="row mb-5"> <div class="row mb-5">
<div class="card-group"> <div class="card-group">
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 發電量</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 發電量</h4>
<div class="ml-auto">kW h</div> <div class="ml-auto">kW h</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p id="today_kwh_label">當日發電量</p> <p id="today_kwh_label">今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwh">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwh">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>總發電量</p> <p>總</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="total_kwh">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="total_kwh">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
@if (ViewBag.myUser.Role.Auths.Contains("ShowMoney")) @if (ViewBag.myUser.Role.Auths.Contains("ShowMoney"))
{ {
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-dollar-sign mr-1"></span> <span id="money-card-title">發電金額</span></h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-dollar-sign mr-1"></span> <span id="money-card-title">發電金額</span></h4>
<div class="ml-auto">NTD</div> <div class="ml-auto">NTD</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p id="today_money_label">當日發電金額</p> <p id="today_money_label">發電金額</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_money">0</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_money">0</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p id="money-card-subtitle-total">總發金額</p> <p id="money-card-subtitle-total">總發金額</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="total_money">0</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="total_money">0</span></p>
</div> </div>
</div> </div>
@ -112,67 +112,67 @@
} }
else else
{ {
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span> 日照度</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span> 累積日照量</h4>
<div class="ml-auto">W/m<sup>2</sup></div> <div class="ml-auto">Wh/m<sup>2</sup></div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p id="today_irradiance_label">當日日照度</p> <p id="today_irradiance_label">今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_irradiance">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_irradiance">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>平均日照度(30天)</p> <p>30天平均</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="total_irradiance">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="total_irradiance">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
} }
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> PR值</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> PR值</h4>
<div class="ml-auto">%</div> <div class="ml-auto">%</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p id="today_PR_label">當日PR值</p> <p id="today_PR_label">今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_PR">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_PR">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>平均 PR 值(30天)</p> <p>30天平均</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="total_PR">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="total_PR">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span>日均發電度數</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span>日均發電度數</h4>
<div class="ml-auto">hr</div> <div class="ml-auto">kWh/kWp</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p id="today_kwhkwp_label">當日日均發電度數 </p> <p id="today_kwhkwp_label">今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwhkwp">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwhkwp">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>平均日均發電度數(30天)</p> <p>30天平均</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="total_kwhkwp">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="total_kwhkwp">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-cow mr-1"></span> 減碳量</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-cow mr-1"></span> 減碳量</h4>
<div class="ml-auto">kG</div> <div class="ml-auto">kG</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p id="today_carbon_label">當日減碳量</p> <p id="today_carbon_label">今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_carbon">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_carbon">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>總減碳量</p> <p>總</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="total_carbon">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="total_carbon">0.00</span></p>
</div> </div>
</div> </div>
@ -338,7 +338,7 @@
$("#today_kwhkwp_label").html(timename + "日均發電度數"); $("#today_kwhkwp_label").html(timename + "日均發電度數");
$("#today_PR_label").html(timename + "PR值"); $("#today_PR_label").html(timename + "PR值");
$("#today_carbon_label").html(timename + "減碳量"); $("#today_carbon_label").html(timename + "減碳量");
$("#today_irradiance_label").html(timename + "日照度"); $("#today_irradiance_label").html(timename + "累積日照量");
if (type == 1) { if (type == 1) {
timerange = $('#DateGettext').val(); timerange = $('#DateGettext').val();
@ -556,7 +556,7 @@
data: listtemperature data: listtemperature
},{ },{
type: 'line', type: 'line',
label: '日照度(W/㎡)', label: '累積日照度(Wh/㎡)',
borderColor: 'rgb(190, 45, 45)', borderColor: 'rgb(190, 45, 45)',
pointBackgroundColor: 'rgb(190, 45, 45)', pointBackgroundColor: 'rgb(190, 45, 45)',
pointBorderColor: 'rgb(190, 45, 45)', pointBorderColor: 'rgb(190, 45, 45)',
@ -576,7 +576,7 @@
options: { options: {
title: { title: {
display: true, display: true,
text: '發電量及日照度' text: '發電量及累積日照量'
}, },
legend: { legend: {
display: true, display: true,
@ -701,7 +701,7 @@
'<div class="">' + '<div class="">' +
'<input type="checkbox" class="mr-2" name="selectedPowerStationLayer2[]" value="' + powerStation.id + '" valueName ="' + powerStation.name + '">' + '<input type="checkbox" class="mr-2" name="selectedPowerStationLayer2[]" value="' + powerStation.id + '" valueName ="' + powerStation.name + '">' +
'</div>' + '</div>' +
'<h5 class="font-weight-bold">' + powerStation.name + '</h5>' + '<h5 class="font-weight-bold" style="overflow: hidden;display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 3; -webkit-box-orient: vertical;white-space: normal;">' + powerStation.name + '</h5>' +
'</div>' + '</div>' +
'</li>'; '</li>';
}); });

View File

@ -11,7 +11,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row flex-nowrap wrapper"> <div class="row flex-nowrap wrapper">
<div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto"> <div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto">
<div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width: 90%"> <div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width:300px">
<div class="border bg-light rounded-top"> <div class="border bg-light rounded-top">
<div class="form-group p-2 m-0 rounded-top"> <div class="form-group p-2 m-0 rounded-top">
@ -514,8 +514,8 @@
'<input type="checkbox" class="" name="selectedDeviceLayer2[]" >' + '<input type="checkbox" class="" name="selectedDeviceLayer2[]" >' +
'</div>' + '</div>' +
'<a href="javascript:;" class="" data-toggle="collapse" data-target="#cp-' + index1 + '-' + index2 + ' > .card-body" aria-expanded="true">' + '<a href="javascript:;" class="" data-toggle="collapse" data-target="#cp-' + index1 + '-' + index2 + ' > .card-body" aria-expanded="true">' +
'<span class="collapsed-hidden"><h5 class="font-weight-bold mb-0">' + powerStationkey + '<i class="fal fa-chevron-down fs-xl ml-2"></i></h5></span>' + '<span class="collapsed-hidden"><h5 class="font-weight-bold mb-0" style="overflow: hidden;display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 3; -webkit-box-orient: vertical;white-space: normal;">' + powerStationkey + '<i class="fal fa-chevron-down fs-xl ml-2"></i></h5></span>' +
'<span class="collapsed-reveal"><h5 class="font-weight-bold mb-0">' + powerStationkey + '<i class="fal fa-chevron-up fs-xl ml-2"></i></h5></span>' + '<span class="collapsed-reveal"><h5 class="font-weight-bold mb-0" style="overflow: hidden;display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 3; -webkit-box-orient: vertical;white-space: normal;">' + powerStationkey + '<i class="fal fa-chevron-up fs-xl ml-2"></i></h5></span>' +
'</a>' + '</a>' +
'</div>' + '</div>' +
'<div class="card-body p-0 collapse show">' + '<div class="card-body p-0 collapse show">' +

View File

@ -13,7 +13,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row flex-nowrap wrapper"> <div class="row flex-nowrap wrapper">
<div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto"> <div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto">
<div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width: 90%"> <div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width: 300px">
<div class="border bg-light rounded-top"> <div class="border bg-light rounded-top">
<div class="form-group p-2 m-0 rounded-top"> <div class="form-group p-2 m-0 rounded-top">
@ -421,7 +421,7 @@
'<div class="mr-2">' + '<div class="mr-2">' +
'<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '" checked>' + '<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '" checked>' +
'</div>' + '</div>' +
'<h5 class="font-weight-bold mb-0">' + inverter.name + '</h5>' + '<h5 class="font-weight-bold mb-0" style="overflow: hidden;display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 3; -webkit-box-orient: vertical;white-space: normal;">' + inverter.name + '</h5>' +
'</div>' + '</div>' +
'</li>'; '</li>';
} }
@ -431,7 +431,7 @@
'<div class="mr-2">' + '<div class="mr-2">' +
'<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '">' + '<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '">' +
'</div>' + '</div>' +
'<h5 class="font-weight-bold mb-0">' + inverter.name + '</h5>' + '<h5 class="font-weight-bold mb-0" style="overflow: hidden;display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 3; -webkit-box-orient: vertical;white-space: normal;">' + inverter.name + '</h5>' +
'</div>' + '</div>' +
'</li>'; '</li>';
} }

View File

@ -634,12 +634,12 @@
if ($.inArray(parseInt(val.cityId), ids) > -1) { if ($.inArray(parseInt(val.cityId), ids) > -1) {
$('#CheckPowerStation').append("<div class='col-2 mb-2 custom-control custom-checkbox custom-control-inline' style='min-width:180px;' id='station_" + val.id + "' > "); $('#CheckPowerStation').append("<div class='col-2 mb-2 custom-control custom-checkbox custom-control-inline' style='min-width:180px;' id='station_" + val.id + "' > ");
$('#station_' + val.id).append("<input type='checkbox' class='custom-control-input'name='check_power_station[]' id='check_" + val.id + "' value='" + val.id + "' checked>"); $('#station_' + val.id).append("<input type='checkbox' class='custom-control-input'name='check_power_station[]' id='check_" + val.id + "' value='" + val.id + "' checked>");
$('#station_' + val.id).append("<label class='custom-control-label' style='white-space:nowrap;' for='check_" + val.id + "'>" + val.name + "</label>"); $('#station_' + val.id).append("<label class='custom-control-label' style=' text-overflow: ellipsis; -webkit-line-clamp: 3;white-space: normal;' for='check_" + val.id + "'>" + val.name + "</label>");
powerids.push(String(val.id)); powerids.push(String(val.id));
} else { } else {
$('#CheckPowerStation').append("<div class='col-2 mb-2 custom-control custom-checkbox custom-control-inline' style='min-width:180px;' id='station_" + val.id + "' > "); $('#CheckPowerStation').append("<div class='col-2 mb-2 custom-control custom-checkbox custom-control-inline' style='min-width:180px;' id='station_" + val.id + "' > ");
$('#station_' + val.id).append("<input type='checkbox' class='custom-control-input'name='check_power_station[]' id='check_" + val.id + "' value='" + val.id + "' >"); $('#station_' + val.id).append("<input type='checkbox' class='custom-control-input'name='check_power_station[]' id='check_" + val.id + "' value='" + val.id + "' >");
$('#station_' + val.id).append("<label class='custom-control-label' style='white-space:nowrap;' for='check_" + val.id + "'>" + val.name + "</label>"); $('#station_' + val.id).append("<label class='custom-control-label' style=' text-overflow: ellipsis; -webkit-line-clamp: 3;white-space: normal;' for='check_" + val.id + "'>" + val.name + "</label>");
if ($.inArray(parseInt(val.id), powerids) > -1) { if ($.inArray(parseInt(val.id), powerids) > -1) {
powerids.splice($.inArray(parseInt(val.id), powerids), 1); powerids.splice($.inArray(parseInt(val.id), powerids), 1);

View File

@ -18,89 +18,89 @@
@*<div class="row mb-5">*@ @*<div class="row mb-5">*@
<div class="row mb-5" style="display: flex; justify-content: center;"> <div class="row mb-5" style="display: flex; justify-content: center;">
<div class="card-group"> <div class="card-group">
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 發電量</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 發電量</h4>
<div class="ml-auto">kW h</div> <div class="ml-auto">kW h</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>今日總發電量</p> <p>今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwh">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwh">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>累積發電量</p> <p>總計</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="total_kwh">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="total_kwh">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span> 日照度</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span> 累積日照量</h4>
<div class="ml-auto">W/m<sup>2</sup></div> <div class="ml-auto">Wh/m<sup>2</sup></div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>今日累積日照量</p> <p>今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_irradiance">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_irradiance">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>日均累積日照量(30天)</p> <p>30天平均</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="avg_irradiance">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="avg_irradiance">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> PR值</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> PR值</h4>
<div class="ml-auto">%</div> <div class="ml-auto">%</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>今日 PR 值</p> <p>今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_PR">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_PR">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>平均 PR 值(30天)</p> <p>30天平均</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="avg_PR">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="avg_PR">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span>日均發電度數</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span>日均發電度數</h4>
<div class="ml-auto">hr</div> <div class="ml-auto">kWh/kWp</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>日均發電度數(kwh/kwp)</p> <p>日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwhkwp">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwhkwp">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>日均發電度數 (30天)</p> <p>30天平均</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="avg_kwhkwp">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="avg_kwhkwp">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-cow mr-1"></span> 減碳量</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-cow mr-1"></span> 減碳量</h4>
<div class="ml-auto">kG</div> <div class="ml-auto">kG</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>今日減碳量</p> <p>今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_carbon">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_carbon">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>總減碳量</p> <p>總</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="total_carbon">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="total_carbon">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
@if (ViewBag.myUser.Role.Auths.Contains("ShowMoney")) @if (ViewBag.myUser.Role.Auths.Contains("ShowMoney"))
{ {
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 自建躉售</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 自建躉售</h4>
<div class="ml-auto">NTD</div> <div class="ml-auto">NTD</div>
@ -112,7 +112,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 租建躉售</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 租建躉售</h4>
<div class="ml-auto">NTD</div> <div class="ml-auto">NTD</div>
@ -124,7 +124,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 自發自用</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 自發自用</h4>
<div class="ml-auto">NTD</div> <div class="ml-auto">NTD</div>
@ -389,7 +389,7 @@
'<div class="row">' + '<div class="row">' +
'<div class="col-12">' + '<div class="col-12">' +
'<div>今日發電量(kW h)' + item.today_kWh.toFixed(2) + '</div>'+ '<div>今日發電量(kW h)' + item.today_kWh.toFixed(2) + '</div>'+
'<div>今日日照度(W/m<sup>2</sup>)' + item.today_irradiance + '</div>'+ '<div>今日累積日照量(Wh/m<sup>2</sup>)' + item.today_irradiance + '</div>'+
'<div>日均發電度數(kwh/kwp)' + item.today_kwhkwp.toFixed(2) + '</div>' + '<div>日均發電度數(kwh/kwp)' + item.today_kwhkwp.toFixed(2) + '</div>' +
'<div>裝置容量(kWp)' + item.generatingCapacity.toFixed(3) + '</div>' + '<div>裝置容量(kWp)' + item.generatingCapacity.toFixed(3) + '</div>' +
'<div>掛錶日期:' + item.electricityMeterAt + '</div>' + '<div>掛錶日期:' + item.electricityMeterAt + '</div>' +

View File

@ -13,7 +13,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row flex-nowrap wrapper"> <div class="row flex-nowrap wrapper">
<div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto"> <div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto">
<div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width: 90%"> <div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width:300px">
<div class="border bg-light rounded-top"> <div class="border bg-light rounded-top">
<div class="form-group p-2 m-0 rounded-top"> <div class="form-group p-2 m-0 rounded-top">
@ -518,7 +518,7 @@
'<div class="mr-2">' + '<div class="mr-2">' +
'<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '" checked>' + '<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '" checked>' +
'</div>' + '</div>' +
'<h5 class="font-weight-bold mb-0">' + inverter.name + '</h5>' + '<h5 class="font-weight-bold mb-0" style="overflow: hidden;display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 3; -webkit-box-orient: vertical;white-space: normal;">' + inverter.name + '</h5>' +
'</div>' + '</div>' +
'</li>'; '</li>';
} }
@ -528,7 +528,7 @@
'<div class="mr-2">' + '<div class="mr-2">' +
'<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '">' + '<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '">' +
'</div>' + '</div>' +
'<h5 class="font-weight-bold mb-0">' + inverter.name + '</h5>' + '<h5 class="font-weight-bold mb-0" style="overflow: hidden;display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 3; -webkit-box-orient: vertical;white-space: normal;">' + inverter.name + '</h5>' +
'</div>' + '</div>' +
'</li>'; '</li>';
} }

View File

@ -577,12 +577,12 @@
if ($.inArray(parseInt(val.cityId), ids) > -1) { if ($.inArray(parseInt(val.cityId), ids) > -1) {
$('#CheckPowerStation').append("<div class='col-2 mb-2 custom-control custom-checkbox custom-control-inline' style='min-width:180px;' id='station_" + val.id + "' > "); $('#CheckPowerStation').append("<div class='col-2 mb-2 custom-control custom-checkbox custom-control-inline' style='min-width:180px;' id='station_" + val.id + "' > ");
$('#station_' + val.id).append("<input type='checkbox' class='custom-control-input' name='check_power_station[]' id='check_" + val.id + "' value='" + val.id + "' checked>"); $('#station_' + val.id).append("<input type='checkbox' class='custom-control-input' name='check_power_station[]' id='check_" + val.id + "' value='" + val.id + "' checked>");
$('#station_' + val.id).append("<label class='custom-control-label' style='white-space:nowrap;' for='check_" + val.id + "'>" + val.name + "</label>"); $('#station_' + val.id).append("<label class='custom-control-label' style=' text-overflow: ellipsis; -webkit-line-clamp: 3;white-space: normal;' for='check_" + val.id + "'>" + val.name + "</label>");
powerids.push(String(val.id)); powerids.push(String(val.id));
} else { } else {
$('#CheckPowerStation').append("<div class='col-2 mb-2 custom-control custom-checkbox custom-control-inline' style='min-width:180px;' id='station_" + val.id + "' > "); $('#CheckPowerStation').append("<div class='col-2 mb-2 custom-control custom-checkbox custom-control-inline' style='min-width:180px;' id='station_" + val.id + "' > ");
$('#station_' + val.id).append("<input type='checkbox' class='custom-control-input' name='check_power_station[]' id='check_" + val.id + "' value='" + val.id + "' >"); $('#station_' + val.id).append("<input type='checkbox' class='custom-control-input' name='check_power_station[]' id='check_" + val.id + "' value='" + val.id + "' >");
$('#station_' + val.id).append("<label class='custom-control-label' style='white-space:nowrap;' for='check_" + val.id + "'>" + val.name + "</label>"); $('#station_' + val.id).append("<label class='custom-control-label' style=' text-overflow: ellipsis; -webkit-line-clamp: 3;white-space: normal;' for='check_" + val.id + "'>" + val.name + "</label>");
if ($.inArray(parseInt(val.id), powerids) > -1) { if ($.inArray(parseInt(val.id), powerids) > -1) {
powerids.splice($.inArray(parseInt(val.id), powerids), 1); powerids.splice($.inArray(parseInt(val.id), powerids), 1);

View File

@ -663,12 +663,12 @@
if ($.inArray(parseInt(val.cityId), ids) > -1) { if ($.inArray(parseInt(val.cityId), ids) > -1) {
$('#CheckPowerStation').append("<div class='col-2 mb-2 custom-control custom-checkbox custom-control-inline' style='min-width:180px;' id='station_" + val.id + "' > "); $('#CheckPowerStation').append("<div class='col-2 mb-2 custom-control custom-checkbox custom-control-inline' style='min-width:180px;' id='station_" + val.id + "' > ");
$('#station_' + val.id).append("<input type='checkbox' class='custom-control-input' name='check_power_station[]' id='check_" + val.id + "' value='" + val.id + "' checked>"); $('#station_' + val.id).append("<input type='checkbox' class='custom-control-input' name='check_power_station[]' id='check_" + val.id + "' value='" + val.id + "' checked>");
$('#station_' + val.id).append("<label class='custom-control-label' style='white-space:nowrap;' for='check_" + val.id + "'>" + val.name + "</label>"); $('#station_' + val.id).append("<label class='custom-control-label' style=' text-overflow: ellipsis; -webkit-line-clamp: 3;white-space: normal;' for='check_" + val.id + "'>" + val.name + "</label>");
powerids.push(String(val.id)); powerids.push(String(val.id));
} else { } else {
$('#CheckPowerStation').append("<div class='col-2 mb-2 custom-control custom-checkbox custom-control-inline' style='min-width:180px;' id='station_" + val.id + "' > "); $('#CheckPowerStation').append("<div class='col-2 mb-2 custom-control custom-checkbox custom-control-inline' style='min-width:180px;' id='station_" + val.id + "' > ");
$('#station_' + val.id).append("<input type='checkbox' class='custom-control-input' name='check_power_station[]' id='check_" + val.id + "' value='" + val.id + "' >"); $('#station_' + val.id).append("<input type='checkbox' class='custom-control-input' name='check_power_station[]' id='check_" + val.id + "' value='" + val.id + "' >");
$('#station_' + val.id).append("<label class='custom-control-label' style='white-space:nowrap;' for='check_" + val.id + "'>" + val.name + "</label>"); $('#station_' + val.id).append("<label class='custom-control-label' style=' text-overflow: ellipsis; -webkit-line-clamp: 3;white-space: normal;' for='check_" + val.id + "'>" + val.name + "</label>");
if ($.inArray(parseInt(val.id), powerids) > -1) { if ($.inArray(parseInt(val.id), powerids) > -1) {
powerids.splice($.inArray(parseInt(val.id), powerids), 1); powerids.splice($.inArray(parseInt(val.id), powerids), 1);

View File

@ -13,7 +13,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row flex-nowrap wrapper"> <div class="row flex-nowrap wrapper">
<div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto"> <div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto">
<div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width: 90%"> <div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width: 300px">
<div class="border bg-light rounded-top"> <div class="border bg-light rounded-top">
<div class="form-group p-2 m-0 rounded-top"> <div class="form-group p-2 m-0 rounded-top">
@ -436,7 +436,7 @@
'<div class="mr-2">' + '<div class="mr-2">' +
'<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '" checked>' + '<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '" checked>' +
'</div>' + '</div>' +
'<h5 class="font-weight-bold mb-0">' + inverter.name + '</h5>' + '<h5 class="font-weight-bold mb-0" style="overflow: hidden;display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 3; -webkit-box-orient: vertical;white-space: normal;">' + inverter.name + '</h5>' +
'</div>' + '</div>' +
'</li>'; '</li>';
} }
@ -446,7 +446,7 @@
'<div class="mr-2">' + '<div class="mr-2">' +
'<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '">' + '<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '">' +
'</div>' + '</div>' +
'<h5 class="font-weight-bold mb-0">' + inverter.name + '</h5>' + '<h5 class="font-weight-bold mb-0" style="overflow: hidden;display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 3; -webkit-box-orient: vertical;white-space: normal;">' + inverter.name + '</h5>' +
'</div>' + '</div>' +
'</li>'; '</li>';
} }

View File

@ -76,7 +76,7 @@
</div> </div>
<div class="row mb-5 px-3"> <div class="row mb-5 px-3">
<div class="card-group"> <div class="card-group">
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 發電量</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 發電量</h4>
<div class="ml-auto">kW h</div> <div class="ml-auto">kW h</div>
@ -92,66 +92,66 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span> 日照度</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span> 累積日照量</h4>
<div class="ml-auto">W/㎡</div> <div class="ml-auto">Wh/㎡</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>今日日照量</p> <p>今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_irradiance">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_irradiance">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>日平均累積日照度(30天)</p> <p>30天平均</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="avg_irradiance">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="avg_irradiance">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> PR值</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> PR值</h4>
<div class="ml-auto">%</div> <div class="ml-auto">%</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>今日 PR 值</p> <p>今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_PR">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_PR">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>平均 PR 值(30天)</p> <p>30天平均</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="avg_PR">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="avg_PR">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span>日均發電度數</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span>日均發電度數</h4>
<div class="ml-auto">hr</div> <div class="ml-auto">kWh/kWp</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>日均發電度數(kwh/kwp)</p> <p>日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwhkwp">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwhkwp">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>日均發電度數(30天)</p> <p>30天平均</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="avg_kwhkwp">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="avg_kwhkwp">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 減碳量</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 減碳量</h4>
<div class="ml-auto">kG</div> <div class="ml-auto">kG</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>今日減碳量</p> <p>今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_carbon">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_carbon">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>累積減碳量</p> <p>總計</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="total_carbon">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="total_carbon">0.00</span></p>
</div> </div>
</div> </div>
@ -240,7 +240,7 @@
<th>平均日照</th> <th>平均日照</th>
@if (ViewBag.myUser.Role.Auths.Contains("ShowMoney")) @if (ViewBag.myUser.Role.Auths.Contains("ShowMoney"))
{ {
<th>今日收入</th> <th>發電金額</th>
} }
<th>掛表日期</th> <th>掛表日期</th>
<th>狀況</th> <th>狀況</th>
@ -284,7 +284,7 @@
<th>平均日照</th> <th>平均日照</th>
@if (ViewBag.myUser.Role.Auths.Contains("ShowMoney")) @if (ViewBag.myUser.Role.Auths.Contains("ShowMoney"))
{ {
<th>今日收入</th> <th>發電金額</th>
} }
<th>掛表日期</th> <th>掛表日期</th>
<th>狀況</th> <th>狀況</th>

View File

@ -311,16 +311,16 @@
if (stationOverview.solarType == 0) { if (stationOverview.solarType == 0) {
$("#money-card-title").html("發電金額"); $("#money-card-title").html("發電金額");
$("#money-card-subtitle-total").html("總發電金額"); $("#money-card-subtitle-total").html("總");
$("#money-card-subtitle-avg").html("今日發電金額"); $("#money-card-subtitle-avg").html("今日");
} else if (stationOverview.solarType == 1) { } else if (stationOverview.solarType == 1) {
$("#money-card-title").html("租金收入"); $("#money-card-title").html("租金收入");
$("#money-card-subtitle-total").html("總租金收入"); $("#money-card-subtitle-total").html("總");
$("#money-card-subtitle-avg").html("今日租金收入"); $("#money-card-subtitle-avg").html("今日");
} else { } else {
$("#money-card-title").html("省電費用"); $("#money-card-title").html("省電費用");
$("#money-card-subtitle-total").html("總省電費用"); $("#money-card-subtitle-total").html("總");
$("#money-card-subtitle-avg").html("今日省電費用"); $("#money-card-subtitle-avg").html("今日");
} }
hideLoading(); hideLoading();
}, 'json'); }, 'json');
@ -385,7 +385,7 @@
data: chartToday.powerDatas data: chartToday.powerDatas
}, { }, {
type: 'line', type: 'line',
label: '日照度', label: '累積日照量',
yAxisID: 'B', yAxisID: 'B',
borderColor: 'rgb(190, 45, 45)', borderColor: 'rgb(190, 45, 45)',
pointBackgroundColor: 'rgb(190, 45, 45)', pointBackgroundColor: 'rgb(190, 45, 45)',
@ -443,7 +443,7 @@
}, },
scaleLabel: { scaleLabel: {
display: true, display: true,
labelString: 'W/㎡' labelString: 'Wh/㎡'
} }
}, { }, {
id: 'C', id: 'C',
@ -477,7 +477,7 @@
data: chart7day.powerDatas data: chart7day.powerDatas
}, { }, {
type: 'line', type: 'line',
label: '日照度', label: '累積日照量',
yAxisID: 'B', yAxisID: 'B',
borderColor: 'rgb(190, 45, 45)', borderColor: 'rgb(190, 45, 45)',
pointBackgroundColor: 'rgb(190, 45, 45)', pointBackgroundColor: 'rgb(190, 45, 45)',
@ -535,7 +535,7 @@
}, },
scaleLabel: { scaleLabel: {
display: true, display: true,
labelString: 'W/㎡' labelString: 'Wh/㎡'
} }
}, { }, {
id: 'C', id: 'C',
@ -569,7 +569,7 @@
data: chartMonth.powerDatas data: chartMonth.powerDatas
}, { }, {
type: 'line', type: 'line',
label: '日照度', label: '累積日照量',
yAxisID: 'B', yAxisID: 'B',
borderColor: 'rgb(190, 45, 45)', borderColor: 'rgb(190, 45, 45)',
pointBackgroundColor: 'rgb(190, 45, 45)', pointBackgroundColor: 'rgb(190, 45, 45)',
@ -627,7 +627,7 @@
}, },
scaleLabel: { scaleLabel: {
display: true, display: true,
labelString: 'W/㎡' labelString: 'Wh/㎡'
} }
}, { }, {
id: 'C', id: 'C',
@ -661,7 +661,7 @@
data: chartYear.powerDatas data: chartYear.powerDatas
}, { }, {
type: 'line', type: 'line',
label: '日照度', label: '累積日照量',
yAxisID: 'B', yAxisID: 'B',
borderColor: 'rgb(190, 45, 45)', borderColor: 'rgb(190, 45, 45)',
pointBackgroundColor: 'rgb(190, 45, 45)', pointBackgroundColor: 'rgb(190, 45, 45)',
@ -719,7 +719,7 @@
}, },
scaleLabel: { scaleLabel: {
display: true, display: true,
labelString: 'W/㎡' labelString: 'Wh/㎡'
} }
}, { }, {
id: 'C', id: 'C',
@ -2675,6 +2675,8 @@
//暫時先執行到這--->取kwhkwp //暫時先執行到這--->取kwhkwp
var nowDisplayIrrDay = 0;
if (val.length != 0) { if (val.length != 0) {
if (groupType != 6) { if (groupType != 6) {
@ -2686,13 +2688,19 @@
kwhkwp = (ALLkwhkwp / times).toFixed(2); kwhkwp = (ALLkwhkwp / times).toFixed(2);
times++; times++;
} }
if (groupType == 0) {
nowDisplayIrrDay = val.irrDayHour.toFixed(2);
}
else {
nowDisplayIrrDay = val.irradiance.toFixed(2);
}
// console.log(val); // console.log(val);
diffSOLARHOURALL = val.solarhour; diffSOLARHOURALL = val.solarhour;
$('#HistoryDetailTable').append('<tr>' + $('#HistoryDetailTable').append('<tr>' +
'<td>' + val.timestamp + '</td>' + '<td>' + val.timestamp + '</td>' +
'<td>' + (toThousands(val.kwh.toFixed(2))) + '</td>' + '<td>' + (toThousands(val.kwh.toFixed(2))) + '</td>' +
'<td>' + (toThousands(val.kwhkwp.toFixed(2))) + '</td>' + '<td>' + (toThousands(val.kwhkwp.toFixed(2))) + '</td>' +
'<td>' + (toThousands(val.irrDay.toFixed(2))) + '</td>' + '<td>' + (toThousands(nowDisplayIrrDay)) + '</td>' + //irrDay
//'<td>' + val.irradiance.toFixed(2) + '</td>' + //'<td>' + val.irradiance.toFixed(2) + '</td>' +
'<td>' + (toThousands(val.pr.toFixed(2))) + '</td>' + '<td>' + (toThousands(val.pr.toFixed(2))) + '</td>' +
'<td>' + (toThousands(val.temp.toFixed(2))) + '</td>' + '<td>' + (toThousands(val.temp.toFixed(2))) + '</td>' +
@ -2701,7 +2709,8 @@
listkwh.push(parseFloat(val.kwh.toFixed(2))); listkwh.push(parseFloat(val.kwh.toFixed(2)));
listcolor.push(color); listcolor.push(color);
listcolor2.push(color2); listcolor2.push(color2);
listirradiance.push(parseFloat(val.irradiance.toFixed(2))); //listirradiance.push(parseFloat(val.irradiance.toFixed(2)));
listirradiance.push(parseFloat(nowDisplayIrrDay));
listtemperature.push(parseFloat(val.temp.toFixed(2))); listtemperature.push(parseFloat(val.temp.toFixed(2)));
listsolarhour.push(parseFloat(val.solarhour.toFixed(2))); listsolarhour.push(parseFloat(val.solarhour.toFixed(2)));
listpr.push(parseFloat(val.pr.toFixed(2))); listpr.push(parseFloat(val.pr.toFixed(2)));
@ -2731,7 +2740,8 @@
listkwh.push(parseFloat(val.kwh.toFixed(2))); listkwh.push(parseFloat(val.kwh.toFixed(2)));
listcolor.push(color); listcolor.push(color);
listcolor2.push(color2); listcolor2.push(color2);
listirradiance.push(parseFloat(val.irradiance.toFixed(2))); //listirradiance.push(parseFloat(val.irradiance.toFixed(2)));
listirradiance.push(parseFloat(nowDisplayIrrDay));
listtemperature.push(parseFloat(val.temp.toFixed(2))); listtemperature.push(parseFloat(val.temp.toFixed(2)));
listsolarhour.push(parseFloat(val.solarhour.toFixed(2))); listsolarhour.push(parseFloat(val.solarhour.toFixed(2)));
listpr.push(parseFloat(val.pr.toFixed(2))); listpr.push(parseFloat(val.pr.toFixed(2)));
@ -2763,7 +2773,7 @@
animation: false animation: false
}, },
title: { title: {
text: '發電量及日照度' text: '發電量及累積日照量'
}, },
xAxis: { xAxis: {
categories: listmonth, categories: listmonth,
@ -2777,7 +2787,7 @@
showEmpty: false showEmpty: false
}, { }, {
title: { title: {
text: "W/㎡" text: "Wh/㎡"
}, },
id: "B", id: "B",
opposite: true, opposite: true,
@ -2814,7 +2824,7 @@
zIndex: 4 zIndex: 4
}, { }, {
type: 'spline', type: 'spline',
name: "日照(W/㎡)", name: "累積日照(Wh/㎡)",
data: listirradiance, data: listirradiance,
yAxis: "B", yAxis: "B",
color: "rgb(190, 45, 45)", color: "rgb(190, 45, 45)",

View File

@ -61,7 +61,7 @@
<th>時間</th> <th>時間</th>
<th>發電量(kWh)</th> <th>發電量(kWh)</th>
<th>日均發電度數</th> <th>日均發電度數</th>
<th>累積日照量(W/m2)</th> <th>累積日照量(Wh/m2)</th>
<th>PR(%)</th> <th>PR(%)</th>
<th>溫度(℃)</th> <th>溫度(℃)</th>
</tr> </tr>
@ -85,7 +85,7 @@
<th>時間</th> <th>時間</th>
<th>發電量(kWh)</th> <th>發電量(kWh)</th>
<th>日均發電度數</th> <th>日均發電度數</th>
<th>累積日照量(W/m2)</th> <th>累積日照量(Wh/m2)</th>
@*<th>日照量(W/m2)</th>*@ @*<th>日照量(W/m2)</th>*@
<th>PR(%)</th> <th>PR(%)</th>
<th>溫度(℃)</th> <th>溫度(℃)</th>

View File

@ -1,22 +1,22 @@
<div class="row mb-5" style="display: flex; justify-content: center;"> <div class="row mb-5" style="display: flex; justify-content: center;">
<div class="card-group"> <div class="card-group">
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 發電量</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> 發電量</h4>
<div class="ml-auto">kW h</div> <div class="ml-auto">kW h</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>今日發電量</p> <p>今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwh">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwh">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>累積發電量</p> <p>總計</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="total_kwh">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="total_kwh">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
<div class="col card money-card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-dollar-sign mr-1"></span> <span id="money-card-title">發電金額</span></h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-dollar-sign mr-1"></span> <span id="money-card-title">發電金額</span></h4>
<div class="ml-auto">NTD</div> <div class="ml-auto">NTD</div>
@ -32,66 +32,66 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col card irradiance-card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span> 日照度</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span> 累積日照量</h4>
<div class="ml-auto">W/m<sup>2</sup></div> <div class="ml-auto">Wh/m<sup>2</sup></div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>即時日照度</p> <p>今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_irradiance">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_irradiance">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>平均日照度(30天)</p> <p>30天平均</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="avg_irradiance">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="avg_irradiance">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> PR值</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-bolt mr-1"></span> PR值</h4>
<div class="ml-auto">%</div> <div class="ml-auto">%</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>今日 PR 值</p> <p>今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_PR">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_PR">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>平均 PR 值(30天)</p> <p>30天平均</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="avg_PR">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="avg_PR">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span>日均發電度數</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span>日均發電度數</h4>
<div class="ml-auto">hr</div> <div class="ml-auto">kWh/kWp</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>日均發電度數(kwh/kwp)</p> <p>日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwhkwp">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_kwhkwp">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>日均發電度數(30天)</p> <p>30天平均</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="avg_kwhkwp">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="avg_kwhkwp">0.00</span></p>
</div> </div>
</div> </div>
</div> </div>
<div class="col card px-0 mx-2 my-2" style="min-width: 16rem; max-width: 16rem;"> <div class="col card px-0 mx-2 my-2" style="min-width: 14rem; max-width: 14rem;">
<div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap"> <div class="card-header bg-fusion-25 py-2 pr-3 d-flex align-items-center flex-wrap">
<h4 class="mb-0 font-weight-bold"><span class="fal fa-cow mr-1"></span> 減碳量</h4> <h4 class="mb-0 font-weight-bold"><span class="fal fa-cow mr-1"></span> 減碳量</h4>
<div class="ml-auto">kG</div> <div class="ml-auto">kG</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>今日減碳量</p> <p>今日</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="today_carbon">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="today_carbon">0.00</span></p>
</div> </div>
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<p>累積減碳量</p> <p>總計</p>
<p><span class="color-info-700 fs-xl font-weight-bold" id="total_carbon">0.00</span></p> <p><span class="color-info-700 fs-xl font-weight-bold" id="total_carbon">0.00</span></p>
</div> </div>
</div> </div>

View File

@ -13,7 +13,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row flex-nowrap wrapper"> <div class="row flex-nowrap wrapper">
<div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto"> <div class="col-auto pr-0 collapse border-right sidebar vh-100 overflow-auto">
<div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width: 90%"> <div class="list-group border-0 card text-center text-md-left" id="sidebar" style="width: 300px">
<div class="border bg-light rounded-top"> <div class="border bg-light rounded-top">
<div class="form-group p-2 m-0 rounded-top"> <div class="form-group p-2 m-0 rounded-top">
@ -666,7 +666,7 @@
'<div class="mr-2">' + '<div class="mr-2">' +
'<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '" checked>' + '<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '" checked>' +
'</div>' + '</div>' +
'<h5 class="font-weight-bold mb-0">' + inverter.name + '</h5>' + '<h5 class="font-weight-bold mb-0" style="overflow: hidden;display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 3; -webkit-box-orient: vertical;white-space: normal;">' + inverter.name + '</h5>' +
'</div>' + '</div>' +
'</li>'; '</li>';
} }
@ -676,7 +676,7 @@
'<div class="mr-2">' + '<div class="mr-2">' +
'<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '">' + '<input type="checkbox" class="" name="selectedInverterLayer2[]" value="' + inverter.id + '" valueName ="' + inverter.name + '">' +
'</div>' + '</div>' +
'<h5 class="font-weight-bold mb-0">' + inverter.name + '</h5>' + '<h5 class="font-weight-bold mb-0" style="overflow: hidden;display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 3; -webkit-box-orient: vertical;white-space: normal;">' + inverter.name + '</h5>' +
'</div>' + '</div>' +
'</li>'; '</li>';
} }
@ -824,7 +824,7 @@
}) })
str += "<th>小時<br />發電量<br />(kWh)</th>"; str += "<th>小時<br />發電量<br />(kWh)</th>";
str += "<th>小時<br />發電量<br />百分比<br />(%)</th>"; str += "<th>小時<br />發電量<br />百分比<br />(%)</th>";
str += "<th>累積<br />日照量<br />(W/㎡)</th>"; str += "<th>累積<br />日照量<br />(Wh/㎡)</th>";
str += "<th>小時<br />平均<br />模組<br />溫度<br />(°C)</th>"; str += "<th>小時<br />平均<br />模組<br />溫度<br />(°C)</th>";
if (rel.data.showMoney == 1) { if (rel.data.showMoney == 1) {
str += "<th>小時<br />售電<br />金額<br />(NTD)</th>"; str += "<th>小時<br />售電<br />金額<br />(NTD)</th>";
@ -842,7 +842,7 @@
str += "<th>日照小時(hr)</th>"; str += "<th>日照小時(hr)</th>";
str += "<th>日均發電度數</th>"; str += "<th>日均發電度數</th>";
str += "<th>PR%</th>"; str += "<th>PR%</th>";
str += "<th>累積<br />日照量<br />(W/㎡)</th>"; str += "<th>累積<br />日照量<br />(Wh/㎡)</th>";
str += "<th>日<br />平均<br />模組溫度<br />(°C)</th>"; str += "<th>日<br />平均<br />模組溫度<br />(°C)</th>";
if (rel.data.showMoney == 1) { if (rel.data.showMoney == 1) {
str += "<th>日<br />售電金額<br />(NTD)</th>"; str += "<th>日<br />售電金額<br />(NTD)</th>";
@ -860,7 +860,7 @@
str += "<th>日照小時(hr)</th>"; str += "<th>日照小時(hr)</th>";
str += "<th>日均發電度數</th>"; str += "<th>日均發電度數</th>";
str += "<th>PR%</th>"; str += "<th>PR%</th>";
str += "<th>累積<br />日照量<br />(W/㎡)</th>"; str += "<th>累積<br />日照量<br />(Wh/㎡)</th>";
str += "<th>日<br />平均<br />模組溫度<br />(°C)</th>"; str += "<th>日<br />平均<br />模組溫度<br />(°C)</th>";
if (rel.data.showMoney == 1) { if (rel.data.showMoney == 1) {
str += "<th>日<br />售電金額<br />(NTD)</th>"; str += "<th>日<br />售電金額<br />(NTD)</th>";
@ -895,7 +895,7 @@
str += "<th>日照小時(hr)</th>"; str += "<th>日照小時(hr)</th>";
str += "<th>日均發電度數</th>"; str += "<th>日均發電度數</th>";
str += "<th>PR%</th>"; str += "<th>PR%</th>";
str += "<th>累積<br />日照量<br />(W/㎡)</th>"; str += "<th>累積<br />日照量<br />(Wh/㎡)</th>";
str += "<th>月<br />平均<br />模組溫度<br />(°C)</th>"; str += "<th>月<br />平均<br />模組溫度<br />(°C)</th>";
if (rel.data.showMoney == 1) { if (rel.data.showMoney == 1) {
str += "<th>月<br />售電金額<br />(NTD)</th>"; str += "<th>月<br />售電金額<br />(NTD)</th>";