ibms-dome/Backend/Views/Variable/Index.cshtml

374 lines
16 KiB
Plaintext

@{
ViewData["MainNum"] = "7";
ViewData["SubNum"] = "1";
ViewData["Title"] = "系統變數";
}
<ol class="breadcrumb page-breadcrumb">
<li class="breadcrumb-item"><a href="javascript:void(0);">系統變數管理</a></li>
<li class="breadcrumb-item active">系統變數</li>
<li class="position-absolute pos-top pos-right d-none d-sm-block"><span class="js-get-date"></span></li>
</ol>
<div class="row mb-5">
<div class="panel-toolbar ml-2">
<div class="d-flex position-relative ml-auto" style="max-width: 8rem;">
<div class="form-group">
<select class="form-control" id="select_system_type">
</select>
</div>
</div>
</div>
</div>
<div class="row mb-3">
<div class="col-12 d-flex justify-content-end">
<a href="javascript:;" class="btn btn-success waves-effect waves-themed mb-3" onclick="AddVariable()"><span class="fal fa-plus mr-1"></span>新增系統變數</a>
</div>
</div>
<div class="row">
<div class="col-12">
<!-- datatable start -->
<table id="variable_table" class="table table-bordered table-hover m-0 text-center">
<thead class="thead-themed">
<tr>
<th>ID</th>
<th>system_type</th>
<th>system_key</th>
<th>system_value</th>
<th>備註</th>
<th>順序</th>
<th>關聯父層ID</th>
<th>功能</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<!-- Modal 系統變數 -->
<div class="modal fade" id="variable-modal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog modal-dialog-centered modal" 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="variable-form" id="variable-form">
<div class="row">
<div class="form-group col-12">
<label class="form-label" for="variable_id_modal">ID</label>
<h6 id="variable_id"></h6>
</div>
<div class="form-group col-12">
<label class="form-label" for="variable_system_type_modal"><span class="text-danger">*</span>system_type</label>
<input type="text" id="variable_system_type_modal" class="form-control" name="variable_system_type_modal">
</div>
<div class="form-group col-12">
<label class="form-label" for="variable_system_key_modal"><span class="text-danger">*</span>system_key</label>
<input type="text" id="variable_system_key_modal" class="form-control" name="variable_system_key_modal">
</div>
<div class="form-group col-12">
<label class="form-label" for="variable_system_value_modal"><span class="text-danger">*</span>system_value</label>
<input type="text" id="variable_system_value_modal" class="form-control" name="variable_system_value_modal">
</div>
<div class="form-group col-12" hidden>
<label class="form-label" for="variable_picture_path">圖檔</label>
<input type="file" id="variable_picture_path" class="form-control" name="variable_picture_path" onchange="changeImage(this)">
</div>
<div class="form-group col-12">
<label class="form-label" for="variable_system_remark_modal">備註</label>
<textarea id="variable_system_remark_modal" class="form-control" name="variable_system_remark_modal"></textarea>
</div>
<div class="form-group col-12">
<label class="form-label" for="variable_system_priority_modal"><span class="text-danger">*</span>順序</label>
<input type="text" id="variable_system_priority_modal" class="form-control" name="variable_system_priority_modal">
</div>
<div class="form-group col-12">
<label class="form-label" for="variable_system_parent_id_modal"><span class="text-danger">*</span>關聯父層ID(無關聯,請填 0)</label>
<input type="text" id="variable_system_parent_id_modal" class="form-control" name="variable_system_parent_id_modal">
</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" id="save-variable-btn" onclick="SaveVariable()">確定</button>
</div>
</div>
</div>
</div>
<!-- /.系統變數 -->
@section Scripts {
<script>
var variableTable;
var variableFile = null;
$(function () {
GetSystemTypeList()
//#region 系統變數 DataTable
variableTable = $("#variable_table").DataTable({
"columns": [
{
"data": "id"
},
{
"data": "system_type"
},
{
"data": "system_key"
},
{
"data": "system_value"
},
{
"data": "system_remark"
},
{
"data": "system_priority"
},
{
"data": "system_parent_id"
},
{
"data": null,
"render": function (data, type, row, meta) {
var name = row.system_type == "logo" ? "pic_edit_btn" : "edit_btn ";
return `<button name="`+ name +`" class="btn btn-primary edit-btn">修改</button> <button class="btn btn-danger del-btn">刪除</button>`;
}
}
],
//"order": [[2, "desc"]],
'createdRow': function (row, data, dataIndex) {
$(row).attr('data-id', data.id);
},
"ajax": {
"url": "/Variable/VariableInfoList",
"type": "POST",
"data": function (d) {
d.SelectedSystemType = $('#select_system_type').val();
},
"dataSrc": function (rel) {
if (rel.code == "9999") {
toast_error(rel.msg);
return;
}
data = rel.data;
if (data == null || data.length == 0) {
this.data = [];
}
return data;
}
}
});
//#endregion
//#region 選擇system_type
$("#select_system_type").change(function () {
variableTable.ajax.reload();
});
//#endregion
//#region 編輯系統變數
$('#variable_table').on("click", "button.edit-btn", function () {
$("#variable-modal .modal-title").html("系統變數 - 編輯");
selected_id = $(this).parents('tr').attr('data-id');
name = $(this).prop('name');
//取得單一系統變數
var url = "/Variable/GetOneVariable/";
var send_data = {
id: selected_id
}
if (name == 'pic_edit_btn') {
$('#variable_picture_path').parent().attr('hidden', false);
$('#variable_system_type_modal').attr('disabled', true);
$('#variable_system_key_modal').attr('disabled', true);
$('#variable_system_value_modal').attr('disabled', true);
}
else {
$('#variable_picture_path').parent().attr('hidden', true);
$('#variable_system_type_modal').attr('disabled', false);
$('#variable_system_key_modal').attr('disabled', false);
$('#variable_system_value_modal').attr('disabled', false);
}
$.post(url, send_data, function (rel) {
if (rel.code != "0000") {
toast_error(rel.msg);
return;
}
$("#variable_id").html(rel.data.id);
$("#variable_system_type_modal").val(rel.data.system_type);
$("#variable_system_key_modal").val(rel.data.system_key);
$("#variable_system_value_modal").val(rel.data.system_value);
$("#variable_system_remark_modal").val(rel.data.system_remark);
$("#variable_system_priority_modal").val(rel.data.system_priority);
$("#variable_system_parent_id_modal").val(rel.data.system_parent_id);
$("#variable-modal").modal();
}, 'json');
});
//#endregion
//#region 刪除系統變數
$('#variable_table').on("click", "button.del-btn", function () {
selected_id = $(this).parents('tr').attr('data-id');
Swal.fire(
{
title: "刪除",
html: "你確定是否刪除此筆資料?<br>請確定該變數未被使用,否則可能導致系統錯誤。",
type: "warning",
icon: 'warning',
showCancelButton: true,
confirmButtonText: "是",
cancelButtonText: "否"
}).then(function (result) {
if (result.value) {
var url = "/Variable/DeleteOneVariable";
var send_data = {
id: selected_id
}
$.post(url, send_data, function (rel) {
if (rel.code != "0000") {
toast_error(rel.msg);
return;
}
toast_ok(rel.msg);
variableTable.ajax.reload();
}, 'json');
}
});
});
//#endregion
});
//#region 取得SystemType列表
function GetSystemTypeList() {
var url = "/Variable/SystemTypeList";
$.post(url, null, function (rel) {
$("#select_system_type").empty();
$('#select_system_type').append($("<option />").val("").text("全部"))
$.each(rel.data, function (index, val) {
$('#select_system_type').append($("<option />").val(val.value).text(val.name));
});
}, "json");
}
//#endregion
//#region 新增系統變數
function AddVariable() {
selected_id = "0";
VariableValidate.resetForm();
$("#variable-modal .modal-title").html("系統變數 - 新增");
$("#variable-form").trigger("reset");
$("#variable-modal").modal();
}
//#endregion
//#region 系統變數表單驗證
var VariableValidate = $("#variable-form").validate({
rules: {
variable_system_type_modal: {
required: true,
},
variable_system_key_modal: {
required: true,
},
variable_system_value_modal: {
required: true,
},
variable_system_priority_modal: {
required: true,
},
variable_system_parent_id_modal: {
required: true,
}
},
});
//#endregion
//#region 儲存系統變數
function SaveVariable() {
if ($("#variable-form").valid()) {
$("#save-variable-btn").html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>').attr("disabled", true);
var url = "/Variable/SaveVariable";
var formData = new FormData();
formData.append("Id", selected_id);
formData.append("System_type", $("#variable_system_type_modal").val());
formData.append("System_key", $("#variable_system_key_modal").val());
formData.append("system_value", $("#variable_system_value_modal").val());
formData.append("system_remark", $("#variable_system_remark_modal").val());
formData.append("system_priority", $("#variable_system_priority_modal").val());
formData.append("system_parent_id", $("#variable_system_parent_id_modal").val());
if (variableFile != null)
{
formData.append("file", variableFile);
formData.append("extName", variableFile.name.split('.')[1]);
}
$.ajax({
type: "POST",
url: url,
data: formData,
cache: false,
contentType: false,
processData: false,
success: function (rel) {
$("#save-variable-btn").html('確定').attr("disabled", false);
if (rel.code != "0000") {
if (rel.code == "9998") {
toast_warning(rel.msg);
return;
}
toast_error(rel.msg);
return;
}
toast_ok(rel.msg);
$('#variable-modal').modal('hide');
variableTable.ajax.reload();
variableFile = null;
GetSystemTypeList()
},
fail: function (xhr, status, error) {
$("#save-variable-btn").html('確定').attr("disabled", false);
}
});
}
}
//#endregion
//#region weblogo
function changeImage(input) {
$(`#variable_picture_path`).attr("data-src", window.URL.createObjectURL(input.files[0]));
variableFile = input.files[0];
console.log(variableFile);
$('#variable_system_key_modal').val(variableFile.name.split('.')[0]);
$('#variable_system_value_modal').val(variableFile.name);
}
//#endregion
</script>
}