MetricsController.php 4.1 KB

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