@10yun/cv-js-utils
Version:
常用 js-utils 工具类库
91 lines (90 loc) • 2.44 kB
JavaScript
export default {
localSet(key, value) {
return this.__operationStorage(key, value);
},
localGet(key) {
return this.__operationStorage(key);
},
localGetString(key, def = '') {
let value = this.__operationStorage(key);
return typeof value === 'string' || typeof value === 'number' ? value : def;
},
localGetInt(key, def = 0) {
let value = this.__operationStorage(key);
return typeof value === 'number' ? value : def;
},
localGetBoolean(key, def = false) {
let value = this.__operationStorage(key);
return typeof value === 'boolean' ? value : def;
},
localGetArray(key, def = []) {
let value = this.__operationStorage(key);
return this.isArray(value) ? value : def;
},
localGetJson(key, def = {}) {
let value = this.__operationStorage(key);
return this.isJson(value) ? value : def;
},
/**
* 新增&&获取缓存数据
* @param key
* @param value
* @return {*}
*/
__operationStorage(key, value) {
if (!key) {
return;
}
let keyName = '__state__';
if (key.substring(0, 5) === 'cache') {
keyName = '__state:' + key + '__';
}
if (typeof value === 'undefined') {
return this.__loadFromlLocal(key, '', keyName);
} else {
this.__savaToLocal(key, value, keyName);
}
},
/**
* 新增&&修改本地缓存
* @param {string} id 唯一id
* @param {string} key 标示
* @param value 新增&修改的值
* @param keyName 主键名称
*/
__savaToLocal(key, value, keyName) {
try {
if (typeof keyName === 'undefined') keyName = '__seller__';
let seller = window.localStorage[keyName];
if (!seller) {
seller = {};
} else {
seller = JSON.parse(seller);
}
seller[key] = value;
window.localStorage[keyName] = JSON.stringify(seller);
} catch (e) {}
},
/**
* 查询本地缓存
* @param {string} key 标示
* @param {mixed} def 如果查询不到显示的值
* @param keyName 主键名称
*/
__loadFromlLocal(key, def, keyName) {
try {
if (typeof keyName === 'undefined') keyName = '__seller__';
let seller = window.localStorage[keyName];
if (!seller) {
return def;
}
seller = JSON.parse(seller);
if (!seller || typeof seller[key] === 'undefined') {
return def;
}
return seller[key];
} catch (e) {
return def;
}
}
};