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()->display(function ($value) { return $value . ' (' . gmdate('H:i:s', $value) . ')'; }); $grid->column('min_output', '最小产出')->sortable(); $grid->column('max_output', '最大产出')->sortable(); $grid->column('disaster_min_output', '灾害时最小产出')->sortable(); $grid->column('disaster_max_output', '灾害时最大产出')->sortable(); $grid->column('disaster_max_output', '灾害时最大产出')->sortable(); $grid->column('disaster_min_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()); $actions->disableDelete(); }); }); } /** * 构建详情页 * * @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', '种子期时间(秒)')->as(function ($value) { return $value . ' (' . gmdate('H:i:s', $value) . ')'; }); $show->field('min_output', '最小产出'); $show->field('max_output', '最大产出'); $show->field('disaster_max_output', '灾害时最大产出'); $show->field('disaster_min_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() ->help('种子期持续时间,单位:秒。其他阶段时间请在果实生长周期配置中设置'); $form->number('min_output', '最小产出')->min(0)->required(); $form->number('max_output', '最大产出')->min(0)->required(); $form->number('disaster_max_output', '灾害时最大产出')->min(0)->default(2000)->required() ->help('当作物有灾害时,产量的最大限制值'); $form->number('disaster_min_output', '灾害时最小产出')->min(0)->default(500)->required() ->help('当作物有灾害时,产量的最小限制值'); $form->number('item_id', '物品ID')->min(1)->required(); $helper->embedsCats('disaster_resistance', '灾害抵抗'); $helper->embedsCats('display_attributes', '显示属性'); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); }); } }