// +---------------------------------------------------------------------
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
// +---------------------------------------------------------------------
|
// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
|
// +---------------------------------------------------------------------
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
// +---------------------------------------------------------------------
|
// | Author: CRMEB Team <admin@crmeb.com>
|
// +---------------------------------------------------------------------
|
|
const sessionCache = {
|
set(key, value) {
|
if (!sessionStorage) {
|
return;
|
}
|
if (key != null && value != null) {
|
sessionStorage.setItem(key, value);
|
}
|
},
|
get(key) {
|
if (!sessionStorage) {
|
return null;
|
}
|
if (key == null) {
|
return null;
|
}
|
return sessionStorage.getItem(key);
|
},
|
setJSON(key, jsonValue) {
|
if (jsonValue != null) {
|
this.set(key, JSON.stringify(jsonValue));
|
}
|
},
|
getJSON(key) {
|
const value = this.get(key);
|
if (value != null) {
|
return JSON.parse(value);
|
}
|
},
|
remove(key) {
|
sessionStorage.removeItem(key);
|
},
|
};
|
const localCache = {
|
set(key, value) {
|
if (!localStorage) {
|
return;
|
}
|
if (key != null && value != null) {
|
localStorage.setItem(key, value);
|
}
|
},
|
get(key) {
|
if (!localStorage) {
|
return null;
|
}
|
if (key == null) {
|
return null;
|
}
|
return localStorage.getItem(key);
|
},
|
setJSON(key, jsonValue) {
|
if (jsonValue != null) {
|
this.set(key, JSON.stringify(jsonValue));
|
}
|
},
|
getJSON(key) {
|
const value = this.get(key);
|
if (value != null) {
|
return JSON.parse(value);
|
}
|
},
|
remove(key) {
|
localStorage.removeItem(key);
|
},
|
// 检测缓存是否存在
|
has(key) {
|
return localStorage.getItem(key) ? true : false;
|
},
|
setItem(params) {
|
let obj = {
|
name: '',
|
value: '',
|
expires: '',
|
startTime: new Date().getTime(),
|
};
|
let options = {};
|
//将obj和传进来的params合并
|
Object.assign(options, obj, params);
|
if (options.expires) {
|
//如果options.expires设置了的话
|
//以options.name为key,options为值放进去
|
localStorage.setItem(options.name, JSON.stringify(options));
|
} else {
|
//如果options.expires没有设置,就判断一下value的类型
|
let type = Object.prototype.toString.call(options.value);
|
//如果value是对象或者数组对象的类型,就先用JSON.stringify转一下,再存进去
|
if (Object.prototype.toString.call(options.value) == '[object Object]') {
|
options.value = JSON.stringify(options.value);
|
}
|
if (Object.prototype.toString.call(options.value) == '[object Array]') {
|
options.value = JSON.stringify(options.value);
|
}
|
localStorage.setItem(options.name, options.value);
|
}
|
},
|
};
|
|
export default {
|
/**
|
* 会话级缓存
|
*/
|
session: sessionCache,
|
/**
|
* 本地缓存
|
*/
|
local: localCache,
|
};
|