From 6a051fac3c80be339c1eb01780e12334ad888551 Mon Sep 17 00:00:00 2001 From: haoxr <1490493387@qq.com> Date: Sun, 18 Dec 2022 15:01:55 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=AD=98=E5=82=A8=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/auth.ts | 15 +++++++++++ src/utils/localStorage.ts | 53 +++++++++++++++++++++++++++++++++++++ src/utils/request.ts | 8 +++--- src/utils/sessionStorage.ts | 22 +++++++++++++++ 4 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 src/utils/auth.ts create mode 100644 src/utils/localStorage.ts create mode 100644 src/utils/sessionStorage.ts diff --git a/src/utils/auth.ts b/src/utils/auth.ts new file mode 100644 index 0000000..5674f92 --- /dev/null +++ b/src/utils/auth.ts @@ -0,0 +1,15 @@ +import Cookies from 'js-cookie'; + +const TokenKey = 'vue3-element-admin-token'; + +export function getToken() { + return Cookies.get(TokenKey); +} + +export function setToken(token: string) { + Cookies.set(TokenKey, token); +} + +export function removeToken() { + return Cookies.remove(TokenKey); +} diff --git a/src/utils/localStorage.ts b/src/utils/localStorage.ts new file mode 100644 index 0000000..d5628e5 --- /dev/null +++ b/src/utils/localStorage.ts @@ -0,0 +1,53 @@ +/** + * window.localStorage 浏览器永久缓存 + */ +export const localStorage = { + // 设置永久缓存 + set(key: string, val: any) { + window.localStorage.setItem(key, JSON.stringify(val)); + }, + // 获取永久缓存 + get(key: string) { + const json: any = window.localStorage.getItem(key); + return JSON.parse(json); + }, + // 移除永久缓存 + remove(key: string) { + window.localStorage.removeItem(key); + }, + // 移除全部永久缓存 + clear() { + window.localStorage.clear(); + } +}; + +// 侧边栏状态(显示/隐藏) +const SidebarStatusKey = 'sidebarStatus'; +export function getSidebarStatus() { + return localStorage.get(SidebarStatusKey); +} + +export function setSidebarStatus(sidebarStatus: string) { + localStorage.set(SidebarStatusKey, sidebarStatus); +} +// 布局大小 +const SizeKey = 'size'; + +export function getSize() { + return localStorage.get(SizeKey); +} + +export function setSize(size: string) { + localStorage.set(SizeKey, size); +} + +// 语言 +const LanguageKey = 'language'; + +export function getLanguage() { + return localStorage.get(LanguageKey); +} + +export function setLanguage(language: string) { + localStorage.set(LanguageKey, language); +} diff --git a/src/utils/request.ts b/src/utils/request.ts index e29e3ab..e754eb9 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -1,7 +1,7 @@ import axios, { AxiosRequestConfig, AxiosResponse } from 'axios'; import { ElMessage, ElMessageBox } from 'element-plus'; -import { localStorage } from '@/utils/storage'; -import useStore from '@/store'; +import { getToken } from '@/utils/auth'; +import { useUserStoreHook } from '@/store/modules/user'; // 创建 axios 实例 const service = axios.create({ @@ -18,9 +18,9 @@ service.interceptors.request.use( `Expected 'config' and 'config.headers' not to be undefined` ); } - const { user } = useStore(); + const user = useUserStoreHook(); if (user.token) { - config.headers.Authorization = `${localStorage.get('token')}`; + config.headers.Authorization = getToken(); } return config; }, diff --git a/src/utils/sessionStorage.ts b/src/utils/sessionStorage.ts new file mode 100644 index 0000000..fae9a21 --- /dev/null +++ b/src/utils/sessionStorage.ts @@ -0,0 +1,22 @@ +/** + * window.sessionStorage 浏览器临时缓存 + */ +export const sessionStorage = { + // 设置临时缓存 + set(key: string, val: any) { + window.sessionStorage.setItem(key, JSON.stringify(val)); + }, + // 获取临时缓存 + get(key: string) { + const json: any = window.sessionStorage.getItem(key); + return JSON.parse(json); + }, + // 移除临时缓存 + remove(key: string) { + window.sessionStorage.removeItem(key); + }, + // 移除全部临时缓存 + clear() { + window.sessionStorage.clear(); + } +}; -- GitLab