main.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  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 { ossUpload } from '@/utils/utils'
  58. // import WujieVue from 'wujie-vue3'
  59. function useTable(app: any) {
  60. // 表格功能
  61. app.use(Filter).use(Edit).use(Menu).use(Export).use(Keyboard).use(Validator)
  62. // 可选组件
  63. app
  64. .use(Icon)
  65. .use(Column)
  66. .use(Colgroup)
  67. // .use(Grid)
  68. .use(Tooltip)
  69. .use(Toolbar)
  70. .use(Pager)
  71. // .use(Form)
  72. // .use(FormItem)
  73. // .use(FormGather)
  74. .use(Checkbox)
  75. .use(CheckboxGroup)
  76. .use(Radio)
  77. .use(RadioGroup)
  78. .use(RadioButton)
  79. .use(Switch)
  80. .use(Input)
  81. .use(Select)
  82. .use(Optgroup)
  83. .use(Option)
  84. // .use(Textarea)
  85. .use(Button)
  86. .use(Modal)
  87. // .use(List)
  88. // .use(Pulldown)
  89. // 安装表格
  90. .use(Table)
  91. // 给 vue 实例挂载内部对象,例如:
  92. // app.config.globalProperties.$XModal = VXETable.modal
  93. // app.config.globalProperties.$XPrint = VXETable.print
  94. // app.config.globalProperties.$XSaveFile = VXETable.saveFile
  95. // app.config.globalProperties.$XReadFile = VXETable.readFile
  96. }
  97. const app = createApp(App)
  98. app.use(createPinia())
  99. app.use(router)
  100. app.use(ElementPlus)
  101. app.use(useTable)
  102. app.use(FsAdminCore, {
  103. upload: {
  104. oss: true,
  105. ossHost: '',
  106. ossUpload,
  107. baseApi: import.meta.env.VITE_BASE_API
  108. }
  109. })
  110. // app.use(WujieVue)
  111. app.use(directives)
  112. registerComponent(app)
  113. for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  114. app.component(key, component)
  115. }
  116. // install(app)
  117. import.meta.env.VITE_SENTRY_DSN &&
  118. Sentry.init({
  119. app,
  120. dsn: import.meta.env.VITE_SENTRY_DSN,
  121. integrations: [Sentry.browserTracingIntegration(), Sentry.replayIntegration()],
  122. tracesSampleRate: 1.0,
  123. tracePropagationTargets: [],
  124. replaysSessionSampleRate: 0.1,
  125. replaysOnErrorSampleRate: 1.0
  126. })
  127. app.mount('#app')