98 lines
3.0 KiB
PHP
98 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers\Draw;
|
|
|
|
use App\Admin\Repositories\DrawPrize as DrawPrizeRepository;
|
|
use App\Enums\DrawPrizeType;
|
|
use Dcat\Admin\Admin;
|
|
use Dcat\Admin\Form;
|
|
use Dcat\Admin\Grid;
|
|
use Dcat\Admin\Http\Controllers\AdminController;
|
|
use Illuminate\Validation\Rule;
|
|
|
|
class DrawPrizeController extends AdminController
|
|
{
|
|
/**
|
|
* Make a grid builder.
|
|
*
|
|
* @return Grid
|
|
*/
|
|
protected function grid()
|
|
{
|
|
return Grid::make(new DrawPrizeRepository(), function (Grid $grid) {
|
|
$grid->column('id')->sortable();
|
|
$grid->column('name');
|
|
$grid->column('icon')->image(null, 80, 80);
|
|
$grid->column('type', '类型')->display(function ($type) {
|
|
return $type->label();
|
|
});
|
|
$grid->column('amount')->display(function ($v) {
|
|
return trim_trailing_zeros($v);
|
|
});
|
|
$grid->column('created_at');
|
|
$grid->column('updated_at');
|
|
|
|
$grid->model()->orderBy('id', 'asc');
|
|
|
|
if (Admin::user()->can('dcat.admin.draw_prizes.create')) {
|
|
$grid->enableDialogCreate();
|
|
$grid->showCreateButton();
|
|
}
|
|
|
|
if (Admin::user()->can('dcat.admin.draw_prizes.edit')) {
|
|
$grid->showQuickEditButton();
|
|
}
|
|
|
|
if (Admin::user()->can('dcat.admin.draw_prizes.destroy')) {
|
|
$grid->showDeleteButton();
|
|
}
|
|
|
|
$grid->filter(function (Grid\Filter $filter) {
|
|
$filter->panel(false);
|
|
$filter->like('name')->width(3);
|
|
$filter->equal('type')->select(DrawPrizeType::options())->width(3);
|
|
});
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Make a form builder.
|
|
*
|
|
* @return Form
|
|
*/
|
|
protected function form()
|
|
{
|
|
return Form::make(new DrawPrizeRepository(), function (Form $form) {
|
|
$form->display('id');
|
|
|
|
$form->text('name')
|
|
->rules(['bail', 'required', 'string', 'max:255'])
|
|
->setLabelClass(['asterisk'])
|
|
->attribute('required', true);
|
|
|
|
$form->image('icon')
|
|
->move('draw/prizes')
|
|
->uniqueName()
|
|
->saveFullUrl()
|
|
->removable(false)
|
|
->autoUpload()
|
|
->retainable()
|
|
->setLabelClass(['asterisk'])
|
|
->rules(['bail', 'required'])
|
|
->attribute('required', true);
|
|
|
|
$form->select('type')
|
|
->options(DrawPrizeType::options())
|
|
->rules(['bail', 'required', Rule::in(array_keys(DrawPrizeType::options()))])
|
|
->setLabelClass(['asterisk'])
|
|
->attribute('required', true);
|
|
|
|
$form->text('amount')
|
|
->rules(['bail', 'required', 'min:0', 'regex:/^([1-9]\d*|0)(\.\d{1,2})?$/'])
|
|
->setLabelClass(['asterisk'])
|
|
->attribute('required', true)
|
|
->help('最多保留2位小数');
|
|
});
|
|
}
|
|
}
|