main.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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 { 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. watchEffect((onCleanup) => {
  15. if ([RoutesName.show, RoutesName.signModel].includes(currentLayout.value!)) {
  16. const untokenURLS = params.share
  17. ? [
  18. URL.FUSE_MODEL_LIST,
  19. URL.MODEL_LIST,
  20. URL.TAGGING_LIST,
  21. URL.TAGGING_POINT_LIST,
  22. URL.TAGGING_STYLE_LIST,
  23. URL.MESASURE_LIST,
  24. URL.GUIDE_LIST,
  25. URL.GUIDE_PATH_LIST,
  26. URL.RECORD_LIST,
  27. URL.RECORD_FRAGMENT_LIST,
  28. URL.VIEW_LIST,
  29. URL.FOLDER_TYPE_LIST,
  30. URL.FLODER_LIST,
  31. URL.MODEL_SIGN,
  32. URL.CASE_INFO
  33. ]
  34. : []
  35. const apiHook = {
  36. before(config: any) {
  37. const isShare = Number(params.share)
  38. if (config.headers) {
  39. config.headers.share = isShare
  40. } else {
  41. config.headers = { share: isShare }
  42. }
  43. }
  44. }
  45. addHook(apiHook)
  46. addUnsetTokenURLS(...untokenURLS)
  47. onCleanup(() => {
  48. delHook(apiHook)
  49. delUnsetTokenURLS(...untokenURLS)
  50. })
  51. }
  52. }, { flush: 'sync' })
  53. export default app