model()->orderBy('created_at', 'desc'); $grid->disableRefreshButton(); $grid->disableRowSelector(); $grid->column('id'); $grid->column('name'); $grid->column('image', '分享图')->image('', 100); $grid->column('guess_options', '选项统计')->display('选项列表')->modal(GuessOptionsTable::make()); // $grid->column('description'); $grid->column('start_time'); $grid->column('end_time'); $grid->column('status')->if(function ($column) { return $this->prize_state === Guess::PRIZE_EXIST && $this->status === Guess::STATUS_DISABLE; })->display(function () { return '已结束'; })->else()->switch(); $grid->filter(function (Grid\Filter $filter) { $filter->panel(); $filter->like('name')->width(3); }); $grid->actions(function (Grid\Displayers\Actions $actions) { // if ($actions->row->status === Guess::PRIZE_UNEXIST) { $actions->append(new GuessAnswer()); // $actions->append(new GuessAnswer()); // } }); }); } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { return Show::make($id, new Guess(), function (Show $show) { $show->field('id'); $show->field('name'); // $show->field('banner_kv', '活动背景图')->image('', 100); $show->field('image', '分享图')->image('', 100); $show->field('description')->unescape(); $show->field('num'); $show->field('start_time'); $show->field('end_time'); $show->field('status')->as(function ($value) { return $value ? '打开' : '关闭'; }); $show->field('created_at'); $show->options(function ($model) { $grid = new Grid(new GuessOption()); $grid->disableRefreshButton(); $grid->disableRowSelector(); // $grid->disableCreateButton(); // $grid->disableActions(); $grid->setResource('guess-option'); $grid->model()->where('guess_id', $model->id); $grid->id(); $grid->column('option_name', __('guess-option.fields.option_name')); $grid->column('image')->image('', 100); $grid->column('correct_state', __('guess-option.fields.correct_state')) ->using(GuessOption::$correctStateMap)->dot(GuessOption::$correctIcoMap); return $grid; }); // $show->users(function ($model) { // $grid = new Grid(UserGuess::with(['user', 'options'])); // $grid->disableRefreshButton(); // $grid->disableRowSelector(); // $grid->disableCreateButton(); // $grid->disableActions(); // $grid->model()->where('guess_id', $model->id); // $grid->column('id'); // $grid->column('user.phone', '用户'); // $grid->column('answers', '答案')->display(function () { // return $this->options->implode('option_name', ', '); // }); // $grid->column('correct_state', '是否正确')->using([ // 0 => '不正确', // 1 => '正确', // 2 => '未知' // ])->dot([ // 0 => 'danger', // 1 => 'success', // 2 => 'warning', // ]); // $grid->column('created_at', '参与时间'); // return $grid; // }); }); } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(Guess::with(['options']), function (Form $form) { $form->display('id'); $form->text('name')->required(); $form->datetimeRange('start_time', 'end_time', admin_trans('guess.fields.time'))->required(); // $form->text('description'); // $form->image('banner_kv', '活动背景图') // ->accept('jpg,png,gif,jpeg', 'image/*') // ->move('milk-tea/guess-options/'.Carbon::now()->toDateString()) // ->saveFullUrl() // ->removable()->required(); $form->image('image', '分享图') ->accept('jpg,png,gif,jpeg', 'image/*') ->move('milk-tea/guess-options/'.Carbon::now()->toDateString()) ->saveFullUrl() ->removable(); $form->editor('description'); $form->number('num')->default(1)->min(1)->help('用户最多可选择几项'); $form->hidden('status')->default(Guess::STATUS_DISABLE); // if ($form->isCreating()) { // $form->hasMany('options', function (Form\NestedForm $form) { // $form->text('option_name', __('guess-option.fields.option_name')); // }); // } // $form->saving(function (Form $form) { // if (!$form->image) { // $form->deleteInput('image'); // } // }); }); } }