Selaa lähdekoodia

feat: 架构完善

zhengnaiwen_citu 1 vuosi sitten
vanhempi
commit
b8c035c132
5 muutettua tiedostoa jossa 80 lisäystä ja 11 poistoa
  1. 5 5
      src/config/axios/service.js
  2. 26 0
      src/locales/en.js
  3. 27 1
      src/locales/zh-CN.js
  4. 10 0
      src/router/index.js
  5. 12 5
      src/utils/auth.js

+ 5 - 5
src/config/axios/service.js

@@ -3,7 +3,7 @@ import Snackbar from '@/plugins/snackbar'
 import Confirm from '@/plugins/confirm'
 import qs from 'qs'
 import { config } from '@/config/axios/config'
-import { getToken, getRefreshToken, getTenantId, setToken } from '@/utils/auth'
+import { getToken, getRefreshToken, getTenantId, removeToken, setToken } from '@/utils/auth'
 // import { getToken, getRefreshToken, getTenantId, removeToken, setToken } from '@/utils/auth'
 import errorCode from './errorCode'
 
@@ -127,7 +127,7 @@ service.interceptors.response.use(
         try {
           const refreshTokenRes = await refreshToken()
           // 2.1 刷新成功,则回放队列的请求 + 当前请求
-          setToken((await refreshTokenRes).data.data)
+          setToken(refreshTokenRes.data.data)
           config.headers.Authorization = 'Bearer ' + getToken()
           requestList.forEach((cb) => {
             cb()
@@ -166,7 +166,7 @@ service.interceptors.response.use(
         // hard coding:忽略这个提示,直接登出
         console.log(msg)
       } else {
-        Snackbar.error({ title: msg })
+        Snackbar.error(msg)
       }
       return Promise.reject('error')
     } else {
@@ -199,10 +199,10 @@ const handleAuthorized = () => {
       return
     }
     isRelogin.show = true
-    Confirm(t('sys.api.timeoutMessage'), t('common.confirmTitle')).then(() => {
+    Confirm(t('common.confirmTitle'), t('sys.api.timeoutMessage')).then(() => {
       // resetRouter() // 重置静态路由表
       // deleteUserCache() // 删除用户缓存
-      // removeToken()
+      removeToken()
       isRelogin.show = false
       // 干掉token后再走一次路由让它过router.beforeEach的校验
       location.reload()

+ 26 - 0
src/locales/en.js

@@ -1,5 +1,31 @@
 export default {
   common: {},
+  sys: {
+    api: {
+      operationFailed: 'Operation failed',
+      errorTip: 'Error Tip',
+      errorMessage: 'The operation failed, the system is abnormal!',
+      timeoutMessage: 'Login timed out, please log in again!',
+      apiTimeoutMessage: 'The interface request timed out, please refresh the page and try again!',
+      apiRequestFailed: 'The interface request failed, please try again later!',
+      networkException: 'network anomaly',
+      networkExceptionMsg:
+        'Please check if your network connection is normal! The network is abnormal',
+
+      errMsg401: 'The user does not have permission (token, user name, password error)!',
+      errMsg403: 'The user is authorized, but access is forbidden!',
+      errMsg404: 'Network request error, the resource was not found!',
+      errMsg405: 'Network request error, request method not allowed!',
+      errMsg408: 'Network request timed out!',
+      errMsg500: 'Server error, please contact the administrator!',
+      errMsg501: 'The network is not implemented!',
+      errMsg502: 'Network Error!',
+      errMsg503: 'The service is unavailable, the server is temporarily overloaded or maintained!',
+      errMsg504: 'Network timeout!',
+      errMsg505: 'The http version does not support the request!',
+      errMsg901: 'Demo mode, no write operations are possible!'
+    }
+  },
   login: {
     username: 'Username',
     password: 'Password',

+ 27 - 1
src/locales/zh-CN.js

@@ -1,5 +1,31 @@
 export default {
-  common: {},
+  common: {
+    confirmTitle: '系统提示'
+  },
+  sys: {
+    api: {
+      operationFailed: '操作失败',
+      errorTip: '错误提示',
+      errorMessage: '操作失败,系统异常!',
+      timeoutMessage: '登录超时,请重新登录!',
+      apiTimeoutMessage: '接口请求超时,请刷新页面重试!',
+      apiRequestFailed: '请求出错,请稍候重试',
+      networkException: '网络异常',
+      networkExceptionMsg: '网络异常,请检查您的网络连接是否正常!',
+      errMsg401: '用户没有权限(令牌、用户名、密码错误)!',
+      errMsg403: '用户得到授权,但是访问是被禁止的。!',
+      errMsg404: '网络请求错误,未找到该资源!',
+      errMsg405: '网络请求错误,请求方法未允许!',
+      errMsg408: '网络请求超时!',
+      errMsg500: '服务器错误,请联系管理员!',
+      errMsg501: '网络未实现!',
+      errMsg502: '网络错误!',
+      errMsg503: '服务不可用,服务器暂时过载或维护!',
+      errMsg504: '网络超时!',
+      errMsg505: 'http版本不支持该请求!',
+      errMsg901: '演示模式,无法进行写操作!'
+    }
+  },
   login: {
     username: '用户名',
     password: '密码',

+ 10 - 0
src/router/index.js

@@ -8,4 +8,14 @@ const router = createRouter({
   scrollBehavior: () => ({ left: 0, top: 0 })
 })
 
+// export const resetRouter = () => {
+//   const resetWhiteNameList = ['Redirect', 'Login', 'NoFind', 'Root']
+//   router.getRoutes().forEach((route) => {
+//     const { name } = route
+//     if (name && !resetWhiteNameList.includes(name)) {
+//       router.hasRoute(name) && router.removeRoute(name)
+//     }
+//   })
+// }
+
 export default router

+ 12 - 5
src/utils/auth.js

@@ -1,20 +1,27 @@
 // 获取token
 export const getToken = () => {
-  return localStorage.getItem('access_token')
+  return localStorage.getItem('ACCESS_TOKEN')
 }
 
 // 设置token
 export const setToken = (token) => {
-  return localStorage.setItem('access_token', token)
+  return localStorage.setItem('ACCESS_TOKEN', token)
 }
 
 // 清除token
 export const deleteToken = () => {
-  return localStorage.removeItem('access_token')
+  return localStorage.removeItem('ACCESS_TOKEN')
 }
 // ?
-export const getRefreshToken = () => {}
+export const getRefreshToken = () => {
+  return localStorage.getItem('REFRESH_TOKEN')
+}
 
 // 租户ID
-export const getTenantId = () => {}
+export const getTenantId = () => {
+  return localStorage.getItem('tenantId')
+}
 
+export const setTenantId = (username) => {
+  localStorage.setItem('tenantId', username)
+}