裝置datatable
This commit is contained in:
parent
40396c8e85
commit
0a9713fc94
@ -67,6 +67,26 @@ namespace SolarPower.Controllers
|
||||
apiResult.Msg = errorCode.GetString(apiResult.Code);
|
||||
return apiResult;
|
||||
}
|
||||
/// <summary>
|
||||
/// 取裝置類型下拉選單
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<ApiResult<List<UserSelectItemList>>> GetDeviceTypeSelectOptionList()
|
||||
{
|
||||
ApiResult<List<UserSelectItemList>> apiResult = new ApiResult<List<UserSelectItemList>>();
|
||||
try
|
||||
{
|
||||
var userSelectItemLists = await powerStationRepository.DeviceType();
|
||||
apiResult.Code = "0000";
|
||||
apiResult.Data = userSelectItemLists;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
apiResult.Code = "9999";
|
||||
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
||||
}
|
||||
return apiResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得單一電站基本資料
|
||||
@ -399,6 +419,108 @@ namespace SolarPower.Controllers
|
||||
|
||||
return apiResult;
|
||||
}
|
||||
/// <summary>
|
||||
/// 新增 / 修改 裝置資料
|
||||
/// </summary>
|
||||
/// <param name="Device"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ApiResult<string>> SaveDevice(DeviceInfo Device)
|
||||
{
|
||||
ApiResult<string> apiResult = new ApiResult<string>();
|
||||
try
|
||||
{
|
||||
if (Device.Id == 0)
|
||||
{
|
||||
Device DeviceInfo = new Device()
|
||||
{
|
||||
Brand = Device.Brand,
|
||||
ColName = Device.ColName,
|
||||
PowerStationId = Device.PowerStationId,
|
||||
DBName = Device.DBName,
|
||||
Id = Device.Id,
|
||||
Name = Device.Name,
|
||||
ProductModel = Device.ProductModel,
|
||||
Remark = Device.Remark,
|
||||
TableName = Device.TableName,
|
||||
Type = Device.Type,
|
||||
UID = Device.PowerStationId + "-" + Device.Type,
|
||||
CreatedBy = myUser.Id
|
||||
};
|
||||
List<string> properties = new List<string>()
|
||||
{
|
||||
"Brand",
|
||||
"ColName",
|
||||
"PowerStationId",
|
||||
"DBName",
|
||||
"Id",
|
||||
"Name",
|
||||
"ProductModel",
|
||||
"Remark",
|
||||
"TableName",
|
||||
"Type",
|
||||
"UID",
|
||||
"CreatedBy"
|
||||
};
|
||||
await powerStationRepository.AddDevice(DeviceInfo,properties);
|
||||
|
||||
apiResult.Code = "0000";
|
||||
apiResult.Msg = "新增成功";
|
||||
}
|
||||
else
|
||||
{
|
||||
Device DeviceInfo = new Device()
|
||||
{
|
||||
Brand = Device.Brand,
|
||||
ColName = Device.ColName,
|
||||
PowerStationId = Device.PowerStationId,
|
||||
DBName = Device.DBName,
|
||||
Id = Device.Id,
|
||||
Name = Device.Name,
|
||||
ProductModel = Device.ProductModel,
|
||||
Remark = Device.Remark,
|
||||
TableName = Device.TableName,
|
||||
Type = Device.Type,
|
||||
UID = Device.PowerStationId + "-" + Device.Type,
|
||||
CreatedBy = myUser.Id
|
||||
};
|
||||
List<string> properties = new List<string>()
|
||||
{
|
||||
"Brand",
|
||||
"ColName",
|
||||
"PowerStationId",
|
||||
"DBName",
|
||||
"Id",
|
||||
"Name",
|
||||
"ProductModel",
|
||||
"Remark",
|
||||
"TableName",
|
||||
"Type",
|
||||
"UID",
|
||||
"CreatedBy"
|
||||
};
|
||||
await powerStationRepository.AddDevice(DeviceInfo, properties);
|
||||
apiResult.Code = "0000";
|
||||
apiResult.Msg = "儲存成功";
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
apiResult.Code = "9999";
|
||||
apiResult.Msg = exception.ToString();
|
||||
}
|
||||
return apiResult;
|
||||
}
|
||||
|
||||
public async Task<ActionResult> DeviceTable(int stationId)
|
||||
{
|
||||
List<DeviceTable> deviceTables = new List<DeviceTable>();
|
||||
ApiResult<List<DeviceTable>> apiResult = new ApiResult<List<DeviceTable>>();
|
||||
var result = Json(new
|
||||
{
|
||||
data = apiResult
|
||||
});
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -82,12 +82,12 @@ namespace SolarPower.Models.PowerStation
|
||||
public class OperationInfo : Created
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int PowerStationId { get; set; }
|
||||
public int Type { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string ContactPerson { get; set; }
|
||||
public string Phone { get; set; }
|
||||
public string Email { get; set; }
|
||||
public int PowerStationId { get; set; }//電廠id
|
||||
public int Type { get; set; }//廠商類別
|
||||
public string Name { get; set; }//名稱
|
||||
public string ContactPerson { get; set; }//聯絡人
|
||||
public string Phone { get; set; }//電話
|
||||
public string Email { get; set; }//Email
|
||||
}
|
||||
public class OperationStationId
|
||||
{
|
||||
@ -95,9 +95,50 @@ namespace SolarPower.Models.PowerStation
|
||||
}
|
||||
public class OperationTable : OperationInfo
|
||||
{
|
||||
public string CreatedName { get; set; }
|
||||
public string Function { get; set; }
|
||||
public string CreatedName { get; set; }//建立者名稱
|
||||
public string Function { get; set; }//功能
|
||||
public string TypeName { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 設備裝置下拉選單
|
||||
/// </summary>
|
||||
public class Type
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string EName { get; set; }
|
||||
}
|
||||
public class Root
|
||||
{
|
||||
public List<Type> Type { get; set; }
|
||||
}
|
||||
public class Variable
|
||||
{
|
||||
public string name { get; set; }
|
||||
public string value { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 設備
|
||||
/// </summary>
|
||||
public class DeviceInfo
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int PowerStationId { get; set; }//所屬電站編號
|
||||
public string Name { get; set; }//名稱
|
||||
public string Type { get; set; }//類型
|
||||
public string Brand { get; set; }//廠牌
|
||||
public string ProductModel { get; set; }//型號
|
||||
public string DBName { get; set; }
|
||||
public string TableName { get; set; }
|
||||
public string ColName { get; set; }
|
||||
public string Remark { get; set; }
|
||||
}
|
||||
public class Device : DeviceInfo
|
||||
{
|
||||
public string UID { get; set; }//設備編號
|
||||
public int CreatedBy { get; set; }//建立者
|
||||
}
|
||||
public class DeviceTable : DeviceInfo
|
||||
{
|
||||
public string Function { get; set; }//功能
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
using Dapper;
|
||||
using SolarPower.Helper;
|
||||
using SolarPower.Models.PowerStation;
|
||||
using SolarPower.Models.User;
|
||||
using SolarPower.Repository.Interface;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@ -8,6 +9,7 @@ using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace SolarPower.Repository.Implement
|
||||
{
|
||||
@ -75,7 +77,11 @@ namespace SolarPower.Repository.Implement
|
||||
return count;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 運維DataTable
|
||||
/// </summary>
|
||||
/// <param name="stationId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<OperationTable>> OperationTable (int stationId)
|
||||
{
|
||||
|
||||
@ -103,7 +109,11 @@ namespace SolarPower.Repository.Implement
|
||||
return operation;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 選取單一運維
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<OperationInfo> OneOperationInfo (int id)
|
||||
{
|
||||
using (IDbConnection conn = _databaseHelper.GetConnection())
|
||||
@ -158,5 +168,98 @@ namespace SolarPower.Repository.Implement
|
||||
conn.Close();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 裝置類型下拉選單
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<List<UserSelectItemList>> DeviceType()
|
||||
{
|
||||
List<UserSelectItemList> result = new List<UserSelectItemList>();
|
||||
using IDbConnection conn = _databaseHelper.GetConnection();
|
||||
conn.Open();
|
||||
var trans = conn.BeginTransaction();
|
||||
try
|
||||
{
|
||||
string sql = @$"SELECT * FROM variable WHERE name = @name";
|
||||
var json = await conn.QueryFirstOrDefaultAsync<Variable>(sql, new { name = "Type" });
|
||||
Root jsonfor = JsonSerializer.Deserialize<Root>(json.value);
|
||||
foreach(Models.PowerStation.Type a in jsonfor.Type)
|
||||
{
|
||||
UserSelectItemList KeyValue = new UserSelectItemList
|
||||
{
|
||||
Value = a.EName,
|
||||
Text = a.Name
|
||||
};
|
||||
result.Add(KeyValue);
|
||||
}
|
||||
trans.Commit();
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
trans.Rollback();
|
||||
throw exception;
|
||||
}
|
||||
finally
|
||||
{
|
||||
conn.Close();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// 新增裝置資料
|
||||
/// </summary>
|
||||
/// <param name="DeviceInfo"></param>
|
||||
/// <param name="properties"></param>
|
||||
/// <returns></returns>
|
||||
public async Task AddDevice(Device DeviceInfo, List<string> properties)
|
||||
{
|
||||
using IDbConnection conn = _databaseHelper.GetConnection();
|
||||
conn.Open();
|
||||
try
|
||||
{
|
||||
string sql = GenerateInsertQueryWithCustomTable(properties, "device");
|
||||
|
||||
await conn.ExecuteAsync(sql, DeviceInfo);
|
||||
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
throw exception;
|
||||
}
|
||||
finally
|
||||
{
|
||||
conn.Close();
|
||||
}
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 修改裝置資料
|
||||
/// </summary>
|
||||
/// <param name="DeviceInfo"></param>
|
||||
/// <param name="properties"></param>
|
||||
/// <returns></returns>
|
||||
public async Task UpdateDevice(Device DeviceInfo, List<string> properties)
|
||||
{
|
||||
using IDbConnection conn = _databaseHelper.GetConnection();
|
||||
conn.Open();
|
||||
var trans = conn.BeginTransaction();
|
||||
try
|
||||
{
|
||||
var updateQuery = GenerateUpdateQueryOtherTable(properties, "device");
|
||||
await conn.ExecuteAsync(updateQuery.ToString(), DeviceInfo, trans);
|
||||
trans.Commit();
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
trans.Rollback();
|
||||
throw exception;
|
||||
}
|
||||
finally
|
||||
{
|
||||
conn.Close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -344,5 +344,28 @@ namespace SolarPower.Repository.Implement
|
||||
|
||||
return updateQuery.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 產生Update語句(不同資料表)
|
||||
/// </summary>
|
||||
/// <param name="properties"></param>
|
||||
/// <returns></returns>
|
||||
protected string GenerateUpdateQueryOtherTable(List<string> properties, string table_name)
|
||||
{
|
||||
var updateQuery = new StringBuilder($"UPDATE {table_name} SET ");
|
||||
|
||||
properties.ForEach(property =>
|
||||
{
|
||||
if (!property.Equals("Id"))
|
||||
{
|
||||
updateQuery.Append($"{property}=@{property},");
|
||||
}
|
||||
});
|
||||
|
||||
updateQuery.Remove(updateQuery.Length - 1, 1); //remove last comma
|
||||
updateQuery.Append(" WHERE id = @Id");
|
||||
|
||||
return updateQuery.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using SolarPower.Models.PowerStation;
|
||||
using SolarPower.Models.User;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -12,6 +13,23 @@ namespace SolarPower.Repository.Interface
|
||||
Task<List<OperationTable>> OperationTable (int stationId);
|
||||
Task<OperationInfo> OneOperationInfo (int stationId);
|
||||
Task UpdateOperation(OperationInfo operation, List<string> properties);
|
||||
|
||||
/// <summary>
|
||||
/// 裝置類型下拉式選單
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<List<UserSelectItemList>> DeviceType();
|
||||
/// <summary>
|
||||
/// 新增 裝置
|
||||
/// </summary>
|
||||
/// <param name=""></param>
|
||||
/// <returns></returns>
|
||||
Task AddDevice(Device DeviceInfo, List<string> properties);
|
||||
/// <summary>
|
||||
/// 修改 裝置
|
||||
/// </summary>
|
||||
/// <param name="DeviceInfo"></param>
|
||||
/// <param name="properties"></param>
|
||||
/// <returns></returns>
|
||||
Task UpdateDevice(Device DeviceInfo, List<string> properties);
|
||||
}
|
||||
}
|
||||
|
||||
@ -65,5 +65,6 @@ namespace SolarPower.Repository.Interface
|
||||
/// <param name="tablename"></param>
|
||||
/// <returns></returns>
|
||||
Task DeleteOneOtherTable(int id, string tablename);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -171,6 +171,91 @@
|
||||
}
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
//#region 運維列表 DataTable
|
||||
DeviceTable = $("#Device_table").DataTable({
|
||||
"paging": true,
|
||||
"lengthChange": false,
|
||||
"searching": false,
|
||||
"ordering": true,
|
||||
"info": true,
|
||||
"autoWidth": false,
|
||||
"responsive": true,
|
||||
"order": [[9, "desc"]],
|
||||
"columns": [{
|
||||
"data": "uID"
|
||||
}, {
|
||||
"data": "name"
|
||||
}, {
|
||||
"data": "type"
|
||||
}, {
|
||||
"data": "brand"
|
||||
}, {
|
||||
"data": "productModel"
|
||||
}, {
|
||||
"data": "dBName"
|
||||
}, {
|
||||
"data": "tableName"
|
||||
}, {
|
||||
"data": "colName"
|
||||
}, {
|
||||
"data": "remark"
|
||||
},{
|
||||
"data": "function"
|
||||
}],
|
||||
"columnDefs": [{
|
||||
'targets': 1,
|
||||
'searchable': false,
|
||||
'orderable': false,
|
||||
'className': 'dt-body-center'
|
||||
}],
|
||||
"language": {
|
||||
"emptyTable": "無資料...",
|
||||
"processing": "處理中...",
|
||||
"loadingRecords": "載入中...",
|
||||
"lengthMenu": "顯示 _MENU_ 項結果",
|
||||
"zeroRecords": "沒有符合的結果",
|
||||
"info": "顯示第 _START_ 至 _END_ 項結果,共 _TOTAL_ 項",
|
||||
"infoEmpty": "顯示第 0 至 0 項結果,共 0 項",
|
||||
"infoFiltered": "(從 _MAX_ 項結果中過濾)",
|
||||
"infoPostFix": "",
|
||||
"search": "搜尋:",
|
||||
"paginate": {
|
||||
"first": "第一頁",
|
||||
"previous": "上一頁",
|
||||
"next": "下一頁",
|
||||
"last": "最後一頁"
|
||||
},
|
||||
"aria": {
|
||||
"sortAscending": ": 升冪排列",
|
||||
"sortDescending": ": 降冪排列"
|
||||
}
|
||||
},
|
||||
'createdRow': function (row, data, dataIndex) {
|
||||
$(row).attr('data-id', data.id);
|
||||
},
|
||||
"ajax": {
|
||||
"url": "/PowerStation/DeviceTable",
|
||||
"type": "POST",
|
||||
"data": function (d) {
|
||||
d.stationId = stationId;
|
||||
},
|
||||
"dataSrc": function (rel) {
|
||||
if (rel.data.code == "9999") {
|
||||
toast_error(rel.data.msg);
|
||||
return;
|
||||
}
|
||||
|
||||
data = rel.data.data;
|
||||
|
||||
if (data == null || data.length == 0) {
|
||||
this.data = [];
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
//#region 電站資料 view 控制
|
||||
if (stationId == 'new') {
|
||||
@ -206,7 +291,7 @@
|
||||
$("#BoEPart").hide();
|
||||
$("#land_buildingPart").hide();
|
||||
|
||||
/*$("#tablist").hide();*/
|
||||
$("#tablist").hide();
|
||||
} else {
|
||||
var url = "/PowerStation/GetOnePowerStation"
|
||||
|
||||
@ -255,7 +340,25 @@
|
||||
$("#power_station_operation_personnel").val($("#power_station_operation_personnel option:first").val());
|
||||
});
|
||||
//#endregion
|
||||
|
||||
|
||||
|
||||
$('.js-example-basic-multiple').select2();
|
||||
|
||||
|
||||
var url_DeviceType = "/PowerStation/GetDeviceTypeSelectOptionList";
|
||||
$.get(url_DeviceType, function (rel) {
|
||||
if (rel.code != "0000") {
|
||||
toast_error(rel.msg);
|
||||
return;
|
||||
}
|
||||
$("Device_Type_modal").empty();
|
||||
|
||||
$.each(rel.data, function (index, val) {
|
||||
$("#Device_Type_modal").append($("<option />").val(val.value).text(val.text));
|
||||
});
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
//#region 代管切換
|
||||
@ -655,7 +758,46 @@
|
||||
|
||||
});
|
||||
//#endregion
|
||||
//#region 新增裝置資料
|
||||
function AddDevice() {
|
||||
$("#Device-modal .modal-title").html("裝置資料 - 新增");
|
||||
$("#Device-form").trigger("reset");
|
||||
$("#Device-modal").modal();
|
||||
}
|
||||
//#endregion
|
||||
|
||||
//#region 儲存裝置資料
|
||||
function SaveDevice() {
|
||||
|
||||
if ($("#Device-form").valid()) {
|
||||
var url = "/PowerStation/SaveDevice";
|
||||
var send_data = {
|
||||
Id: selected_id,
|
||||
PowerStationId: stationId,
|
||||
Name: $("#Device_Name_modal").val(),
|
||||
Type: $("#Device_Type_modal").val(),
|
||||
Brand: $("#Device_Brand_modal").val(),
|
||||
ProductModel: $("#Device_ProductModel_modal").val(),
|
||||
DBName: $("#Device_DBName_modal").val(),
|
||||
TableName: $("#Device_TableName_modal").val(),
|
||||
ColName: $("#Device_ColName_modal").val(),
|
||||
Remark: $("#Device_Remark_modal").val(),
|
||||
}
|
||||
$.post(url, send_data, function (rel) {
|
||||
if (rel.code != "0000") {
|
||||
toast_error(rel.msg);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
toast_ok(rel.msg);
|
||||
$('#Device-modal').modal('hide');
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
}, 'json');
|
||||
}
|
||||
}
|
||||
//#endregion
|
||||
</script>
|
||||
}
|
||||
@ -1,13 +1,12 @@
|
||||
<div class="row mb-5">
|
||||
<div class="col-6"><h3>裝置設定</h3></div>
|
||||
<div class="col-6 text-right">
|
||||
<button type="button" class="btn btn-success waves-effect waves-themed mb-3">
|
||||
<span class="fal fa-plus mr-1"></span>
|
||||
新增
|
||||
</button>
|
||||
<a href="javascript:;" class="btn btn-success waves-effect waves-themed mb-3" id="addDevice-btn" onclick="AddDevice()">
|
||||
<span class="fal fa-plus mr-1"></span>新增
|
||||
</a>
|
||||
</div>
|
||||
<div class="w-100">
|
||||
<table class="table table-bordered table-hover m-0 text-center">
|
||||
<table id="Device_table" class="table table-bordered table-hover m-0 text-center">
|
||||
<thead class="thead-themed">
|
||||
<tr>
|
||||
<th>設備ID</th>
|
||||
@ -70,3 +69,70 @@
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="Device-modal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">
|
||||
裝置資料 - 新增
|
||||
</h4>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true"><i class="fal fa-times"></i></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="Device-form" id="Device-form">
|
||||
|
||||
<div class="row">
|
||||
<div class="form-group col-lg-6">
|
||||
<label class="form-label" for="Device_Name_modal"><span class="text-danger">*</span>裝置名稱</label>
|
||||
<input type="text" id="Device_Name_modal" name="Device_Name_modal" class="form-control">
|
||||
</div>
|
||||
<div class="form-group col-lg-6">
|
||||
<label class="form-label" for="Device_Type_modal"><span class="text-danger">*</span>裝置類型</label>
|
||||
<select class="form-control" id="Device_Type_modal">
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-lg-6">
|
||||
<label class="form-label" for="Device_Brand_modal"><span class="text-danger">*</span>廠牌</label>
|
||||
<input type="text" id="Device_Brand_modal" name="Device_Brand_modal" class="form-control">
|
||||
</div>
|
||||
<div class="form-group col-lg-6">
|
||||
<label class="form-label" for="Device_ProductModel_modal"><span class="text-danger">*</span>型號</label>
|
||||
<input type="text" id="Device_ProductModel_modal" name="Device_ProductModel_modal" class="form-control">
|
||||
</div>
|
||||
<div class="form-group col-lg-6">
|
||||
<div style="margin-bottom: 0.3rem">
|
||||
<label class="form-label" for="Device_DBName_modal"><span class="text-danger">*</span>DBName</label>
|
||||
<input type="text" id="Device_DBName_modal" name="Device_DBName_modal" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-lg-6">
|
||||
<div style="margin-bottom: 0.3rem">
|
||||
<label class="form-label" for="Device_TableName_modal"><span class="text-danger">*</span>tableName</label>
|
||||
<input type="text" id="Device_TableName_modal" name="Device_TableName_modal" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-lg-6">
|
||||
<div style="margin-bottom: 0.3rem">
|
||||
<label class="form-label" for="Device_ColName_modal"><span class="text-danger">*</span>columnName</label>
|
||||
<input type="text" id="Device_ColName_modal" name="Device_ColName_modal" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-lg-6">
|
||||
<div style="margin-bottom: 0.3rem">
|
||||
<label class="form-label" for="Device_Remark_modal"><span class="text-danger">*</span>備註</label>
|
||||
<input type="text" id="Device_Remark_modal" name="Device_Remark_modal" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
|
||||
<button type="button" class="btn btn-primary" onclick="SaveDevice()">確定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Loading…
Reference in New Issue
Block a user