model()->orderBy('id', 'desc'); $grid->disableRefreshButton(); $grid->disableRowSelector(); $grid->disableCreateButton(); $grid->disableViewButton(); $grid->disableDeleteButton(); $grid->column('id'); $grid->column('guess.name', '活动'); $grid->column('user.phone', '用户'); $grid->column('answers', '回答')->display(function () { return $this->options->implode('option_name', ', '); }); $grid->column('correct_state')->using(UserGuess::$correctStateMap)->dot(UserGuess::$correctIcoMap); $grid->column('prize_state')->using(UserGuess::$prizeStateMap)->dot(UserGuess::$correctIcoMap); $grid->column('convert_time'); $grid->column('convert_prize_time'); $grid->column('created_at'); $grid->filter(function (Grid\Filter $filter) { $filter->panel(); $filter->equal('guess_id')->select(function ($id) { $guess = Guess::find($id); if ($guess) { return [$guess->id => $guess->name]; } })->placeholder('输入活动名称搜索')->ajax('api/guess')->width(3); $filter->equal('user_id')->select(function ($id) { $guess = User::find($id); if ($guess) { return [$guess->id => $guess->name]; } })->placeholder('输入手机号搜索')->ajax('api/user')->width(3); $filter->equal('correct_state')->select(UserGuess::$correctStateMap)->width(3); $filter->equal('prize_state')->select(UserGuess::$prizeStateMap)->width(3); }); }); } /** * Make a show builder. * * @param mixed $id * * @return Show */ protected function detail($id) { return Show::make($id, UserGuess::with(['guess', 'user']), function (Show $show) { // dd($show); $show->field('id'); $show->field('guess.name', '活动'); $show->field('user.phone', '用户'); $show->field('correct_state')->using(UserGuess::$correctStateMap)->dot(UserGuess::$correctIcoMap); $show->field('prize_state')->using(UserGuess::$prizeStateMap)->dot(UserGuess::$correctIcoMap); $show->field('convert_time'); $show->field('convert_prize_time'); $show->field('created_at'); $show->field('updated_at'); $show->options('用户选择选项', function ($grid) { // dd($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->column('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; }); }); } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(UserGuess::with(['guess', 'user', 'options']), function (Form $form) { $form->display('id'); $form->display('guess.name', '活动'); $form->display('user.phone', '用户'); $form->display('answers', '用户选择')->with(function () { return $this->options->implode('option_name', ', '); }); $form->display('correct_state')->with(function ($value) { $map =UserGuess::$correctStateMap; return data_get($map, $value); }); $form->display('prize_state')->with(function ($value) { $map = UserGuess::$prizeStateMap; return data_get($map, $value); }); if ($form->model()->correct_state === UserGuess::CORRECT) { $form->datetime('convert_time'); } if ($form->model()->prize_state === UserGuess::PRIZE_YES) { $form->datetime('convert_prize_time'); } $form->disableViewButton(); $form->display('created_at'); }); } }