fuc/resources/views/tabler/admin/giftcard.tpl
2025-02-23 13:30:57 +08:00

177 lines
7.1 KiB
Smarty
Executable File

{include file='admin/header.tpl'}
<div class="page-wrapper">
<div class="container-xl">
<div class="page-header d-print-none text-white">
<div class="row align-items-center">
<div class="col">
<h2 class="page-title">
<span class="home-title">礼品卡</span>
</h2>
<div class="page-pretitle my-3">
<span class="home-subtitle">
查看并管理礼品卡
</span>
</div>
</div>
<div class="col-auto">
<div class="btn-list">
<a href="#" class="btn btn-primary" data-bs-toggle="modal"
data-bs-target="#create-dialog">
<i class="icon ti ti-plus"></i>
创建
</a>
</div>
</div>
</div>
</div>
</div>
<div class="page-body">
<div class="container-xl">
<div class="row row-deck row-cards">
<div class="col-12">
<div class="card">
<div class="table-responsive">
<table id="data-table" class="table card-table table-vcenter text-nowrap datatable">
<thead>
<tr>
{foreach $details['field'] as $key => $value}
<th>{$value}</th>
{/foreach}
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal modal-blur fade" id="create-dialog" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">礼品卡内容</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
{foreach $details['create_dialog'] as $detail}
{if $detail['type'] === 'input'}
<div class="form-group mb-3 row">
<label class="form-label col-3 col-form-label">{$detail['info']}</label>
<div class="col">
<input id="{$detail['id']}" type="text" class="form-control"
placeholder="{$detail['placeholder']}">
</div>
</div>
{/if}
{if $detail['type'] === 'textarea'}
<div class="form-group mb-3 row">
<label class="form-label col-3 col-form-label">{$detail['info']}</label>
<textarea id="{$detail['id']}" class="col form-control" rows="{$detail['rows']}"
placeholder="{$detail['placeholder']}"></textarea>
</div>
{/if}
{if $detail['type'] === 'select'}
<div class="form-group mb-3 row">
<label class="form-label col-3 col-form-label">{$detail['info']}</label>
<div class="col">
<select id="{$detail['id']}" class="col form-select">
{foreach $detail['select'] as $key => $value}
<option value="{$key}">{$value}</option>
{/foreach}
</select>
</div>
</div>
{/if}
{/foreach}
</div>
<div class="modal-footer">
<button type="button" class="btn me-auto" data-bs-dismiss="modal">取消</button>
<button id="create-button" onclick="createGiftCard()"
type="button" class="btn btn-primary" data-bs-dismiss="modal">创建
</button>
</div>
</div>
</div>
</div>
{include file='datatable.tpl'}
<script>
tableConfig.ajax = {
url: '/admin/giftcard/ajax',
type: 'POST',
dataSrc: 'giftcards'
};
tableConfig.order = [
[1, 'desc']
];
tableConfig.columnDefs = [
{
targets: [0],
orderable: false
}
];
let table = new DataTable('#data-table', tableConfig);
function loadTable() {
table;
}
function createGiftCard() {
$.ajax({
url: '/admin/giftcard',
type: 'POST',
dataType: "json",
data: {
{foreach $details['create_dialog'] as $detail}
{$detail['id']}: $('#{$detail['id']}').val(),
{/foreach}
},
success: function (data) {
if (data.ret === 1) {
$('#success-message').text(data.msg);
$('#success-dialog').modal('show');
reloadTableAjax();
} else {
$('#fail-message').text(data.msg);
$('#fail-dialog').modal('show');
}
}
})
}
function deleteGiftCard(giftcard_id) {
$('#notice-message').text('确定删除此礼品卡?');
$('#notice-dialog').modal('show');
$('#notice-confirm').off('click').on('click', function () {
$.ajax({
url: "/admin/giftcard/" + giftcard_id,
type: 'DELETE',
dataType: "json",
success: function (data) {
if (data.ret === 1) {
$('#success-noreload-message').text(data.msg);
$('#success-noreload-dialog').modal('show');
reloadTableAjax();
} else {
$('#fail-message').text(data.msg);
$('#fail-dialog').modal('show');
}
}
})
});
}
function reloadTableAjax() {
table.ajax.reload(null, false);
}
loadTable();
</script>
{include file='admin/footer.tpl'}