| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <?php
- namespace App\Admin\Controllers;
- use App\Admin\Repositories\Gift;
- use Dcat\Admin\Form;
- use Dcat\Admin\Grid;
- use Dcat\Admin\Show;
- use Dcat\Admin\Http\Controllers\AdminController;
- use App\Admin\Renderable\AttireTable; // 筛选表格弹框
- class GiftController extends AdminController
- {
- /**
- * Make a grid builder.
- *
- * @return Grid
- */
- protected function grid()
- {
- return Grid::make(new Gift(['attire']), function (Grid $grid) {
- //
- $types = ['','礼劵','装扮'];
- //
- $grid->column('id');
- // $grid->column('name');
- $grid->column('type')->using($types)->label();
- // $grid->column('attire_id');
- $grid->column('attire.name', '装扮名称');
- $grid->column('attire.img_1', '图片')->display(function($v) {
- if($this->type == 1) {
- return "<img src='".\Storage::disk('cosv5')->url($this->img)."' style='height:100px;width:auto;' />";
- } else {
- return "<img src='".\Storage::disk('cosv5')->url($v)."' style='height:100px;width:auto;' />";
- }
- });
- $grid->column('info')->width("250px");
- $grid->column('attire.cate', '装扮类别');
- $grid->column('cost_pasters');
- $grid->column('limit')->help("限购规则:礼劵是按每月(自然月)限购,装扮是永久");
- $grid->column('sort')->editable(true);
- // $grid->column('created_at');
- // $grid->column('updated_at');
-
- $grid->filter(function (Grid\Filter $filter) {
- $filter->equal('id');
- });
- $grid->model()->orderBy("sort");
- $grid->enableDialogCreate();
- $grid->setDialogFormDimensions('50%', '60%');
- $grid->withBorder();
- $grid->addTableClass(['table-text-center']);
- $grid->actions(function (Grid\Displayers\Actions $actions) {
- $actions->quickEdit(true);
- $actions->disableEdit();
- $actions->disableView();
- });
- $grid->tools(function (Grid\Tools $tools) {
- $tools->append('<a target="_blank" class="btn btn-primary grid-refresh btn-mini btn-outline" href="/admin/gift_records">兑换记录</a>');
- });
- //
- $grid->export()->rows(function ($rows) use ($types) {
- // dump($rows);
- foreach ($rows as &$row) {
- unset($row['attire.img_1']);
- $tmp = $row->toArray();
- $row['type'] = $types[$row['type']];
- // dd($tmp);
- $row['attire.name'] = $tmp['attire']? $tmp['attire']['name']:'-';
- $row['attire.cate'] = $tmp['attire']? $tmp['attire']['cate']:'-';
- }
- //
- return $rows;
- });
- });
- }
- /**
- * Make a show builder.
- *
- * @param mixed $id
- *
- * @return Show
- */
- protected function detail($id)
- {
- return Show::make($id, new Gift(), function (Show $show) {
- $show->field('id');
- $show->field('type');
- $show->field('attire_id');
- $show->field('limit');
- $show->field('sort');
- $show->field('created_at');
- $show->field('updated_at');
- });
- }
- /**
- * Make a form builder.
- *
- * @return Form
- */
- protected function form()
- {
- return Form::make(new Gift(), function (Form $form) {
- $form->radio('type')
- ->when(1, function (Form $form) {
- $form->image('img','礼劵图片')->autoUpload();
- })->when(2, function (Form $form) {
- $form->selectTable('attire_id', '装扮') // 设置渲染类实例,并传递自定义参数
- ->title('装扮列表')
- ->dialogWidth('50%') // 弹窗宽度,默认 800px
- ->from(AttireTable::make())
- ->model(\App\Models\Attire::class, 'id', 'name')
- ->default(0);
- })->options([1=>'礼劵',2=>'装扮'])
- ->required()
- ->default(2);
- $form->textarea("info")->help("建议字数控制在40字左右,超出会省略...")->required();
- $form->number('cost_pasters')->default(0)->required()->help("限购规则:礼劵是每月限购,装扮是永久");
- $form->number('limit')->default(1)->required();
- $form->number('sort')->help("数字大的优先展示");
- });
- }
- }
|