main.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. // 引入unocss css
  2. import '@/plugins/unocss'
  3. // 导入全局的svg图标
  4. import '@/plugins/svgIcon'
  5. // 初始化多语言
  6. import { setupI18n } from '@/plugins/vueI18n'
  7. // 引入状态管理
  8. import { setupStore } from '@/store'
  9. // 全局组件
  10. import { setupGlobCom } from '@/components'
  11. // 引入 element-plus
  12. import { setupElementPlus } from '@/plugins/elementPlus'
  13. // 引入 form-create
  14. import { setupFormCreate } from '@/plugins/formCreate'
  15. // 引入全局样式
  16. import '@/styles/index.scss'
  17. // 引入动画
  18. import '@/plugins/animate.css'
  19. // 路由
  20. import router, { setupRouter } from '@/router'
  21. // 权限
  22. import { setupAuth } from '@/directives'
  23. import { createApp } from 'vue'
  24. import App from './App.vue'
  25. import './permission'
  26. import '@/plugins/tongji' // 百度统计
  27. import Logger from '@/utils/Logger'
  28. import VueUeditorWrap from 'vue-ueditor-wrap'
  29. import VueDOMPurifyHTML from 'vue-dompurify-html' // 解决v-html 的安全隐患
  30. // 导入全局图片组件
  31. import AppImage from '@/components/common/AppImage.vue'
  32. // 导入图片处理指令
  33. import { setupImageDirective } from '@/directives/image'
  34. // 创建实例
  35. const setupAll = async () => {
  36. const app = createApp(App)
  37. app.use(VueUeditorWrap)
  38. await setupI18n(app)
  39. setupStore(app)
  40. setupGlobCom(app)
  41. setupElementPlus(app)
  42. setupFormCreate(app)
  43. setupRouter(app)
  44. setupAuth(app)
  45. // 注册全局图片组件
  46. app.component('AppImage', AppImage)
  47. // 注册图片处理指令
  48. setupImageDirective(app)
  49. await router.isReady()
  50. app.use(VueDOMPurifyHTML)
  51. app.mount('#app')
  52. }
  53. setupAll()
  54. Logger.prettyPrimary(`Tabemate Pro オーダーシステムへようこそ`)