Files
water_new/modules/Mall/Http/Controllers/Admin/BannerController.php
2023-03-08 09:16:04 +08:00

75 lines
2.0 KiB
PHP

<?php
namespace Modules\Mall\Http\Controllers\Admin;
use App\Admin\Traits\WithUploads;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Modules\Linker\Traits\WithLinker;
use Modules\Mall\Models\Banner;
class BannerController extends AdminController
{
use WithUploads,
WithShop,
WithLinker;
public $title = "轮播图管理";
protected function grid(): Grid
{
$grid = new Grid(new Banner);
$grid->filter(function (Grid\Filter $filter) {
$filter->column(1 / 3, function (Grid\Filter $filter) {
$filter->like('title', '轮播标题');
});
$filter->column(1 / 3, function (Grid\Filter $filter) {
$filter->equal('status', '状态')->radio([
0 => '禁用',
1 => '正常',
]);
});
});
$grid->model()->with(['shop']);
$grid->column('id', '#ID#');
$grid->column('shop.name', '所属店铺');
$grid->column('cover', '封面图片')->image('', 100, 100);
$grid->column('展示位置')->display(function () {
$data = [];
foreach ($this->position as $position) {
$data[] = $this->position_map[$position];
}
return $data;
})->label();
$grid->column('title', '轮播标题');
$grid->column('status', '状态')->bool();
$grid->column('created_at', '创建时间');
return $grid;
}
protected function form(): Form
{
$form = new Form((new Banner)->disableModelCaching());
$this->shop($form)->help('不选择,默认为平台轮播');
$form->text('title', '标题')
->required();
$form->multipleSelect('position', '展示位置')
->options($form->model()->position_map)
->required();
$this->cover($form);
$this->withUrl($form);
$form->switch('status', '显示')->default(1);
return $form;
}
}