liyongli 3 місяців тому
батько
коміт
a7e2530ffa
5 змінених файлів з 33 додано та 11 видалено
  1. 1 3
      sdk/adList.js
  2. 0 0
      sdk/adList.min.js
  3. 8 1
      src/router/index.ts
  4. 13 0
      src/views/ErrorPage.vue
  5. 11 7
      src/views/LoginPage.vue

+ 1 - 3
sdk/adList.js

@@ -223,9 +223,7 @@ document.addEventListener('DOMContentLoaded', function () {
 
       // 脚本加载完成后的回调函数
       script.onload = function () {
-        var randomBytes = CryptoJS.lib.WordArray.random(16)
-        const text = randomBytes.toString(CryptoJS.SHA256(str).toString())
-        resolve(text)
+        resolve(CryptoJS.SHA256(str).toString())
       }
 
       // 脚本加载失败的处理

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
sdk/adList.min.js


+ 8 - 1
src/router/index.ts

@@ -2,6 +2,7 @@ import { createRouter, createWebHistory } from 'vue-router'
 import type { menu } from '@/types/Tool'
 
 import SkeletonPage from '@/views/SkeletonPage.vue'
+import ErrorPage from '@/views/ErrorPage.vue'
 
 const router = createRouter({
   history: createWebHistory(import.meta.env.BASE_URL),
@@ -80,6 +81,12 @@ const router = createRouter({
     },
   ],
 })
+// 添加一个用于 404 页面的路由
+router.addRoute({
+  path: '/:catchAll(.*)', // 匹配所有未匹配的路由
+  name: 'NotFound',
+  component: ErrorPage,
+})
 
 const checkAuth = (list: menu[], path: string): menu => {
   let out: menu = {}
@@ -99,7 +106,7 @@ const checkAuth = (list: menu[], path: string): menu => {
 // 路由卫士
 router.beforeEach((to, from, next) => {
   // 如果是登录页面,直接放行
-  if (to.path === '/login') return next()
+  if (to.name === 'NotFound' || to.path === '/login') return next()
   const token = localStorage.getItem('token')
   const {
     role: { menus },

+ 13 - 0
src/views/ErrorPage.vue

@@ -0,0 +1,13 @@
+<!-- 推广广告位列表 -->
+<template>
+  <el-empty :description="key" />
+</template>
+
+<script setup lang="ts">
+import { ref } from 'vue'
+import { useRoute } from 'vue-router'
+const route = useRoute()
+const key = ref<string>((route.query.key as string) || '走丢了')
+</script>
+
+<style></style>

+ 11 - 7
src/views/LoginPage.vue

@@ -17,17 +17,21 @@ if (query) {
   getUserDetail().then(({ data }) => {
     localStorage.setItem('phone', data.phone || '')
     localStorage.setItem('user', JSON.stringify(data))
-    const path = data.role.menus
-      ? data.role.menus[0].path !== '-1'
-        ? data.role.menus[0].path
-        : data.role.menus[0].children[0].path
-      : ''
+    const path =
+      data.role.menus && data.role.menus.length
+        ? data.role.menus[0].path !== '-1'
+          ? data.role.menus[0].path
+          : data.role.menus[0].children[0].path
+        : ''
 
-    if (path === '')
-      return ElMessage({
+    if (path === '') {
+      ElMessage({
         message: '暂无权限',
         type: 'warning',
       })
+      router.replace('error?key=暂无权限')
+      return
+    }
     router.replace(path)
   })
 }

Деякі файли не було показано, через те що забагато файлів було змінено