main.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { createApp, watchEffect } from 'vue'
  2. import './style.scss'
  3. import App from './app.vue'
  4. import Components from 'bill/index'
  5. import router from './router'
  6. import { appStyleImport, appType, params } from '@/env'
  7. import { addHook, addUnsetTokenURLS, delHook, delUnsetTokenURLS } from '@/api'
  8. import { currentLayout, RoutesName } from './router';
  9. import * as URL from '@/api/constant'
  10. const app = createApp(App)
  11. app.use(Components)
  12. app.use(router)
  13. app.mount('#app')
  14. if (import.meta.env.DEV) {
  15. import('@/hook/notice')
  16. }
  17. appStyleImport[params.app]()
  18. watchEffect((onCleanup) => {
  19. if ([RoutesName.show, RoutesName.signModel].includes(currentLayout.value!)) {
  20. const untokenURLS = params.share
  21. ? [
  22. URL.FUSE_MODEL_LIST,
  23. URL.MODEL_LIST,
  24. URL.GET_SETTING,
  25. URL.TAGGING_LIST,
  26. URL.TAGGING_POINT_LIST,
  27. URL.TAGGING_STYLE_LIST,
  28. URL.MESASURE_LIST,
  29. URL.GUIDE_LIST,
  30. URL.GUIDE_PATH_LIST,
  31. URL.RECORD_LIST,
  32. URL.RECORD_FRAGMENT_LIST,
  33. URL.VIEW_LIST,
  34. URL.FOLDER_TYPE_LIST,
  35. URL.FLODER_LIST,
  36. URL.MODEL_SIGN,
  37. URL.CASE_INFO,
  38. URL.AUTH_PWD
  39. ]
  40. : [URL.AUTH_PWD]
  41. const apiHook = {
  42. before(config: any) {
  43. if (config.headers) {
  44. config.headers.share = '1'
  45. } else {
  46. config.headers = { share: '1' }
  47. }
  48. }
  49. }
  50. addHook(apiHook)
  51. addUnsetTokenURLS(...untokenURLS)
  52. onCleanup(() => {
  53. delHook(apiHook)
  54. delUnsetTokenURLS(...untokenURLS)
  55. })
  56. }
  57. }, { flush: 'sync' })
  58. export default app