212 lines
9.2 KiB
HTML
212 lines
9.2 KiB
HTML
<title>空房率配置</title>
|
||
|
||
<div class="layui-card layadmin-header">
|
||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||
<a lay-href="">主页</a>
|
||
<a><cite>游戏管理</cite></a>
|
||
<a><cite>空房率配置</cite></a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="layui-fluid">
|
||
<div class="layui-card">
|
||
<div class="layui-card-body" style="padding-top:10px;">
|
||
<table id="table-rate" lay-filter="table-rate"></table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script type="text/html" id="toolbar-rate">
|
||
<div class="layui-btn-container">
|
||
<button class="layui-btn layui-btn-sm" lay-filter="add-rate"><i class="layui-icon layui-icon-add-1"></i> 添加配置</button>
|
||
<button class="layui-btn layui-btn-sm layui-btn-warm" lay-filter="reload-rate"><i class="layui-icon layui-icon-refresh"></i> 刷新</button>
|
||
</div>
|
||
</script>
|
||
|
||
<script type="text/html" id="table-operate-rate">
|
||
<a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
|
||
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
|
||
</script>
|
||
|
||
<script>
|
||
layui.use(['admin', 'table', 'form'], function () {
|
||
var $ = layui.$,
|
||
admin = layui.admin,
|
||
table = layui.table,
|
||
form = layui.form,
|
||
layer = layui.layer,
|
||
setter = layui.setter;
|
||
|
||
// 页面加载时清理可能残留的遮罩
|
||
setTimeout(function() {
|
||
if (window.parent && window.parent.$ && window.parent.layer) {
|
||
window.parent.$('.layui-layer-shade').remove();
|
||
window.parent.layer.closeAll();
|
||
}
|
||
$('.layui-layer-shade').remove();
|
||
layer.closeAll();
|
||
}, 100);
|
||
|
||
var typeMap = {0:'无', 1:'风雷之渊', 2:'永夜尸城', 3:'中国象棋', 4:'星际迷航', 5:'黑神话悟空'};
|
||
|
||
function loadData() {
|
||
admin.req({
|
||
method: "get",
|
||
url: setter.baseurl + "adminapi/EmptyRoomRateConfig/list?page=1&size=100",
|
||
done: function (res) {
|
||
if (res.code === 0) {
|
||
table.reload('table-rate', { data: res.data || [] });
|
||
} else {
|
||
layer.msg(res.info || '加载失败');
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
table.render({
|
||
elem: '#table-rate',
|
||
data: [],
|
||
page: true,
|
||
limit: 20,
|
||
cols: [[
|
||
{ type: 'checkbox', fixed: 'left' },
|
||
{ field: "gameTypeName", title: "游戏类型", width: 130 },
|
||
{ field: "gameType", title: "游戏类型值", width: 100 },
|
||
{ field: "roomLevel", title: "房间等级", width: 100, templet: function(d) { return d.gameType === 3 ? '-' : d.roomLevel; } },
|
||
{ field: "emptyRoomRate", title: "空房率(%)", width: 120 },
|
||
{ title: "操作", width: 150, fixed: 'right', toolbar: '#table-operate-rate' }
|
||
]],
|
||
toolbar: '#toolbar-rate',
|
||
defaultToolbar: ['filter', 'exports', 'print']
|
||
});
|
||
|
||
$(document).on('click', '[lay-filter="add-rate"]', function () {
|
||
showEditDialog(null, true);
|
||
});
|
||
|
||
$(document).on('click', '[lay-filter="reload-rate"]', function () {
|
||
loadData();
|
||
layer.msg('刷新成功');
|
||
});
|
||
|
||
table.on('tool(table-rate)', function (obj) {
|
||
var data = obj.data;
|
||
if (obj.event === 'edit') {
|
||
showEditDialog(data, false);
|
||
} else if (obj.event === 'del') {
|
||
layer.confirm('确定删除「' + data.gameTypeName + ' Lv.' + data.roomLevel + '」的空房率配置吗?', function (idx) {
|
||
admin.req({
|
||
method: "post",
|
||
contentType: "application/json;charset=UTF-8",
|
||
url: setter.baseurl + "adminapi/EmptyRoomRateConfig/delete",
|
||
data: JSON.stringify({ id: data.id }),
|
||
done: function (res) {
|
||
if (res.code === 0) {
|
||
obj.del();
|
||
layer.msg('删除成功');
|
||
} else {
|
||
layer.msg(res.info || '删除失败');
|
||
}
|
||
}
|
||
});
|
||
layer.close(idx);
|
||
});
|
||
}
|
||
});
|
||
|
||
function showEditDialog(data, isAdd) {
|
||
var dialogTitle = isAdd ? '添加空房率配置' : '编辑空房率配置';
|
||
|
||
var typeHtml = '';
|
||
for (var key in typeMap) {
|
||
var val = parseInt(key);
|
||
typeHtml += '<option value="' + val + '"' + (data && data.gameType === val ? ' selected' : '') + '>' + typeMap[key] + '</option>';
|
||
}
|
||
|
||
var html = '<div style="padding:20px;">' +
|
||
'<form class="layui-form">' +
|
||
'<div class="layui-form-item">' +
|
||
'<label class="layui-form-label">游戏类型</label>' +
|
||
'<div class="layui-input-block">' +
|
||
'<select name="gameType"' + (isAdd ? '' : ' disabled') + '>' + typeHtml + '</select>' +
|
||
'</div>' +
|
||
'</div>' +
|
||
'<div class="layui-form-item">' +
|
||
'<label class="layui-form-label">房间等级</label>' +
|
||
'<div class="layui-input-block">' +
|
||
'<input type="number" name="roomLevel" value="' + (data ? data.roomLevel : 0) + '" class="layui-input"' + (isAdd ? '' : ' readonly') + '>' +
|
||
'</div>' +
|
||
'</div>' +
|
||
'<div class="layui-form-item">' +
|
||
'<label class="layui-form-label">空房率(%)</label>' +
|
||
'<div class="layui-input-block">' +
|
||
'<input type="number" name="emptyRoomRate" value="' + (data ? data.emptyRoomRate : 30) + '" class="layui-input" placeholder="0-100,0或负数=不启用">' +
|
||
'</div>' +
|
||
'</div>' +
|
||
'<div class="layui-form-item">' +
|
||
'<label class="layui-form-label"></label>' +
|
||
'<div class="layui-input-block" style="color:#999;font-size:12px;">空房率低于该值时暂停补充机器人;0或负数表示不启用</div>' +
|
||
'</div>' +
|
||
'</form>' +
|
||
'</div>';
|
||
|
||
layer.open({
|
||
type: 1,
|
||
title: dialogTitle,
|
||
area: ['480px', '360px'],
|
||
content: html,
|
||
btn: ['保存', '取消'],
|
||
shadeClose: true,
|
||
success: function (layero) {
|
||
form.render('select');
|
||
},
|
||
yes: function (index, layero) {
|
||
var gameType = parseInt(layero.find('select[name="gameType"]').val());
|
||
var roomLevel = parseInt(layero.find('input[name="roomLevel"]').val()) || 0;
|
||
if (gameType === 3) roomLevel = 0; // 象棋无房间等级
|
||
var emptyRoomRate = parseInt(layero.find('input[name="emptyRoomRate"]').val());
|
||
if (isNaN(emptyRoomRate)) {
|
||
layer.msg('请输入有效的空房率');
|
||
return;
|
||
}
|
||
if (!isAdd) {
|
||
admin.req({
|
||
method: "post",
|
||
contentType: "application/json;charset=UTF-8",
|
||
url: setter.baseurl + "adminapi/EmptyRoomRateConfig/update",
|
||
data: JSON.stringify({ id: data.id, emptyRoomRate: emptyRoomRate }),
|
||
done: function (res) {
|
||
if (res.code === 0) {
|
||
layer.close(index);
|
||
layer.msg('更新成功');
|
||
loadData();
|
||
} else {
|
||
layer.msg(res.info || '更新失败');
|
||
}
|
||
}
|
||
});
|
||
} else {
|
||
admin.req({
|
||
method: "post",
|
||
contentType: "application/json;charset=UTF-8",
|
||
url: setter.baseurl + "adminapi/EmptyRoomRateConfig/add",
|
||
data: JSON.stringify({ gameType: gameType, roomLevel: roomLevel, emptyRoomRate: emptyRoomRate }),
|
||
done: function (res) {
|
||
if (res.code === 0) {
|
||
layer.close(index);
|
||
layer.msg('添加成功');
|
||
loadData();
|
||
} else {
|
||
layer.msg(res.info || '添加失败');
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
loadData();
|
||
});
|
||
</script>
|