6
0
Fork 0
jiqu-library-server/app/Admin/Controllers/Draw/DrawPrizeController.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位小数');
});
}
}