feat: 功能优化

This commit is contained in:
2026-01-17 14:43:42 +08:00
parent 5ed0cfff07
commit fecd47e25d
60 changed files with 3529 additions and 827 deletions

View File

@@ -12,34 +12,25 @@
import { ref } from 'vue'
import axios from 'axios'
import { API_BASE } from '@gold/config/api'
import tokenManager from '@gold/utils/token-manager'
// 本地存储配置
const CACHE_KEY = 'USER_INFO_CACHE'
const CACHE_DURATION = 5 * 60 * 1000 // 5分钟缓存
// 获取 token 的工具函数(需要从应用层传入或使用全局配置)
let getTokenFn = null
/**
* 设置获取 token 的函数
* @param {Function} fn - 获取 token 的函数
*/
export function setTokensGetter(fn) {
getTokenFn = fn
}
/**
* 获取 Authorization Header
* @returns {string}
*/
function getAuthHeader() {
if (getTokenFn) {
const token = getTokenFn()
return token ? `Bearer ${token}` : ''
// 首先尝试从 tokenManager 获取
const token = tokenManager.getAccessToken()
if (token) {
return `Bearer ${token}`
}
// 如果没有设置 token getter尝试从常见位置获取
// 如果 tokenManager 没有 token尝试从 sessionStorage 获取(开发环境使用)
try {
// 尝试从 sessionStorage 获取
const manualToken = sessionStorage.getItem('DEV_MANUAL_TOKEN')
if (manualToken) {
return `Bearer ${manualToken}`
@@ -108,7 +99,6 @@ export function clearUserInfoCache() {
* 用户信息 Hook
* @param {Object} options - 配置选项
* @param {string} options.baseUrl - API 基础 URL可选默认使用 APP_MEMBER
* @param {Function} options.getToken - 获取 token 的函数(可选)
* @returns {Object} { fetchUserInfo, loading, error, userInfo }
*/
export function useUserInfo(options = {}) {
@@ -116,11 +106,6 @@ export function useUserInfo(options = {}) {
const error = ref(null)
const userInfo = ref(null)
// 如果传入了 getToken 函数,设置它
if (options.getToken) {
setTokensGetter(options.getToken)
}
// 确定 API 基础路径
const baseUrl = options.baseUrl || API_BASE.APP_MEMBER
const apiUrl = `${baseUrl}/user/get`
@@ -210,10 +195,6 @@ export function useUserInfo(options = {}) {
* @returns {Promise<Object>} 用户信息对象
*/
export async function getUserInfo(options = {}) {
// 如果传入了 getToken 函数,设置到全局
if (options.getToken) {
setTokensGetter(options.getToken)
}
const { fetchUserInfo } = useUserInfo(options)
return await fetchUserInfo()
}