ny
昨天 282fbc6488f4e8ceb5fda759f963ee88fbf7b999
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<script lang="ts" setup>
import type { TabOption } from '@vben/types';
 
import { computed, ref } from 'vue';
 
import { AnalysisChartCard, AnalysisChartsTabs } from '@vben/common-ui';
 
import { useBaseStore } from '#/store';
 
import AnalyticsTrends from './analytics-trends.vue';
import AnalyticsVisitsData from './analytics-visits-data.vue';
import AnalyticsVisitsSales from './analytics-visits-sales.vue';
import AnalyticsVisitsSource from './analytics-visits-source.vue';
import AnalyticsVisits from './analytics-visits.vue';
import GrowCard from './grow-card.vue';
 
const chartTabs: TabOption[] = [
  {
    label: '流量趋势',
    value: 'trends',
  },
  {
    label: '月访问量',
    value: 'visits',
  },
];
const loading = ref(true);
const baseStore = useBaseStore();
 
const getSysConfig = computed(() => baseStore.getSysConfig);
 
setTimeout(() => {
  loading.value = false;
}, 500);
</script>
 
<template>
  <div class="home-default-container">
    <GrowCard :loading="loading" class="enter-y" />
    <AnalysisChartsTabs :tabs="chartTabs" class="enter-y !my-[10px]" :loading="loading">
      <template #trends>
        <AnalyticsTrends />
      </template>
      <template #visits>
        <AnalyticsVisits />
      </template>
    </AnalysisChartsTabs>
    <div class="enter-y w-full md:flex">
      <AnalysisChartCard class="mt-[10px] md:mr-[10px] md:mt-0 md:w-1/3" title="访问数量" :loading="loading">
        <AnalyticsVisitsData />
      </AnalysisChartCard>
      <AnalysisChartCard class="mt-[10px] md:mr-[10px] md:mt-0 md:w-1/3" title="访问来源" :loading="loading">
        <AnalyticsVisitsSource />
      </AnalysisChartCard>
      <AnalysisChartCard class="mt-[10px] md:mt-0 md:w-1/3" title="成交占比" :loading="loading">
        <AnalyticsVisitsSales />
      </AnalysisChartCard>
    </div>
    <p class="copyright enter-y">{{ getSysConfig?.copyright }}</p>
  </div>
</template>
 
<style lang="scss" scoped>
.home-default-container {
  position: relative;
  height: 100%;
  overflow: hidden auto;
 
  .card-box,
  .bg-card {
    border: unset;
  }
 
  .copyright {
    padding: 20px 0 10px;
    font-size: 14px;
    color: #999;
    text-align: center;
  }
}
</style>