Pārlūkot izejas kodu

商店商品列表增加消耗组详情和奖励组详情列

- 在商店商品列表中新增'消耗组详情'和'奖励组详情'两列
- 使用GameConsumeGroup::formatConsumeDetails()格式化消耗组内容
- 使用GameRewardGroup::formatRewardDetails()格式化奖励组内容
- 预加载consumeItems和rewardItems关联数据以提高性能
- 设置列宽度为200px以适应详情内容显示
- 支持显示币种、物品、神像等多种类型的消耗和奖励
- 浏览器验证确认显示正常,格式清晰易读
notfff 7 mēneši atpakaļ
vecāks
revīzija
41e78416b6

+ 18 - 2
app/Module/Shop/AdminControllers/ShopItemController.php

@@ -33,8 +33,8 @@ class ShopItemController extends AdminController
     protected function grid()
     {
         return Grid::make(new ShopItemRepository(), function (Grid $grid) {
-            // 预加载关联数据
-            $grid->model()->with(['category', 'consumeGroup', 'rewardGroup']);
+            // 预加载关联数据,包括消耗组和奖励组的详细项目
+            $grid->model()->with(['category', 'consumeGroup.consumeItems', 'rewardGroup.rewardItems']);
 
             $grid->column('id', 'ID')->sortable();
             $grid->column('name', '商品名称');
@@ -68,6 +68,22 @@ class ShopItemController extends AdminController
                 return admin_url('game-reward-groups/' . $this->reward_group_id);
             });
 
+            // 消耗组详情列
+            $grid->column('consume_group_details', '消耗组详情')->display(function () {
+                if (!$this->consumeGroup) {
+                    return '<span class="text-muted">无消耗组</span>';
+                }
+                return $this->consumeGroup->formatConsumeDetails();
+            })->width('200px');
+
+            // 奖励组详情列
+            $grid->column('reward_group_details', '奖励组详情')->display(function () {
+                if (!$this->rewardGroup) {
+                    return '<span class="text-muted">无奖励组</span>';
+                }
+                return $this->rewardGroup->formatRewardDetails();
+            })->width('200px');
+
             $grid->column('max_buy', '购买限制')->display(function ($maxBuy) {
                 return $maxBuy > 0 ? $maxBuy : '无限制';
             });