wip: 临时提交

This commit is contained in:
ray
2025-05-28 08:21:01 +08:00
parent 54ab9f6f44
commit b2333e8b70
58 changed files with 5078 additions and 4337 deletions

View File

@@ -1,4 +1,46 @@
import { useUserStore } from "@/store/modules/user";
import { Storage } from "./storage";
import { ACCESS_TOKEN_KEY, REFRESH_TOKEN_KEY } from "@/constants";
/**
* 获取访问令牌
* @returns 返回访问令牌如果不存在则返回null
*/
export function getAccessToken(): string | null {
return Storage.get<string>(ACCESS_TOKEN_KEY) || null;
}
/**
* 设置访问令牌
* @param token 访问令牌
*/
export function setAccessToken(token: string): void {
Storage.set(ACCESS_TOKEN_KEY, token);
}
/**
* 获取刷新令牌
* @returns 返回刷新令牌如果不存在则返回null
*/
export function getRefreshToken(): string | null {
return Storage.get<string>(REFRESH_TOKEN_KEY) || null;
}
/**
* 设置刷新令牌
* @param token 刷新令牌
*/
export function setRefreshToken(token: string): void {
Storage.set(REFRESH_TOKEN_KEY, token);
}
/**
* 清除所有令牌
*/
export function clearTokens(): void {
Storage.remove(ACCESS_TOKEN_KEY);
Storage.remove(REFRESH_TOKEN_KEY);
}
/**
* 检查用户登录状态,未登录则跳转到登录页面

View File

@@ -1,40 +0,0 @@
const TOKEN_KEY = "app-token";
const USER_INFO_KEY = "user-info";
// 设置 token
export function setToken(token: string) {
uni.setStorageSync(TOKEN_KEY, token);
}
// 获取 token
export function getToken(): string {
return uni.getStorageSync(TOKEN_KEY) || "";
}
// 清除 token
export function clearToken() {
uni.removeStorageSync(TOKEN_KEY);
}
// 设置用户信息
export function setUserInfo(userInfo: any) {
uni.setStorageSync(USER_INFO_KEY, userInfo);
}
// 获取用户信息
export function getUserInfo(): any {
return uni.getStorageSync(USER_INFO_KEY) || null;
}
// 清除用户信息
export function clearUserInfo() {
uni.removeStorageSync(USER_INFO_KEY);
}
// 清除所有缓存信息
export function clearAll() {
clearToken();
clearUserInfo();
// 清除字典缓存
uni.removeStorageSync("dict_cache");
}

View File

@@ -1,51 +0,0 @@
/**
* 颜色处理工具类
*/
/**
* 获取浅色版本的颜色
* @param hexColor 十六进制颜色值
* @param factor 调亮因子 (0-1)
* @returns 调亮后的颜色值
*/
export function getLighterColor(hexColor: string, factor: number): string {
// 去掉#前缀
const hex = hexColor.replace("#", "");
// 解析RGB值
let r = parseInt(hex.substring(0, 2), 16);
let g = parseInt(hex.substring(2, 4), 16);
let b = parseInt(hex.substring(4, 6), 16);
// 调亮颜色
r = Math.min(255, Math.floor(r + (255 - r) * factor));
g = Math.min(255, Math.floor(g + (255 - g) * factor));
b = Math.min(255, Math.floor(b + (255 - b) * factor));
// 转回16进制
return `#${r.toString(16).padStart(2, "0")}${g.toString(16).padStart(2, "0")}${b.toString(16).padStart(2, "0")}`;
}
/**
* 获取深色版本的颜色
* @param hexColor 十六进制颜色值
* @param factor 调暗因子 (0-1)
* @returns 调暗后的颜色值
*/
export function getDarkerColor(hexColor: string, factor: number): string {
// 去掉#前缀
const hex = hexColor.replace("#", "");
// 解析RGB值
let r = parseInt(hex.substring(0, 2), 16);
let g = parseInt(hex.substring(2, 4), 16);
let b = parseInt(hex.substring(4, 6), 16);
// 调暗颜色
r = Math.max(0, Math.floor(r * factor));
g = Math.max(0, Math.floor(g * factor));
b = Math.max(0, Math.floor(b * factor));
// 转回16进制
return `#${r.toString(16).padStart(2, "0")}${g.toString(16).padStart(2, "0")}${b.toString(16).padStart(2, "0")}`;
}

View File

@@ -1,4 +1,4 @@
import { getToken, clearAll } from "@/utils/cache";
import { getAccessToken, clearTokens } from "@/utils/auth";
import { ResultCodeEnum } from "@/enums/ResultCodeEnum";
export default function request<T>(options: UniApp.RequestOptions): Promise<T> {
@@ -14,7 +14,7 @@ export default function request<T>(options: UniApp.RequestOptions): Promise<T> {
url: `${baseApi}${options.url}`,
header: {
...options.header,
Authorization: getToken() ? `Bearer ${getToken()}` : "",
Authorization: getAccessToken() ? `Bearer ${getAccessToken()}` : "",
},
success: (response) => {
console.log("success response", response);
@@ -27,7 +27,7 @@ export default function request<T>(options: UniApp.RequestOptions): Promise<T> {
// 令牌失效或过期处理
else if (resData.code === ResultCodeEnum.TOKEN_INVALID) {
console.log("令牌失效或过期处理");
clearAll();
clearTokens();
// 跳转到登录页
uni.reLaunch({
url: "/pages/login/index",

72
src/utils/storage.ts Normal file
View File

@@ -0,0 +1,72 @@
/**
* 存储工具类
* 提供localStorage和sessionStorage操作方法
*/
/**
* localStorage 存储
*/
function set(key: string, value: any): void {
uni.setStorageSync(key, JSON.stringify(value));
}
function get<T>(key: string, defaultValue?: T): T {
const value = uni.getStorageSync(key);
if (!value) return defaultValue as T;
try {
return JSON.parse(value);
} catch {
// 如果解析失败,返回原始字符串
return value as unknown as T;
}
}
function remove(key: string): void {
uni.removeStorageSync(key);
}
export const Storage = {
set,
get,
remove,
};
// 为了向后兼容,导出具体的函数
import { ACCESS_TOKEN_KEY, USER_INFO_KEY } from "@/constants";
/**
* 获取令牌
*/
export function getToken(): string | null {
return Storage.get<string>(ACCESS_TOKEN_KEY) || null;
}
/**
* 设置令牌
*/
export function setToken(token: string): void {
Storage.set(ACCESS_TOKEN_KEY, token);
}
/**
* 获取用户信息
*/
export function getUserInfo<T = any>(): T | undefined {
return Storage.get<T>(USER_INFO_KEY);
}
/**
* 设置用户信息
*/
export function setUserInfo(userInfo: any): void {
Storage.set(USER_INFO_KEY, userInfo);
}
/**
* 清除所有数据
*/
export function clearAll(): void {
Storage.remove(ACCESS_TOKEN_KEY);
Storage.remove(USER_INFO_KEY);
}