Pārlūkot izejas kodu

Merge branch 'iteration-20231220'

lex 1 gadu atpakaļ
vecāks
revīzija
af573ef1de
1 mainītis faili ar 66 papildinājumiem un 59 dzēšanām
  1. 66 59
      src/pc/App.tsx

+ 66 - 59
src/pc/App.tsx

@@ -1,70 +1,77 @@
-import { computed, defineComponent, onBeforeMount } from "vue";
+import { computed, defineComponent, onBeforeMount, onMounted } from "vue";
 import { RouterView, useRoute } from "vue-router";
 import TheError from "../components/The-error";
 import { setUserInfo, storeData } from "../store";
 import { getQuery } from "../utils/queryString";
 import { studentQueryUserInfo, teacherQueryUserInfo } from "./api";
-import {
-	GlobalThemeOverrides,
-	NConfigProvider,
-	NDialogProvider,
-	NMessageProvider,
-	NNotificationProvider,
-	darkTheme,
-} from "naive-ui";
+import { GlobalThemeOverrides, NConfigProvider, NDialogProvider, NMessageProvider, NNotificationProvider, darkTheme } from "naive-ui";
 import { browser, lighten, setToken } from "../utils";
 import { showToast } from "vant";
 
 export default defineComponent({
-	name: "App",
-	setup() {
-		const appTheme = "#198CFE";
-		const lightenStr = lighten(appTheme, 6);
-		const themeOverrides: GlobalThemeOverrides = {
-			common: {
-				primaryColor: appTheme,
-				primaryColorHover: lightenStr,
-				primaryColorPressed: lightenStr,
-			},
-			LoadingBar: {
-				colorLoading: appTheme,
-			},
-		};
-		const query: any = getQuery();
-		/** 获取用户信息 */
-		const getUserInfo = async () => {
-			if (storeData.platformType === "TEACHER") {
-				return await teacherQueryUserInfo();
-			}
-			return await studentQueryUserInfo();
-		};
-		const setUser = async () => {
-			const res = await getUserInfo();
-			const info = res?.data || {};
-			setUserInfo(info);
-			// console.log("🚀 ~ res:", res);
-		};
-		onBeforeMount(() => {
-			if (query.Authorization) {
-				setToken(query.Authorization);
-			}
-			setUser();
-			sessionStorage.setItem('SCRIPT_ERROR', '0');
-		});
+  name: "App",
+  setup() {
+    const appTheme = "#198CFE";
+    const lightenStr = lighten(appTheme, 6);
+    const themeOverrides: GlobalThemeOverrides = {
+      common: {
+        primaryColor: appTheme,
+        primaryColorHover: lightenStr,
+        primaryColorPressed: lightenStr,
+      },
+      LoadingBar: {
+        colorLoading: appTheme,
+      },
+    };
+    const query: any = getQuery();
+    /** 获取用户信息 */
+    const getUserInfo = async () => {
+      if (storeData.platformType === "TEACHER") {
+        return await teacherQueryUserInfo();
+      }
+      return await studentQueryUserInfo();
+    };
+    const setUser = async () => {
+      const res = await getUserInfo();
+      const info = res?.data || {};
+      setUserInfo(info);
+      // console.log("🚀 ~ res:", res);
+    };
+    onBeforeMount(() => {
+      if (query.Authorization) {
+        setToken(query.Authorization);
+      }
+      setUser();
+      sessionStorage.setItem("SCRIPT_ERROR", "0");
+    });
 
-		const inited = computed(() => {
-			return storeData.status === "login" || query.dev;
-		});
-		return () => (
-			<NConfigProvider inlineThemeDisabled themeOverrides={themeOverrides} abstract>
-				<NDialogProvider>
-					<NNotificationProvider>
-						<NMessageProvider max={1} theme={darkTheme.Message}>
-							{storeData.status === "error" ? <TheError /> : inited.value ? <RouterView /> : null}
-						</NMessageProvider>
-					</NNotificationProvider>
-				</NDialogProvider>
-			</NConfigProvider>
-		);
-	},
+    onMounted(() => {
+      // 禁用右键菜单
+      document.addEventListener("contextmenu", function (event) {
+        event.preventDefault();
+      });
+      // 禁用浏览器快捷键
+      document.addEventListener("keydown", function (event) {
+        // 屏蔽 F12 和 Ctrl+Shift+I
+        if (event.key === "F12" || (event.ctrlKey && event.shiftKey && event.key === "I") || (event.metaKey && event.altKey && event.key === "I")) {
+          event.preventDefault();
+        }
+      });
+    });
+
+    const inited = computed(() => {
+      return storeData.status === "login" || query.dev;
+    });
+    return () => (
+      <NConfigProvider inlineThemeDisabled themeOverrides={themeOverrides} abstract>
+        <NDialogProvider>
+          <NNotificationProvider>
+            <NMessageProvider max={1} theme={darkTheme.Message}>
+              {storeData.status === "error" ? <TheError /> : inited.value ? <RouterView /> : null}
+            </NMessageProvider>
+          </NNotificationProvider>
+        </NDialogProvider>
+      </NConfigProvider>
+    );
+  },
 });