0607-1845-优化后台物品分解规则和合成配方管理列表显示.md 4.0 KB

优化后台物品分解规则和合成配方管理列表显示

任务时间

  • 开始时间:2025年06月07日 18:45
  • 完成时间:2025年06月07日 18:45

任务描述

优化后台物品分解规则管理和合成配方管理的列表显示,使消耗组、奖励组、条件组不仅显示名字,还要显示内容,并且可点击跳转,参考宝箱配置列表的实现方式。

实现内容

1. 模型优化

ItemDismantleRuleItemRecipe 模型添加格式化方法:

ItemDismantleRule.php

  • 添加 formatConsumeDetails() 方法:格式化消耗组详情用于显示
  • 添加 formatRewardDetails() 方法:格式化奖励组详情用于显示
  • 添加 formatConditionDetails() 方法:格式化条件组详情用于显示

ItemRecipe.php

  • 添加 formatConsumeDetails() 方法:格式化消耗组详情用于显示
  • 添加 formatRewardDetails() 方法:格式化奖励组详情用于显示
  • 添加 formatConditionDetails() 方法:格式化条件组详情用于显示

2. 控制器优化

DismantleRuleController.php

  • grid() 方法中添加关联查询预加载:with(['item', 'category', 'consumeGroup.consumeItems', 'rewardGroup.rewardItems', 'conditionGroup.conditionItems'])
  • 优化消耗组、奖励组、条件组列显示:
    • 显示组名称,可点击跳转到对应管理页面
    • 添加详情列显示具体的消耗、奖励和条件内容
    • 设置合适的列宽度(200px)

RecipeController.php

  • grid() 方法中添加关联查询预加载:with(['consumeGroup.consumeItems', 'rewardGroup.rewardItems', 'conditionGroup.conditionItems'])
  • 优化消耗组、奖励组、条件组列显示:
    • 显示组名称,可点击跳转到对应管理页面
    • 添加详情列显示具体的消耗、奖励和条件内容
    • 设置合适的列宽度(200px)

3. 显示效果

物品分解规则管理列表

  • 消耗组列:显示组名称,可点击跳转到消耗组管理页面
  • 奖励组列:显示组名称,可点击跳转到奖励组管理页面
  • 条件组列:显示组名称,可点击跳转到条件组管理页面
  • 详情列:显示具体的消耗、奖励和条件内容,格式清晰易读

合成配方管理列表

  • 消耗组列:显示组名称,可点击跳转到消耗组管理页面
  • 奖励组列:显示组名称,可点击跳转到奖励组管理页面
  • 条件组列:显示组名称,可点击跳转到条件组管理页面
  • 详情列:显示具体的消耗、奖励和条件内容,包括:
    • 物品消耗:物品 铜矿石 × 2
    • 币种消耗:币种(CURRENCY) 金币 × 5
    • 物品奖励:物品 铜锭 × 1 (权重: 1.00, 必中)

4. 参考实现

完全参考宝箱配置列表的实现方式,确保:

  • 显示风格一致
  • 点击功能正常
  • 详情内容格式统一
  • 用户体验良好

技术要点

  1. 关联查询优化:使用 with() 预加载关联数据,避免N+1查询问题
  2. 格式化方法:在模型中添加专门的格式化方法,保持代码整洁
  3. 链接跳转:使用 link() 方法实现可点击的组名称跳转
  4. 详情显示:调用模型的格式化方法显示详细内容
  5. 列宽控制:设置合适的列宽度确保显示效果

测试验证

  • ✅ 物品分解规则管理列表显示正常
  • ✅ 合成配方管理列表显示正常
  • ✅ 消耗组、奖励组、条件组名称可点击跳转
  • ✅ 详情列显示具体内容格式正确
  • ✅ 参考宝箱配置列表实现风格一致

提交信息

优化后台物品分解规则和合成配方管理列表显示

- 为ItemDismantleRule和ItemRecipe模型添加格式化方法
- 优化DismantleRuleController和RecipeController的grid显示
- 添加消耗组、奖励组、条件组的名称显示和点击跳转功能
- 添加消耗组、奖励组、条件组的详情内容显示
- 参考宝箱配置列表的实现方式,提升用户体验

任务状态

✅ 已完成