model()->orderBy('created_at', 'desc'); $grid->column('id'); $grid->column('store_id')->display(fn() => data_get($this->store, 'title')); $grid->column('name'); $grid->column('status')->switch(); $grid->column('wxcode')->image('', 100, 100); $grid->column('remarks')->editable(); $user = Admin::user(); $grid->showViewButton($user->can('dcat.admin.store.desk.show')); $grid->showCreateButton($user->can('dcat.admin.store.desk.create')); $grid->showEditButton($user->can('dcat.admin.store.desk.edit')); $grid->showDeleteButton($user->can('dcat.admin.store.desk.destroy')); $grid->filter(function (Grid\Filter $filter) { $filter->panel(); $filter->equal('store_id')->select('api/store')->width(3); $filter->like('name')->width(3); }); $grid->actions(new \App\Admin\Actions\Store\RowDeskWxCode()); }); } protected function form() { return Form::make(new Desk(), function (Form $form) { $form->select('store_id')->options(Store::pluck('title', 'id'))->required(); $form->text('name')->required(); $form->switch('status')->default(1); $form->text('remarks'); $form->embeds('extra', function (Form\EmbeddedForm $form) { $form->select('category_id')->options(ProductCategory::selectOptions()); }); $form->disableCreatingCheck(); $form->disableEditingCheck(); $form->disableDeleteButton(); $form->disableResetButton(); }); } protected function detail($id) { return Show::make($id, Desk::with(['store']), function (Show $show) { $show->field('id'); $show->field('store_id')->as(fn() => data_get($this->store, 'name')); $show->field('name'); $show->field('status')->bool(); $show->field('wxcode')->image('', 100, 100); $show->field('remarks'); $model = $show->model(); $category_id = data_get($model->extra, 'category_id'); if (!is_null($category_id)) { $name = $category_id ? ProductCategory::where('id', $category_id)->value('name') : '顶级'; $show->field('category_id')->as($name); } $show->disableEditButton(); $show->disableDeleteButton(); }); } }