Your Name 8 mesi fa
parent
commit
82e48ea1c4

+ 19 - 8
app/Module/GameItems/AdminControllers/CategoryController.php

@@ -11,6 +11,10 @@ use Dcat\Admin\Tree;
 use Dcat\Admin\Layout\Content;
 use Spatie\RouteAttributes\Attributes\Resource;
 use UCore\DcatAdmin\AdminController;
+use UCore\DcatAdmin\FilterHelper;
+use UCore\DcatAdmin\FormHelper;
+use UCore\DcatAdmin\GridHelper;
+use UCore\DcatAdmin\ShowHelper;
 
 #[Resource('game-items-categories', names: 'dcat.admin.game-items-categories')]
 class CategoryController extends AdminController
@@ -53,7 +57,8 @@ class CategoryController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemCategory());
+        return Grid::make(new ItemCategory(), function (Grid $grid) {
+            $helper = new GridHelper($grid, $this);
 
         $grid->column('id', 'ID')->sortable();
         $grid->column('name', '名称');
@@ -66,7 +71,8 @@ class CategoryController extends AdminController
 
         // 筛选
         $grid->filter(function ($filter) {
-            $filter->equal('id', 'ID');
+            $helper = new FilterHelper($filter, $this);
+            $helper->equal('id','ID');
             $filter->like('name', '名称');
             $filter->like('code', '编码');
             $filter->equal('parent_id', '父分类')->select(
@@ -74,7 +80,8 @@ class CategoryController extends AdminController
             );
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -85,9 +92,10 @@ class CategoryController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemCategory::findOrFail($id));
+        return Show::make($id, new ItemCategory(), function (Show $show) {
+            $helper = new ShowHelper($show, $this);
 
-        $show->field('id', 'ID');
+        $helper->field('id','ID');
         $show->field('name', '名称');
         $show->field('code', '编码');
         $show->field('icon', '图标')->image();
@@ -116,7 +124,8 @@ class CategoryController extends AdminController
             $items->rarity('稀有度');
         });
 
-        return $show;
+            return $show;
+        });
     }
 
     /**
@@ -126,7 +135,8 @@ class CategoryController extends AdminController
      */
     protected function form()
     {
-        $form = new Form(new ItemCategory());
+        return Form::make(new ItemCategory(), function (Form $form) {
+            $helper = new FormHelper($form, $this);
 
         $form->text('name', '名称')->required();
         $form->text('code', '编码')->required()->help('用于系统识别的唯一编码');
@@ -164,7 +174,8 @@ class CategoryController extends AdminController
             })
             ->default(0);
 
-        return $form;
+            return $form;
+        });
     }
 
     /**

+ 19 - 8
app/Module/GameItems/AdminControllers/ChestContentController.php

@@ -10,6 +10,10 @@ use Dcat\Admin\Grid;
 use Dcat\Admin\Show;
 use UCore\DcatAdmin\AdminController;
 use Spatie\RouteAttributes\Attributes\Resource;
+use UCore\DcatAdmin\FilterHelper;
+use UCore\DcatAdmin\FormHelper;
+use UCore\DcatAdmin\GridHelper;
+use UCore\DcatAdmin\ShowHelper;
 
 #[Resource('game-items-chest-contents', names: 'dcat.admin.game-items-chest-contents')]
 class ChestContentController extends AdminController
@@ -28,7 +32,8 @@ class ChestContentController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemChestContent());
+        return Grid::make(new ItemChestContent(), function (Grid $grid) {
+            $helper = new GridHelper($grid, $this);
 
         $grid->column('id', 'ID')->sortable();
         $grid->column('chest.name', '宝箱名称');
@@ -45,7 +50,8 @@ class ChestContentController extends AdminController
 
         // 筛选
         $grid->filter(function ($filter) {
-            $filter->equal('id', 'ID');
+            $helper = new FilterHelper($filter, $this);
+            $helper->equal('id','ID');
             $filter->equal('chest_id', '宝箱')->select(
                 ItemItem::where('type', ITEM_TYPE::OPENABLE)->pluck('name', 'id')
             );
@@ -57,7 +63,8 @@ class ChestContentController extends AdminController
             );
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -68,9 +75,10 @@ class ChestContentController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemChestContent::findOrFail($id));
+        return Show::make($id, new ItemChestContent(), function (Show $show) {
+            $helper = new ShowHelper($show, $this);
 
-        $show->field('id', 'ID');
+        $helper->field('id','ID');
         $show->field('chest.name', '宝箱名称');
         $show->field('item.name', '物品名称');
         $show->field('group.name', '物品组名称');
@@ -85,7 +93,8 @@ class ChestContentController extends AdminController
         $show->field('created_at', '创建时间');
         $show->field('updated_at', '更新时间');
 
-        return $show;
+            return $show;
+        });
     }
 
     /**
@@ -95,7 +104,8 @@ class ChestContentController extends AdminController
      */
     protected function form()
     {
-        $form = new Form(new ItemChestContent());
+        return Form::make(new ItemChestContent(), function (Form $form) {
+            $helper = new FormHelper($form, $this);
 
         $form->select('chest_id', '宝箱')
             ->options(ItemItem::where('type', ITEM_TYPE::OPENABLE)->pluck('name', 'id'))
@@ -153,6 +163,7 @@ class ChestContentController extends AdminController
             }
         });
 
-        return $form;
+            return $form;
+        });
     }
 }

+ 98 - 94
app/Module/GameItems/AdminControllers/ChestOpenLogController.php

@@ -13,6 +13,7 @@ use Spatie\RouteAttributes\Attributes\Resource;
 #[Resource('game-items-chest-open-logs', names: 'dcat.admin.game-items-chest-open-logs')]
 class ChestOpenLogController extends AdminController
 {
+
     /**
      * 标题
      *
@@ -34,47 +35,48 @@ class ChestOpenLogController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemChestOpenLog());
-
-        // 禁用创建、编辑和删除按钮
-        $grid->disableCreateButton();
-        $grid->disableActions();
-        $grid->disableBatchDelete();
-        $grid->disableDeleteButton();
-        $grid->disableEditButton();
-
-        // 只保留详情按钮
-        $grid->actions(function (Grid\Displayers\Actions $actions) {
-            $actions->disableDelete();
-            $actions->disableEdit();
-            $actions->disableQuickEdit();
-        });
-
-        $grid->column('id', 'ID')->sortable();
-        $grid->column('user_id', '用户ID');
-        $grid->column('chest.name', '宝箱名称');
-        $grid->column('quantity', '开启数量');
-        $grid->column('pity_triggered', '触发保底')->switch();
-        $grid->column('pity_content_id', '保底内容ID');
-        $grid->column('open_time', '开启时间')->sortable();
-        $grid->column('ip_address', 'IP地址');
-        $grid->column('created_at', '创建时间');
-
-        // 筛选
-        $grid->filter(function ($filter) {
-            $filter->equal('id', 'ID');
-            $filter->equal('user_id', '用户ID');
-            $filter->equal('chest_id', '宝箱')->select(
-                ItemItem::where('type', 5)->pluck('name', 'id')
-            );
-            $filter->equal('pity_triggered', '触发保底')->radio([
-                1 => '是',
-                0 => '否',
-            ]);
-            $filter->between('open_time', '开启时间')->datetime();
+        return Grid::make(new ItemChestOpenLog(), function (Grid $grid) {
+
+            // 禁用创建、编辑和删除按钮
+            $grid->disableCreateButton();
+            $grid->disableActions();
+            $grid->disableBatchDelete();
+            $grid->disableDeleteButton();
+            $grid->disableEditButton();
+
+            // 只保留详情按钮
+            $grid->actions(function (Grid\Displayers\Actions $actions) {
+                $actions->disableDelete();
+                $actions->disableEdit();
+                $actions->disableQuickEdit();
+            });
+
+            $grid->column('id', 'ID')->sortable();
+            $grid->column('user_id', '用户ID');
+            $grid->column('chest.name', '宝箱名称');
+            $grid->column('quantity', '开启数量');
+            $grid->column('pity_triggered', '触发保底')->switch();
+            $grid->column('pity_content_id', '保底内容ID');
+            $grid->column('open_time', '开启时间')->sortable();
+            $grid->column('ip_address', 'IP地址');
+            $grid->column('created_at', '创建时间');
+
+            // 筛选
+            $grid->filter(function ($filter) {
+                $filter->equal('id', 'ID');
+                $filter->equal('user_id', '用户ID');
+                $filter->equal('chest_id', '宝箱')->select(
+                    ItemItem::where('type', 5)->pluck('name', 'id')
+                );
+                $filter->equal('pity_triggered', '触发保底')->radio([
+                                                                        1 => '是',
+                                                                        0 => '否',
+                                                                    ]);
+                $filter->between('open_time', '开启时间')->datetime();
+            });
+
+            return $grid;
         });
-
-        return $grid;
     }
 
     /**
@@ -100,67 +102,69 @@ class ChestOpenLogController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemChestOpenLog::findOrFail($id));
+        return Show::make($id, new ItemChestOpenLog(), function (Show $show) {
+
+            // 禁用编辑和删除按钮
+            $show->panel()->tools(function ($tools) {
+                $tools->disableEdit();
+                $tools->disableDelete();
+            });
+
+            $show->field('id', 'ID');
+            $show->field('user_id', '用户ID');
+            $show->field('chest.name', '宝箱名称');
+            $show->field('quantity', '开启数量');
+            $show->field('pity_triggered', '触发保底')->as(function ($value) {
+                return $value ? '是' : '否';
+            });
+            $show->field('pity_content_id', '保底内容ID');
+
+            // 显示开箱结果
+            $show->field('results', '开箱结果')->as(function ($results) {
+                if (empty($results)) {
+                    return '无';
+                }
 
-        // 禁用编辑和删除按钮
-        $show->panel()->tools(function ($tools) {
-            $tools->disableEdit();
-            $tools->disableDelete();
-        });
+                if (is_string($results)) {
+                    $results = json_decode($results, true);
+                }
 
-        $show->field('id', 'ID');
-        $show->field('user_id', '用户ID');
-        $show->field('chest.name', '宝箱名称');
-        $show->field('quantity', '开启数量');
-        $show->field('pity_triggered', '触发保底')->as(function ($value) {
-            return $value ? '是' : '否';
-        });
-        $show->field('pity_content_id', '保底内容ID');
-
-        // 显示开箱结果
-        $show->field('results', '开箱结果')->as(function ($results) {
-            if (empty($results)) {
-                return '无';
-            }
-
-            if (is_string($results)) {
-                $results = json_decode($results, true);
-            }
-
-            if (is_array($results)) {
-                $html = '';
-
-                foreach ($results as $index => $chestResult) {
-                    $html .= '<h4>第' . ($index + 1) . '次开箱</h4>';
-                    $html .= '<table class="table table-bordered">';
-                    $html .= '<thead><tr><th>物品ID</th><th>数量</th><th>是否保底</th></tr></thead>';
-                    $html .= '<tbody>';
-
-                    foreach ($chestResult as $item) {
-                        $itemInfo = ItemItem::find($item['item_id']);
-                        $itemName = $itemInfo ? $itemInfo->name : '未知物品';
-
-                        $html .= '<tr>';
-                        $html .= '<td>' . $item['item_id'] . ' (' . $itemName . ')</td>';
-                        $html .= '<td>' . $item['quantity'] . '</td>';
-                        $html .= '<td>' . (isset($item['is_pity']) && $item['is_pity'] ? '是' : '否') . '</td>';
-                        $html .= '</tr>';
+                if (is_array($results)) {
+                    $html = '';
+
+                    foreach ($results as $index => $chestResult) {
+                        $html .= '<h4>第' . ($index + 1) . '次开箱</h4>';
+                        $html .= '<table class="table table-bordered">';
+                        $html .= '<thead><tr><th>物品ID</th><th>数量</th><th>是否保底</th></tr></thead>';
+                        $html .= '<tbody>';
+
+                        foreach ($chestResult as $item) {
+                            $itemInfo = ItemItem::find($item['item_id']);
+                            $itemName = $itemInfo ? $itemInfo->name : '未知物品';
+
+                            $html .= '<tr>';
+                            $html .= '<td>' . $item['item_id'] . ' (' . $itemName . ')</td>';
+                            $html .= '<td>' . $item['quantity'] . '</td>';
+                            $html .= '<td>' . (isset($item['is_pity']) && $item['is_pity'] ? '是' : '否') . '</td>';
+                            $html .= '</tr>';
+                        }
+
+                        $html .= '</tbody></table>';
                     }
 
-                    $html .= '</tbody></table>';
+                    return $html;
                 }
 
-                return $html;
-            }
+                return $results;
+            })->unescape();
 
-            return $results;
-        })->unescape();
+            $show->field('open_time', '开启时间');
+            $show->field('ip_address', 'IP地址');
+            $show->field('device_info', '设备信息');
+            $show->field('created_at', '创建时间');
 
-        $show->field('open_time', '开启时间');
-        $show->field('ip_address', 'IP地址');
-        $show->field('device_info', '设备信息');
-        $show->field('created_at', '创建时间');
-
-        return $show;
+            return $show;
+        });
     }
+
 }

+ 6 - 4
app/Module/GameItems/AdminControllers/CraftLogController.php

@@ -34,7 +34,7 @@ class CraftLogController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemCraftLog());
+        return Grid::make(new ItemCraftLog(), function (Grid $grid) {
 
         // 禁用创建、编辑和删除按钮
         $grid->disableCreateButton();
@@ -78,7 +78,8 @@ class CraftLogController extends AdminController
             $filter->between('craft_time', '合成时间')->datetime();
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -104,7 +105,7 @@ class CraftLogController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemCraftLog::findOrFail($id));
+        return Show::make($id, new ItemCraftLog(), function (Show $show) {
 
         // 禁用编辑和删除按钮
         $show->panel()->tools(function ($tools) {
@@ -161,6 +162,7 @@ class CraftLogController extends AdminController
         $show->field('device_info', '设备信息');
         $show->field('created_at', '创建时间');
 
-        return $show;
+            return $show;
+        });
     }
 }

+ 6 - 4
app/Module/GameItems/AdminControllers/DismantleLogController.php

@@ -35,7 +35,7 @@ class DismantleLogController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemDismantleLog());
+        return Grid::make(new ItemDismantleLog(), function (Grid $grid) {
 
         // 禁用创建、编辑和删除按钮
         $grid->disableCreateButton();
@@ -76,7 +76,8 @@ class DismantleLogController extends AdminController
             $filter->between('dismantle_time', '分解时间')->datetime();
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -102,7 +103,7 @@ class DismantleLogController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemDismantleLog::findOrFail($id));
+        return Show::make($id, new ItemDismantleLog(), function (Show $show) {
 
         // 禁用编辑和删除按钮
         $show->panel()->tools(function ($tools) {
@@ -157,6 +158,7 @@ class DismantleLogController extends AdminController
         $show->field('device_info', '设备信息');
         $show->field('created_at', '创建时间');
 
-        return $show;
+            return $show;
+        });
     }
 }

+ 9 - 6
app/Module/GameItems/AdminControllers/DismantleRuleController.php

@@ -28,7 +28,7 @@ class DismantleRuleController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemDismantleRule());
+        return Grid::make(new ItemDismantleRule(), function (Grid $grid) {
 
         $grid->column('id', 'ID')->sortable();
         $grid->column('rule_type', '规则类型')->display(function () {
@@ -78,7 +78,8 @@ class DismantleRuleController extends AdminController
             ]);
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -104,7 +105,7 @@ class DismantleRuleController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemDismantleRule::findOrFail($id));
+        return Show::make($id, new ItemDismantleRule(), function (Show $show) {
 
         $show->field('id', 'ID');
 
@@ -158,7 +159,8 @@ class DismantleRuleController extends AdminController
             return $html;
         })->unescape();
 
-        return $show;
+            return $show;
+        });
     }
 
     /**
@@ -197,7 +199,7 @@ class DismantleRuleController extends AdminController
      */
     protected function form()
     {
-        $form = new Form(new ItemDismantleRule());
+        return Form::make(new ItemDismantleRule(), function (Form $form) {
 
         // 规则类型
         $form->radio('rule_type', '规则类型')
@@ -253,6 +255,7 @@ class DismantleRuleController extends AdminController
             }
         });
 
-        return $form;
+            return $form;
+        });
     }
 }

+ 9 - 6
app/Module/GameItems/AdminControllers/GroupController.php

@@ -26,7 +26,7 @@ class GroupController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemGroup());
+        return Grid::make(new ItemGroup(), function (Grid $grid) {
 
         $grid->column('id', 'ID')->sortable();
         $grid->column('name', '名称');
@@ -42,7 +42,8 @@ class GroupController extends AdminController
             $filter->like('code', '编码');
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -53,7 +54,7 @@ class GroupController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemGroup::findOrFail($id));
+        return Show::make($id, new ItemGroup(), function (Show $show) {
 
         $show->field('id', 'ID');
         $show->field('name', '名称');
@@ -70,7 +71,8 @@ class GroupController extends AdminController
             $groupItems->weight('权重');
         });
 
-        return $show;
+            return $show;
+        });
     }
 
     /**
@@ -80,7 +82,7 @@ class GroupController extends AdminController
      */
     protected function form()
     {
-        $form = new Form(new ItemGroup());
+        return Form::make(new ItemGroup(), function (Form $form) {
 
         $form->text('name', '名称')->required();
         $form->text('code', '编码')->required()->help('用于系统识别的唯一编码');
@@ -99,6 +101,7 @@ class GroupController extends AdminController
                 ->help('权重越高,随机选择时概率越大');
         });
 
-        return $form;
+            return $form;
+        });
     }
 }

+ 9 - 6
app/Module/GameItems/AdminControllers/GroupItemController.php

@@ -28,7 +28,7 @@ class GroupItemController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemGroupItem());
+        return Grid::make(new ItemGroupItem(), function (Grid $grid) {
 
         $grid->column('id', 'ID')->sortable();
         $grid->column('group.name', '物品组');
@@ -48,7 +48,8 @@ class GroupItemController extends AdminController
             );
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -59,7 +60,7 @@ class GroupItemController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemGroupItem::findOrFail($id));
+        return Show::make($id, new ItemGroupItem(), function (Show $show) {
 
         $show->field('id', 'ID');
         $show->field('group.name', '物品组');
@@ -68,7 +69,8 @@ class GroupItemController extends AdminController
         $show->field('created_at', '创建时间');
         $show->field('updated_at', '更新时间');
 
-        return $show;
+            return $show;
+        });
     }
 
     /**
@@ -78,7 +80,7 @@ class GroupItemController extends AdminController
      */
     protected function form()
     {
-        $form = new Form(new ItemGroupItem());
+        return Form::make(new ItemGroupItem(), function (Form $form) {
 
         $form->select('group_id', '物品组')
             ->options(ItemGroup::pluck('name', 'id'))
@@ -93,6 +95,7 @@ class GroupItemController extends AdminController
             ->required()
             ->help('权重越高,随机选择时概率越大');
 
-        return $form;
+            return $form;
+        });
     }
 }

+ 19 - 8
app/Module/GameItems/AdminControllers/InstanceController.php

@@ -9,6 +9,10 @@ use Dcat\Admin\Show;
 use UCore\DcatAdmin\AdminController;
 use Dcat\Admin\Layout\Content;
 use Spatie\RouteAttributes\Attributes\Resource;
+use UCore\DcatAdmin\FilterHelper;
+use UCore\DcatAdmin\FormHelper;
+use UCore\DcatAdmin\GridHelper;
+use UCore\DcatAdmin\ShowHelper;
 
 #[Resource('game-items-instances', names: 'dcat.admin.game-items-instances')]
 class InstanceController extends AdminController
@@ -27,7 +31,8 @@ class InstanceController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemInstance());
+        return Grid::make(new ItemInstance(), function (Grid $grid) {
+            $helper = new GridHelper($grid, $this);
 
         $grid->column('id', 'ID')->sortable();
         $grid->column('item.name', '基础物品');
@@ -42,7 +47,8 @@ class InstanceController extends AdminController
 
         // 筛选
         $grid->filter(function ($filter) {
-            $filter->equal('id', 'ID');
+            $helper = new FilterHelper($filter, $this);
+            $helper->equal('id','ID');
             $filter->equal('item_id', '基础物品')->select(
                 ItemItem::where('is_unique', 1)->pluck('name', 'id')
             );
@@ -60,7 +66,8 @@ class InstanceController extends AdminController
             $filter->between('expire_at', '过期时间')->datetime();
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -86,9 +93,10 @@ class InstanceController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemInstance::findOrFail($id));
+        return Show::make($id, new ItemInstance(), function (Show $show) {
+            $helper = new ShowHelper($show, $this);
 
-        $show->field('id', 'ID');
+        $helper->field('id','ID');
         $show->field('item.name', '基础物品');
         $show->field('name', '实例名称');
 
@@ -174,7 +182,8 @@ class InstanceController extends AdminController
             $users->created_at('获得时间');
         });
 
-        return $show;
+            return $show;
+        });
     }
 
     /**
@@ -213,7 +222,8 @@ class InstanceController extends AdminController
      */
     protected function form()
     {
-        $form = new Form(new ItemInstance());
+        return Form::make(new ItemInstance(), function (Form $form) {
+            $helper = new FormHelper($form, $this);
 
         $form->select('item_id', '基础物品')
             ->options(ItemItem::where('is_unique', 1)->pluck('name', 'id'))
@@ -260,6 +270,7 @@ class InstanceController extends AdminController
             }
         });
 
-        return $form;
+            return $form;
+        });
     }
 }

+ 9 - 6
app/Module/GameItems/AdminControllers/OutputLimitController.php

@@ -28,7 +28,7 @@ class OutputLimitController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemOutputLimit());
+        return Grid::make(new ItemOutputLimit(), function (Grid $grid) {
 
         $grid->column('id', 'ID')->sortable();
         $grid->column('item.name', '物品名称');
@@ -83,7 +83,8 @@ class OutputLimitController extends AdminController
             ]);
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -109,7 +110,7 @@ class OutputLimitController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemOutputLimit::findOrFail($id));
+        return Show::make($id, new ItemOutputLimit(), function (Show $show) {
 
         $show->field('id', 'ID');
         $show->field('item.name', '物品名称');
@@ -147,7 +148,8 @@ class OutputLimitController extends AdminController
         $show->field('created_at', '创建时间');
         $show->field('updated_at', '更新时间');
 
-        return $show;
+            return $show;
+        });
     }
 
     /**
@@ -186,7 +188,7 @@ class OutputLimitController extends AdminController
      */
     protected function form()
     {
-        $form = new Form(new ItemOutputLimit());
+        return Form::make(new ItemOutputLimit(), function (Form $form) {
 
         $form->select('item_id', '物品')
             ->options(ItemItem::pluck('name', 'id'))
@@ -231,6 +233,7 @@ class OutputLimitController extends AdminController
         $form->switch('is_active', '是否启用')
             ->default(true);
 
-        return $form;
+            return $form;
+        });
     }
 }

+ 15 - 6
app/Module/GameItems/AdminControllers/PityTimeController.php

@@ -10,6 +10,10 @@ use Dcat\Admin\Show;
 use UCore\DcatAdmin\AdminController;
 use Dcat\Admin\Layout\Content;
 use Spatie\RouteAttributes\Attributes\Resource;
+use UCore\DcatAdmin\FilterHelper;
+use UCore\DcatAdmin\FormHelper;
+use UCore\DcatAdmin\GridHelper;
+use UCore\DcatAdmin\ShowHelper;
 
 #[Resource('game-items-pity-times', names: 'dcat.admin.game-items-pity-times')]
 class PityTimeController extends AdminController
@@ -35,7 +39,8 @@ class PityTimeController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemPityTime());
+        return Grid::make(new ItemPityTime(), function (Grid $grid) {
+            $helper = new GridHelper($grid, $this);
 
         // 禁用创建、编辑和删除按钮
         $grid->disableCreateButton();
@@ -61,7 +66,8 @@ class PityTimeController extends AdminController
 
         // 筛选
         $grid->filter(function ($filter) {
-            $filter->equal('id', 'ID');
+            $helper = new FilterHelper($filter, $this);
+            $helper->equal('id','ID');
             $filter->equal('user_id', '用户ID');
             $filter->equal('chest_id', '宝箱')->select(
                 ItemItem::where('type', 5)->pluck('name', 'id')
@@ -70,7 +76,8 @@ class PityTimeController extends AdminController
             $filter->between('current_count', '当前计数');
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -96,7 +103,8 @@ class PityTimeController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemPityTime::findOrFail($id));
+        return Show::make($id, new ItemPityTime(), function (Show $show) {
+            $helper = new ShowHelper($show, $this);
 
         // 禁用编辑和删除按钮
         $show->panel()->tools(function ($tools) {
@@ -104,7 +112,7 @@ class PityTimeController extends AdminController
             $tools->disableDelete();
         });
 
-        $show->field('id', 'ID');
+        $helper->field('id','ID');
         $show->field('user_id', '用户ID');
         $show->field('chest.name', '宝箱名称');
 
@@ -130,6 +138,7 @@ class PityTimeController extends AdminController
         $show->field('created_at', '创建时间');
         $show->field('updated_at', '更新时间');
 
-        return $show;
+            return $show;
+        });
     }
 }

+ 9 - 6
app/Module/GameItems/AdminControllers/RecipeController.php

@@ -28,7 +28,7 @@ class RecipeController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemRecipe());
+        return Grid::make(new ItemRecipe(), function (Grid $grid) {
 
         $grid->column('id', 'ID')->sortable();
         $grid->column('name', '配方名称');
@@ -77,7 +77,8 @@ class RecipeController extends AdminController
             ]);
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -103,7 +104,7 @@ class RecipeController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemRecipe::findOrFail($id));
+        return Show::make($id, new ItemRecipe(), function (Show $show) {
 
         $show->field('id', 'ID');
         $show->field('name', '配方名称');
@@ -184,7 +185,8 @@ class RecipeController extends AdminController
             return $html;
         })->unescape();
 
-        return $show;
+            return $show;
+        });
     }
 
     /**
@@ -223,7 +225,7 @@ class RecipeController extends AdminController
      */
     protected function form()
     {
-        $form = new Form(new ItemRecipe());
+        return Form::make(new ItemRecipe(), function (Form $form) {
 
         $form->text('name', '配方名称')->required();
         $form->select('result_item_id', '产出物品')
@@ -268,6 +270,7 @@ class RecipeController extends AdminController
                 ->help('合成时是否消耗该材料,否则只需要拥有但不会减少');
         });
 
-        return $form;
+            return $form;
+        });
     }
 }

+ 0 - 15
app/Module/GameItems/AdminControllers/TestController.php

@@ -1,15 +0,0 @@
-<?php
-
-namespace App\Module\GameItems\AdminControllers;
-
-use UCore\DcatAdmin\AdminController;
-use Illuminate\Routing\Controller;
-use Illuminate\Support\Facades\Log;
-use Spatie\RouteAttributes\Attributes\Get;
-use Spatie\RouteAttributes\Attributes\Prefix;
-
-#[Prefix('game-items-test')]
-class TestController extends AdminController
-{
-
-}

+ 6 - 4
app/Module/GameItems/AdminControllers/TransactionLogController.php

@@ -34,7 +34,7 @@ class TransactionLogController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemTransactionLog());
+        return Grid::make(new ItemTransactionLog(), function (Grid $grid) {
 
         // 禁用创建、编辑和删除按钮
         $grid->disableCreateButton();
@@ -78,7 +78,8 @@ class TransactionLogController extends AdminController
             $filter->between('created_at', '创建时间')->datetime();
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -104,7 +105,7 @@ class TransactionLogController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemTransactionLog::findOrFail($id));
+        return Show::make($id, new ItemTransactionLog(), function (Show $show) {
 
         // 禁用编辑和删除按钮
         $show->panel()->tools(function ($tools) {
@@ -159,6 +160,7 @@ class TransactionLogController extends AdminController
         $show->field('created_at', '创建时间');
         $show->field('updated_at', '更新时间');
 
-        return $show;
+            return $show;
+        });
     }
 }

+ 9 - 6
app/Module/GameItems/AdminControllers/UserItemController.php

@@ -29,7 +29,7 @@ class UserItemController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemUser());
+        return Grid::make(new ItemUser(), function (Grid $grid) {
 
         $grid->column('id', 'ID')->sortable();
         $grid->column('user_id', '用户ID');
@@ -52,7 +52,8 @@ class UserItemController extends AdminController
             $filter->between('expire_at', '过期时间')->datetime();
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -78,7 +79,7 @@ class UserItemController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemUser::findOrFail($id));
+        return Show::make($id, new ItemUser(), function (Show $show) {
 
         $show->field('id', 'ID');
         $show->field('user_id', '用户ID');
@@ -182,7 +183,8 @@ class UserItemController extends AdminController
         $show->field('created_at', '创建时间');
         $show->field('updated_at', '更新时间');
 
-        return $show;
+            return $show;
+        });
     }
 
     /**
@@ -221,7 +223,7 @@ class UserItemController extends AdminController
      */
     protected function form()
     {
-        $form = new Form(new ItemUser());
+        return Form::make(new ItemUser(), function (Form $form) {
 
         $form->text('user_id', '用户ID')
             ->required()
@@ -270,6 +272,7 @@ class UserItemController extends AdminController
             }
         });
 
-        return $form;
+            return $form;
+        });
     }
 }

+ 6 - 4
app/Module/GameItems/AdminControllers/UserOutputCounterController.php

@@ -34,7 +34,7 @@ class UserOutputCounterController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemUserOutputCounter());
+        return Grid::make(new ItemUserOutputCounter(), function (Grid $grid) {
 
         // 禁用创建、编辑和删除按钮
         $grid->disableCreateButton();
@@ -69,7 +69,8 @@ class UserOutputCounterController extends AdminController
             $filter->between('last_reset_time', '上次重置时间')->datetime();
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -95,7 +96,7 @@ class UserOutputCounterController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemUserOutputCounter::findOrFail($id));
+        return Show::make($id, new ItemUserOutputCounter(), function (Show $show) {
 
         // 禁用编辑和删除按钮
         $show->panel()->tools(function ($tools) {
@@ -137,6 +138,7 @@ class UserOutputCounterController extends AdminController
         $show->field('created_at', '创建时间');
         $show->field('updated_at', '更新时间');
 
-        return $show;
+            return $show;
+        });
     }
 }

+ 6 - 4
app/Module/GameItems/AdminControllers/UserRecipeController.php

@@ -35,7 +35,7 @@ class UserRecipeController extends AdminController
      */
     protected function grid()
     {
-        $grid = new Grid(new ItemUserRecipe());
+        return Grid::make(new ItemUserRecipe(), function (Grid $grid) {
 
         // 禁用创建、编辑和删除按钮
         $grid->disableCreateButton();
@@ -77,7 +77,8 @@ class UserRecipeController extends AdminController
             $filter->between('last_craft_time', '上次合成时间')->datetime();
         });
 
-        return $grid;
+            return $grid;
+        });
     }
 
     /**
@@ -103,7 +104,7 @@ class UserRecipeController extends AdminController
      */
     protected function detail($id)
     {
-        $show = new Show(ItemUserRecipe::findOrFail($id));
+        return Show::make($id, new ItemUserRecipe(), function (Show $show) {
 
         // 禁用编辑和删除按钮
         $show->panel()->tools(function ($tools) {
@@ -152,6 +153,7 @@ class UserRecipeController extends AdminController
         $show->field('created_at', '创建时间');
         $show->field('updated_at', '更新时间');
 
-        return $show;
+            return $show;
+        });
     }
 }