column('id', 'ID')->sortable(); $grid->column('name', '名称'); $grid->column('code', '编码'); $grid->column('description', '描述')->limit(30); $grid->column('is_random', '随机发放')->switch(); $grid->column('random_count', '随机数量'); $grid->column('created_at', '创建时间'); $grid->column('updated_at', '更新时间'); $grid->filter(function (Grid\Filter $filter) { $filter->equal('id', 'ID'); $filter->like('name', '名称'); $filter->like('code', '编码'); $filter->equal('is_random', '随机发放')->select([0 => '否', 1 => '是']); }); // 使用 RowAction 类添加行操作按钮 $grid->actions(function (Grid\Displayers\Actions $actions) { // 添加复制按钮 $actions->append(new DuplicateRewardGroupAction()); }); }); } /** * 创建详情页 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new GameRewardGroupRepository(), function (Show $show) { $show->field('id', 'ID'); $show->field('name', '名称'); $show->field('code', '编码'); $show->field('description', '描述'); $show->field('is_random', '随机发放')->as(function ($value) { return $value ? '是' : '否'; }); $show->field('random_count', '随机数量'); $show->field('created_at', '创建时间'); $show->field('updated_at', '更新时间'); // 显示奖励项 $show->divider(); $show->field('奖励项')->unescape()->as(function () { $items = GameRewardItem::where('group_id', $this->getKey())->get(); if ($items->isEmpty()) { return '无奖励项'; } $headers = ['ID', '奖励类型', '目标ID', '参数1', '参数2', '数量', '权重', '必中']; $rows = []; foreach ($items as $item) { $rows[] = [ $item->id, REWARD_TYPE::getName($item->reward_type), $item->target_id, $item->param1, $item->param2, $item->quantity, $item->weight, $item->is_guaranteed ? '是' : '否' ]; } // 创建HTML表格 $html = '
| {$header} | "; } $html .= '
|---|
| {$cell} | "; } $html .= '