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

681 lines
37 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-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>