223 lines
3.5 KiB
TypeScript
223 lines
3.5 KiB
TypeScript
import './assets/main.css'
|
|
|
|
import { createApp } from 'vue'
|
|
import { createPinia } from 'pinia'
|
|
import App from './App.vue'
|
|
import router from './router'
|
|
import i18n from './i18n'
|
|
import { useUserStore } from '@/stores/user'
|
|
|
|
import '@/assets/fonts/优设标题黑.ttf'
|
|
import '@/assets/fonts/AlimamaShuHeiTi-Bold.ttf'
|
|
import '@/assets/fonts/文道潮黑.ttf'
|
|
import '@/assets/fonts/庞门正道标题体3.0.ttf'
|
|
import '@/assets/fonts/DouyinSansBold.otf'
|
|
import '@/assets/fonts/Alibaba_PuHuiTi_2.0_55_Regular_85_Bold.ttf'
|
|
|
|
// ECharts 全局注册
|
|
import VChart from 'vue-echarts'
|
|
import { use } from 'echarts/core'
|
|
import { CanvasRenderer } from 'echarts/renderers'
|
|
import { LineChart, BarChart, PieChart, ScatterChart } from 'echarts/charts'
|
|
import {
|
|
TitleComponent,
|
|
TooltipComponent,
|
|
LegendComponent,
|
|
GridComponent,
|
|
DataZoomComponent,
|
|
GraphicComponent
|
|
} from 'echarts/components'
|
|
|
|
// 注册 ECharts 组件
|
|
use([
|
|
CanvasRenderer,
|
|
LineChart,
|
|
BarChart,
|
|
PieChart,
|
|
ScatterChart,
|
|
TitleComponent,
|
|
TooltipComponent,
|
|
LegendComponent,
|
|
GridComponent,
|
|
DataZoomComponent,
|
|
GraphicComponent
|
|
])
|
|
|
|
// Naive UI
|
|
import {
|
|
create,
|
|
NButton,
|
|
NCard,
|
|
NLayout,
|
|
NLayoutHeader,
|
|
NLayoutContent,
|
|
NLayoutSider,
|
|
NLayoutFooter,
|
|
NMenu,
|
|
NSpace,
|
|
NGrid,
|
|
NGridItem,
|
|
NAvatar,
|
|
NDropdown,
|
|
NBreadcrumb,
|
|
NBreadcrumbItem,
|
|
NInput,
|
|
NInputGroup,
|
|
NInputNumber,
|
|
NForm,
|
|
NFormItem,
|
|
NSelect,
|
|
NDatePicker,
|
|
NTimePicker,
|
|
NCheckbox,
|
|
NRadio,
|
|
NRadioGroup,
|
|
NSwitch,
|
|
NSlider,
|
|
NRate,
|
|
NUpload,
|
|
NTransfer,
|
|
NTable,
|
|
NDataTable,
|
|
NPagination,
|
|
NTabs,
|
|
NTabPane,
|
|
NCollapse,
|
|
NCollapseItem,
|
|
NTree,
|
|
NModal,
|
|
NDrawer,
|
|
NPopover,
|
|
NTooltip,
|
|
NAlert,
|
|
NProgress,
|
|
NSpin,
|
|
NSkeleton,
|
|
NEmpty,
|
|
NResult,
|
|
NStatistic,
|
|
NTag,
|
|
NBadge,
|
|
NIcon,
|
|
NDivider,
|
|
NBackTop,
|
|
NAffix,
|
|
NCalendar,
|
|
NColorPicker,
|
|
NDescriptions,
|
|
NDescriptionsItem,
|
|
NList,
|
|
NListItem,
|
|
NThing,
|
|
NSteps,
|
|
NStep,
|
|
NTimeline,
|
|
NTimelineItem,
|
|
NMessageProvider,
|
|
NDialogProvider,
|
|
NPopselect
|
|
} from 'naive-ui'
|
|
|
|
|
|
const naive = create({
|
|
components: [
|
|
NButton,
|
|
NCard,
|
|
NLayout,
|
|
NLayoutHeader,
|
|
NLayoutContent,
|
|
NLayoutSider,
|
|
NLayoutFooter,
|
|
NMenu,
|
|
NSpace,
|
|
NGrid,
|
|
NGridItem,
|
|
NAvatar,
|
|
NDropdown,
|
|
NBreadcrumb,
|
|
NBreadcrumbItem,
|
|
NInput,
|
|
NInputGroup,
|
|
NInputNumber,
|
|
NForm,
|
|
NFormItem,
|
|
NSelect,
|
|
NDatePicker,
|
|
NTimePicker,
|
|
NCheckbox,
|
|
NRadio,
|
|
NRadioGroup,
|
|
NSwitch,
|
|
NSlider,
|
|
NRate,
|
|
NUpload,
|
|
NTransfer,
|
|
NTable,
|
|
NDataTable,
|
|
NPagination,
|
|
NTabs,
|
|
NTabPane,
|
|
NCollapse,
|
|
NCollapseItem,
|
|
NTree,
|
|
NModal,
|
|
NDrawer,
|
|
NPopover,
|
|
NTooltip,
|
|
NAlert,
|
|
NProgress,
|
|
NSpin,
|
|
NSkeleton,
|
|
NEmpty,
|
|
NResult,
|
|
NStatistic,
|
|
NTag,
|
|
NBadge,
|
|
NIcon,
|
|
NDivider,
|
|
NBackTop,
|
|
NAffix,
|
|
NCalendar,
|
|
NColorPicker,
|
|
NDescriptions,
|
|
NDescriptionsItem,
|
|
NList,
|
|
NListItem,
|
|
NThing,
|
|
NSteps,
|
|
NStep,
|
|
NTimeline,
|
|
NTimelineItem,
|
|
NMessageProvider,
|
|
NDialogProvider,
|
|
NPopselect
|
|
]
|
|
})
|
|
|
|
const app = createApp(App)
|
|
const pinia = createPinia()
|
|
|
|
app.use(pinia)
|
|
app.use(router)
|
|
app.use(i18n)
|
|
app.use(naive)
|
|
|
|
// 全局注册 VChart 组件
|
|
app.component('v-chart', VChart)
|
|
|
|
// 初始化用户认证状态
|
|
const userStore = useUserStore()
|
|
|
|
// 异步初始化认证状态
|
|
const initializeApp = async () => {
|
|
try {
|
|
await userStore.initializeAuth()
|
|
} catch (error) {
|
|
console.error('初始化认证状态失败:', error)
|
|
} finally {
|
|
app.mount('#app')
|
|
}
|
|
}
|
|
|
|
initializeApp()
|