lex-xin 3 år sedan
förälder
incheckning
7b98bcfdc4
6 ändrade filer med 39 tillägg och 47 borttagningar
  1. 1 0
      package.json
  2. 6 23
      src/App.vue
  3. 1 2
      src/helpers/request.ts
  4. 1 17
      src/pages/login/index.tsx
  5. 5 5
      src/permission.ts
  6. 25 0
      yarn.lock

+ 1 - 0
package.json

@@ -17,6 +17,7 @@
     "js-cookie": "^3.0.1",
     "mitt": "^3.0.0",
     "nprogress": "^0.2.0",
+    "query-string": "^7.1.1",
     "umi-request": "^1.4.0",
     "vue": "^3.2.25",
     "vue-qr": "^3.2.4",

+ 6 - 23
src/App.vue

@@ -1,29 +1,12 @@
 <script setup lang="ts">
 // This starter template is using Vue 3 <script setup> SFCs
 // Check out https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup
-import { ElMessage } from "element-plus";
-const getQueryVariable = (variable: string) => {
-  if (window.location.hash.indexOf("?") < 0) {
-    return null;
-  }
-  let query = window.location.hash.split("?")[1];
-  let vars = query.split("&");
-  for (let i = 0; i < vars.length; i++) {
-    let pair = vars[i].split("=");
-    if (pair[0] == variable) {
-      return pair[1];
-    }
-  }
-  return false;
-};
-const roomUid =
-  getQueryVariable("roomUid") || sessionStorage.getItem("roomUid");
-
-if (!roomUid) {
-  ElMessage.error("房间不存在");
-} else {
-  sessionStorage.setItem("roomUid", roomUid);
-}
+import qs from 'query-string'
+const parseSearch: any = qs.parse(location.search)
+const hashSearch = location.href.split('#/')[1]
+const hashParams = qs.parse(hashSearch.split('?')[1])
+const roomUid: string = parseSearch.roomUid || hashParams.roomUid || ''
+sessionStorage.setItem('roomUid', roomUid)
 </script>
 
 <template>

+ 1 - 2
src/helpers/request.ts

@@ -76,8 +76,7 @@ request.interceptors.response.use(async (res, options) => {
       if(!hideMessage) {
         ElMessage.error(`登录过期,请重新登录!`)
       }
-      const url = window.location.href.split('#')[0]
-      router.push(`/login?redirect=${url}`)
+      router.push(`/login`)
     }
     if(data.code === 404) {
       if(!hideMessage) {

+ 1 - 17
src/pages/login/index.tsx

@@ -9,14 +9,6 @@ import FromBg from './images/from-bg.png'
 
 export default defineComponent({
   data() {
-    // const validateUsername = (rule: any, value: any, callback: () => void) => {
-    //   if (!value) {
-    //     // @ts-ignore
-    //     callback(new Error("请输入手机号"));
-    //   } else {
-    //     callback();
-    //   }
-    // }
     const validatePassword = (rule: any, value: string | any[], callback: () => void) => {
       if (value.length < 6) {
         // @ts-ignore
@@ -80,13 +72,6 @@ export default defineComponent({
         if (valid) {
           try {
             // 根据手机号获取学生信息
-            // export const checkStudentPhone = (data) => request2({
-            //   url: '/api-web/studentManage/queryUserByPhone',
-            //   method: 'get',
-            //   params: data,
-            //   hideLoading: true
-            // })
-            // /auth-server/user/queryUserByPhone
             const resPhone: any = await request('/api-auth/user/queryClient', {
               params: {
                 phone: loginForm.username
@@ -110,7 +95,6 @@ export default defineComponent({
               }
             })
             let token: string = res?.data.authentication.token_type + ' ' + res?.data.authentication.access_token;
-            console.log(token);
             setToken(token)
 
             const roomUid = sessionStorage.getItem('roomUid')
@@ -119,7 +103,7 @@ export default defineComponent({
                 roomUid: roomUid
               }
             })
-          
+
             sessionStorage.setItem('details',JSON.stringify(details.data))
             ElMessage.success('登录成功')
             this.$router.push(this.redirect || '/')

+ 5 - 5
src/permission.ts

@@ -4,8 +4,9 @@ import request from '/src/helpers/request'
 import { ElMessage } from "element-plus";
 import { state } from "./state";
 // import NProgress from "nprogress"; // progress bar
-import "nprogress/nprogress.css"; // progress bar style
+// import "nprogress/nprogress.css"; // progress bar style
 import { getToken, removeToken } from "./utils/auth";
+import qs from 'query-string'
 // import getPageTitle from '@/utils/get-page-title'
 
 // NProgress.configure({ showSpinner: false }); // NProgress Configuration
@@ -19,7 +20,7 @@ router.beforeEach(async (to, from, next) => {
   const hasToken = getToken();
   if (hasToken) {
     if (to.path === "/login") {
-      // 如果有tonken直接跳转到首页
+      // 如果有token直接跳转到首页
       next({ path: "/" });
 
       // NProgress.done();
@@ -46,8 +47,7 @@ router.beforeEach(async (to, from, next) => {
             ElMessage.error(error.msg);
           }
           removeToken();
-          // ?redirect=${to.fullPath}
-          next(`/login`);
+          next(`/login?${qs.stringify(to.query)}`);
           // NProgress.done();
         }
       }
@@ -59,7 +59,7 @@ router.beforeEach(async (to, from, next) => {
       next();
     } else {
       // other pages that do not have permission to access are redirected to the login page.
-      next(`/login?redirect=${to.fullPath}`);
+      next(`/login?${qs.stringify(to.query)}`);
       // NProgress.done();
     }
   }

+ 25 - 0
yarn.lock

@@ -2350,6 +2350,11 @@ fill-range@^7.0.1:
   dependencies:
     to-regex-range "^5.0.1"
 
+filter-obj@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.npmmirror.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b"
+  integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==
+
 for-in@^1.0.2:
   version "1.0.2"
   resolved "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -3671,6 +3676,16 @@ query-string@^4.3.2:
     object-assign "^4.1.0"
     strict-uri-encode "^1.0.0"
 
+query-string@^7.1.1:
+  version "7.1.1"
+  resolved "https://registry.npmmirror.com/query-string/-/query-string-7.1.1.tgz#754620669db978625a90f635f12617c271a088e1"
+  integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==
+  dependencies:
+    decode-uri-component "^0.2.0"
+    filter-obj "^1.1.0"
+    split-on-first "^1.0.0"
+    strict-uri-encode "^2.0.0"
+
 queue-microtask@^1.2.2:
   version "1.2.3"
   resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@@ -4016,6 +4031,11 @@ sourcemap-codec@^1.4.4:
   resolved "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
   integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
 
+split-on-first@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.npmmirror.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
+  integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
+
 split-string@^3.0.1, split-string@^3.0.2:
   version "3.1.0"
   resolved "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
@@ -4041,6 +4061,11 @@ strict-uri-encode@^1.0.0:
   resolved "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
   integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==
 
+strict-uri-encode@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
+  integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==
+
 "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3:
   version "4.2.3"
   resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"