Merge branch 'Willy'
This commit is contained in:
commit
1be7aebc1e
@ -1422,11 +1422,12 @@ namespace SolarPower.Controllers
|
|||||||
public async Task<ApiResult<string>> SaveException(ExceptionModal exceptionModal)
|
public async Task<ApiResult<string>> SaveException(ExceptionModal exceptionModal)
|
||||||
{
|
{
|
||||||
ApiResult<string> apiResult = new ApiResult<string>();
|
ApiResult<string> apiResult = new ApiResult<string>();
|
||||||
var url = "10.1.100.138";
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
PowerStation powerStation = null;
|
PowerStation powerStation = null;
|
||||||
powerStation = await powerStationRepository.GetOneAsync(exceptionModal.PowerStationId);
|
powerStation = await powerStationRepository.GetOneAsync(exceptionModal.PowerStationId);
|
||||||
|
|
||||||
|
|
||||||
if (exceptionModal.Id == 0)
|
if (exceptionModal.Id == 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -1446,13 +1447,42 @@ namespace SolarPower.Controllers
|
|||||||
"CreatedBy",
|
"CreatedBy",
|
||||||
"PowerStationId",
|
"PowerStationId",
|
||||||
"Id",
|
"Id",
|
||||||
"LowerLimit",
|
|
||||||
"Type",
|
"Type",
|
||||||
"UpperLimit",
|
"LowerLimit",
|
||||||
|
"UpperLimit"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
if(Exception.LowerLimit == -9999)
|
||||||
|
{
|
||||||
|
Exception.LowerLimit = null;
|
||||||
|
}
|
||||||
|
if (Exception.UpperLimit != -9999)
|
||||||
|
{
|
||||||
|
Exception.UpperLimit = null;
|
||||||
|
}
|
||||||
await powerStationRepository.AddException(Exception, properties, powerStation.SiteDB);
|
await powerStationRepository.AddException(Exception, properties, powerStation.SiteDB);
|
||||||
Fetch_PostWithJSONFormat("http://" + url + ":8080/obix/config/Solar/S"+ powerStation.Code+ "01/API/PR_UpperLimit/set", exceptionModal.UpperLimit.ToString());
|
|
||||||
Fetch_PostWithJSONFormat("http://" + url + ":8080/obix/config/Solar/S" + powerStation.Code + "01/API/PR_LowerLimit/set", exceptionModal.LowerLimit.ToString());
|
var calllist = await powerStationRepository.GetApicallList(powerStation.Id, exceptionModal.Type);
|
||||||
|
|
||||||
|
foreach(var call in calllist )
|
||||||
|
{
|
||||||
|
if(call.LimitValue == 0)
|
||||||
|
{
|
||||||
|
if(exceptionModal.UpperLimit != -9999)
|
||||||
|
{
|
||||||
|
Fetch_PostWithJSONFormat($"http://{call.UrlSite}/obix/config/Solar/S{powerStation.Code}01/API/{call.UrlApi}/set", exceptionModal.UpperLimit.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if(call.LimitValue == 1)
|
||||||
|
{
|
||||||
|
if (exceptionModal.LowerLimit != -9999)
|
||||||
|
{
|
||||||
|
Fetch_PostWithJSONFormat($"http://{call.UrlSite}/obix/config/Solar/S{powerStation.Code}01/API/{call.UrlApi}/set", exceptionModal.LowerLimit.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
apiResult.Code = "0000";
|
apiResult.Code = "0000";
|
||||||
apiResult.Msg = "新增成功";
|
apiResult.Msg = "新增成功";
|
||||||
@ -1475,13 +1505,42 @@ namespace SolarPower.Controllers
|
|||||||
"CreatedBy",
|
"CreatedBy",
|
||||||
"PowerStationId",
|
"PowerStationId",
|
||||||
"Id",
|
"Id",
|
||||||
"LowerLimit",
|
|
||||||
"Type",
|
"Type",
|
||||||
"UpperLimit",
|
"LowerLimit",
|
||||||
|
"UpperLimit"
|
||||||
};
|
};
|
||||||
|
if (Exception.LowerLimit == -9999)
|
||||||
|
{
|
||||||
|
Exception.LowerLimit = null;
|
||||||
|
}
|
||||||
|
if (Exception.UpperLimit == -9999)
|
||||||
|
{
|
||||||
|
Exception.UpperLimit = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
await powerStationRepository.UpdateException(Exception, properties, powerStation.SiteDB);
|
await powerStationRepository.UpdateException(Exception, properties, powerStation.SiteDB);
|
||||||
Fetch_PostWithJSONFormat("http://" + url + ":8080/obix/config/Solar/S" + powerStation.Code + "01/API/PR_UpperLimit/set", exceptionModal.UpperLimit.ToString());
|
|
||||||
Fetch_PostWithJSONFormat("http://" + url + ":8080/obix/config/Solar/S" + powerStation.Code + "01/API/PR_LowerLimit/set", exceptionModal.LowerLimit.ToString());
|
var calllist = await powerStationRepository.GetApicallList(powerStation.Id, exceptionModal.Type);
|
||||||
|
|
||||||
|
foreach (var call in calllist)
|
||||||
|
{
|
||||||
|
if (call.LimitValue == 0)
|
||||||
|
{
|
||||||
|
if (exceptionModal.UpperLimit != -9999)
|
||||||
|
{
|
||||||
|
Fetch_PostWithJSONFormat($"http://{call.UrlSite}/obix/config/Solar/S{powerStation.Code}01/API/{call.UrlApi}/set", exceptionModal.UpperLimit.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (call.LimitValue == 1)
|
||||||
|
{
|
||||||
|
if (exceptionModal.LowerLimit != -9999)
|
||||||
|
{
|
||||||
|
Fetch_PostWithJSONFormat($"http://{call.UrlSite}/obix/config/Solar/S{powerStation.Code}01/API/{call.UrlApi}/set", exceptionModal.LowerLimit.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
apiResult.Code = "0000";
|
apiResult.Code = "0000";
|
||||||
apiResult.Msg = "儲存成功";
|
apiResult.Msg = "儲存成功";
|
||||||
@ -1517,10 +1576,6 @@ namespace SolarPower.Controllers
|
|||||||
a.Function = @"
|
a.Function = @"
|
||||||
<button type='button' class='btn btn-primary btn-pills waves-effect waves-themed edit-btn'>修改</button>
|
<button type='button' class='btn btn-primary btn-pills waves-effect waves-themed edit-btn'>修改</button>
|
||||||
<button type='button' class='btn btn-danger btn-pills waves-effect waves-themed del-btn'>刪除</button>";
|
<button type='button' class='btn btn-danger btn-pills waves-effect waves-themed del-btn'>刪除</button>";
|
||||||
if (a.Type == 1)
|
|
||||||
{
|
|
||||||
a.TypeName = "PR值";
|
|
||||||
}
|
|
||||||
if (a.Alarm == 1)
|
if (a.Alarm == 1)
|
||||||
{
|
{
|
||||||
a.AlarmName = "email通知";
|
a.AlarmName = "email通知";
|
||||||
@ -2988,6 +3043,29 @@ namespace SolarPower.Controllers
|
|||||||
return apiResult;
|
return apiResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<ApiResult<List<AreaSelectItemList>>> GetApicallItemList(int powerStationId)
|
||||||
|
{
|
||||||
|
ApiResult<List<AreaSelectItemList>> apiResult = new ApiResult<List<AreaSelectItemList>>();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var powerStation = await powerStationRepository.GetOneAsync(powerStationId);
|
||||||
|
var ItemLists = await powerStationRepository.GetApicallItemList(powerStationId, powerStation.SiteDB);
|
||||||
|
|
||||||
|
apiResult.Code = "0000";
|
||||||
|
apiResult.Data = ItemLists;
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
apiResult.Code = "9999";
|
||||||
|
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
apiResult.Msg = errorCode.GetString(apiResult.Code);
|
||||||
|
return apiResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public JObject Fetch_PostWithJSONFormat(string url, string paramter)
|
public JObject Fetch_PostWithJSONFormat(string url, string paramter)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -466,9 +466,9 @@ namespace SolarPower.Models.PowerStation
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public int PowerStationId { get; set; }
|
public int PowerStationId { get; set; }
|
||||||
public byte Type { get; set; }
|
public string Type { get; set; }
|
||||||
public decimal UpperLimit { get; set; }
|
public decimal? UpperLimit { get; set; }
|
||||||
public decimal LowerLimit { get; set; }
|
public decimal? LowerLimit { get; set; }
|
||||||
public byte Alarm { get; set; }
|
public byte Alarm { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1034,4 +1034,12 @@ namespace SolarPower.Models.PowerStation
|
|||||||
public string UID { get; set; }
|
public string UID { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class ApicallList
|
||||||
|
{
|
||||||
|
public string UrlSite { get; set; }
|
||||||
|
public string UrlApi { get; set; }
|
||||||
|
public int LimitValue { get; set; }
|
||||||
|
public string Item { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -943,10 +943,18 @@ namespace SolarPower.Repository.Implement
|
|||||||
List<ExceptionTable> Exception = new List<ExceptionTable>();
|
List<ExceptionTable> Exception = new List<ExceptionTable>();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string sql = @$"SELECT pe.Type,pe.UpperLimit,pe.LowerLimit,pe.Alarm,ps.Code AS PowerStationCode ,ps.Name AS PowerStationName,pe.CreatedAt,pe.Id
|
string sql = @$"SELECT pe.Type,
|
||||||
|
pe.UpperLimit,
|
||||||
|
pe.LowerLimit,
|
||||||
|
api.ItemName AS TypeName,
|
||||||
|
pe.Alarm,ps.Code AS PowerStationCode ,
|
||||||
|
ps.Name AS PowerStationName,
|
||||||
|
pe.CreatedAt,
|
||||||
|
pe.Id
|
||||||
FROM {db_name}.power_station_exception pe
|
FROM {db_name}.power_station_exception pe
|
||||||
LEFT JOIN {db_name}.power_station ps ON pe.PowerStationId = ps.Id
|
LEFT JOIN {db_name}.power_station ps ON pe.PowerStationId = ps.Id
|
||||||
WHERE pe.Deleted = 0 AND pe.PowerStationId = @StationId";
|
LEFT JOIN apicall api ON api.Item = pe.Type and ps.Id = api.PowerStationId
|
||||||
|
WHERE pe.Deleted = 0 AND pe.PowerStationId = @StationId GROUP BY pe.Id";
|
||||||
Exception = (await conn.QueryAsync<ExceptionTable>(sql, new { StationId = stationId })).ToList();
|
Exception = (await conn.QueryAsync<ExceptionTable>(sql, new { StationId = stationId })).ToList();
|
||||||
}
|
}
|
||||||
catch (Exception exception)
|
catch (Exception exception)
|
||||||
@ -5222,5 +5230,57 @@ namespace SolarPower.Repository.Implement
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<List<AreaSelectItemList>> GetApicallItemList(int powerStationId,string dbname)
|
||||||
|
{
|
||||||
|
List<AreaSelectItemList> result;
|
||||||
|
using (IDbConnection conn = this._databaseHelper.GetConnection())
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var sql = $@"SELECT
|
||||||
|
aa.Item AS VALUE, aa.ItemName AS `text`
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT api.Item, api.ItemName
|
||||||
|
FROM apicall api
|
||||||
|
LEFT join
|
||||||
|
(SELECT * FROM {dbname}.power_station_exception ex WHERE ex.Deleted = 0) a
|
||||||
|
ON a.`Type` = api.Item
|
||||||
|
WHERE api.PowerStationId = {powerStationId}
|
||||||
|
AND ISNULL(a.Id)
|
||||||
|
GROUP BY api.Item
|
||||||
|
) aa
|
||||||
|
";
|
||||||
|
|
||||||
|
result = (await conn.QueryAsync<AreaSelectItemList>(sql)).ToList();
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
throw exception;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<ApicallList>> GetApicallList(int PowerStationId,string Type)
|
||||||
|
{
|
||||||
|
List<ApicallList> result;
|
||||||
|
using (IDbConnection conn = this._databaseHelper.GetConnection())
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var sql = $@"SELECT * FROM apicall WHERE PowerStationId = {PowerStationId} and Item = '{Type}' order by LimitValue";
|
||||||
|
|
||||||
|
result = (await conn.QueryAsync<ApicallList>(sql)).ToList();
|
||||||
|
}
|
||||||
|
catch (Exception exception)
|
||||||
|
{
|
||||||
|
throw exception;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -593,5 +593,7 @@ namespace SolarPower.Repository.Interface
|
|||||||
Task<InverterDetailModal> GetInverterInfoModal(int Id, string Time, string DB, string Table);
|
Task<InverterDetailModal> GetInverterInfoModal(int Id, string Time, string DB, string Table);
|
||||||
Task<List<PowerStationIdAndCity>> GetPowerStationsAllWithfilterForGeneration(string filter);
|
Task<List<PowerStationIdAndCity>> GetPowerStationsAllWithfilterForGeneration(string filter);
|
||||||
Task<List<PowerStationIdAndCity>> GetPowerStationsByCompanyIdWithfilterForGeneration(MyUser myUser, string filter);
|
Task<List<PowerStationIdAndCity>> GetPowerStationsByCompanyIdWithfilterForGeneration(MyUser myUser, string filter);
|
||||||
|
Task<List<AreaSelectItemList>> GetApicallItemList(int powerStationId, string dbname);
|
||||||
|
Task<List<ApicallList>> GetApicallList(int PowerStationId, string Type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -722,6 +722,7 @@
|
|||||||
},
|
},
|
||||||
'createdRow': function (row, data, dataIndex) {
|
'createdRow': function (row, data, dataIndex) {
|
||||||
$(row).attr('data-id', data.id);
|
$(row).attr('data-id', data.id);
|
||||||
|
$(row).attr('data-typename', data.typeName);
|
||||||
},
|
},
|
||||||
"ajax": {
|
"ajax": {
|
||||||
"url": "/PowerStation/ExceptionTable",
|
"url": "/PowerStation/ExceptionTable",
|
||||||
@ -936,6 +937,13 @@
|
|||||||
});
|
});
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
//#region 代管切換
|
//#region 代管切換
|
||||||
@ -2552,6 +2560,7 @@
|
|||||||
function AddException() {
|
function AddException() {
|
||||||
selected_id = 0;
|
selected_id = 0;
|
||||||
$("#Exception-modal .modal-title").html("異常設定資料 - 新增");
|
$("#Exception-modal .modal-title").html("異常設定資料 - 新增");
|
||||||
|
urlApicallItem();
|
||||||
$("#Exception-form").trigger("reset");
|
$("#Exception-form").trigger("reset");
|
||||||
$("#Exception-modal").modal();
|
$("#Exception-modal").modal();
|
||||||
}
|
}
|
||||||
@ -2561,13 +2570,15 @@
|
|||||||
function SaveException() {
|
function SaveException() {
|
||||||
|
|
||||||
if ($("#Exception-form").valid()) {
|
if ($("#Exception-form").valid()) {
|
||||||
|
|
||||||
|
|
||||||
var url = "/PowerStation/SaveException";
|
var url = "/PowerStation/SaveException";
|
||||||
var send_data = {
|
var send_data = {
|
||||||
Id: selected_id,
|
Id: selected_id,
|
||||||
PowerStationId: stationId,
|
PowerStationId: stationId,
|
||||||
Type: $("#Exception_Type_modal").val(),
|
Type: $("#Exception_Type_modal").val(),
|
||||||
UpperLimit: $("#Exception_UpperLimit_modal").val(),
|
UpperLimit: ($("#Exception_UpperLimit_modal").val() != "") ? $("#Exception_UpperLimit_modal").val() : "-9999",
|
||||||
LowerLimit: $("#Exception_LowerLimit_modal").val(),
|
LowerLimit: ($("#Exception_LowerLimit_modal").val() != "") ? $("#Exception_LowerLimit_modal").val() : "-9999",
|
||||||
Alarm: $("#Exception_Alarm_modal").val()
|
Alarm: $("#Exception_Alarm_modal").val()
|
||||||
}
|
}
|
||||||
$.post(url, send_data, function (rel) {
|
$.post(url, send_data, function (rel) {
|
||||||
@ -2590,7 +2601,7 @@
|
|||||||
//#region 取一筆異常設定
|
//#region 取一筆異常設定
|
||||||
$('#Exception_table').on("click", "button.edit-btn", function () {
|
$('#Exception_table').on("click", "button.edit-btn", function () {
|
||||||
$("#Exception-modal .modal-title").html("異常設定資料 - 編輯");
|
$("#Exception-modal .modal-title").html("異常設定資料 - 編輯");
|
||||||
|
var tyname = $(this).parents('tr').attr('data-typename');
|
||||||
selected_id = $(this).parents('tr').attr('data-id');
|
selected_id = $(this).parents('tr').attr('data-id');
|
||||||
|
|
||||||
//取得單一異常設定資料
|
//取得單一異常設定資料
|
||||||
@ -2607,8 +2618,9 @@
|
|||||||
toast_error(rel.msg);
|
toast_error(rel.msg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
$("#Exception_Type_modal").empty();
|
||||||
$("#Exception_Type_modal").val(rel.data.type);
|
$("#Exception_Type_modal").append($("<option />").val(rel.data.type).text(tyname));
|
||||||
|
$("#Exception_Type_modal").attr('disabled', true);
|
||||||
$("#Exception_Alarm_modal").val(rel.data.alarm);
|
$("#Exception_Alarm_modal").val(rel.data.alarm);
|
||||||
$("#Exception_UpperLimit_modal").val(rel.data.upperLimit);
|
$("#Exception_UpperLimit_modal").val(rel.data.upperLimit);
|
||||||
$("#Exception_LowerLimit_modal").val(rel.data.lowerLimit);
|
$("#Exception_LowerLimit_modal").val(rel.data.lowerLimit);
|
||||||
@ -2914,15 +2926,15 @@
|
|||||||
|
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
$('#Exception_UpperLimit_modal').change(function () {
|
//$('#Exception_UpperLimit_modal').change(function () {
|
||||||
upper = $('#Exception_UpperLimit_modal').val();
|
// upper = $('#Exception_UpperLimit_modal').val();
|
||||||
$("#Exception_LowerLimit_modal").rules("remove");
|
// $("#Exception_LowerLimit_modal").rules("remove");
|
||||||
$("#Exception_LowerLimit_modal").rules("add", {
|
// $("#Exception_LowerLimit_modal").rules("add", {
|
||||||
required: true,
|
// required: true,
|
||||||
max: Number(upper),
|
// max: Number(upper),
|
||||||
min: 0
|
// min: 0
|
||||||
});
|
// });
|
||||||
});
|
//});
|
||||||
|
|
||||||
function padLeft(str, lenght) {
|
function padLeft(str, lenght) {
|
||||||
if (str.length >= lenght)
|
if (str.length >= lenght)
|
||||||
@ -2973,5 +2985,37 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function urlApicallItem()
|
||||||
|
{
|
||||||
|
var urlApicallItem = "/PowerStation/GetApicallItemList";
|
||||||
|
var send_data = {
|
||||||
|
powerStationId: stationId
|
||||||
|
}
|
||||||
|
$.post(urlApicallItem, send_data, function (rel) {
|
||||||
|
if (rel.code != "0000") {
|
||||||
|
toast_error(rel.msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$("#Exception_Type_modal").empty();
|
||||||
|
|
||||||
|
if (rel.data.length > 0) {
|
||||||
|
$.each(rel.data, function (index, val) {
|
||||||
|
$("#Exception_Type_modal").append($("<option />").val(val.value).text(val.text));
|
||||||
|
});
|
||||||
|
$("#Exception_Type_modal").attr('disabled', false);
|
||||||
|
$("#savebtn").attr('disabled', false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$("#Exception_Type_modal").append($("<option />").val(0).text('無異常設定可新增'));
|
||||||
|
$("#Exception_Type_modal").attr('disabled', true);
|
||||||
|
$("#savebtn").attr('disabled', true);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
}
|
}
|
||||||
@ -46,18 +46,18 @@
|
|||||||
<option value="1">PR值</option>
|
<option value="1">PR值</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-6">
|
<div class="form-group col-lg-6" style="visibility:hidden">
|
||||||
<label class="form-label" for="Exception_Alarm_modal"><span class="text-danger">*</span>警示方式</label>
|
<label class="form-label" for="Exception_Alarm_modal"><span class="text-danger">*</span>警示方式</label>
|
||||||
<select class="form-control" id="Exception_Alarm_modal">
|
<select class="form-control" id="Exception_Alarm_modal">
|
||||||
<option value="1">email通知</option>
|
<option value="1">email通知</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-6">
|
<div class="form-group col-lg-6">
|
||||||
<label class="form-label" for="Exception_LowerLimit_modal"><span class="text-danger">*</span>下限</label>
|
<label class="form-label" for="Exception_LowerLimit_modal">下限</label>
|
||||||
<input type="number" id="Exception_LowerLimit_modal" name="Exception_LowerLimit_modal" class="form-control">
|
<input type="number" id="Exception_LowerLimit_modal" name="Exception_LowerLimit_modal" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-6">
|
<div class="form-group col-lg-6">
|
||||||
<label class="form-label" for="Exception_UpperLimit_modal"><span class="text-danger">*</span>上限</label>
|
<label class="form-label" for="Exception_UpperLimit_modal">上限</label>
|
||||||
<input type="number" id="Exception_UpperLimit_modal" name="Exception_UpperLimit_modal" class="form-control">
|
<input type="number" id="Exception_UpperLimit_modal" name="Exception_UpperLimit_modal" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -66,7 +66,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
|
||||||
<button type="button" class="btn btn-primary" onclick="SaveException()">確定</button>
|
<button type="button" class="btn btn-primary" onclick="SaveException()" id="savebtn">確定</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user