1. 電站總覽 基本資料

2. 即時資訊
This commit is contained in:
Kai 2021-07-08 10:11:29 +08:00
parent a9265f301d
commit 190197c2ec
15 changed files with 826 additions and 54 deletions

View File

@ -68,7 +68,6 @@ namespace SolarPower.Controllers
MapOverview mapOverview = new MapOverview();
try
{
List<int> powerStationIds = new List<int>() { 1, 2, 3 };
var overview = await overviewRepository.GetOverviewByPowerStationIds(post.Ids);
mapOverview.Today_kwh = overview.Today_kwh;
mapOverview.Total_kwh = overview.Total_kwh;
@ -95,8 +94,6 @@ namespace SolarPower.Controllers
mapOverview.TotalPowerStationCount = totalPowerStationCount;
mapOverview.TotalCapacity = totalCapacity;
mapOverview.PowerStations = await overviewRepository.GetListPowerStationByPowerStationIds(powerStationIds);
mapOverview.UpdatedAt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
@ -116,11 +113,55 @@ namespace SolarPower.Controllers
}
[HttpPost]
public async Task<ApiResult<StationOverview>> GetOneStationUpToDateInfo(StationIds post)
{
ApiResult<StationOverview> apiResult = new ApiResult<StationOverview>();
StationOverview stationOverview = new StationOverview();
try
{
var overview = await overviewRepository.GetOverviewByPowerStationIds(post.Ids);
stationOverview.Today_kwh = overview.Today_kwh;
stationOverview.Total_kwh = overview.Total_kwh;
stationOverview.Today_irradiance = overview.Today_irradiance;
stationOverview.Avg_irradiance = overview.Avg_irradiance;
stationOverview.Today_PR = overview.Today_PR;
stationOverview.Avg_PR = overview.Avg_PR;
stationOverview.Today_kwhkwp = overview.Today_kwhkwp;
stationOverview.Avg_kwhkwp = overview.Avg_kwhkwp;
stationOverview.Today_monery = overview.Today_monery;
stationOverview.Total_monery = overview.Total_monery;
stationOverview.Today_carbon = overview.Today_carbon;
stationOverview.Total_carbon = overview.Total_carbon;
stationOverview.UpdatedAt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
if (myUser.Role.Auths.Contains("ShowMoney"))
{
stationOverview.IsShowMoney = 1;
}
else
{
stationOverview.IsShowMoney = 0;
stationOverview.Today_monery = 0;
stationOverview.Total_monery = 0;
}
apiResult.Code = "0000";
apiResult.Data = stationOverview;
}
catch (Exception exception)
{
apiResult.Code = "9999";
Logger.LogError("【" + controllerName + "/" + actionName + "】");
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
}
apiResult.Msg = errorCode.GetString(apiResult.Code);
return apiResult;
}
}
}

View File

@ -16,6 +16,8 @@ namespace SolarPower.Models
public double Avg_PR { get; set; } //平均 PR 值(30天)
public double Today_kwhkwp { get; set; } //即時平均 kWh / kWp
public double Avg_kwhkwp { get; set; } //平均 kWh / kWp (30天)
public double Today_monery { get; set; } //今日金額
public double Total_monery { get; set; } //今日金額
public double Today_carbon { get; set; } //今日減碳量
public double Total_carbon { get; set; } //累積減碳量
}
@ -46,4 +48,10 @@ namespace SolarPower.Models
{
public List<int> Ids { get; set; }
}
public class StationOverview : Overview
{
public byte IsShowMoney { get; set; } //是否顯示發電金額
public string UpdatedAt { get; set; } //畫面資料更新時間
}
}

View File

@ -8,7 +8,7 @@
},
"iisExpress": {
"applicationUrl": "http://localhost:63003",
"sslPort": 44398
"sslPort": 0
}
},
"profiles": {

View File

@ -53,6 +53,8 @@ namespace SolarPower.Repository.Implement
AVG(ps.avg_PR) AS avg_PR,
AVG(ps.today_kwhkwp) AS today_kwhkwp,
AVG(ps.avg_kwhkwp) AS avg_kwhkwp,
SUM(ps.today_monery) AS today_monery,
SUM(ps.total_monery) AS total_monery,
SUM(ps.today_carbon) AS today_carbon,
SUM(ps.total_carbon) AS total_carbon
FROM power_station ps

View File

@ -202,9 +202,10 @@ namespace SolarPower.Repository.Implement
conn.Open();
try
{
var sql = @$"SELECT ps.*, c.Name AS CityName, u.Name AS CreatorName FROM {tableName} ps
var sql = @$"SELECT ps.*, c.Name AS CityName, a.Name AS AreaName, u.Name AS CreatorName FROM {tableName} ps
LEFT JOIN user u ON ps.CreatedBy = u.Id
LEFT JOIN city c ON ps.CityId = c.Id
LEFT JOIN area a ON ps.AreaId = a.Id
WHERE ps.Deleted = 0 AND ps.Id = @Id";
result = await conn.QueryFirstOrDefaultAsync<PowerStation>(sql, new { Id = id });

View File

@ -30,7 +30,7 @@
</div>
<div class="card">
<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> 日照度</h4>
<h4 class="mb-0 font-weight-bold"><span class="fal fa-sun mr-1"></span> 日照度</h4>
</div>
<div class="card-body">
<div class="d-flex justify-content-between">
@ -236,6 +236,7 @@
$("#today_kwhkwp").html(mapOverview.today_kwhkwp);
$("#avg_kwhkwp").html(mapOverview.avg_kwhkwp);
$("#today_carbon").html(mapOverview.today_carbon);
$("#total_carbon").html(mapOverview.total_carbon);
$("#total_power_station_count").html(mapOverview.totalPowerStationCount);
$("#total_capacity").html(mapOverview.totalCapacity);
$("#update_at").html(mapOverview.updatedAt);

View File

@ -148,6 +148,7 @@
</div>
<div class="row">
@*
<div class="col-xl-6">
<h5 class="border-bottom font-weight-bold mb-3 pl-5 pb-3">逆變器</h5>
<div class="row d-flex justify-content-between px-5">
@ -174,6 +175,7 @@
</div>
</div>
</div>
*@
<div class="col-xl-6">
<h5 class="border-bottom font-weight-bold mb-3 pl-5 pb-3">光電板</h5>
<div class="row d-flex justify-content-between px-5">
@ -325,8 +327,6 @@
</div>
</div>
</div>
</div>
<div class="row mb-5" id="land_buildingPart">
</div>

View File

@ -90,7 +90,7 @@
<li class="nav-title">Navigation Title</li>-->
<li class="@(ViewData["MainNum"] == "1" ? "active open" : "")">
<a href="#" title="Category" data-filter-tags="category">
<i class="fal fa-file"></i>
<i class="fal fa-ballot-check"></i>
<span class="nav-link-text" data-i18n="nav.category">總覽</span>
</a>
<ul>
@ -122,7 +122,7 @@
</li>
<li class="@(ViewData["MainNum"] == "3" ? "active open" : "")">
<a href="#" title="Category" data-filter-tags="category">
<i class="fal fa-alien"></i>
<i class="fal fa-crosshairs"></i>
<span class="nav-link-text" data-i18n="nav.category">交叉分析</span>
</a>
<ul>
@ -145,7 +145,7 @@
</li>
<li class="@(ViewData["MainNum"] == "4" ? "active open" : "")">
<a href="#" title="Category" data-filter-tags="category">
<i class="fal fa-alien"></i>
<i class="fal fa-file-chart-line"></i>
<span class="nav-link-text" data-i18n="nav.category">報表查詢</span>
</a>
<ul>
@ -169,7 +169,7 @@
<li class="@(ViewData["MainNum"] == "5" ? "active open" : "")">
<a href="#" title="Category" data-filter-tags="category">
<i class="fal fa-alien"></i>
<i class="fal fa-siren-on"></i>
<span class="nav-link-text" data-i18n="nav.category">即時告警</span>
</a>
<ul>
@ -183,7 +183,7 @@
<li class="@(ViewData["MainNum"] == "6" ? "active open" : "")">
<a href="#" title="Category" data-filter-tags="category">
<i class="fal fa-alien"></i>
<i class="fal fa-rabbit-fast"></i>
<span class="nav-link-text" data-i18n="nav.category">運維管理</span>
</a>
<ul>
@ -201,7 +201,7 @@
</li>
<li class="@(ViewData["MainNum"] == "7" ? "active open" : "")">
<a href="#" title="Category" data-filter-tags="category">
<i class="fal fa-alien"></i>
<i class="fal fa-cog"></i>
<span class="nav-link-text" data-i18n="nav.category">系統管理</span>
</a>
<ul>

View File

@ -35,32 +35,32 @@
<ul class="nav nav-tabs mb-5" role="tablist">
<li class="nav-item">
<a class="nav-link fs-lg px-4 active" data-toggle="tab" href="#tab-overview-uptodate" role="tab">
<i class="fal fa-home text-success"></i> <span class="hidden-sm-down ml-1">即時資訊</span>
<i class="fal fa-monitor-heart-rate text-success"></i> <span class="hidden-sm-down ml-1">即時資訊</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link fs-lg px-4" data-toggle="tab" href="#tab-overview-info" role="tab">
<i class="fal fa-home text-success"></i> <span class="hidden-sm-down ml-1">基本資料</span>
<i class="fal fa-info-square text-success"></i> <span class="hidden-sm-down ml-1">基本資料</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link fs-lg px-4" data-toggle="tab" href="#tab-overview-history" role="tab">
<i class="fal fa-home text-success"></i> <span class="hidden-sm-down ml-1">歷史資料</span>
<i class="fal fa-history text-success"></i> <span class="hidden-sm-down ml-1">歷史資料</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link fs-lg px-4" data-toggle="tab" href="#tab-overview-inverter" role="tab">
<i class="fal fa-home text-success"></i> <span class="hidden-sm-down ml-1">逆變器分析</span>
<i class="fal fa-analytics text-success"></i> <span class="hidden-sm-down ml-1">逆變器分析</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link fs-lg px-4" data-toggle="tab" href="#tab-overview-exception" role="tab">
<i class="fal fa-home text-success"></i> <span class="hidden-sm-down ml-1">異常記錄</span>
<i class="fal fa-sensor-alert text-success"></i> <span class="hidden-sm-down ml-1">異常記錄</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link fs-lg px-4" data-toggle="tab" href="#tab-overview-operationRecord" role="tab">
<i class="fal fa-home text-success"></i> <span class="hidden-sm-down ml-1">運維記錄</span>
<i class="fal fa-digital-tachograph text-success"></i> <span class="hidden-sm-down ml-1">運維記錄</span>
</a>
</li>
</ul>
@ -99,15 +99,81 @@
<script>
var stationId;
var powerStationData;
var stationOverview;
$(function () {
var url = new URL(location.href);
stationId = url.searchParams.get('stationId');
var url = "/PowerStation/GetOnePowerStation"
//#region 即時資訊tab
var url = "/StationOverview/GetOneStationUpToDateInfo";
var send_data = {
ids: [stationId]
};
$.post(url, send_data, function (rel) {
if (rel.code != "0000") {
toast_error(rel.msg);
return;
}
stationOverview = rel.data;
$("#today_kwh").html(stationOverview.today_kwh);
$("#total_kwh").html(stationOverview.total_kwh);
$("#today_irradiance").html(stationOverview.today_irradiance);
$("#avg_irradiance").html(stationOverview.avg_irradiance);
$("#today_PR").html(stationOverview.today_PR);
$("#avg_PR").html(stationOverview.avg_PR);
$("#today_kwhkwp").html(stationOverview.today_kwhkwp);
$("#avg_kwhkwp").html(stationOverview.avg_kwhkwp);
$("#total_money").html(stationOverview.total_money);
$("#today_money").html(stationOverview.today_money);
$("#today_carbon").html(stationOverview.today_carbon);
$("#total_carbon").html(stationOverview.total_carbon);
$("#update_at").html(stationOverview.updatedAt);
if (stationOverview.isShowMoney == 1) {
$(".money-card").show();
$(".irradiance-card").hide();
} else {
$(".money-card").hide();
$(".irradiance-card").show();
}
}, 'json');
//#region 載入上傳資料 - 電站圖片
var url_image = "/PowerStation/GetAllPowerStationImage";
var send_data = {
powerStationId: stationId
};
$.post(url_image, send_data, function (rel) {
if (rel.code != "0000") {
toast_error(rel.msg);
return;
}
carouselExampleIndicators = $("#carouselExampleIndicators");
carouselExampleIndicators.find(".carousel-indicators").empty();
carouselExampleIndicators.find(".carousel-inner").empty();
rel.data.forEach(function (value, index) {
CreatePowerStationImagecarousel(carouselExampleIndicators, value, index);
});
carouselExampleIndicators.find(".carousel-indicators > li").first().addClass("active");
carouselExampleIndicators.find(".carousel-inner > .carousel-item").first().addClass("active");
}, 'json');
//#endregion
//#endregion
//#region 基本資料tab
var url = "/PowerStation/GetOnePowerStation"
var send_data = {
id: stationId
}
$.post(url, send_data, function (rel) {
if (rel.code != "0000") {
toast_error(rel.msg);
@ -118,7 +184,254 @@
$(".city-name").html(powerStationData.cityName);
$(".power-station-name").html(powerStationData.name);
$("#power-station-title").html(powerStationData.name);
//#region 電站基本資料
SetStationInfo();
//#endregion
//#region 能源局與台電資料
SetBoETPCInfo();
//#endregion
//#region 土地與房屋資料
SetLandBuildingInfo();
//#endregion
}, 'json');
//#region 載入上傳資料 - 單線圖
var url_image = "/PowerStation/GetAllPowerStationSingleLine";
var send_data = {
powerStationId: stationId
};
$.post(url_image, send_data, function (rel) {
if (rel.code != "0000") {
toast_error(rel.msg);
return;
}
var powerStationSingleLines = rel.data;
countPowerStationSingleLine = powerStationSingleLines.length;
powerStationSingleLineCard = $("#power-station-single-line-card > .row");
powerStationSingleLineCard.empty();
rel.data.forEach(function (value, index) {
CreatePowerStationSingleLineBox(powerStationSingleLineCard, value);
});
}, 'json');
//#endregion
//#region 預先載入運維人員下拉式選單select_option
var url_user_select_option = "/PowerStation/GetUserSelectOptionList";
$.get(url_user_select_option, function (rel) {
if (rel.code != "0000") {
toast_error(rel.msg);
return;
}
$("#power_station_operation_personnel").empty();
$.each(rel.data, function (index, val) {
$("#power_station_operation_personnel").append($("<option />").val(val.value).text(val.text));
});
if (powerStationData) {
$("#power_station_operation_personnel").val(powerStationData.operationPersonnelIds);
}
});
$('.js-example-basic-multiple').select2();
//#endregion
//#endregion
})
//#region 設定電站基本資料
function SetStationInfo() {
$("#select_solar_tpye").val(powerStationData.solarType);
$("#select_solar_tpye").attr("disabled", true);
//#region 電站基本資料 文字
$("#city_name_text").html(powerStationData.cityName);
$("#area_name_text").html(powerStationData.areaName);
$("#address_detail_text").html(powerStationData.address);
$("#power_station_code_text").html(powerStationData.code);
$("#power_station_name_text").html(powerStationData.name);
$("#electricity_meter_at_text").html(powerStationData.electricityMeterAt);
$("#estimated_recovery_time_text").html(powerStationData.estimatedRecoveryTime);
$("#created_by_text").html(powerStationData.creatorName);
$("#generating_capacity_text").html(powerStationData.generatingCapacity);
$("#escrow_name_text").html(powerStationData.escrowName);
$("#power_rate_text").html(powerStationData.powerRate);
$("#coordinate_text").html(powerStationData.coordinate);
$("#created_at_text").html(powerStationData.createdAt);
$("#power_station_operation_personnel").val(powerStationData.operationPersonnelIds).trigger("change");
$("#power_station_operation_personnel").attr("disabled", true);
//光電板
$("#photovoltaic_panel_brand_text").html(powerStationData.photovoltaicPanelBrand);
$("#photovoltaic_panel_product_model_text").html(powerStationData.photovoltaicPanelProductModel);
$("#photovoltaic_panel_specification_text").html(powerStationData.photovoltaicPanelSpecification);
$("#photovoltaic_panel_amount_text").html(powerStationData.photovoltaicPanelAmount);
//#endregion
//#region 電站基本資料 input
$("#check_escrow").attr("checked", powerStationData.isEscrow == 1 ? true : false);
$("#check_escrow_label").html(powerStationData.isEscrow == 1 ? "Yes" : "No");
//#endregion
}
//#endregion
//#region 設定能源局與台電資料
function SetBoETPCInfo() {
$("#link-boe-file").html(powerStationData.boEFileName).attr("href", powerStationData.boEFile);
$("#BoE_discount_rate_text").html(powerStationData.boEDiscountRate);
$("#BoE_device_register_number_text").html(powerStationData.boEDeviceRegisterNumber);
$("#BoE_rent_ratio_text").html(powerStationData.boERentRatio);
$("#TPC_contract_number_text").html(powerStationData.tpcContractNumber);
$("#TPC_contract_at_text").html(powerStationData.tpcContractAt);
$("#TPC_sell_deadline_text").html(powerStationData.tpcSellDeadline);
$("#TPC_meter_reading_text").html(powerStationData.tpcMeterReading);
$("#TPC_purchase_electricity_at_text").html(powerStationData.tpcPurchaseElectricityAt);
$("#TPC_sell_electricity_at_text").html(powerStationData.tpcSellElectricityAt);
$("#BOE_TPC_created_by_text").html(powerStationData.creatorName);
$("#BOE_TPC_created_at_text").html(powerStationData.createdAt);
}
//#endregion
//#region 設定土地與房屋資料
function SetLandBuildingInfo() {
var landBuildingCard = $("#land_buildingPart");
landBuildingCard.empty();
powerStationData.landBuildings.forEach(function (value, index) {
CreateLandBuildingCard(landBuildingCard, value);
});
}
//#endregion
//#region 創建每份土地房屋資訊卡片
function CreateLandBuildingCard(dom, value) {
//資料重整
value.address = value.address ? value.address : '';
value.coordinate = value.coordinate ? value.coordinate : '';
value.leaseNotarizationAt = value.leaseNotarizationAt ? value.leaseNotarizationAt : '';
value.leaseRate = value.leaseRate ? value.leaseRate : 0;
value.landowner = value.landowner ? value.landowner : '';
value.phone = value.phone ? value.phone : '';
value.purpose = value.purpose ? value.purpose : '';
var appendStr = "";
appendStr += '<div class="card border mb-g w-100" data-land-building-id="' + value.id + '">' +
'<div class="card-header bg-fusion-50 pr-3 d-flex align-items-center flex-wrap justify-content-between">' +
'<div class="card-title font-weight-bold">土地房屋資料</div>' +
'</div>';
appendStr += '<div class="card-body">' +
'<div class="row d-flex justify-content-between card-land-building" data-id="' + value.id + '">' +
'<div class="col-xl">' +
'<div class="row mb-3">' +
'<label class="col-xl-4 form-label">地址</label>' +
'<div class="col-xl-8">' +
'<label id="land_building_address_text_' + value.id + '" class="color-info-600">' + value.address + '</label>' +
'</div>' +
'</div>' +
'<div class="row">' +
'<label class="col-xl-4 form-label">經緯度</label>' +
'<div class="col-xl-8">' +
'<label id="land_building_coordinate_text_' + value.id + '" class="color-info-600">' + value.coordinate + '</label>' +
'</div>' +
'</div>' +
'</div>' +
'<div class="col-xl">' +
'<div class="row mb-3">' +
'<label class="col-xl-4 form-label">租約公證日期</label>' +
'<div class="col-xl-8">' +
'<label id="lease_notarization_at_text_' + value.id + '" class="color-info-600">' + value.leaseNotarizationAt + '</label>' +
'</div>' +
'</div>' +
'<div class="row">' +
'<label class="col-xl-4 form-label">租金比例 (%)</label>' +
'<div class="col-xl-8">' +
'<label id="land_building_lease_Rate_text_' + value.id + '" class="color-info-600">' + value.leaseRate + '</label>' +
'</div>' +
'</div>' +
'</div>' +
'<div class="col-xl">' +
'<div class="row mb-3">' +
'<label class="col-xl-4 form-label">地主姓名</label>' +
'<div class="col-xl-8">' +
'<label id="land_building_landowner_text_' + value.id + '" class="color-info-600">' + value.landowner + '</label>' +
'</div>' +
'</div>' +
'<div class="row">' +
'<label class="col-xl-4 form-label">電話</label>' +
'<div class="col-xl-8">' +
'<label id="land_building_phone_text_' + value.id + '" class="color-info-600">' + value.phone + '</label>' +
'</div>' +
'</div>' +
'</div>' +
'<div class="col-xl">' +
'<div class="row mb-3">' +
'<label class="col-xl-4 form-label">房屋用途</label>' +
'<div class="col-xl-8">' +
'<label id="land_building_purpose_text_' + value.id + '" class="color-info-600">' + value.purpose + '</label>' +
'</div>' +
'</div>' +
'</div>' +
'<div class="col-xl">' +
'<div class="row mb-3">' +
'<label class="col-xl-4 form-label">資料建立</label>' +
'<div class="col-xl-8">' +
'<label id="land_building_created_by_text_' + value.id + '" class="color-info-600">' + value.creatorName + '</label>' +
'</div>' +
'</div>' +
'<div class="row">' +
'<label class="col-xl-4 form-label">建立時間</label>' +
'<div class="col-xl-8">' +
'<label id="land_building_created_at_text_' + value.id + '" class="color-info-600">' + value.createdAt + '</label>' +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>';
dom.append(appendStr);
}
//#endregion
//#region 創建單線圖box
function CreatePowerStationSingleLineBox(dom, value) {
var str = '<div class="col-xl" style="max-width: 20%;">' +
'<div class="card border m-auto m-lg-0" style="padding: 9.5px;">' +
'<img src="' + value.image + '" class="card-img-top img-zoom" alt="...">' +
'</div>' +
'</div>';
dom.append(str);
}
//#endregion
//#region 創建電站圖片box
function CreatePowerStationImagecarousel(dom, value, index) {
var indicators = '<li data-target="#carouselExampleIndicators" data-slide-to="' + index + '"></li>'
var carousel_item = '<div class="carousel-item">' +
'<img class="d-block w-100" src="' + value.image + '">' +
'</div>'
dom.find(".carousel-indicators").append(indicators);
dom.find(".carousel-inner").append(carousel_item);
}
//#endregion
</script>
}

View File

@ -1 +1,268 @@
<p>3</p>
<div class="row mb-5">
<div class="card border mb-g w-100">
<!-- notice the additions of utility paddings and display properties on .card-header -->
<div class="card-header bg-fusion-50 pr-3 d-flex align-items-center flex-wrap justify-content-between">
<!-- we wrap header title inside a div tag with utility padding -->
<div class="card-title font-weight-bold">電站基本資料</div>
</div>
<div class="card-body">
<div class="row mb-3 d-flex justify-content-between">
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" id="city_label">縣市</label>
<div class="col-xl-8">
<label id="city_name_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" id="area_label">地區</label>
<div class="col-xl-8">
<label id="area_name_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-3 row align-items-center">
<div class="col-12">
<label id="address_detail_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" id="solar_tpye_label">電站類型</label>
<div class="col-xl-8">
<select class="form-control" id="select_solar_tpye">
<option value="0" selected>自建躉售</option>
<option value="1" selected>租建躉售</option>
<option value="2" selected>自建自用</option>
</select>
</div>
</div>
</div>
<div class="row mb-3 d-flex justify-content-between">
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" id="power_station_code_label" for="power_station_code">電站編號</label>
<div class="col-xl-8">
<label id="power_station_code_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" id="power_station_name_label" for="power_station_name">電站名稱</label>
<div class="col-xl-8">
<label id="power_station_name_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label">是否為代管</label>
<div class="col-xl-8">
<p class="color-info-600">
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="check_escrow" name="check_escrow" disabled="disabled">
<label class="custom-control-label" for="check_escrow" id="check_escrow_label">No</label>
</div>
</p>
</div>
</div>
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" id="escrow_name_lable" for="escrow_name">被代管公司</label>
<div class="col-xl-8">
<label id="escrow_name_text" class="color-info-600"></label>
</div>
</div>
</div>
<div class="row mb-3 d-flex justify-content-between">
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" id="electricity_meter_at_label" for="electricity_meter_at">台電掛錶日</label>
<div class="col-xl-8">
<label id="electricity_meter_at_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" id="power_rate_label" for="power_rate">授電費率</label>
<div class="col-xl-8">
<label id="power_rate_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" id="estimated_recovery_time_label" for="estimated_recovery_time">預計回收年限</label>
<div class="col-xl-8">
<label id="estimated_recovery_time_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" id="generating_capacity_label" for="generating_capacity">電廠發電容量(kW)</label>
<div class="col-xl-8">
<label id="generating_capacity_text" class="color-info-600"></label>
</div>
</div>
</div>
<div class="row mb-5 d-flex justify-content-between ">
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" id="power_station_operation_personnel_label">運維人員</label>
<div class="col-xl-8">
<select class="js-example-basic-multiple form-control" id="power_station_operation_personnel" multiple="multiple">
</select>
</div>
</div>
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" id="coordinate_label" for="coordinate">座標</label>
<div class="col-xl-8">
<label id="coordinate_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label">資料建立</label>
<div class="col-xl-8">
<label id="created_by_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label">建立時間</label>
<div class="col-xl-8">
<label id="created_at_text" class="color-info-600"></label>
</div>
</div>
</div>
<div class="row">
<div class="col-xl-6">
<h5 class="border-bottom font-weight-bold mb-3 pl-5 pb-3">光電板</h5>
<div class="row d-flex justify-content-between px-5">
<div class="col-xl-4 mb-3 row">
<label class="col-xl-4 form-label" id="photovoltaic_panel_brand_label" for="photovoltaic_panel_brand">廠牌</label>
<div class="col-xl-8">
<label id="photovoltaic_panel_brand_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-4 mb-3 row">
<label class="col-xl-4 form-label" id="photovoltaic_panel_specification_label" for="photovoltaic_panel_specification">規格</label>
<div class="col-xl-8">
<label id="photovoltaic_panel_specification_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-4 mb-3 row">
<label class="col-xl-4 form-label" id="photovoltaic_panel_amount_label" for="photovoltaic_panel_amount">數量</label>
<div class="col-xl-8">
<label id="photovoltaic_panel_amount_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-4 mb-3 row">
<label class="col-xl-4 form-label" id="photovoltaic_panel_product_model_label" for="photovoltaic_panel_product_model">型號</label>
<div class="col-xl-8">
<label id="photovoltaic_panel_product_model_text" class="color-info-600"></label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row mb-5" id="BoEPart">
<div class="card border mb-g w-100">
<!-- notice the additions of utility paddings and display properties on .card-header -->
<div class="card-header bg-fusion-50 pr-3 d-flex align-items-center flex-wrap justify-content-between">
<!-- we wrap header title inside a div tag with utility padding -->
<div class="card-title font-weight-bold">經濟部能源局與台電資訊</div>
</div>
<div class="card-body">
<div class="row">
<div class="col-xl-6">
<h5 class="border-bottom font-weight-bold mb-3 pl-5 pb-3">經濟部能源局</h5>
<div class="row d-flex justify-content-between px-5">
<div class="col-xl-6 mb-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label">能源局同意檔案</label>
<div class="col-xl-8">
<a id="link-boe-file" class="color-info-600" href="link/to/your/download/file" download>Download link</a>
</div>
</div>
<div class="col-xl-6 mb-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label">折扣率</label>
<div class="col-xl-8">
<label id="BoE_discount_rate_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-6 mb-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" for="BoE_device_register_number">能源局設備登記編號</label>
<div class="col-xl-8">
<label id="BoE_device_register_number_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-6 mb-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label">租金比例(%)</label>
<div class="col-xl-8">
<label id="BoE_rent_ratio_text" class="color-info-600"></label>
</div>
</div>
</div>
</div>
<div class="col-xl-6">
<h5 class="border-bottom font-weight-bold mb-3 pl-5 pb-3">台電資訊</h5>
<div class="row d-flex justify-content-between px-5">
<div class="col-xl-6 mb-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" for="TPC_contract_number">契約編號</label>
<div class="col-xl-8">
<label id="TPC_contract_number_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-6 mb-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" for="TPC_contract_at">簽約日期</label>
<div class="col-xl-8">
<label id="TPC_contract_at_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-6 mb-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" for="TPC_sell_deadline">售電期限(年)</label>
<div class="col-xl-8">
<label id="TPC_sell_deadline_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-6 mb-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" for="TPC_meter_reading">每期抄錶日</label>
<div class="col-xl-8">
<label id="TPC_meter_reading_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-6 mb-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" for="TPC_purchase_electricity_at">正式購電日</label>
<div class="col-xl-8">
<label id="TPC_purchase_electricity_at_text" class="color-info-600"></label>
</div>
</div>
<div class="col-xl-6 mb-3 row justify-content-center align-items-center">
<label class="col-xl-4 form-label" for="TPC_sell_electricity_at">正式售電日</label>
<div class="col-xl-8">
<label id="TPC_sell_electricity_at_text" class="color-info-600"></label>
</div>
</div>
</div>
<div class="row d-flex justify-content-end px-5">
<div class="col-xl-6 mb-3 row justify-content-end align-items-center">
<label class="col-xl-12 text-right">資料建立 <span id="BOE_TPC_created_by_text" class="ml-3 color-info-600"></span></label>
</div>
</div>
<div class="row d-flex justify-content-end px-5">
<div class="col-xl-6 mb-3 row justify-content-end align-items-center">
<label class="col-xl-12 text-right">建立時間 <span id="BOE_TPC_created_at_text" class="ml-3 color-info-600"></span></label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row mb-5" id="land_buildingPart">
</div>
<div class="row mb-5">
<div class="card border mb-g w-100">
<!-- notice the additions of utility paddings and display properties on .card-header -->
<div class="card-header bg-fusion-50 pr-3 d-flex align-items-center flex-wrap justify-content-between">
<!-- we wrap header title inside a div tag with utility padding -->
<div class="card-title font-weight-bold">單線圖</div>
</div>
<div class="card-body" id="power-station-single-line-card">
<div class="row d-flex justify-content-start img-zoom-div">
</div>
</div>
</div>
</div>

View File

@ -1 +1,140 @@
<p>6</p>
<div class="row mb-5">
<div class="card-columns">
<div class="card">
<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>
<div class="ml-auto">kwh</div>
</div>
<div class="card-body" style="min-height: 148px;">
<div class="d-flex justify-content-between">
<p>今日發電量</p>
<p><span class="color-info-700" id="today_kwh">126,161.72</span></p>
</div>
<div class="d-flex justify-content-between">
<p>累積發電量</p>
<p><span class="color-info-700" id="total_kwh">4,069.73</span></p>
</div>
</div>
</div>
<div class="card money-card">
<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> 發電金額</h4>
<div class="ml-auto">NTD</div>
</div>
<div class="card-body" style="min-height: 148px;">
<div class="d-flex justify-content-between">
<p>總發金額</p>
<p><span class="color-info-700" id="total_money">126,161.72</span></p>
</div>
<div class="d-flex justify-content-between">
<p>平均發電金額</p>
<p><span class="color-info-700" id="today_money">4,069.73</span></p>
</div>
</div>
</div>
<div class="card irradiance-card">
<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>
<div class="ml-auto">kw/m<sup>2</sup></div>
</div>
<div class="card-body" style="min-height: 148px;">
<div class="d-flex justify-content-between">
<p>即時平均日照度</p>
<p><span class="color-info-700" id="today_irradiance">126,161.72</span></p>
</div>
<div class="d-flex justify-content-between">
<p>平均日照度(30天)</p>
<p><span class="color-info-700" id="avg_irradiance">4,069.73</span></p>
</div>
</div>
</div>
<div class="card">
<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>
</div>
<div class="card-body" style="min-height: 148px;">
<div class="d-flex justify-content-between">
<p>即時平均 PR 值</p>
<p><span class="color-info-700" id="today_PR">119.04</span></p>
</div>
<div class="d-flex justify-content-between">
<p>平均 PR 值(30天)</p>
<p><span class="color-info-700" id="avg_PR">3.84</span></p>
</div>
</div>
</div>
<div class="card">
<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> kWh / kWp</h4>
</div>
<div class="card-body" style="min-height: 148px;">
<div class="d-flex justify-content-between">
<p>即時平均 kWh / kWp</p>
<p><span class="color-info-700" id="today_kwhkwp">140.39</span></p>
</div>
<div class="d-flex justify-content-between">
<p>平均 kWh / kWp (30天)</p>
<p><span class="color-info-700" id="avg_kwhkwp">4.53</span></p>
</div>
</div>
</div>
<div class="card">
<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>
<div class="ml-auto">kG</div>
</div>
<div class="card-body" style="min-height: 148px;">
<div class="d-flex justify-content-between">
<p>今日減碳量</p>
<p><span class="color-info-700" id="today_carbon">6,091.78</span></p>
</div>
<div class="d-flex justify-content-between">
<p>累積減碳量</p>
<p><span class="color-info-700" id="total_carbon">985.98</span></p>
</div>
</div>
</div>
</div>
</div>
<div class="row mb-5">
<div class="col-xl-6">
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
</ol>
<div class="carousel-inner">
<div class="carousel-item active">
<img class="d-block w-100" src="about:blank" data-src="holder.js/800x400?auto=yes&bg=37e2d0&fg=ffffff&text=First slide" alt="First slide">
</div>
<div class="carousel-item">
<img class="d-block w-100" src="about:blank" data-src="holder.js/800x400?auto=yes&bg=21dfcb&fg=ffffff&text=Second slide" alt="Second slide">
</div>
<div class="carousel-item">
<img class="d-block w-100" src="about:blank" data-src="holder.js/800x400?auto=yes&bg=1dc9b7&fg=ffffff&text=Third slide" alt="Third slide">
</div>
</div>
<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
</div>
<div class="col-xl-6">
<img src="img/backgrounds/clouds.png" class="img-fluid">
</div>
</div>
<div class="row mb-5">
<div class="col-xl-6">
<img src="img/backgrounds/clouds.png" class="img-fluid">
</div>
<div class="col-xl-6">
<img src="img/backgrounds/clouds.png" class="img-fluid">
</div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 907 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 907 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB