Ai_Admin/templates/redemption_card.html
2024-06-05 05:10:50 +08:00

191 lines
8.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="layui-row">
<div class="layui-col-md4">
<button class="layui-btn layui-btn-sm" id="addRedemptionCard">增加</button>
<button class="layui-btn layui-btn-danger layui-btn-sm" id="batchDeleteRedemptionCard">批量删除</button>
</div>
</div>
<table id="redemptionCardTable" lay-filter="redemptionCardTable">
</table>
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete">删除</a>
</script>
<script>
layui.use(['table', 'layer',['form']], function(){
var table = layui.table;
var layer = layui.layer;
var form = layui.form;
// 渲染表格
table.render({
elem: '#redemptionCardTable',
url: '/admin/redemption-cards/', // 数据接口URL
page: true, // 开启分页
limit: 10, // 每页显示的条数
method: 'post', // 使用POST请求
where: { // 这里传入的是额外的请求参数LayUI会将这些参数合并到请求数据中
action: 'fetch', // 指定操作类型
},
contentType: 'application/json', // 设置发送请求的内容类型为JSON
cols: [[
{type: 'checkbox', fixed: 'left'},
{field: 'code', title: '卡密', sort: true},
{field: 'card_type', title: '卡类型', templet: function(d){
return d.card_type === 'member' ? '会员卡' : '额度卡';
}},
{field: 'created_date', title: '生成日期', sort: true, templet: function(d){
return layui.util.toDateString(d.created_date, 'yyyy-MM-dd HH:mm:ss');
}},
{field: 'expiry_date', title: '到期时间', sort: true, templet: function(d){
return layui.util.toDateString(d.expiry_date, 'yyyy-MM-dd HH:mm:ss');
}},
{field: 'is_used', title: '是否已使用', templet: function(d) { return d.is_used ? '是' : '否'; }},
{field: 'validity_period', title: '额度'},
{field: 'used_by_openid', title: '使用者OpenID'},
{title: '操作', toolbar: '#barDemo'}
]]
});
// 监听工具条
// 监听工具条
table.on('tool(redemptionCardTable)', function(obj){
var data = obj.data; // 获得当前行数据
if(obj.event === 'edit'){
// 编辑操作
console.log('编辑卡密', data);
// 打开编辑窗口的代码...
} else if(obj.event === 'delete'){
// 删除操作
layer.confirm('真的删除行么', function(index){
axios.post('/admin/redemption-cards/', JSON.stringify({action: 'delete', id: data.id}), {
headers: {'Content-Type': 'application/json'}
}).then(function(response){
if(response.data.status === 'success'){
layer.msg('删除成功', {icon: 1});
layui.table.reload('redemptionCardTable'); // 重新加载表格
} else {
layer.msg('删除失败', {icon: 2});
}
}).catch(function(error){
layer.msg('删除过程中出错', {icon: 2});
console.error('删除失败', error);
});
layer.close(index); // 关闭确认弹窗
// 向服务端发送删除指令的代码...
});
}
});
// 监听添加卡密按钮点击事件
document.getElementById('addRedemptionCard').onclick = function() {
layer.open({
type: 1,
title: '添加卡密管理',
area: ['500px', '400px'],
content: '<form class="layui-form" lay-filter="addRedemptionCardForm">' +
'<div class="layui-form-item">' +
'<label class="layui-form-label">卡密前缀</label>' +
'<div class="layui-input-inline">' +
'<input style="display: none" type="text" name="action" value="add">' +
'<input type="text" name="code_prefix" lay-verify="required" placeholder="请输入卡密前缀" autocomplete="off" class="layui-input">' +
'</div>' +
'</div>' +
'<div class="layui-form-item">' +
'<label class="layui-form-label">卡类型</label>' +
'<div class="layui-input-inline">' +
'<select name="card_type" lay-verify="required">' +
'<option value="">请选择卡类型</option>' +
'<option value="member">会员卡</option>' +
'<option value="quota">额度卡</option>' +
'</select>' +
'</div>' +
'</div>' +
'<div class="layui-form-item">' +
'<label class="layui-form-label">数量</label>' +
'<div class="layui-input-inline">' +
'<input type="number" name="quantity" lay-verify="required" placeholder="请输入数量" autocomplete="off" class="layui-input">' +
'</div>' +
'</div>' +
'<div class="layui-form-item">' +
'<label class="layui-form-label">有效期</label>' +
'<div class="layui-input-inline">' +
'<input type="date" name="expiry_date" lay-verify="required" placeholder="请选择有效期" autocomplete="off" class="layui-input">' +
'</div>' +
'</div>' +
'<div class="layui-form-item">' +
'<label class="layui-form-label">额度</label>' +
'<div class="layui-input-inline">' +
'<input type="text" name="validity_period" lay-verify="required" placeholder="额度" autocomplete="off" class="layui-input">' +
'</div>' +
'</div>' +
'<div class="layui-form-item">' +
'<div class="layui-input-block">' +
'<button class="layui-btn" lay-submit lay-filter="addRedemptionCard">添加</button>' +
'</div>' +
'</div>' +
'</form>',
success: function(layero, index) {
form.render();
layui.form.on('submit(addRedemptionCard)', function(data){
axios.post('/admin/redemption-cards/', JSON.stringify(data.field), {
headers: {'Content-Type': 'application/json'}
}).then(function(response){
if(response.data.status === 'success'){
layer.msg('操作成功', {icon: 1, time: 1000}, function(){
layer.close(index); // 关闭弹窗
layui.table.reload('redemptionCardTable'); // 重新加载表格
});
} else {
// 操作失败
layer.msg(response.data.message, {icon: 2});
layer.close(index); // 关闭弹窗
}
}).catch(function(error){
layer.msg('服务器出错了', {icon: 2});
console.error('操作失败', error);
});
return false; // 阻止表单跳转。
});
}
});
};
// 监听批量删除按钮点击事件
document.getElementById('batchDeleteRedemptionCard').onclick = function() {
var checkStatus = table.checkStatus('redemptionCardTable');
var selectedData = checkStatus.data;
var ids = selectedData.map(function(item) {
return item.id;
});
if (selectedData.length === 0) {
layer.msg('请选择要删除的卡密', {icon: 5});
} else {
layer.confirm('确认删除选中的卡密吗?', function(index){
// 发送批量删除请求...
axios.post('/admin/redemption-cards/', JSON.stringify({ids: ids,action:'batch_delete'}), {
headers: {'Content-Type': 'application/json'}
}).then(function(response){
if(response.data.status === 'success'){
layer.msg('批量删除成功', {icon: 1});
layui.table.reload('redemptionCardTable'); // 重新加载表格
} else {
layer.msg('批量删除失败', {icon: 2});
}
}).catch(function(error){
console.error('批量删除失败', error);
});
});
}
};
});
</script>