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>
|