title($this->title) ->description('管理任务分类') ->body($this->grid()); } /** * 表格构建 * * @return Grid */ protected function grid() { return Grid::make(TaskCategory::query(), function (Grid $grid) { $helper = new GridHelper($grid, $this); $helper->columnId(); $grid->column('name', '分类名称'); $grid->column('code', '分类编码'); $grid->column('description', '分类描述')->limit(30); $grid->column('sort_order', '排序权重')->sortable(); $grid->column('created_at', '创建时间')->sortable(); $grid->column('updated_at', '更新时间')->sortable(); $grid->filter(function (Grid\Filter $filter) { $filterHelper = new FilterHelper($filter, $this); $filterHelper->equalId(); $filterHelper->likeName(); $filter->like('code', '分类编码'); $filterHelper->betweenDatetime('created_at', '创建时间'); }); }); } /** * 详情页构建 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make(TaskCategory::findOrFail($id), function (Show $show) { $helper = new ShowHelper($show, $this); $helper->fieldId(); $show->field('name', '分类名称'); $show->field('code', '分类编码'); $show->field('description', '分类描述'); $show->field('sort_order', '排序权重'); $helper->fieldCreatedAt(); $helper->fieldUpdatedAt(); }); } /** * 表单构建 * * @return Form */ protected function form() { return Form::make(new TaskCategoryRepository(), function (Form $form) { $form->display('id', 'ID'); $form->text('name', '分类名称')->required()->rules('required|max:50'); $form->text('code', '分类编码')->required()->rules('required|max:50|unique:task_categories,code,' . request()->route('task_category')); $form->textarea('description', '分类描述')->rows(3); $form->number('sort_order', '排序权重')->default(0)->min(0); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); }); } }