You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
1.4 KiB
80 lines
1.4 KiB
// 引入unocss css |
|
import '@/plugins/unocss' |
|
|
|
// 导入全局的svg图标 |
|
import '@/plugins/svgIcon' |
|
|
|
// 初始化多语言 |
|
import { setupI18n } from '@/plugins/vueI18n' |
|
|
|
// 引入状态管理 |
|
import { setupStore } from '@/store' |
|
|
|
// 全局组件 |
|
import { setupGlobCom } from '@/components' |
|
|
|
// 引入 element-plus |
|
import { setupElementPlus } from '@/plugins/elementPlus' |
|
|
|
// 引入 form-create |
|
import { setupFormCreate } from '@/plugins/formCreate' |
|
|
|
// 引入全局样式 |
|
import '@/styles/index.scss' |
|
|
|
// 引入动画 |
|
import '@/plugins/animate.css' |
|
|
|
// 路由 |
|
import router, { setupRouter } from '@/router' |
|
|
|
// 指令 |
|
import { setupAuth, setupMountedFocus } from '@/directives' |
|
|
|
import { createApp } from 'vue' |
|
|
|
import App from './App.vue' |
|
|
|
import './permission' |
|
|
|
import '@/plugins/tongji' // 百度统计 |
|
import Logger from '@/utils/Logger' |
|
|
|
import VueDOMPurifyHTML from 'vue-dompurify-html' // 解决v-html 的安全隐患 |
|
|
|
import elementIcon from "./plugins/icons" |
|
|
|
|
|
// 创建实例 |
|
const setupAll = async () => { |
|
const app = createApp(App) |
|
|
|
await setupI18n(app) |
|
|
|
setupStore(app) |
|
|
|
setupGlobCom(app) |
|
|
|
setupElementPlus(app) |
|
|
|
setupFormCreate(app) |
|
|
|
setupRouter(app) |
|
|
|
|
|
// directives 指令 |
|
setupAuth(app) |
|
setupMountedFocus(app) |
|
|
|
await router.isReady() |
|
|
|
app.use(VueDOMPurifyHTML) |
|
|
|
app.use(elementIcon) |
|
|
|
app.mount('#app') |
|
} |
|
|
|
setupAll() |
|
|
|
Logger.prettyPrimary(`欢迎使用`, import.meta.env.VITE_APP_TITLE)
|
|
|