CardController.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Models\Card;
  4. use App\Models\Shop;
  5. use App\Repositories\Enums\ModelStatusEnum;
  6. use App\Repositories\Enums\OrderStatusEnum;
  7. use App\Repositories\Enums\OrderTypeEnum;
  8. use Dcat\Admin\Form;
  9. use Dcat\Admin\Grid;
  10. use Dcat\Admin\Http\Controllers\AdminController;
  11. use Illuminate\Support\Arr;
  12. class CardController extends AdminController
  13. {
  14. protected $title = '卡卷管理';
  15. protected function grid()
  16. {
  17. return Grid::make(new Card(), function (Grid $grid) {
  18. // 这里的字段会自动使用翻译文件
  19. $grid->model()->orderByDesc('id');
  20. $grid->column('id')->sortable();
  21. $grid->column('name', '名字');
  22. $grid->column('time', '时长');
  23. $grid->column('shop_id', '店铺')->display(function ($val) {
  24. if ($val) {
  25. return Shop::query()->where('id', $val)->value('name');
  26. }
  27. return '全部';
  28. });
  29. $grid->column('money', '价格');
  30. $grid->column('status', '状态')->using(ModelStatusEnum::toSelectArray());
  31. $grid->actions(function (Grid\Displayers\Actions $action) {
  32. $action->disableView();
  33. });
  34. $grid->filter(function (Grid\Filter $filter) {
  35. $filter->equal('id');
  36. $filter->like('name', '名字');
  37. $filter->in('type', '订单类型')->multipleSelect(OrderTypeEnum::toSelectArray());
  38. $filter->in('status', '状态')->multipleSelect(OrderStatusEnum::toSelectArray());
  39. });
  40. });
  41. }
  42. protected function form()
  43. {
  44. return Form::make(new Card(), function (Form $form) {
  45. $form->text('name', '名字');
  46. $form->number('time', '时长');
  47. $shops = Shop::query()->where('status', ModelStatusEnum::OK)->pluck('name', 'id')->toArray();
  48. $shops = Arr::prepend($shops, '全部', 0);
  49. $form->select('shop_id', '店铺')->options($shops);
  50. $form->decimal('money', '售价');
  51. $form->number('discount', '折扣')->default(100);
  52. $form->datetime('valid_time', '活动截止时间');
  53. $form->select('status', '状态')->options(ModelStatusEnum::toSelectArray())->default(ModelStatusEnum::OK);
  54. });
  55. }
  56. }