App.tsx 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import request from "umi-request";
  2. import { computed, defineComponent, onBeforeMount, onMounted } from "vue";
  3. import { RouterView } from "vue-router";
  4. import TheError from "../components/The-error";
  5. import { setUserInfo, storeData } from "../store";
  6. import { getRandomKey, getToken, setBehaviorId, setToken } from "../utils";
  7. import { getQuery } from "../utils/queryString";
  8. import Notfind from "../view/notfind";
  9. import { studentQueryUserInfo } from "./api";
  10. export default defineComponent({
  11. name: "App",
  12. setup() {
  13. const query: any = getQuery();
  14. /** 获取用户信息 */
  15. const getUserInfo = async () => {
  16. // if (storeData.platformType === "WEB") {
  17. // return await employeeQueryUserInfo();
  18. // } else if (storeData.platformType === "TEACHER") {
  19. // return await teacherQueryUserInfo();
  20. // }
  21. return await studentQueryUserInfo();
  22. };
  23. const setUser = async () => {
  24. const res = await getUserInfo();
  25. const student = res?.data || {};
  26. setUserInfo(student);
  27. // console.log("🚀 ~ res:", student);
  28. };
  29. onBeforeMount(() => {
  30. if (query.Authorization) {
  31. setToken(query.Authorization);
  32. }
  33. if (!getToken()) {
  34. const token = /(dev\.kt\.colexiu\.com|localhost)/gi.test(location.origin)
  35. ? "bearer 529d1359-20c6-4ea2-b2ba-2694cdeda8a4"
  36. : "bearer 3527f6b3-9953-41de-80f0-334dec910eac";
  37. setToken(token);
  38. }
  39. setUser();
  40. setBehaviorId(getRandomKey());
  41. });
  42. onMounted(() => {
  43. const _loading = document.getElementById("loading");
  44. _loading && document.body.removeChild(_loading);
  45. });
  46. const inited = computed(() => {
  47. return storeData.status === "login";
  48. });
  49. return () => (
  50. <>{storeData.status === "error" ? <TheError /> : inited.value ? <RouterView /> : null}</>
  51. );
  52. },
  53. });