index.vue 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <script lang="ts" setup>
  2. import type { AnalysisOverviewItem } from '@vben/common-ui';
  3. import type { TabOption } from '@vben/types';
  4. import {
  5. AnalysisChartCard,
  6. AnalysisChartsTabs,
  7. AnalysisOverview,
  8. } from '@vben/common-ui';
  9. import {
  10. SvgBellIcon,
  11. SvgCakeIcon,
  12. SvgCardIcon,
  13. SvgDownloadIcon,
  14. } from '@vben/icons';
  15. import AnalyticsTrends from './analytics-trends.vue';
  16. import AnalyticsVisits from './analytics-visits.vue';
  17. import AnalyticsVisitsData from './analytics-visits-data.vue';
  18. import AnalyticsVisitsSales from './analytics-visits-sales.vue';
  19. import AnalyticsVisitsSource from './analytics-visits-source.vue';
  20. const overviewItems: AnalysisOverviewItem[] = [
  21. {
  22. icon: SvgCardIcon,
  23. title: '用户量',
  24. totalTitle: '总用户量',
  25. totalValue: 120_000,
  26. value: 2000,
  27. },
  28. {
  29. icon: SvgCakeIcon,
  30. title: '访问量',
  31. totalTitle: '总访问量',
  32. totalValue: 500_000,
  33. value: 20_000,
  34. },
  35. {
  36. icon: SvgDownloadIcon,
  37. title: '下载量',
  38. totalTitle: '总下载量',
  39. totalValue: 120_000,
  40. value: 8000,
  41. },
  42. {
  43. icon: SvgBellIcon,
  44. title: '使用量',
  45. totalTitle: '总使用量',
  46. totalValue: 50_000,
  47. value: 5000,
  48. },
  49. ];
  50. const chartTabs: TabOption[] = [
  51. {
  52. label: '流量趋势',
  53. value: 'trends',
  54. },
  55. {
  56. label: '月访问量',
  57. value: 'visits',
  58. },
  59. ];
  60. </script>
  61. <template>
  62. <div class="p-5">
  63. <AnalysisOverview :items="overviewItems" />
  64. <AnalysisChartsTabs :tabs="chartTabs" class="mt-5">
  65. <template #trends>
  66. <AnalyticsTrends />
  67. </template>
  68. <template #visits>
  69. <AnalyticsVisits />
  70. </template>
  71. </AnalysisChartsTabs>
  72. <div class="mt-5 w-full md:flex">
  73. <AnalysisChartCard class="mt-5 md:mr-4 md:mt-0 md:w-1/3" title="访问数量">
  74. <AnalyticsVisitsData />
  75. </AnalysisChartCard>
  76. <AnalysisChartCard class="mt-5 md:mr-4 md:mt-0 md:w-1/3" title="访问来源">
  77. <AnalyticsVisitsSource />
  78. </AnalysisChartCard>
  79. <AnalysisChartCard class="mt-5 md:mt-0 md:w-1/3" title="访问来源">
  80. <AnalyticsVisitsSales />
  81. </AnalysisChartCard>
  82. </div>
  83. </div>
  84. </template>