| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?php
- namespace App\Admin\Controllers;
- use App\Admin\Repositories\GiftBox;
- use Dcat\Admin\Form;
- use Dcat\Admin\Grid;
- use Dcat\Admin\Show;
- use Dcat\Admin\Http\Controllers\AdminController;
- use App\Admin\Renderable\AttireTable; // 筛选表格弹框
- class GiftBoxController extends AdminController
- {
- public $levels = [
- 'N' => '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('<a target="_blank" class="btn btn-primary grid-refresh btn-mini btn-outline" href="/admin/box_records">开盒记录</a>');
- });
- });
- }
- /**
- * 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');
- });
- }
- }
|