80 lines
1.8 KiB
JavaScript
80 lines
1.8 KiB
JavaScript
|
|
// 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
|
||
|
|
}
|