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

681 lines
37 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-header">
<div class="layui-tab layui-tab-brief" lay-filter="roomfish-tab">
<ul class="layui-tab-title">
<li class="layui-this" lay-id="normal">出鱼配置</li>
</ul>
<div class="layui-tab-content" style="padding: 10px 0 0 0;">
<div class="layui-tab-item layui-show">
<table id="table-roomfish" lay-filter="table-roomfish"></table>
</div>
<div class="layui-tab-item">
<div class="layui-row">
<div class="layui-col-md3">
<div class="layui-card">
<div class="layui-card-header">游戏类型选择</div>
<div class="layui-card-body">
<div class="layui-btn-container" id="game-type-btns">
<button class="layui-btn layui-btn-sm layui-btn-primary" data-type="1">风雷之渊</button>
<button class="layui-btn layui-btn-sm" data-type="2">永夜尸城</button>
<button class="layui-btn layui-btn-sm" data-type="5">黑神话悟空</button>
</div>
</div>
</div>
</div>
<div class="layui-col-md9">
<table id="table-probability" lay-filter="table-probability"></table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/html" id="toolbar-roomfish">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-filter="init-roomfish"><i class="layui-icon layui-icon-refresh"></i> 初始化配置</button>
<button class="layui-btn layui-btn-sm" lay-filter="save-roomfish"><i class="layui-icon layui-icon-ok"></i> 保存配置</button>
<button class="layui-btn layui-btn-sm layui-btn-warm" lay-filter="reload-roomfish"><i class="layui-icon layui-icon-refresh"></i> 刷新</button>
<button class="layui-btn layui-btn-sm layui-btn-normal" onclick="saveSection('RoomFishConfigs')"><i class="layui-icon layui-icon-export"></i> 保存到初始化文件</button>
</div>
</script>
<script type="text/html" id="table-operate">
<a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
</script>
<script type="text/html" id="tpl-gameType">
{{# var typeMap = {1:'风雷之渊',2:'永夜尸城',3:'中国象棋',4:'星际迷航',5:'黑神话悟空'}; }}
{{= typeMap[d.gameType] || '未知(' + d.gameType + ')' }}
</script>
<script>
layui.use(['admin', 'table', 'form'], function () {
var $ = layui.$,
admin = layui.admin,
table = layui.table,
setter = layui.setter;
var gameConfig = null;
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);
function loadConfig() {
admin.req({
method: "get",
url: setter.baseurl + "adminapi/GameConfig",
done: function (res) {
if (res.code === 0 && res.data) {
gameConfig = res.data;
buildFishNameMap();
renderTable();
}
}
});
}
var fishNameMap = {};
var fishArrayNameMap = {};
function buildFishNameMap() {
if (!gameConfig) return;
fishNameMap = {};
fishArrayNameMap = {};
var fishConfigs = gameConfig.fishTypeConfigs || [];
fishConfigs.forEach(function(f) {
fishNameMap[f.fishNumber] = f.fishName || f.fishNumber;
});
var fishArrayConfigs = gameConfig.fishArrayConfigs || [];
fishArrayConfigs.forEach(function(f) {
fishArrayNameMap[f.fishArrayNumber] = f.name || f.fishArrayNumber;
});
}
function buildRoomLevelNameMap(gameType) {
var map = {};
if (!gameConfig) return map;
var roomConfigs = gameConfig.roomConfigs || [];
roomConfigs.forEach(function(r) {
if (r.gameType === gameType) {
map[r.roomLevel] = r.roomLevel + ' ' + r.roomName;
}
});
return map;
}
function getRoomLevelDisplay(roomLevel, gameType) {
var map = buildRoomLevelNameMap(gameType);
return map[roomLevel] || roomLevel.toString();
}
function getFishDisplayName(fishNumber, type) {
if (type === 2) {
var name = fishArrayNameMap[fishNumber] || fishNumber;
return name + ' (' + fishNumber + ')';
} else {
var name = fishNameMap[fishNumber] || fishNumber;
return name + ' (' + fishNumber + ')';
}
}
function saveConfig() {
admin.req({
method: "post",
contentType: "application/json;charset=UTF-8",
url: setter.baseurl + "adminapi/GameConfig/Update",
data: JSON.stringify(gameConfig),
done: function (res) {
if (res.code === 0 || res.code === 200) {
layer.msg('保存成功');
loadConfig();
} else {
layer.msg(res.info || '保存失败');
}
},
fail: function(res) {
layer.msg(res.info || '保存失败');
}
});
}
function initConfig() {
layer.confirm('确定要初始化全部配置数据吗?此操作将清空现有数据!', function(idx) {
layer.close(idx);
admin.req({
method: "get",
url: setter.baseurl + "adminapi/GameConfig/InitSection/RoomFishConfigs",
done: function (res) {
if (res.code === 0 || res.code === 200) {
layer.msg('初始化成功');
loadConfig();
} else {
layer.msg(res.info || '初始化失败');
}
},
fail: function(res) {
layer.msg(res.info || '初始化失败');
}
});
});
}
function renderTable() {
var data = (gameConfig ? gameConfig.roomFishConfigs : []) || [];
table.render({
elem: '#table-roomfish',
data: data,
cols: [[
{ type: 'checkbox', fixed: 'left' },
{ field: "gameType", title: "游戏类型", width: 150, templet: '#tpl-gameType' },
{ field: "normalFishList", title: "普通鱼配置", width: 120, templet: function(d) { return (d.normalFishList || []).length + ' 条'; } },
{ field: "roomFishLevelList", title: "等级配置", width: 120, templet: function(d) { return (d.roomFishLevelList || []).length + ' 条'; } },
{ title: "操作", width: 100, fixed: 'right', toolbar: '#table-operate' }
]],
toolbar: '#toolbar-roomfish',
defaultToolbar: ['filter', 'exports', 'print']
});
}
$(document).on('click', '[lay-filter="init-roomfish"]', function() {
if (window.parent && window.parent.$ && window.parent.layer) {
window.parent.$('.layui-layer-shade').remove();
window.parent.layer.closeAll();
}
initConfig();
});
$(document).on('click', '[lay-filter="reload-roomfish"]', function() {
loadConfig();
layer.msg('刷新成功');
});
$(document).on('click', '[lay-filter="save-roomfish"]', function() {
if (window.parent && window.parent.$ && window.parent.layer) {
window.parent.$('.layui-layer-shade').remove();
window.parent.layer.closeAll();
}
saveConfig();
});
table.on('tool(table-roomfish)', function(obj) {
var data = obj.data;
var trIndex = obj.tr.index();
if (trIndex < 0) trIndex = gameConfig.roomFishConfigs.findIndex(function(x) { return x.gameType === data.gameType; });
if (obj.event === 'edit') {
showEditDialog(data, trIndex);
}
});
function showEditDialog(data, itemIndex) {
var typeMap = {1:'风雷之渊',2:'永夜尸城',3:'中国象棋',4:'星际迷航',5:'黑神话悟空'};
var gameTypeName = typeMap[data.gameType] || '未知';
var html = '<div style="padding:15px;">' +
'<div style="margin-bottom:10px;">' +
'<span style="font-weight:bold;font-size:14px;">游戏类型:</span>' +
'<span style="color:#1e88e5;">' + gameTypeName + '</span>' +
'</div>' +
'<div class="layui-tab layui-tab-brief" lay-filter="fish-config-tab">' +
'<ul class="layui-tab-title">' +
'<li class="layui-this" lay-id="normal">普通鱼配置 (' + ((data.normalFishList || []).length) + '条)</li>' +
'<li lay-id="level1">初级房间配置 (' + ((data.roomFishLevelList || []).filter(function(x){return x.roomLevel===1;}).length) + '条)</li>' +
'<li lay-id="level2">中级房间配置 (' + ((data.roomFishLevelList || []).filter(function(x){return x.roomLevel===2;}).length) + '条)</li>' +
'<li lay-id="level3">高级房间配置 (' + ((data.roomFishLevelList || []).filter(function(x){return x.roomLevel===3;}).length) + '条)</li>' +
'</ul>' +
'<div class="layui-tab-content" style="padding:10px 0 0 0;">' +
'<div class="layui-tab-item layui-show">' +
'<div style="margin-bottom:10px;">' +
'<button type="button" class="layui-btn layui-btn-sm" id="add-normal-fish-btn"><i class="layui-icon layui-icon-add-1"></i> 添加</button>' +
'<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="del-normal-fish-btn"><i class="layui-icon layui-icon-delete"></i> 批量删除</button>' +
'</div>' +
'<table id="table-normal-detail" lay-filter="table-normal-detail"></table>' +
'</div>' +
'<div class="layui-tab-item">' +
'<div style="margin-bottom:10px;">' +
'<button type="button" class="layui-btn layui-btn-sm" id="add-level1-fish-btn"><i class="layui-icon layui-icon-add-1"></i> 添加</button>' +
'<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="del-level1-fish-btn"><i class="layui-icon layui-icon-delete"></i> 批量删除</button>' +
'</div>' +
'<table id="table-level1-detail" lay-filter="table-level1-detail"></table>' +
'</div>' +
'<div class="layui-tab-item">' +
'<div style="margin-bottom:10px;">' +
'<button type="button" class="layui-btn layui-btn-sm" id="add-level2-fish-btn"><i class="layui-icon layui-icon-add-1"></i> 添加</button>' +
'<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="del-level2-fish-btn"><i class="layui-icon layui-icon-delete"></i> 批量删除</button>' +
'</div>' +
'<table id="table-level2-detail" lay-filter="table-level2-detail"></table>' +
'</div>' +
'<div class="layui-tab-item">' +
'<div style="margin-bottom:10px;">' +
'<button type="button" class="layui-btn layui-btn-sm" id="add-level3-fish-btn"><i class="layui-icon layui-icon-add-1"></i> 添加</button>' +
'<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="del-level3-fish-btn"><i class="layui-icon layui-icon-delete"></i> 批量删除</button>' +
'</div>' +
'<table id="table-level3-detail" lay-filter="table-level3-detail"></table>' +
'</div>' +
'</div>' +
'</div>' +
'</div>';
layer.open({
type: 1,
title: '编辑出鱼配置 - ' + gameTypeName,
area: ['1000px', '600px'],
content: html,
btn: ['保存', '取消'],
shadeClose: true,
success: function(layero) {
layui.element.init();
var normalTable = layui.table.render({
elem: '#table-normal-detail',
data: data.normalFishList || [],
cols: [[
{ type: 'checkbox', fixed: 'left' },
{ field: "type", title: "类型", width: 80, templet: function(d) { return d.type === 1 ? '鱼' : '鱼阵'; } },
{ field: "fishNumber", title: "鱼/鱼阵", minWidth: 180, templet: function(d) { return getFishDisplayName(d.fishNumber, d.type); } },
{ field: "fishWeight", title: "权重", width: 80 },
{ field: "fishFrequency", title: "频率(秒)", width: 100 },
{ field: "maxCount", title: "最大数量", width: 100 },
{ field: "times", title: "出场秒数", width: 100 },
{ title: "操作", width: 80, fixed: 'right', toolbar: '#table-normal-operate' }
]]
});
var level1Data = (data.roomFishLevelList || []).filter(function(x){return x.roomLevel===1;});
var level2Data = (data.roomFishLevelList || []).filter(function(x){return x.roomLevel===2;});
var level3Data = (data.roomFishLevelList || []).filter(function(x){return x.roomLevel===3;});
layui.table.render({
elem: '#table-level1-detail',
data: level1Data,
cols: [[
{ type: 'checkbox', fixed: 'left' },
{ field: "roomLevel", title: "房间等级", width: 120, templet: function(d) { return getRoomLevelDisplay(d.roomLevel, data.gameType); } },
{ field: "type", title: "类型", width: 80, templet: function(d) { return d.type === 1 ? '鱼' : '鱼阵'; } },
{ field: "fishNumber", title: "鱼/鱼阵", minWidth: 180, templet: function(d) { return getFishDisplayName(d.fishNumber, d.type); } },
{ field: "fishWeight", title: "权重", width: 80 },
{ field: "fishFrequency", title: "频率(秒)", width: 100 },
{ field: "maxCount", title: "最大数量", width: 100 },
{ field: "times", title: "出场秒数", width: 100 },
{ title: "操作", width: 80, fixed: 'right', toolbar: '#table-level-operate' }
]]
});
layui.table.render({
elem: '#table-level2-detail',
data: level2Data,
cols: [[
{ type: 'checkbox', fixed: 'left' },
{ field: "roomLevel", title: "房间等级", width: 120, templet: function(d) { return getRoomLevelDisplay(d.roomLevel, data.gameType); } },
{ field: "type", title: "类型", width: 80, templet: function(d) { return d.type === 1 ? '鱼' : '鱼阵'; } },
{ field: "fishNumber", title: "鱼/鱼阵", minWidth: 180, templet: function(d) { return getFishDisplayName(d.fishNumber, d.type); } },
{ field: "fishWeight", title: "权重", width: 80 },
{ field: "fishFrequency", title: "频率(秒)", width: 100 },
{ field: "maxCount", title: "最大数量", width: 100 },
{ field: "times", title: "出场秒数", width: 100 },
{ title: "操作", width: 80, fixed: 'right', toolbar: '#table-level-operate' }
]]
});
layui.table.render({
elem: '#table-level3-detail',
data: level3Data,
cols: [[
{ type: 'checkbox', fixed: 'left' },
{ field: "roomLevel", title: "房间等级", width: 120, templet: function(d) { return getRoomLevelDisplay(d.roomLevel, data.gameType); } },
{ field: "type", title: "类型", width: 80, templet: function(d) { return d.type === 1 ? '鱼' : '鱼阵'; } },
{ field: "fishNumber", title: "鱼/鱼阵", minWidth: 180, templet: function(d) { return getFishDisplayName(d.fishNumber, d.type); } },
{ field: "fishWeight", title: "权重", width: 80 },
{ field: "fishFrequency", title: "频率(秒)", width: 100 },
{ field: "maxCount", title: "最大数量", width: 100 },
{ field: "times", title: "出场秒数", width: 100 },
{ title: "操作", width: 80, fixed: 'right', toolbar: '#table-level-operate' }
]]
});
layui.table.on('tool(table-normal-detail)', function(obj) {
var d = obj.data;
var idx = obj.tr.index();
if (obj.event === 'edit') {
showFishEditDialog(d, 'normal', data, idx, function(updated) {
obj.update(updated);
});
}
});
layui.table.on('tool(table-level1-detail)', function(obj) {
var d = obj.data;
var idx = obj.tr.index();
if (obj.event === 'edit') {
showFishEditDialog(d, 'level', data, idx, 1, function(updated) {
obj.update(updated);
});
}
});
layui.table.on('tool(table-level2-detail)', function(obj) {
var d = obj.data;
var idx = obj.tr.index();
if (obj.event === 'edit') {
showFishEditDialog(d, 'level', data, idx, 2, function(updated) {
obj.update(updated);
});
}
});
layui.table.on('tool(table-level3-detail)', function(obj) {
var d = obj.data;
var idx = obj.tr.index();
if (obj.event === 'edit') {
showFishEditDialog(d, 'level', data, idx, 3, function(updated) {
obj.update(updated);
});
}
});
$('#add-normal-fish-btn').on('click', function() {
var newData = {type: 1, fishNumber: '', fishWeight: 0, fishFrequency: 5, maxCount: 1, times: 10};
showFishEditDialog(newData, 'normal', data, -1, function(updated) {
data.normalFishList = data.normalFishList || [];
data.normalFishList.unshift(updated);
layui.table.reload('table-normal-detail', { data: data.normalFishList });
$('.layui-tab-title li[lay-id="normal"]').text('普通鱼配置 (' + data.normalFishList.length + '条)');
});
});
$('#add-level1-fish-btn').on('click', function() {
var newData = {roomLevel: 1, type: 1, fishNumber: '', fishWeight: 0, fishFrequency: 5, maxCount: 1, times: 10};
showFishEditDialog(newData, 'level', data, -1, 1, function(updated) {
data.roomFishLevelList = data.roomFishLevelList || [];
data.roomFishLevelList.unshift(updated);
layui.table.reload('table-level1-detail', { data: (data.roomFishLevelList||[]).filter(function(x){return x.roomLevel===1;}) });
$('.layui-tab-title li[lay-id="level1"]').text('初级房间配置 (' + (data.roomFishLevelList||[]).filter(function(x){return x.roomLevel===1;}).length + '条)');
});
});
$('#add-level2-fish-btn').on('click', function() {
var newData = {roomLevel: 2, type: 1, fishNumber: '', fishWeight: 0, fishFrequency: 5, maxCount: 1, times: 10};
showFishEditDialog(newData, 'level', data, -1, 2, function(updated) {
data.roomFishLevelList = data.roomFishLevelList || [];
data.roomFishLevelList.unshift(updated);
layui.table.reload('table-level2-detail', { data: (data.roomFishLevelList||[]).filter(function(x){return x.roomLevel===2;}) });
$('.layui-tab-title li[lay-id="level2"]').text('中级房间配置 (' + (data.roomFishLevelList||[]).filter(function(x){return x.roomLevel===2;}).length + '条)');
});
});
$('#add-level3-fish-btn').on('click', function() {
var newData = {roomLevel: 3, type: 1, fishNumber: '', fishWeight: 0, fishFrequency: 5, maxCount: 1, times: 10};
showFishEditDialog(newData, 'level', data, -1, 3, function(updated) {
data.roomFishLevelList = data.roomFishLevelList || [];
data.roomFishLevelList.unshift(updated);
layui.table.reload('table-level3-detail', { data: (data.roomFishLevelList||[]).filter(function(x){return x.roomLevel===3;}) });
$('.layui-tab-title li[lay-id="level3"]').text('高级房间配置 (' + (data.roomFishLevelList||[]).filter(function(x){return x.roomLevel===3;}).length + '条)');
});
});
$('#del-normal-fish-btn').on('click', function() {
var checkStatus = layui.table.checkStatus('table-normal-detail');
var checkData = checkStatus.data;
if (checkData.length === 0) {
layer.msg('请选择要删除的数据');
return;
}
layer.confirm('确定删除选中的 ' + checkData.length + ' 条数据吗?', function(idx) {
var ids = checkData.map(function(item) { return item.fishNumber + '_' + item.type; });
data.normalFishList = (data.normalFishList || []).filter(function(item) {
return !ids.includes(item.fishNumber + '_' + item.type);
});
layui.table.reload('table-normal-detail', { data: data.normalFishList });
$('.layui-tab-title li[lay-id="normal"]').text('普通鱼配置 (' + data.normalFishList.length + '条)');
layer.close(idx);
});
});
$('#del-level1-fish-btn').on('click', function() {
var checkStatus = layui.table.checkStatus('table-level1-detail');
var checkData = checkStatus.data;
if (checkData.length === 0) {
layer.msg('请选择要删除的数据');
return;
}
layer.confirm('确定删除选中的 ' + checkData.length + ' 条数据吗?', function(idx) {
var ids = checkData.map(function(item) { return item.roomLevel + '_' + item.fishNumber + '_' + item.type; });
data.roomFishLevelList = (data.roomFishLevelList || []).filter(function(item) {
return !ids.includes(item.roomLevel + '_' + item.fishNumber + '_' + item.type);
});
layui.table.reload('table-level1-detail', { data: (data.roomFishLevelList||[]).filter(function(x){return x.roomLevel===1;}) });
$('.layui-tab-title li[lay-id="level1"]').text('初级房间配置 (' + (data.roomFishLevelList||[]).filter(function(x){return x.roomLevel===1;}).length + '条)');
layer.close(idx);
});
});
$('#del-level2-fish-btn').on('click', function() {
var checkStatus = layui.table.checkStatus('table-level2-detail');
var checkData = checkStatus.data;
if (checkData.length === 0) {
layer.msg('请选择要删除的数据');
return;
}
layer.confirm('确定删除选中的 ' + checkData.length + ' 条数据吗?', function(idx) {
var ids = checkData.map(function(item) { return item.roomLevel + '_' + item.fishNumber + '_' + item.type; });
data.roomFishLevelList = (data.roomFishLevelList || []).filter(function(item) {
return !ids.includes(item.roomLevel + '_' + item.fishNumber + '_' + item.type);
});
layui.table.reload('table-level2-detail', { data: (data.roomFishLevelList||[]).filter(function(x){return x.roomLevel===2;}) });
$('.layui-tab-title li[lay-id="level2"]').text('中级房间配置 (' + (data.roomFishLevelList||[]).filter(function(x){return x.roomLevel===2;}).length + '条)');
layer.close(idx);
});
});
$('#del-level3-fish-btn').on('click', function() {
var checkStatus = layui.table.checkStatus('table-level3-detail');
var checkData = checkStatus.data;
if (checkData.length === 0) {
layer.msg('请选择要删除的数据');
return;
}
layer.confirm('确定删除选中的 ' + checkData.length + ' 条数据吗?', function(idx) {
var ids = checkData.map(function(item) { return item.roomLevel + '_' + item.fishNumber + '_' + item.type; });
data.roomFishLevelList = (data.roomFishLevelList || []).filter(function(item) {
return !ids.includes(item.roomLevel + '_' + item.fishNumber + '_' + item.type);
});
layui.table.reload('table-level3-detail', { data: (data.roomFishLevelList||[]).filter(function(x){return x.roomLevel===3;}) });
$('.layui-tab-title li[lay-id="level3"]').text('高级房间配置 (' + (data.roomFishLevelList||[]).filter(function(x){return x.roomLevel===3;}).length + '条)');
layer.close(idx);
});
});
},
yes: function(idx, layero) {
if (itemIndex >= 0 && itemIndex < gameConfig.roomFishConfigs.length) {
gameConfig.roomFishConfigs[itemIndex] = data;
}
layer.close(idx);
renderTable();
}
});
}
function showFishEditDialog(data, type, configData, itemIndex, roomLevel, callback) {
// 兼容普通鱼调用(不传 roomLevel,callback 在第5位)
if (type !== 'level' && typeof roomLevel === 'function') {
callback = roomLevel;
roomLevel = undefined;
}
var isLevel = type === 'level';
var title = isLevel ? '编辑房间等级出鱼配置' : '编辑普通鱼出鱼配置';
var gameType = configData.gameType || data.gameType || 0;
var typeOptions = '<option value="1"' + (data.type === 1 ? ' selected' : '') + '>鱼</option>' +
'<option value="2"' + (data.type === 2 ? ' selected' : '') + '>鱼阵</option>';
var fishConfigs = gameConfig.fishTypeConfigs || [];
var fishArrayConfigs = gameConfig.fishArrayConfigs || [];
var roomConfigs = gameConfig.roomConfigs || [];
var roomLevelOptions = '<option value="">请选择</option>';
roomConfigs.forEach(function(r) {
if (r.gameType === gameType) {
roomLevelOptions += '<option value="' + r.roomLevel + '"' + (data.roomLevel === r.roomLevel ? ' selected' : '') + '>' + r.roomLevel + ' ' + r.roomName + '</option>';
}
});
var fishOptions = '<option value="">请选择</option>';
fishConfigs.forEach(function(f) {
fishOptions += '<option value="' + f.fishNumber + '"' + (data.fishNumber === f.fishNumber ? ' selected' : '') + '>' + (f.fishName || f.fishNumber) + ' (' + f.fishNumber + ')</option>';
});
var fishArrayOptions = '<option value="">请选择</option>';
fishArrayConfigs.forEach(function(f) {
fishArrayOptions += '<option value="' + f.fishArrayNumber + '"' + (data.fishNumber === f.fishArrayNumber ? ' selected' : '') + '>' + (f.name || f.fishArrayNumber) + ' (' + f.fishArrayNumber + ')</option>';
});
var html = '<div style="padding:15px 15px 5px 15px;">' +
'<form class="layui-form" style="margin:0;">' +
(isLevel ? '<div class="layui-form-item" style="margin-bottom:10px;">' +
'<label class="layui-form-label" style="width:80px;">房间等级</label>' +
'<div class="layui-input-inline" style="width:160px;">' +
'<select name="roomLevel" id="room-level-select" lay-search>' + roomLevelOptions + '</select>' +
'</div>' +
'</div>' : '') +
'<div class="layui-form-item" style="margin-bottom:10px;">' +
'<label class="layui-form-label" style="width:80px;">类型</label>' +
'<div class="layui-input-inline" style="width:100px;">' +
'<select name="type" id="fish-type-select" lay-filter="fish-type-select">' + typeOptions + '</select>' +
'</div>' +
'</div>' +
'<div class="layui-form-item" id="fish-select-item" style="margin-bottom:10px;">' +
'<label class="layui-form-label" style="width:80px;">选择鱼</label>' +
'<div class="layui-input-inline" style="width:280px;">' +
'<select name="fishSelect" id="fish-select" lay-filter="fish-select" lay-search>' + fishOptions + '</select>' +
'</div>' +
'</div>' +
'<div class="layui-form-item" id="fish-array-select-item" style="display:none;margin-bottom:10px;">' +
'<label class="layui-form-label" style="width:80px;">选择鱼阵</label>' +
'<div class="layui-input-inline" style="width:280px;">' +
'<select name="fishArraySelect" id="fish-array-select" lay-filter="fish-array-select" lay-search>' + fishArrayOptions + '</select>' +
'</div>' +
'</div>' +
'<input type="hidden" name="fishNumber" value="' + (data.fishNumber || '') + '">' +
'<div class="layui-form-item" style="margin-bottom:10px;">' +
'<label class="layui-form-label" style="width:80px;">权重</label>' +
'<div class="layui-input-inline" style="width:100px;">' +
'<input type="number" name="fishWeight" value="' + (data.fishWeight || 0) + '" class="layui-input">' +
'</div>' +
'<div class="layui-form-mid" style="color:#999;font-size:12px;">权重值越大,出鱼概率越高</div>' +
'</div>' +
'<div class="layui-form-item" style="margin-bottom:10px;">' +
'<label class="layui-form-label" style="width:80px;">频率(秒)</label>' +
'<div class="layui-input-inline" style="width:100px;">' +
'<input type="number" name="fishFrequency" value="' + (data.fishFrequency || 0) + '" class="layui-input">' +
'</div>' +
'<div class="layui-form-mid" style="color:#999;font-size:12px;">下次出鱼间隔时间</div>' +
'</div>' +
'<div class="layui-form-item" style="margin-bottom:10px;">' +
'<label class="layui-form-label" style="width:80px;">最大数量</label>' +
'<div class="layui-input-inline" style="width:100px;">' +
'<input type="number" name="maxCount" value="' + (data.maxCount || 0) + '" class="layui-input">' +
'</div>' +
'<div class="layui-form-mid" style="color:#999;font-size:12px;">屏幕中该鱼最大数量</div>' +
'</div>' +
'<div class="layui-form-item" style="margin-bottom:10px;">' +
'<label class="layui-form-label" style="width:80px;">出场秒数</label>' +
'<div class="layui-input-inline" style="width:100px;">' +
'<input type="number" name="times" value="' + (data.times || 0) + '" class="layui-input">' +
'</div>' +
'<div class="layui-form-mid" style="color:#999;font-size:12px;">出场时间(秒)</div>' +
'</div>' +
'</form>' +
'</div>';
layer.open({
type: 1,
title: title,
area: ['800px', '500px'],
content: html,
btn: ['保存', '取消'],
shadeClose: true,
success: function(layero) {
layui.form.render('select');
function updateFishSelect(type) {
if (type === 1) {
$('#fish-select-item', layero).show();
$('#fish-array-select-item', layero).hide();
} else {
$('#fish-select-item', layero).hide();
$('#fish-array-select-item', layero).show();
}
}
updateFishSelect(data.type);
layui.form.on('select(fish-type-select)', function(fdata) {
var t = parseInt(fdata.value);
updateFishSelect(t);
});
layui.form.on('select(fish-select)', function(fdata) {
$('input[name="fishNumber"]', layero).val(fdata.value);
});
layui.form.on('select(fish-array-select)', function(fdata) {
$('input[name="fishNumber"]', layero).val(fdata.value);
});
},
yes: function(index, layero) {
var updatedItem = {
type: parseInt(layero.find('select[name="type"]').val()) || 1,
fishNumber: layero.find('input[name="fishNumber"]').val(),
fishWeight: parseInt(layero.find('input[name="fishWeight"]').val()) || 0,
fishFrequency: parseInt(layero.find('input[name="fishFrequency"]').val()) || 0,
maxCount: parseInt(layero.find('input[name="maxCount"]').val()) || 0,
times: parseInt(layero.find('input[name="times"]').val()) || 0
};
if (isLevel) {
updatedItem.roomLevel = parseInt(layero.find('select[name="roomLevel"]').val()) || 0;
}
callback(updatedItem);
layer.close(index);
}
});
}
window.saveSection=function(n){layui.admin.req({method:'get',url:(layui.setter.baseurl||'/')+'adminapi/GameConfig/SaveSection/'+n,done:function(r){layui.layer.msg(r.info||(r.code===0?'保存成功':'保存失败'))}})}
loadConfig();
});
</script>
<script type="text/html" id="table-normal-operate">
<a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
</script>
<script type="text/html" id="table-level-operate">
<a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
</script>