链街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.

96 lines
3.0 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(2);
  42. $filter->in('store_id','店铺名称')->multipleSelect($storeList)->width(3);
  43. $filter->equal('store_ids','店铺ID')->width(3);
  44. });
  45. $grid->tools([
  46. new DataReportOption('today','store_new_user','今日'),
  47. new DataReportOption('yesterday','store_new_user','昨日'),
  48. new DataReportOption('this_week','store_new_user','本周'),
  49. new DataReportOption('last_week','store_new_user','上周'),
  50. new DataReportOption('this_month','store_new_user','本月'),
  51. new DataReportOption('last_month','store_new_user','上月')
  52. ]);
  53. // 每页10条
  54. $grid->paginate(10);
  55. });
  56. }
  57. /**
  58. * Make a show builder.
  59. *
  60. * @param mixed $id
  61. *
  62. * @return Show
  63. */
  64. protected function detail($id)
  65. {
  66. return Show::make($id, new StoreUserReport(), function (Show $show) {
  67. $show->id;
  68. $show->market_id;
  69. $show->name;
  70. $show->mm_user_id;
  71. });
  72. }
  73. /**
  74. * Make a form builder.
  75. *
  76. * @return Form
  77. */
  78. protected function form()
  79. {
  80. return Form::make(new StoreUserReport(), function (Form $form) {
  81. $form->display('id');
  82. $form->text('market_id');
  83. $form->text('name');
  84. $form->text('mm_user_id');
  85. });
  86. }
  87. }