189 lines
2.8 KiB
TypeScript
189 lines
2.8 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'
|
|
|
|
// 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,
|
|
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,
|
|
NPopselect
|
|
]
|
|
})
|
|
|
|
const app = createApp(App)
|
|
const pinia = createPinia()
|
|
|
|
app.use(pinia)
|
|
app.use(router)
|
|
app.use(i18n)
|
|
app.use(naive)
|
|
|
|
// 初始化用户认证状态
|
|
const userStore = useUserStore()
|
|
|
|
// 异步初始化认证状态
|
|
const initializeApp = async () => {
|
|
try {
|
|
await userStore.initializeAuth()
|
|
} catch (error) {
|
|
console.error('初始化认证状态失败:', error)
|
|
} finally {
|
|
app.mount('#app')
|
|
}
|
|
}
|
|
|
|
initializeApp()
|