feat: 添加 proxy 代理

proxy 代理把相应的数据自动同步到 localStorage 中, 支持相应的参数内容
This commit is contained in:
hz
2025-10-27 19:30:27 +08:00
parent b47114abba
commit 2b4dd4355a

View File

@@ -0,0 +1,31 @@
import cacheUtils from '@/assets/js/utils/cacheUtils'
const { setLocItem /*getLocItem*/ } = cacheUtils
export function syncLocalstorageData(data, { name = '', release = false, encrypt = false } = {}) {
if (name === '' && (typeof name).toLowerCase() !== 'string') {
console.error(`[syncLocalstorage] ${name} is not a string.`)
return
}
// todo 离开页面释放变量(后续再看看做还是不做)
// eslint-disable-next-line no-empty
if (release) {
}
return new Proxy(
data, //投保人信息,
{
set(target, p, newValue, receiver) {
const res = Reflect.set(target, p, newValue, receiver)
if (res) {
if (encrypt) setLocItem(name, JSON.stringify(target))
else localStorage.setItem(name, JSON.stringify(target))
}
return res
},
get(target, property, receiver) {
return Reflect.get(target, property, receiver)
}
}
)
}