OrderController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Models\Order;
  4. use Dcat\Admin\Form;
  5. use Dcat\Admin\Grid;
  6. use Dcat\Admin\Show;
  7. use Dcat\Admin\Http\Controllers\AdminController;
  8. class OrderController extends AdminController
  9. {
  10. /**
  11. * Make a grid builder.
  12. *
  13. * @return Grid
  14. */
  15. protected function grid()
  16. {
  17. return Grid::make(new Order(), function (Grid $grid) {
  18. $grid->model()->with(['userData', 'orderData'])->orderByDesc('id');
  19. $grid->column('id')->sortable();
  20. $grid->column('userData.name', '昵称');
  21. $grid->column('userData.mobile', '手机号');
  22. $grid->column('orderData.title', '商品名称');
  23. $grid->column('state')->using([0 => '待支付', 1 => '已支付', 2 => '支付失败'])
  24. ->dot(
  25. [
  26. 0 => 'danger',
  27. 1 => 'success',
  28. 2 => 'primary',
  29. ],
  30. 'danger' // 第二个参数为默认值
  31. );
  32. $grid->column('order');
  33. $grid->column('wx_order');
  34. $grid->column('amount');
  35. $grid->column('diamond');
  36. $grid->column('pay_at', '支付时间');
  37. $grid->column('created_at');
  38. $grid->column('updated_at')->sortable();
  39. $grid->quickSearch(['order', 'wx_order'])->placeholder('搜索...');
  40. $grid->filter(function (Grid\Filter $filter) {
  41. $filter->panel();
  42. $filter->between('created_at')->datetime();
  43. $filter->equal('state')->select([0 => '待支付', 1 => '已支付', 2 => '支付失败']);
  44. $filter->where('mobile', function ($query) {
  45. $query->whereHas('userData', function ($query) {
  46. $query->where('mobile', 'like', "%{$this->input}%");
  47. });
  48. }, '用户手机号');
  49. });
  50. $grid->disableViewButton();
  51. $grid->disableCreateButton();
  52. $grid->disableEditButton();
  53. $grid->disableDeleteButton();
  54. });
  55. }
  56. /**
  57. * Make a show builder.
  58. *
  59. * @return Show
  60. */
  61. protected function detail($id)
  62. {
  63. return Show::make($id, new Order(), function (Show $show) {
  64. $show->field('id');
  65. $show->field('user_id');
  66. $show->field('state');
  67. $show->field('order');
  68. $show->field('wx_order');
  69. $show->field('amount');
  70. $show->field('diamond');
  71. $show->field('pay_at');
  72. $show->field('pay');
  73. $show->field('isPost');
  74. $show->field('config_id');
  75. $show->field('created_at');
  76. $show->field('updated_at');
  77. });
  78. }
  79. /**
  80. * Make a form builder.
  81. *
  82. * @return Form
  83. */
  84. protected function form()
  85. {
  86. return Form::make(new Order(), function (Form $form) {
  87. $form->display('id');
  88. $form->text('user_id');
  89. $form->text('state');
  90. $form->text('order');
  91. $form->text('wx_order');
  92. $form->text('amount');
  93. $form->text('diamond');
  94. $form->text('pay_at');
  95. $form->text('pay');
  96. $form->text('isPost');
  97. $form->text('config_id');
  98. $form->display('created_at');
  99. $form->display('updated_at');
  100. });
  101. }
  102. }