main.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import { createApp } from 'vue';
  2. import App from './App';
  3. import router, { parseQuery, setupRouter } from './router/index';
  4. import dayjs from 'dayjs';
  5. import { setupNaive } from './plugins';
  6. import { setupStore } from './store';
  7. import 'dayjs/locale/zh-cn';
  8. import './styles/index.less';
  9. import './utils/rem';
  10. import { storage } from './utils/storage';
  11. import { ACCESS_TOKEN_ADMIN } from './store/mutation-types';
  12. import useErrorLog from './hooks/useErrorLog';
  13. async function setupApp() {
  14. // 处理token
  15. const authLoadNum = sessionStorage.getItem('authLoadNum');
  16. const search = location.href.split('??');
  17. if (search[1] && authLoadNum !== '1') {
  18. const parse = search[1];
  19. console.log(parse, 'parse');
  20. const result = parseQuery(parse);
  21. if (result.Authorization) {
  22. const ex = 7 * 24 * 60 * 60 * 1000;
  23. storage.set(ACCESS_TOKEN_ADMIN, result.Authorization, ex);
  24. sessionStorage.setItem('authLoadNum', '1');
  25. sessionStorage.setItem('authSource', result.source?.toString() || '');
  26. }
  27. console.log(result, 'result');
  28. } else {
  29. sessionStorage.removeItem('authLoadNum');
  30. storage.remove(ACCESS_TOKEN_ADMIN);
  31. }
  32. // app loading
  33. // const appLoading = createApp(AppLoading);
  34. // appLoading.mount('#appLoading');
  35. const app = createApp(App);
  36. setupNaive(app);
  37. // store plugin: pinia
  38. setupStore(app);
  39. setupRouter(app);
  40. dayjs.locale('zh-ch');
  41. // app.use(router);
  42. await router.isReady();
  43. // 监听错误信息
  44. const errorLog = useErrorLog();
  45. errorLog.startListenErrorLog();
  46. // mount app
  47. app.mount('#app');
  48. }
  49. setupApp();