disableCreateButton(); $grid->disableActions(); $grid->disableBatchDelete(); $grid->disableDeleteButton(); $grid->disableEditButton(); // 只保留详情按钮 $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableDelete(); $actions->disableEdit(); $actions->disableQuickEdit(); }); $helper->columnId(); $grid->column('user_id', '用户ID'); $grid->column('recipe.name', '配方名称'); $grid->column('is_success', '是否成功')->switch(); $grid->column('resultItem.name', '产出物品'); $grid->column('result_instance_id', '产出实例ID'); $grid->column('result_quantity', '产出数量'); $grid->column('craft_time', '合成时间')->sortable(); $grid->column('ip_address', 'IP地址'); $grid->column('created_at', '创建时间'); // 筛选 $grid->filter(function ($filter) { $helper = new FilterHelper($filter, $this); $helper->equal('id', 'ID'); $helper->equal('user_id', '用户ID'); $filter->equal('recipe_id', '配方')->select( (new ItemRecipeRepository())->pluck('name', 'id') ); $filter->equal('is_success', '是否成功')->radio([ 1 => '是', 0 => '否', ]); $filter->equal('result_item_id', '产出物品')->select( (new ItemRepository())->pluck('name', 'id') ); $filter->between('craft_time', '合成时间')->datetime(); }); }); } /** * 详情页 * * @param mixed $id * @param Content $content * @return Content */ public function show($id, Content $content) { return $content ->header($this->title) ->description('详情') ->body($this->detail($id)); } /** * 详情页 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new ItemCraftLogRepository(), function (Show $show) { $helper = new ShowHelper($show, $this); // 禁用编辑和删除按钮 $show->panel()->tools(function ($tools) { $tools->disableEdit(); $tools->disableDelete(); }); $helper->field('id', 'ID'); $helper->field('user_id', '用户ID'); $show->field('recipe.name', '配方名称'); $helper->field('is_success', '是否成功')->as(function ($value) { return $value ? '是' : '否'; }); // 显示使用的材料 $show->field('materials_used', '使用的材料')->as(function ($materials) { if (empty($materials)) { return '无'; } if (is_string($materials)) { $materials = json_decode($materials, true); } if (is_array($materials)) { $html = '
| 物品ID | 物品名称 | 数量 |
|---|---|---|
| ' . $material['item_id'] . ' | '; $html .= '' . $itemName . ' | '; $html .= '' . $material['quantity'] . ' | '; $html .= '