main.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. import { createApp } from 'vue'
  2. import { createPinia } from 'pinia'
  3. import * as Sentry from '@sentry/vue'
  4. import 'uno.css'
  5. import ElementPlus from 'element-plus'
  6. import 'element-plus/dist/index.css'
  7. import * as ElementPlusIconsVue from '@element-plus/icons-vue'
  8. // import { install } from '@icon-park/vue-next/es/all'
  9. import registerComponent from '@/components/index'
  10. import directives from '@/directive'
  11. import 'xe-utils'
  12. import {
  13. // VXETable,
  14. Filter,
  15. Edit,
  16. Menu,
  17. Export,
  18. Keyboard,
  19. Validator,
  20. // 可选组件
  21. Icon,
  22. Column,
  23. Colgroup,
  24. // Grid,
  25. Tooltip,
  26. Toolbar,
  27. Pager,
  28. // Form,
  29. // FormItem,
  30. // FormGather,
  31. Checkbox,
  32. CheckboxGroup,
  33. Radio,
  34. RadioGroup,
  35. RadioButton,
  36. Switch,
  37. Input,
  38. Select,
  39. Optgroup,
  40. Option,
  41. // Textarea,
  42. Button,
  43. Modal,
  44. // List,
  45. // Pulldown,
  46. // 表格
  47. Table
  48. } from 'vxe-table'
  49. import 'vxe-table/styles/cssvar.scss'
  50. import '@/utils/tableFormat'
  51. import FsAdminCore from '@fskj-admin/core'
  52. import '@fskj-admin/core/lib/style.css'
  53. import App from './App.vue'
  54. import router from './router'
  55. import './assets/main.css'
  56. import 'virtual:svg-icons-register'
  57. import uploadConfig from './config/uploadConfig'
  58. // import { ossUpload } from '@/utils/utils'
  59. // import WujieVue from 'wujie-vue3'
  60. function useTable(app: any) {
  61. // 表格功能
  62. app.use(Filter).use(Edit).use(Menu).use(Export).use(Keyboard).use(Validator)
  63. // 可选组件
  64. app
  65. .use(Icon)
  66. .use(Column)
  67. .use(Colgroup)
  68. // .use(Grid)
  69. .use(Tooltip)
  70. .use(Toolbar)
  71. .use(Pager)
  72. // .use(Form)
  73. // .use(FormItem)
  74. // .use(FormGather)
  75. .use(Checkbox)
  76. .use(CheckboxGroup)
  77. .use(Radio)
  78. .use(RadioGroup)
  79. .use(RadioButton)
  80. .use(Switch)
  81. .use(Input)
  82. .use(Select)
  83. .use(Optgroup)
  84. .use(Option)
  85. // .use(Textarea)
  86. .use(Button)
  87. .use(Modal)
  88. // .use(List)
  89. // .use(Pulldown)
  90. // 安装表格
  91. .use(Table)
  92. // 给 vue 实例挂载内部对象,例如:
  93. // app.config.globalProperties.$XModal = VXETable.modal
  94. // app.config.globalProperties.$XPrint = VXETable.print
  95. // app.config.globalProperties.$XSaveFile = VXETable.saveFile
  96. // app.config.globalProperties.$XReadFile = VXETable.readFile
  97. }
  98. const app = createApp(App)
  99. app.use(createPinia())
  100. app.use(router)
  101. app.use(ElementPlus)
  102. app.use(useTable)
  103. app.use(FsAdminCore, {
  104. upload: uploadConfig
  105. })
  106. // app.use(WujieVue)
  107. app.use(directives)
  108. registerComponent(app)
  109. for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  110. app.component(key, component)
  111. }
  112. // install(app)
  113. import.meta.env.VITE_SENTRY_DSN &&
  114. Sentry.init({
  115. app,
  116. dsn: import.meta.env.VITE_SENTRY_DSN,
  117. integrations: [Sentry.browserTracingIntegration(), Sentry.replayIntegration()],
  118. tracesSampleRate: 1.0,
  119. tracePropagationTargets: [],
  120. replaysSessionSampleRate: 0.1,
  121. replaysOnErrorSampleRate: 1.0
  122. })
  123. app.mount('#app')