94 lines
2.7 KiB
PHP
94 lines
2.7 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers;
|
|
|
|
use App\Models\{Guess, GuessOption};
|
|
use Dcat\Admin\Form;
|
|
use Dcat\Admin\Grid;
|
|
use Dcat\Admin\Show;
|
|
use Dcat\Admin\Http\Controllers\AdminController;
|
|
use Carbon\Carbon;
|
|
|
|
class GuessOptionController extends AdminController
|
|
{
|
|
/**
|
|
* Make a grid builder.
|
|
*
|
|
* @return Grid
|
|
*/
|
|
protected function grid()
|
|
{
|
|
return Grid::make(GuessOption::with(['guess']), function (Grid $grid) {
|
|
$grid->model()->orderBy('id', 'desc');
|
|
$grid->disableRefreshButton();
|
|
$grid->disableRowSelector();
|
|
|
|
$grid->column('id');
|
|
$grid->column('guess.name', '活动');
|
|
$grid->column('option_name');
|
|
$grid->column('image')->image('', 100);
|
|
$grid->column('correct_state')->using(GuessOption::$correctStateMap)->dot(GuessOption::$correctIcoMap);
|
|
|
|
$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];
|
|
}
|
|
})->ajax('api/guess')->width(3);
|
|
$filter->like('option_name')->width(3);
|
|
});
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Make a show builder.
|
|
*
|
|
* @param mixed $id
|
|
*
|
|
* @return Show
|
|
*/
|
|
protected function detail($id)
|
|
{
|
|
return Show::make($id, new GuessOption(), function (Show $show) {
|
|
$show->field('id');
|
|
$show->field('image')->image('', 100);
|
|
$show->field('option_name');
|
|
$show->field('description');
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Make a form builder.
|
|
*
|
|
* @return Form
|
|
*/
|
|
protected function form()
|
|
{
|
|
return Form::make(new GuessOption(), function (Form $form) {
|
|
$form->select('guess_id')->options(function ($id) {
|
|
$guess = Guess::find($id);
|
|
|
|
if ($guess) {
|
|
return [$guess->id => $guess->name];
|
|
}
|
|
})->ajax('api/guess')->required();
|
|
$form->image('image')
|
|
->accept('jpg,png,gif,jpeg', 'image/*')
|
|
->move('milk-tea/guess/'.Carbon::now()->toDateString())
|
|
->saveFullUrl()
|
|
->removable();
|
|
$form->text('option_name');
|
|
$form->text('description');
|
|
$form->saving(function (Form $form) {
|
|
if (!$form->image) {
|
|
$form->image = '';
|
|
// $form->deleteInput('image');
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|