exists()) { throw new BizException('商品分类已使用'); } return $this->form()->destroy($id); } protected function grid() { return Grid::make(new OfflineProductCategoryRepository(), function (Grid $grid) { $grid->column('id')->sortable(); $grid->column('name'); $grid->column('enabled')->filter( Grid\Column\Filter\In::make([ 0 => '否', 1 => '是', ]) ) ->if(function () { return Admin::user()->can('dcat.admin.offline_product_categories.edit'); }) ->then(function (Column $column) { $column->switch(); }) ->else(function (Column $column) { $column->bool(); }); $grid->column('color')->display(fn ($v) => $v ? "{$v}" : ''); $grid->column('sort')->sortable(); $grid->column('created_at'); $grid->model()->orderBy('id', 'desc'); if (Admin::user()->can('dcat.admin.offline_product_categories.create')) { $grid->disableCreateButton(false); $grid->enableDialogCreate(); } $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->quickEdit(Admin::user()->can('dcat.admin.offline_product_categories.edit')); $actions->delete(Admin::user()->can('dcat.admin.offline_product_categories.destroy')); }); $grid->filter(function (Grid\Filter $filter) { $filter->panel(); $filter->like('name')->width(3); }); }); } protected function form() { return Form::make(new OfflineProductCategoryRepository(), function (Form $form) { $form->text('name') ->rules(['bail', 'required', 'string', 'max:255']) ->setLabelClass(['asterisk']) ->attribute('required', true); $form->color('color'); $form->switch('enabled') ->default(true); $form->number('sort')->default(0); }); } }