// +---------------------------------------------------------------------- // | CRMEB [ CRMEB赋能开发者,助力企业发展 ] // +---------------------------------------------------------------------- // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. // +---------------------------------------------------------------------- // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 // +---------------------------------------------------------------------- // | Author: CRMEB Team // +---------------------------------------------------------------------- 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, };