链街Dcat后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
2.9 KiB

5 years ago
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Actions\Grid\v3\DataReportOption;
  4. use App\Admin\Repositories\StoreUserReport;
  5. use Dcat\Admin\Form;
  6. use Dcat\Admin\Grid;
  7. use Dcat\Admin\Show;
  8. use Dcat\Admin\Controllers\AdminController;
  9. use App\Models\v3\Market as MarketModel;
  10. use App\Models\StoreAccount as StoreAccountModel;
  11. use App\Models\v3\Store as StoreModel;
  12. class StoreUserReportController extends AdminController
  13. {
  14. /**
  15. * Make a grid builder.
  16. *
  17. * @return Grid
  18. */
  19. protected function grid()
  20. {
  21. return Grid::make(new StoreUserReport(), function (Grid $grid) {
  22. $grid->disableCreateButton();
  23. $grid->disableDeleteButton();
  24. $grid->disableEditButton();
  25. $grid->disableQuickEditButton();
  26. $grid->disableViewButton();
  27. $grid->disableActions();
  28. $grid->disableRowSelector();
  29. $marketList = MarketModel::getMarketArray();
  30. $storeList = StoreModel::getStoreArray();
  31. $grid->store_id;
  32. $grid->market_id->display(function ($marketId) use($marketList){
  33. return $marketList[$marketId] ?? '';
  34. });
  35. $grid->store_name->width('25%');
  36. $grid->new_total;
  37. $grid->filter(function (Grid\Filter $filter) use($marketList,$storeList){
  38. $filter->panel();
  39. $filter->equal('start_time','开始时间')->date()->width(2);
  40. $filter->equal('end_time','结束时间')->date()->width(2);
  41. $filter->equal('market_id')->select($marketList)->width(3);
  42. $filter->in('store_id','店铺名称')->multipleSelect($storeList)->width(4);
  43. });
  44. $grid->tools([
  45. new DataReportOption('today','store_new_user','今日'),
  46. new DataReportOption('yesterday','store_new_user','昨日'),
  47. new DataReportOption('this_week','store_new_user','本周'),
  48. new DataReportOption('last_week','store_new_user','上周'),
  49. new DataReportOption('this_month','store_new_user','本月'),
  50. new DataReportOption('last_month','store_new_user','上月')
  51. ]);
  52. // 每页10条
  53. $grid->paginate(10);
  54. });
  55. }
  56. /**
  57. * Make a show builder.
  58. *
  59. * @param mixed $id
  60. *
  61. * @return Show
  62. */
  63. protected function detail($id)
  64. {
  65. return Show::make($id, new StoreUserReport(), function (Show $show) {
  66. $show->id;
  67. $show->market_id;
  68. $show->name;
  69. $show->mm_user_id;
  70. });
  71. }
  72. /**
  73. * Make a form builder.
  74. *
  75. * @return Form
  76. */
  77. protected function form()
  78. {
  79. return Form::make(new StoreUserReport(), function (Form $form) {
  80. $form->display('id');
  81. $form->text('market_id');
  82. $form->text('name');
  83. $form->text('mm_user_id');
  84. });
  85. }
  86. }