order-food-admin/app/Admin/Controllers/GuessOptionController.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');
}
});
});
}
}