columnId(); $helper->columnUserId(); $grid->column('position', '位置')->sortable(); $helper->columnLandType(); $helper->columnLandStatus(); // 关联显示种子状态 $grid->column('crop.seed_id', '种子ID')->display(function ($seedId) { return $seedId ?: '-'; }); $grid->column('crop.seed.name', '种子名称')->display(function ($name) { return $name ?: '-'; }); $helper->columnUseingEnmu('crop.growth_stage', \App\Module\Farm\Enums\GROWTH_STAGE::class,'生长阶段'); $grid->column('crop.stage_end_time', '阶段结束时间')->display(function ($time) { if (!$time) return '-'; return $time; }); $grid->column('crop.disasters', '灾害情况')->display(function ($disasters) { if (!$disasters) return '无'; $result = []; foreach (json_decode($disasters, true) ?: [] as $disaster) { if (isset($disaster['type'])) { switch ($disaster['type']) { case 1: $result[] = '杂草'; break; case 2: $result[] = '虫害'; break; case 3: $result[] = '缺水'; break; default: $result[] = '未知灾害'; } } } return empty($result) ? '无' : implode('、', $result); }); $grid->column('crop.fertilized', '是否施肥')->bool(); $helper->columnCreatedAt(); $helper->columnUpdatedAt(); $grid->filter(function (Grid\Filter $filter) { $filterHelper = new FilterHelper($filter, $this); $filterHelper->equalId(); $filterHelper->equalUserId(); $filter->equal('position', '位置'); $filterHelper->equalLandType(); $filterHelper->equalLandStatus(); $filter->equal('crop.seed_id', '种子ID'); $filter->equal('crop.growth_stage', '生长阶段')->select(\App\Module\Farm\Enums\GROWTH_STAGE::getAll()); $filterHelper->betweenDatetime('created_at', '创建时间'); }); $grid->actions(function (Grid\Displayers\Actions $actions){ $actions->disableDelete(); }); // 默认按ID倒序排列 $grid->model()->orderBy('id', 'desc'); }); } /** * 构建详情页 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new FarmLandRepository(), function (Show $show) { $helper = new ShowHelper($show, $this); $show->field('id', 'ID'); $helper->fieldUserId('user_id', '用户ID'); $show->field('position', '位置'); $helper->fieldLandType('land_type', '土地类型'); $helper->fieldLandStatus('status', '状态'); $show->field('created_at', '创建时间'); $show->field('updated_at', '更新时间'); }); } /** * 构建表单 * * @return Form */ protected function form() { return Form::make(new FarmLandRepository(), function (Form $form) { $helper = new FormHelper($form, $this); $form->display('id', 'ID'); $helper->selectTableUserID('user_id', '用户ID'); $form->number('position', '位置')->min(1)->max(20)->required(); $helper->selectLandType('land_type', '土地类型'); $helper->selectLandStatus('status', '状态'); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); }); } }