ReportController.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace Tests\Controllers;
  3. use App\Http\Controllers\Controller;
  4. use Dcat\Admin\Grid;
  5. use Dcat\Admin\Layout\Content;
  6. use Tests\Repositories\Report;
  7. class ReportController extends Controller
  8. {
  9. public function index(Content $content)
  10. {
  11. return $content
  12. ->header('报表')
  13. ->body($this->grid());
  14. }
  15. protected function grid()
  16. {
  17. $grid = new Grid(new Report());
  18. // 开启responsive插件
  19. $grid->responsive();
  20. $grid->disableActions();
  21. $grid->disableBatchDelete();
  22. $grid->disableCreateButton();
  23. $grid->rowSelector()->style('success')->click();
  24. $grid->combine('avgCost', ['avgMonthCost', 'avgQuarterCost', 'avgYearCost'])->responsive()->help('test');
  25. $grid->combine('avgVist', ['avgMonthVist', 'avgQuarterVist', 'avgYearVist'])->responsive();
  26. $grid->combine('top', ['topCost', 'topVist', 'topIncr'])->responsive()->style('color:#1867c0');
  27. $grid->content->limit(50)->responsive();
  28. $grid->cost->sortable()->responsive();
  29. $grid->avgMonthCost->responsive();
  30. $grid->avgQuarterCost->responsive()->setHeaderAttributes(['style' => 'color:#5b69bc']);
  31. $grid->avgYearCost->responsive();
  32. $grid->avgMonthVist->responsive();
  33. $grid->avgQuarterVist->responsive();
  34. $grid->avgYearVist->responsive();
  35. $grid->incrs->hide();
  36. $grid->avgVists->hide();
  37. $grid->topCost->responsive();
  38. $grid->topVist->responsive();
  39. $grid->topIncr->responsive();
  40. $grid->date->sortable()->responsive();
  41. $grid->filter(function (Grid\Filter $filter) {
  42. $filter->scope(1, admin_trans_field('month'))->where('date', 2019, '<=');
  43. $filter->scope(2, admin_trans_label('quarter'))->where('date', 2019, '<=');
  44. $filter->scope(3, admin_trans_label('year'))->where('date', 2019, '<=');
  45. $filter->equal('content');
  46. $filter->equal('cost');
  47. });
  48. return $grid;
  49. }
  50. }