2024-03-08 17:59:45 +08:00
|
|
|
<script setup lang="ts">
|
2024-03-21 10:57:53 +08:00
|
|
|
import { computed } from 'vue';
|
|
|
|
import { useAppStore } from '@/store/modules/app';
|
2024-03-08 17:59:45 +08:00
|
|
|
import HeaderBanner from './modules/header-banner.vue';
|
|
|
|
import CardData from './modules/card-data.vue';
|
|
|
|
import LineChart from './modules/line-chart.vue';
|
|
|
|
import PieChart from './modules/pie-chart.vue';
|
|
|
|
import ProjectNews from './modules/project-news.vue';
|
|
|
|
import CreativityBanner from './modules/creativity-banner.vue';
|
2024-03-21 10:57:53 +08:00
|
|
|
|
|
|
|
const appStore = useAppStore();
|
|
|
|
|
|
|
|
const gap = computed(() => (appStore.isMobile ? 0 : 16));
|
2024-03-08 17:59:45 +08:00
|
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
2024-03-21 10:57:53 +08:00
|
|
|
<NSpace vertical :size="16">
|
2024-03-08 17:59:45 +08:00
|
|
|
<HeaderBanner />
|
|
|
|
<CardData />
|
2024-03-21 10:57:53 +08:00
|
|
|
<NGrid :x-gap="gap" :y-gap="16" responsive="screen" item-responsive>
|
|
|
|
<NGi span="24 s:24 m:14">
|
|
|
|
<NCard :bordered="false" class="card-wrapper">
|
|
|
|
<LineChart />
|
|
|
|
</NCard>
|
|
|
|
</NGi>
|
|
|
|
<NGi span="24 s:24 m:10">
|
|
|
|
<NCard :bordered="false" class="card-wrapper">
|
|
|
|
<PieChart />
|
|
|
|
</NCard>
|
|
|
|
</NGi>
|
|
|
|
</NGrid>
|
|
|
|
<NGrid :x-gap="gap" :y-gap="16" responsive="screen" item-responsive>
|
|
|
|
<NGi span="24 s:24 m:14">
|
2024-03-08 17:59:45 +08:00
|
|
|
<ProjectNews />
|
2024-03-21 10:57:53 +08:00
|
|
|
</NGi>
|
|
|
|
<NGi span="24 s:24 m:10">
|
2024-03-08 17:59:45 +08:00
|
|
|
<CreativityBanner />
|
2024-03-21 10:57:53 +08:00
|
|
|
</NGi>
|
|
|
|
</NGrid>
|
|
|
|
</NSpace>
|
2024-03-08 17:59:45 +08:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<style scoped></style>
|