column('id', 'ID')->sortable(); $grid->column('name', '名称')->sortable(); $grid->column('type', '类型')->display(function ($value) { return SEED_TYPE::getName($value); })->sortable(); $grid->column('seed_time', '种子期时间(秒)')->sortable(); $grid->column('sprout_time', '发芽期时间(秒)')->sortable(); $grid->column('growth_time', '生长期时间(秒)')->sortable(); $grid->column('min_output', '最小产出')->sortable(); $grid->column('max_output', '最大产出')->sortable(); $grid->column('item_id', '物品ID')->sortable(); $grid->column('created_at', '创建时间')->sortable(); $grid->column('updated_at', '更新时间')->sortable(); $grid->filter(function (Grid\Filter $filter) { $filter->equal('id', 'ID'); $filter->like('name', '名称'); $filter->equal('type', '类型')->select([ SEED_TYPE::NORMAL->value => SEED_TYPE::getName(SEED_TYPE::NORMAL->value), SEED_TYPE::MYSTERIOUS->value => SEED_TYPE::getName(SEED_TYPE::MYSTERIOUS->value), SEED_TYPE::GIANT->value => SEED_TYPE::getName(SEED_TYPE::GIANT->value), ]); $filter->equal('item_id', '物品ID'); $filter->between('created_at', '创建时间')->datetime(); }); // 添加复制功能 $grid->tools(function (Grid\Tools $tools) { $tools->batch(function (Grid\Tools\BatchActions $batch) { $batch->disableDelete(); }); }); $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->append(new FarmSeedCopyAction()); }); }); } /** * 构建详情页 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new FarmSeedRepository(), function (Show $show) { $helper = new ShowHelper($show, $this); $show->field('id', 'ID'); $show->field('name', '名称'); $show->field('type', '类型')->as(function ($value) { return SEED_TYPE::getName($value); }); $show->field('seed_time', '种子期时间(秒)'); $show->field('sprout_time', '发芽期时间(秒)'); $show->field('growth_time', '生长期时间(秒)'); $show->field('min_output', '最小产出'); $show->field('max_output', '最大产出'); $show->field('item_id', '物品ID'); $helper->fieldModelCatsJson('disaster_resistance', '灾害抵抗'); $helper->fieldModelCatsJson('display_attributes', '显示属性'); $show->field('created_at', '创建时间'); $show->field('updated_at', '更新时间'); }); } /** * 构建表单 * * @return Form */ protected function form() { return Form::make(new FarmSeedRepository(), function (Form $form) { $helper = new FormHelper($form, $this); $form->display('id', 'ID'); $form->text('name', '名称')->required(); $form->select('type', '类型')->options([ SEED_TYPE::NORMAL->value => SEED_TYPE::getName(SEED_TYPE::NORMAL->value), SEED_TYPE::MYSTERIOUS->value => SEED_TYPE::getName(SEED_TYPE::MYSTERIOUS->value), SEED_TYPE::GIANT->value => SEED_TYPE::getName(SEED_TYPE::GIANT->value), ])->required(); $form->number('seed_time', '种子期时间(秒)')->min(0)->required(); $form->number('sprout_time', '发芽期时间(秒)')->min(0)->required(); $form->number('growth_time', '生长期时间(秒)')->min(0)->required(); $form->number('min_output', '最小产出')->min(0)->required(); $form->number('max_output', '最大产出')->min(0)->required(); $form->number('item_id', '物品ID')->min(1)->required(); $helper->embedsCats('disaster_resistance', '灾害抵抗'); $helper->embedsCats('display_attributes', '显示属性'); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); }); } }