main.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import './styles/tailwind.css';
  2. import { createApp } from 'vue';
  3. import App from './App.vue';
  4. import router, { setupRouter } from './router';
  5. import { setupStore } from '@/store';
  6. import { setupDirectives, setupNaive } from '@/plugins';
  7. import { AppProvider } from '@/components/Application';
  8. import Websocket from '@/utils/websocket';
  9. import { storage } from '@/utils/Storage';
  10. import { ACCESS_TOKEN } from '@/store/mutation-types';
  11. function getQueryParams() {
  12. const params = new URLSearchParams(window.location.search);
  13. // 获取 access-token 的值
  14. return params.get('access-token');
  15. }
  16. async function bootstrap() {
  17. const appProvider = createApp(AppProvider);
  18. const app = createApp(App);
  19. setupNaive(app);
  20. setupDirectives(app);
  21. setupStore(app);
  22. appProvider.mount('#appProvider', true);
  23. // 调用函数获取查询参数
  24. const accessToken = getQueryParams();
  25. // console.log('====accessToken:', accessToken);
  26. if (accessToken !== '' && accessToken !== null) {
  27. storage.set(ACCESS_TOKEN, accessToken);
  28. }
  29. await setupRouter(app);
  30. await router.isReady();
  31. const onMessageList: Array<Function> = [];
  32. app.provide('onMessageList', onMessageList);
  33. const onMessage = (event: any) => {
  34. onMessageList.forEach((f) => {
  35. f.call(null, event);
  36. });
  37. };
  38. app.config.globalProperties.$websocket = Websocket(onMessage);
  39. app.mount('#app', true);
  40. }
  41. void bootstrap();