MetricsController.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. namespace App\Module\Admin\AdminControllers;
  3. use App\Http\Controllers\Controller;
  4. use Dcat\Admin\Http\Controllers\Dashboard;
  5. use Dcat\Admin\Layout\Column;
  6. use Dcat\Admin\Layout\Content;
  7. use Dcat\Admin\Layout\Row;
  8. use Spatie\RouteAttributes\Attributes\Get;
  9. use UCore\DcatAdmin\AdminController;
  10. use UCore\DcatAdmin\Metrics\Examples\Link;
  11. use UCore\DcatAdmin\Metrics\Examples\NewDevices;
  12. use UCore\DcatAdmin\Metrics\Examples\Number;
  13. use UCore\DcatAdmin\Metrics\Examples\Number1;
  14. use UCore\DcatAdmin\Metrics\Examples\NumberS;
  15. use UCore\DcatAdmin\Metrics\Examples\NumberS2;
  16. use UCore\DcatAdmin\Metrics\Examples\ProductOrders;
  17. use UCore\DcatAdmin\Metrics\Examples\Sessions;
  18. use UCore\DcatAdmin\Metrics\Examples\Tickets;
  19. use UCore\DcatAdmin\Metrics\Examples\TotalUsers;
  20. use UCore\DcatAdmin\Metrics\Examples\TreeMap;
  21. use UCore\DcatAdmin\Metrics\User\NewUsers;
  22. /**
  23. * 图表演示
  24. */
  25. class MetricsController extends AdminController
  26. {
  27. #[Get('admin/metrics')]
  28. public function index(Content $content)
  29. {
  30. return $content
  31. ->header('图表演示')
  32. ->description('图表演示...')
  33. ->body(function (Row $row) {
  34. $row->column(6, function (Column $column) {
  35. // 仪表板标题
  36. $column->row(Dashboard::title());
  37. // 环形图 + 4个数字统计 - 展示环形进度图和底部统计数据
  38. $column->row(new Tickets());
  39. // $column->row(new TreeMap());// TreeMap是坏的
  40. // 多数字统计卡片(横向排列)- 显示多个数值指标,如数额、交易额等
  41. $column->row(new NumberS2());
  42. // 折线图卡片 - 展示新用户趋势,支持时间范围选择
  43. $column->row( new \UCore\DcatAdmin\Metrics\Examples\NewUsers());
  44. });
  45. $row->column(6, function (Column $column) {
  46. $column->row(function (Row $row) {
  47. // 链接卡片 - 跳转到演示页面
  48. $row->column(12,new Link('HomeDemo',admin_url('/demo_full')));
  49. // 新用户折线图 - 显示用户增长趋势,带时间筛选
  50. $row->column(6, new NewUsers());
  51. // 设备类型圆环图 - 展示桌面端和移动端用户比例
  52. $row->column(6, new NewDevices());
  53. // 总用户数统计卡片 - 显示主数字和变化趋势
  54. $row->column(6, new TotalUsers());
  55. // 多行数字统计卡片(纵向排列)- 显示多个数值指标
  56. $row->column('6',NumberS::make());
  57. // 简单数字卡片 - 仅显示标题和一个数字
  58. $row->column(6,Number1::make());
  59. // 数字卡片 - 显示标题和数字,字体较大
  60. $row->column(6,Number::make());
  61. });
  62. // 平均在线统计 - 大号数值 + 趋势 + 柱状图
  63. $column->row(new Sessions());
  64. // 订单比例图 - 左侧三个数值,右侧三环比例图,展示各状态订单分布
  65. $column->row(new ProductOrders());
  66. });
  67. });
  68. }
  69. #[Get('admin/metrics2')]
  70. public function metrics2(Content $content)
  71. {
  72. return $content
  73. ->header('图表演示')
  74. ->description('图表演示...')
  75. ->body(function (Row $row) {
  76. $row->column(6, function (Column $column) {
  77. // 多线折线图 - 展示多条数据线的趋势对比,支持时间范围选择
  78. // 适用于对比不同指标或不同时期的数据变化趋势
  79. $column->row( new \UCore\DcatAdmin\Metrics\Examples\NewUsersDou());
  80. });
  81. });
  82. }
  83. }