main.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. if (location.search && authLoadNum !== '1') {
  17. const parse = location.search.substring(1, location.search.length);
  18. const result = parseQuery(parse);
  19. if (result.Authorization) {
  20. const ex = 7 * 24 * 60 * 60 * 1000;
  21. storage.set(ACCESS_TOKEN_ADMIN, result.Authorization, ex);
  22. sessionStorage.setItem('authLoadNum', '1');
  23. sessionStorage.setItem('authSource', result.source?.toString() || '');
  24. }
  25. console.log(result, 'result');
  26. } else {
  27. sessionStorage.removeItem('authLoadNum');
  28. storage.remove(ACCESS_TOKEN_ADMIN);
  29. }
  30. // app loading
  31. // const appLoading = createApp(AppLoading);
  32. // appLoading.mount('#appLoading');
  33. const app = createApp(App);
  34. setupNaive(app);
  35. // store plugin: pinia
  36. setupStore(app);
  37. setupRouter(app);
  38. dayjs.locale('zh-ch');
  39. // app.use(router);
  40. await router.isReady();
  41. // 监听错误信息
  42. const errorLog = useErrorLog();
  43. errorLog.startListenErrorLog();
  44. // mount app
  45. app.mount('#app');
  46. }
  47. setupApp();