宝箱配置列表增加复制功能
任务描述
为宝箱配置列表页面增加RowAction复制按钮,实现宝箱配置的复制功能。
实现内容
1. 创建复制Action类
- 文件:
app/Module/GameItems/AdminControllers/Actions/DuplicateItemChestConfigAction.php
- 功能:
- 复制现有宝箱配置
- 自动查找可用的宝箱物品进行分配
- 复制的配置默认为未激活状态
- 复制成功后自动跳转到编辑页面
2. 修改控制器
- 文件:
app/Module/GameItems/AdminControllers/ItemChestConfigController.php
- 修改:在Grid的actions中添加复制按钮
3. 复制逻辑
- 查找未被使用的宝箱物品
- 复制原配置的所有属性(消耗组、奖励组、条件组等)
- 设置新配置为未激活状态
- 如果没有可用宝箱,显示错误提示
测试结果
- ✅ 复制按钮正确显示在每行操作列中
- ✅ 点击复制按钮显示确认对话框
- ✅ 复制功能正常工作,成功创建新配置
- ✅ 新配置使用可用的宝箱物品
- ✅ 新配置默认为未激活状态
- ✅ 复制后自动跳转到编辑页面
技术要点
- 数据库约束处理:每个宝箱物品只能有一个配置(唯一索引约束)
- 自动分配宝箱:查找未被使用的宝箱物品进行分配
- 用户体验:复制后自动跳转到编辑页面,方便用户修改配置
- 状态管理:复制的配置默认为未激活状态,避免意外生效
代码提交
- 提交信息:为宝箱配置列表增加复制功能
- 提交哈希:
ad6fbc48
- 文件变更:
- 新增:
app/Module/GameItems/AdminControllers/Actions/DuplicateItemChestConfigAction.php
- 修改:
app/Module/GameItems/AdminControllers/ItemChestConfigController.php
访问地址
http://kku_laravel.local.gd/admin/game-items-chest-configs