Files
BuYuHouDuan/AdminSrc/AdminHost/wwwroot/admin/dist/views/gameconfig/emptyroomrate.html
T
2026-10-12 16:22:04 +08:00

212 lines
9.2 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.
<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>