// PK Mini 模块专用 Storage 工具 // 使用 pk_mini_ 前缀避免与主项目冲突 const PREFIX = 'pk_mini_' export function setStorage(key, value) { localStorage.setItem(PREFIX + key, JSON.stringify(value)) } export function getStorage(key) { const value = localStorage.getItem(PREFIX + key) if (value) { try { return JSON.parse(value) } catch (e) { return value } } return null } export function getPromiseStorage(key) { return new Promise((resolve, reject) => { const value = getStorage(key) if (value) { resolve(value) } else { reject(new Error('Key not found: ' + key)) } }) } export function clearStorage(key) { localStorage.removeItem(PREFIX + key) } export function getPromiseSessionStorage(key) { return new Promise((resolve, reject) => { const value = sessionStorage.getItem(PREFIX + key) if (value) { try { resolve(JSON.parse(value)) } catch (e) { resolve(value) } } else { reject(new Error('Key not found: ' + key)) } }) } export function setSessionStorage(key, value) { sessionStorage.setItem(PREFIX + key, JSON.stringify(value)) } // 获取主项目的用户数据(用于获取 token 和用户信息) // 主项目使用 'user' 键存储用户信息 export function getMainUserData() { // 优先从 'user' 获取(主项目当前使用的键) let userData = localStorage.getItem('user') if (userData) { try { return JSON.parse(userData) } catch (e) { // 解析失败,继续尝试其他键 } } // 兼容:尝试从 'user_data' 获取(旧键名) userData = localStorage.getItem('user_data') if (userData) { try { return JSON.parse(userData) } catch (e) { return null } } return null }