GiftRecordController.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Repositories\GiftRecord;
  4. use Dcat\Admin\Form;
  5. use Dcat\Admin\Grid;
  6. use Dcat\Admin\Show;
  7. use Dcat\Admin\Http\Controllers\AdminController;
  8. use App\Admin\Renderable\GiftTable; // 筛选表格弹框
  9. class GiftRecordController extends AdminController
  10. {
  11. /**
  12. * Make a grid builder.
  13. *
  14. * @return Grid
  15. */
  16. protected function grid()
  17. {
  18. return Grid::make(new GiftRecord(['account','gift.attire']), function (Grid $grid) {
  19. $grid->column('id');
  20. $grid->column('account.uid','用户UID');
  21. $grid->column('account.avatar','用户头像')->image(config("filesystems.disks.cosv5.url"), 60, 60);
  22. $grid->column('account.username','用户名称')->display(function($v) {
  23. return "<a href='/admin/accounts?id={$this->account_id}' target='_blank'>{$v}</a>";
  24. });
  25. $grid->column('gift.type','礼品类型')->using(['','礼劵','装扮'])->label();
  26. // $grid->column('attire_id');
  27. $grid->column('gift.attire.name', '装扮名称');
  28. $grid->column('gift.attire.img_1', '礼品图片')->display(function($v) {
  29. if($this->gift->type == 1) {
  30. return "<img src='".\Storage::disk('cosv5')->url($this->gift->img)."' style='height:60px;width:auto;' />";
  31. } else {
  32. return "<img src='".\Storage::disk('cosv5')->url($v)."' style='height:60px;width:auto;' />";
  33. }
  34. });
  35. $grid->column('gift.attire.cate', '装扮类别');
  36. $grid->column('gift_id');
  37. $grid->column('num');
  38. $grid->column('cost_paster');
  39. $grid->column('created_at');
  40. // $grid->column('updated_at')->sortable();
  41. //
  42. $grid->model()->orderByDesc("id");
  43. $grid->disableActions();
  44. $grid->disableBatchDelete();
  45. $grid->disableRefreshButton();
  46. $grid->disableCreateButton();
  47. $grid->disableRowSelector();
  48. // $grid->simplePaginate();
  49. $grid->paginate(15);
  50. $grid->addTableClass(['table-text-center']);
  51. // $grid->disableToolbar();
  52. $grid->filter(function ($filter) {
  53. // 展开过滤器
  54. $filter->panel();
  55. $filter->expand();
  56. $filter->where('aid', function ($query) {
  57. $query->whereHas('account', function ($query) {
  58. $query->where('uid', $this->input);
  59. });
  60. }, '用户UID')->width(2);
  61. // $filter->equal('attire.cate', '类别')->select($this->cates)->width(2); // 设置编辑数据显示
  62. $filter->equal('account_id','用户名')->select(\App\Models\Account::pluck('username','id'))->width(2);
  63. $filter->equal('gift_id', '礼品ID')
  64. ->selectTable(GiftTable::make()) // 设置渲染类实例,并传递自定义参数
  65. ->title('礼品列表')
  66. ->dialogWidth('50%') // 弹窗宽度,默认 800px
  67. ->model(\App\Models\Gift::class, 'id', 'id')->width(2); // 设置编辑数据显示
  68. });
  69. });
  70. }
  71. /**
  72. * Make a show builder.
  73. *
  74. * @param mixed $id
  75. *
  76. * @return Show
  77. */
  78. protected function detail($id)
  79. {
  80. return Show::make($id, new GiftRecord(), function (Show $show) {
  81. $show->field('id');
  82. $show->field('account_id');
  83. $show->field('gift_id');
  84. $show->field('cost_pastera');
  85. $show->field('created_at');
  86. $show->field('updated_at');
  87. });
  88. }
  89. /**
  90. * Make a form builder.
  91. *
  92. * @return Form
  93. */
  94. protected function form()
  95. {
  96. return Form::make(new GiftRecord(), function (Form $form) {
  97. $form->display('id');
  98. $form->text('account_id');
  99. $form->text('gift_id');
  100. $form->text('cost_pastera');
  101. $form->display('created_at');
  102. $form->display('updated_at');
  103. });
  104. }
  105. }