index.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. import type { App } from 'vue'
  2. // import { install } from '@icon-park/vue-next/es/all'
  3. import { System, Check, MenuFoldOne, MenuUnfoldOne, Logout, SettingTwo } from '@icon-park/vue-next'
  4. import ElementPlus from 'element-plus'
  5. import 'element-plus/dist/index.css'
  6. import * as ElementPlusIconsVue from '@element-plus/icons-vue'
  7. import 'xe-utils'
  8. import {
  9. VxeIcon,
  10. VxeLoading,
  11. // VxeGrid,
  12. VxeTooltip,
  13. // VxeToolbar,
  14. // VxePager,
  15. // VxeForm,
  16. // VxeFormItem,
  17. // VxeFormGather,
  18. // VxeCheckbox,
  19. // VxeCheckboxGroup,
  20. // VxeRadio,
  21. // VxeRadioGroup,
  22. // VxeRadioButton,
  23. // VxeSwitch,
  24. // VxeInput,
  25. // VxeSelect,
  26. // VxeOptgroup,
  27. // VxeOption,
  28. // VxeTextarea,
  29. VxeButton,
  30. // VxeButtonGroup,
  31. VxeModal
  32. // VxeDrawer,
  33. // VxeList,
  34. // VxePulldown
  35. } from 'vxe-pc-ui'
  36. import {
  37. VxeUI,
  38. VXETable,
  39. VxeTable,
  40. VxeColumn,
  41. VxeColgroup,
  42. // VxeGrid,
  43. VxeToolbar
  44. } from 'vxe-table'
  45. import VxeUIPluginRenderElement from '@vxe-ui/plugin-render-element'
  46. import '@vxe-ui/plugin-render-element/dist/style.css'
  47. import 'vxe-table/styles/cssvar.scss'
  48. import 'vxe-pc-ui/styles/cssvar.scss'
  49. // 导入默认的语言
  50. import zhCN from 'vxe-pc-ui/lib/language/zh-CN'
  51. import '@/utils/tableFormat'
  52. // import WujieVue from 'wujie-vue3'
  53. // import * as Sentry from '@sentry/vue'
  54. const modules = import.meta.glob('./form/*.vue', { eager: true })
  55. function LazyVxeUI(app: any) {
  56. app.use(VxeIcon)
  57. app.use(VxeLoading)
  58. // app.use(VxeVxeGrid)
  59. app.use(VxeTooltip)
  60. // app.use(VxeToolbar)
  61. // app.use(VxePager)
  62. // app.use(VxeForm)
  63. // app.use(VxeFormItem)
  64. // app.use(VxeFormGather)
  65. // app.use(VxeCheckbox)
  66. // app.use(VxeCheckboxGroup)
  67. // app.use(VxeRadio)
  68. // app.use(VxeRadioGroup)
  69. // app.use(VxeRadioButton)
  70. // app.use(VxeSwitch)
  71. // app.use(VxeInput)
  72. // app.use(VxeSelect)
  73. // app.use(VxeOptgroup)
  74. // app.use(VxeOption)
  75. // app.use(VxeTextarea)
  76. app.use(VxeButton)
  77. // app.use(VxeButtonGroup)
  78. app.use(VxeModal)
  79. // app.use(VxeDrawer)
  80. // app.use(VxeList)
  81. // app.use(VxePulldown)
  82. }
  83. function LazyVxeTable(app: any) {
  84. app.use(VxeTable)
  85. app.use(VxeColumn)
  86. app.use(VxeColgroup)
  87. // app.use(VxeGrid)
  88. app.use(VxeToolbar)
  89. }
  90. function registerComponent(app: App): void {
  91. // icon-park
  92. app.component('icon-system', System)
  93. app.component('icon-check', Check)
  94. app.component('icon-menu-fold-one', MenuFoldOne)
  95. app.component('icon-menu-unfold-one', MenuUnfoldOne)
  96. app.component('icon-logout', Logout)
  97. app.component('icon-setting-two', SettingTwo)
  98. // install(app)
  99. // element-plus
  100. app.use(ElementPlus)
  101. for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  102. app.component(key, component)
  103. }
  104. // vxe-table
  105. VXETable.setI18n('zh-CN', zhCN)
  106. VXETable.setLanguage('zh-CN')
  107. VxeUI.use(VxeUIPluginRenderElement)
  108. app.use(LazyVxeUI)
  109. app.use(LazyVxeTable)
  110. // 动态注册form文件夹下的组件
  111. for (const key in modules) {
  112. const name = key.replace(/^\.\/form\/|\.vue/g, '')
  113. const component = (modules[key] as any).default
  114. app.component('El' + name, component)
  115. }
  116. // 微服务 wujie
  117. // app.use(WujieVue)
  118. // 监控 sentry
  119. // import.meta.env.VITE_SENTRY_DSN &&
  120. // Sentry.init({
  121. // app,
  122. // dsn: import.meta.env.VITE_SENTRY_DSN,
  123. // integrations: [Sentry.browserTracingIntegration(), Sentry.replayIntegration()],
  124. // tracesSampleRate: 1.0,
  125. // tracePropagationTargets: [],
  126. // replaysSessionSampleRate: 0.1,
  127. // replaysOnErrorSampleRate: 1.0
  128. // })
  129. }
  130. export default registerComponent