App.tsx 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import { computed, defineComponent, onBeforeMount } from "vue";
  2. import { RouterView, useRoute } from "vue-router";
  3. import TheError from "../components/The-error";
  4. import { setUserInfo, storeData } from "../store";
  5. import { getQuery } from "../utils/queryString";
  6. import { studentQueryUserInfo, teacherQueryUserInfo } from "./api";
  7. import {
  8. GlobalThemeOverrides,
  9. NConfigProvider,
  10. NDialogProvider,
  11. NMessageProvider,
  12. NNotificationProvider,
  13. darkTheme,
  14. } from "naive-ui";
  15. import { browser, lighten, setToken } from "../utils";
  16. import { showToast } from "vant";
  17. export default defineComponent({
  18. name: "App",
  19. setup() {
  20. const appTheme = "#198CFE";
  21. const lightenStr = lighten(appTheme, 6);
  22. const themeOverrides: GlobalThemeOverrides = {
  23. common: {
  24. primaryColor: appTheme,
  25. primaryColorHover: lightenStr,
  26. primaryColorPressed: lightenStr,
  27. },
  28. LoadingBar: {
  29. colorLoading: appTheme,
  30. },
  31. };
  32. const query: any = getQuery();
  33. /** 获取用户信息 */
  34. const getUserInfo = async () => {
  35. if (storeData.platformType === "TEACHER") {
  36. return await teacherQueryUserInfo();
  37. }
  38. return await studentQueryUserInfo();
  39. };
  40. const setUser = async () => {
  41. const res = await getUserInfo();
  42. const info = res?.data || {};
  43. setUserInfo(info);
  44. // console.log("🚀 ~ res:", res);
  45. };
  46. onBeforeMount(() => {
  47. if (query.Authorization) {
  48. setToken(query.Authorization);
  49. }
  50. setUser();
  51. sessionStorage.setItem('SCRIPT_ERROR', '0');
  52. });
  53. const inited = computed(() => {
  54. return storeData.status === "login" || query.dev;
  55. });
  56. return () => (
  57. <NConfigProvider inlineThemeDisabled themeOverrides={themeOverrides} abstract>
  58. <NDialogProvider>
  59. <NNotificationProvider>
  60. <NMessageProvider max={1} theme={darkTheme.Message}>
  61. {storeData.status === "error" ? <TheError /> : inited.value ? <RouterView /> : null}
  62. </NMessageProvider>
  63. </NNotificationProvider>
  64. </NDialogProvider>
  65. </NConfigProvider>
  66. );
  67. },
  68. });