ReportController.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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 Illuminate\Contracts\Support\Renderable;
  7. use Tests\Repositories\Report;
  8. class ReportController extends Controller
  9. {
  10. public function index(Content $content)
  11. {
  12. return $content->header('报表')->body($this->grid());
  13. }
  14. protected function grid()
  15. {
  16. $grid = new Grid(new Report());
  17. // 开启responsive插件
  18. $grid->responsive();
  19. $grid->disableActions();
  20. $grid->disableBatchDelete();
  21. $grid->disableCreateButton();
  22. $grid->setRowSelectorOptions(['style' => 'success', 'clicktr' => true]);
  23. // 更改表格外层容器
  24. $grid->wrap(function (Renderable $view) {
  25. return $view;
  26. });
  27. $grid->combine('avgCost', ['avgMonthCost', 'avgQuarterCost', 'avgYearCost'])->responsive()->help('test');
  28. $grid->combine('avgVist', ['avgMonthVist', 'avgQuarterVist', 'avgYearVist'])->responsive();
  29. $grid->combine('top', ['topCost', 'topVist', 'topIncr'])->responsive()->style('color:#1867c0');
  30. $grid->content->limit(50)->responsive();
  31. $grid->cost->sortable()->responsive();
  32. $grid->avgMonthCost->responsive();
  33. $grid->avgQuarterCost->responsive()->setHeaderAttributes(['style' => 'color:#5b69bc']);
  34. $grid->avgYearCost->responsive();
  35. $grid->avgMonthVist->responsive();
  36. $grid->avgQuarterVist->responsive();
  37. $grid->avgYearVist->responsive();
  38. $grid->incrs->hide();
  39. $grid->avgVists->hide();
  40. $grid->topCost->responsive();
  41. $grid->topVist->responsive();
  42. $grid->topIncr->responsive();
  43. $grid->date->sortable()->responsive();
  44. $grid->filter(function (Grid\Filter $filter) {
  45. $filter->scope(1, admin_trans_field('month'))->where('date', 2019, '<=');
  46. $filter->scope(2, admin_trans_label('quarter'))->where('date', 2019, '<=');
  47. $filter->scope(3, admin_trans_label('year'))->where('date', 2019, '<=');
  48. $filter->equal('content');
  49. $filter->equal('cost');
  50. });
  51. return $grid;
  52. }
  53. }