6
0
Fork 0
jiqu-library-server/app/Admin/Renderable/DrawActivityPrizeTable.php

64 lines
2.4 KiB
PHP

<?php
namespace App\Admin\Renderable;
use App\Admin\Actions\Grid\DrawActivityPrizeStockChange;
use App\Admin\Repositories\DrawActivityPrize;
use App\Models\DrawActivity;
use Dcat\Admin\Admin;
use Dcat\Admin\Grid;
use Dcat\Admin\Grid\LazyRenderable;
class DrawActivityPrizeTable extends LazyRenderable
{
public function grid(): Grid
{
$drawActivity = DrawActivity::findOrFail($this->payload['draw_activity_id'] ?? 0);
return Grid::make(new DrawActivityPrize(), function (Grid $grid) use ($drawActivity) {
$grid->setResource("draw-activities/{$drawActivity->id}/prizes");
$grid->model()->where('draw_activity_id', $drawActivity->id)->orderBy('sort', 'desc');
$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('weight', '权重');
$grid->column('stock', '库存')->display(function ($stock) {
if ($this->limited) {
return $stock;
}
return '不限';
});
$grid->column('winnings', '中奖数量');
$grid->column('sort', '排序');
$grid->disableRefreshButton();
if (! $drawActivity->isPublished() && Admin::user()->can('dcat.admin.draw_activities.prize_create')) {
$grid->enableDialogCreate();
$grid->showCreateButton();
}
$grid->actions(function (Grid\Displayers\Actions $actions) use ($drawActivity) {
if (! $drawActivity->isClosed() && Admin::user()->can('dcat.admin.draw_activities.prize_edit')) {
$actions->quickEdit(true);
}
if (! $drawActivity->isPublished() && Admin::user()->can('dcat.admin.draw_activities.prize_delete')) {
$actions->disableDelete(false);
}
if (! $drawActivity->isClosed() && $drawActivity->isPublished() && Admin::user()->can('dcat.admin.draw_activities.prize_stock')) {
$actions->append(new DrawActivityPrizeStockChange());
}
});
});
}
}