Files
BuYuHouDuan/AdminSrc/AdminHost/wwwroot/admin/dist/views/gameconfig/emptyroomrate.html
T

212 lines
9.2 KiB
HTML
Raw Normal View History

2026-10-12 16:22:04 +08:00
<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>