header('部门') ->row(function (Row $row) { $row->column(6, $this->treeView()); $row->column(6, function (Column $column) { $form = new WidgetsForm(); $form->select('parent_id', '上级部门')->options(Category::selectOptions(function ($model) { return $model->where('status', 1); }, '一级部门')); $form->text('title', '部门名称')->rules('required'); $form->textarea('description', '部门简介')->rows(4)->rules('nullable'); $form->number('order', '排序')->default(0); $form->switch('status', '显示')->states()->default(1); $form->action('/admin/categories'); $column->append((new Box('新增部门', $form))->style('success')); }); }); } /** * @return \Encore\Admin\Tree */ protected function treeView() { return Category::tree(function (Tree $tree) { $tree->disableCreate(); $tree->branch(function ($branch) { if ($branch['status'] == 1) { $payload = " "; } else { $payload = " "; } $payload .= " [ID:{$branch['id']}] - "; $payload .= " {$branch['title']} "; $payload .= " {$branch['description']}"; return $payload; }); }); } /** * Show interface. * * @param mixed $id * @param Content $content * @return Content */ public function show($id, Content $content) { return $content ->header('Detail') ->description('description') ->body($this->detail($id)); } /** * Edit interface. * * @param mixed $id * @param Content $content * @return Content */ public function edit($id, Content $content) { return $content ->header('Edit') ->description('description') ->body($this->form()->edit($id)); } /** * Create interface. * * @param Content $content * @return Content */ public function create(Content $content) { return $content ->header('Create') ->description('description') ->body($this->form()); } /** * Make a grid builder. * * @return Grid */ protected function grid() { $grid = new Grid(new Category); $grid->id('Id'); $grid->title('部门名称'); $grid->description('部门简介'); $grid->order('排序'); $grid->status('显示')->switch(); $grid->created_at('创建时间'); return $grid; } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { $show = new Show(Category::findOrFail($id)); $show->id('Id'); $show->created_at('Created at'); $show->updated_at('Updated at'); return $show; } /** * Make a form builder. * * @return Form */ protected function form() { $form = new Form(new Category); $form->select('parent_id', '上级部门')->options(Category::selectOptions(function ($model) { return $model->where('status', 1); }, '一级部门')); $form->text('title', '部门名称')->rules('required'); $form->textarea('description', '部门简介')->rows(4)->rules('nullable'); $form->number('order', '排序')->default(0); $form->switch('status', '显示')->states()->default(1); return $form; } }