mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-09 22:46:45 +08:00
feat: 添加 proxy 代理
proxy 代理把相应的数据自动同步到 localStorage 中, 支持相应的参数内容
This commit is contained in:
31
src/assets/js/syncLocalstorageData.js
Normal file
31
src/assets/js/syncLocalstorageData.js
Normal 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)
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user