column('id', 'ID')->sortable(); $grid->column('land_id', '土地ID')->sortable(); $grid->column('user_id', '用户ID')->sortable(); $grid->column('seed_id', '种子ID')->sortable(); $grid->column('plant_time', '种植时间')->sortable(); $grid->column('growth_stage', '生长阶段')->display(function ($value) { return GROWTH_STAGE::getName($value); })->sortable(); $grid->column('stage_end_time', '阶段结束时间')->sortable(); $grid->column('fertilized', '已施肥')->bool()->sortable(); $grid->column('created_at', '创建时间')->sortable(); $grid->column('updated_at', '更新时间')->sortable(); $grid->filter(function (Grid\Filter $filter) { $filter->equal('id', 'ID'); $filter->equal('land_id', '土地ID'); $filter->equal('user_id', '用户ID'); $filter->equal('seed_id', '种子ID'); $filter->equal('growth_stage', '生长阶段')->select([ GROWTH_STAGE::SEED => GROWTH_STAGE::getName(GROWTH_STAGE::SEED), GROWTH_STAGE::SPROUT => GROWTH_STAGE::getName(GROWTH_STAGE::SPROUT), GROWTH_STAGE::GROWTH => GROWTH_STAGE::getName(GROWTH_STAGE::GROWTH), GROWTH_STAGE::MATURE => GROWTH_STAGE::getName(GROWTH_STAGE::MATURE), GROWTH_STAGE::WITHERED => GROWTH_STAGE::getName(GROWTH_STAGE::WITHERED), ]); $filter->between('plant_time', '种植时间')->datetime(); $filter->between('stage_end_time', '阶段结束时间')->datetime(); $filter->equal('fertilized', '已施肥')->radio([ 1 => '是', 0 => '否', ]); $filter->between('created_at', '创建时间')->datetime(); }); }); } /** * 构建详情页 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new FarmCropRepository(), function (Show $show) { $show->field('id', 'ID'); $show->field('land_id', '土地ID'); $show->field('user_id', '用户ID'); $show->field('seed_id', '种子ID'); $show->field('plant_time', '种植时间'); $show->field('growth_stage', '生长阶段')->as(function ($value) { return GROWTH_STAGE::getName($value); }); $show->field('stage_end_time', '阶段结束时间'); $show->field('disasters', '灾害情况')->json(); $show->field('fertilized', '已施肥')->as(function ($value) { return $value ? '是' : '否'; }); $show->field('created_at', '创建时间'); $show->field('updated_at', '更新时间'); }); } /** * 构建表单 * * @return Form */ protected function form() { return Form::make(new FarmCropRepository(), function (Form $form) { $form->display('id', 'ID'); $form->text('land_id', '土地ID')->required()->rules('required|integer'); $form->text('user_id', '用户ID')->required()->rules('required|integer'); // 获取所有种子选项 $seedRepository = new FarmSeedRepository(); $seedOptions = $seedRepository->all()->pluck('name', 'id')->toArray(); $form->select('seed_id', '种子ID')->options($seedOptions)->required(); $form->datetime('plant_time', '种植时间')->required(); $form->select('growth_stage', '生长阶段')->options([ GROWTH_STAGE::SEED => GROWTH_STAGE::getName(GROWTH_STAGE::SEED), GROWTH_STAGE::SPROUT => GROWTH_STAGE::getName(GROWTH_STAGE::SPROUT), GROWTH_STAGE::GROWTH => GROWTH_STAGE::getName(GROWTH_STAGE::GROWTH), GROWTH_STAGE::MATURE => GROWTH_STAGE::getName(GROWTH_STAGE::MATURE), GROWTH_STAGE::WITHERED => GROWTH_STAGE::getName(GROWTH_STAGE::WITHERED), ])->required(); $form->datetime('stage_end_time', '阶段结束时间'); $form->textarea('disasters', '灾害情况')->json(); $form->switch('fertilized', '已施肥')->default(false); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); }); } }