'N', 'R' => 'R', 'SR' => 'SR', 'SSR' => 'SSR', ]; public $cates = [ '套装' => '套装', '皮肤' => '皮肤', ]; /** * Make a grid builder. * * @return Grid */ protected function grid() { return Grid::make(new GiftBox(['attire']), function (Grid $grid) { $grid->column('id'); $grid->column('attire.name', '装扮名称'); $grid->column('attire.img_1', '正面图片')->image(config("filesystems.disks.cosv5.url"), 100, 100); $grid->column('attire.img_2', '背面图片')->image(config("filesystems.disks.cosv5.url"), 100, 100); $grid->column('attire.cate', '类别'); $grid->column('attire.level','等级'); $grid->column('sort')->editable(true)->sortable(); // $grid->column('created_at'); // $grid->column('updated_at'); $grid->enableDialogCreate(); $grid->setDialogFormDimensions('40%', '30%'); $grid->withBorder(); $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->quickEdit(false); $actions->disableEdit(); $actions->disableView(); }); $grid->model()->orderBy("sort","asc")->orderBy("id","asc"); // $grid->filter(function ($filter) { // 展开过滤器 $filter->panel(); $filter->expand(); $filter->withoutInputBorder(); // 在这里添加字段过滤器 // $filter->equal('id')->width(2); $filter->equal('attire_id', '装扮') ->selectTable(AttireTable::make()) // 设置渲染类实例,并传递自定义参数 ->title('装扮列表') ->dialogWidth('50%') // 弹窗宽度,默认 800px ->model(\App\Models\Attire::class, 'id', 'name')->width(3); // 设置编辑数据显示 $filter->equal('attire.cate', '类别')->select($this->cates)->width(2); // 设置编辑数据显示 $filter->equal('attire.level','等级')->select($this->levels)->width(2); }); // $grid->tools(function (Grid\Tools $tools) { $tools->append(new \App\Admin\Actions\Grid\LevelPercentAction()); $tools->append(new \App\Admin\Actions\Grid\LevelPasterAction()); $tools->append(new \App\Admin\Actions\Grid\GiftBoxHitAction()); $tools->append('开盒记录'); }); }); } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { return Show::make($id, new GiftBox(), function (Show $show) { $show->field('id'); $show->field('attire_id'); $show->field('level'); $show->field('created_at'); $show->field('updated_at'); }); } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(new GiftBox(), function (Form $form) { // $form->display('id'); $form->selectTable('attire_id', '装扮') // 设置渲染类实例,并传递自定义参数 ->title('装扮列表') ->dialogWidth('50%') // 弹窗宽度,默认 800px ->from(AttireTable::make()) ->model(\App\Models\Attire::class, 'id', 'name') ->rules('unique:gift_boxes,attire_id,$selfId,id,deleted_at,NULL', ['unique' => '已经在礼盒中了,请选择其它的']) ->required(); $form->number("sort"); // $form->radio('level')->options($this->levels)->default('N')->required(); // $form->display('created_at'); // $form->display('updated_at'); }); } }