| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- <?php
- namespace App\Module\Mex\AdminControllers;
- use App\Module\Mex\AdminControllers\Helper\GridHelper;
- use App\Module\Mex\Repositories\MexPriceAdjustmentRepository;
- use App\Module\Mex\Enums\PriceAdjustmentType;
- use Spatie\RouteAttributes\Attributes\Resource;
- use UCore\DcatAdmin\AdminController;
- use Dcat\Admin\Grid;
- use Dcat\Admin\Show;
- /**
- * 农贸市场价格调整记录管理
- *
- * 路由:/admin/mex-price-adjustments
- */
- #[Resource('mex-price-adjustments', names: 'dcat.admin.mex-price-adjustments')]
- class MexPriceAdjustmentController extends AdminController
- {
- /**
- * 页面标题
- */
- protected $title = '农贸市场价格调整记录';
- /**
- * 列表页面
- */
- protected function grid()
- {
- return Grid::make(new MexPriceAdjustmentRepository(['priceConfig', 'item']), function (Grid $grid) {
- $helper = new GridHelper($grid, $this);
-
- $grid->column('id', 'ID')->sortable();
- $grid->column('item_id', '商品ID')->link(function ($value) {
- return admin_url("game-items/{$value}");
- });
- $grid->column('item.name', '商品名称');
- $grid->column('admin_user_id', '操作管理员');
- $grid->column('adjustment_type', '调整类型')->display(function ($value) {
- return $value->getDescription();
- })->label([
- 'MIN_PRICE' => 'primary',
- 'MAX_PRICE' => 'success',
- 'PROTECTION_THRESHOLD' => 'warning',
- 'STATUS' => 'info',
- 'BATCH' => 'danger',
- ]);
-
- // 价格变化摘要
- $grid->column('price_change_summary', '价格变化')->display(function () {
- return $this->price_change_summary;
- });
-
- $grid->column('adjustment_reason', '调整原因')->limit(50);
- $helper->columnCreatedAt();
- // 筛选器
- $grid->filter(function (Grid\Filter $filter) {
- $filter->equal('id', 'ID');
- $filter->equal('item_id', '商品ID');
- $filter->equal('admin_user_id', '操作管理员');
- $filter->equal('adjustment_type', '调整类型')->select(PriceAdjustmentType::getOptions());
- $filter->like('adjustment_reason', '调整原因');
- $filter->between('created_at', '调整时间')->datetime();
- });
- // 默认排序
- $grid->model()->orderBy('created_at', 'desc');
- // 禁用新增、编辑、删除操作
- $grid->disableCreateButton();
- $grid->disableActions();
- $grid->disableBatchActions();
- });
- }
- /**
- * 详情页面
- */
- protected function detail($id)
- {
- return Show::make($id, new MexPriceAdjustmentRepository(['priceConfig', 'item']), function (Show $show) {
- $show->field('id', 'ID');
- $show->field('price_config_id', '价格配置ID');
- $show->field('item_id', '商品ID');
- $show->field('item.name', '商品名称');
- $show->field('admin_user_id', '操作管理员');
- $show->field('adjustment_type', '调整类型')->as(function ($value) {
- if (is_string($value)) {
- return PriceAdjustmentType::from($value)->getDescription();
- }
- return $value->getDescription();
- });
- $show->divider('价格调整详情');
-
- $show->field('old_min_price', '调整前最低价')->as(function ($value) {
- return $value ? number_format($value, 5) : '-';
- });
- $show->field('new_min_price', '调整后最低价')->as(function ($value) {
- return $value ? number_format($value, 5) : '-';
- });
- $show->field('old_max_price', '调整前最高价')->as(function ($value) {
- return $value ? number_format($value, 5) : '-';
- });
- $show->field('new_max_price', '调整后最高价')->as(function ($value) {
- return $value ? number_format($value, 5) : '-';
- });
- $show->field('old_protection_threshold', '调整前保护阈值');
- $show->field('new_protection_threshold', '调整后保护阈值');
- $show->field('old_is_enabled', '调整前启用状态')->using([0 => '禁用', 1 => '启用']);
- $show->field('new_is_enabled', '调整后启用状态')->using([0 => '禁用', 1 => '启用']);
- $show->divider('调整说明');
-
- $show->field('adjustment_reason', '调整原因');
- $show->field('market_impact_note', '市场影响说明');
- $show->field('created_at', '调整时间');
- // 禁用编辑和删除按钮
- $show->disableEditButton();
- $show->disableDeleteButton();
- });
- }
- }
|