import { validatenull } from '@/util/validate' 是引入的下面这个正则
https://blog.youkuaiyun.com/Yangpengxunb/article/details/129186733?spm=1001.2014.3001.5501
import website from '@/const/website' 是配置主键,用于存储
import { validatenull } from '@/util/validate'
import website from '@/const/website'
const keyName = website.key + '-'
/**
* 存储localStorage
*/
export const setStore = (params = {}) => {
let {
name,
content,
type
} = params
name = keyName + name
const obj = {
dataType: typeof (content),
content: content,
type: type,
datetime: new Date().getTime()
}
if (type) window.sessionStorage.setItem(name, JSON.stringify(obj))
else window.localStorage.setItem(name, JSON.stringify(obj))
}
/**
* 获取localStorage
*/
export const getStore = (params = {}) => {
let {
name,
debug
} = params
name = keyName + name
let obj = {}
let content
obj = window.sessionStorage.getItem(name)
if (validatenull(obj)) obj = window.localStorage.getItem(name)
if (validatenull(obj)) return
try {
obj = JSON.parse(obj)
} catch (e) {
return obj
}
if (debug) {
return obj
}
if (obj.dataType === 'string') {
content = obj.content
} else if (obj.dataType === 'number') {
content = Number(obj.content)
} else if (obj.dataType === 'boolean') {
content = eval(obj.content)
} else if (obj.dataType === 'object') {
content = obj.content
}
return content
}
/**
* 删除localStorage
*/
export const removeStore = (params = {}) => {
let {
name,
type
} = params
name = keyName + name
if (type) {
window.sessionStorage.removeItem(name)
} else {
window.localStorage.removeItem(name)
}
}
/**
* 获取全部localStorage
*/
export const getAllStore = (params = {}) => {
const list = []
const {
type
} = params
if (type) {
for (let i = 0; i <= window.sessionStorage.length; i++) {
list.push({
name: window.sessionStorage.key(i),
content: getStore({
name: window.sessionStorage.key(i),
type: 'session'
})
})
}
} else {
for (let i = 0; i <= window.localStorage.length; i++) {
list.push({
name: window.localStorage.key(i),
content: getStore({
name: window.localStorage.key(i)
})
})
}
}
return list
}
/**
* 清空全部localStorage
*/
export const clearStore = (params = {}) => {
const { type } = params
if (type) {
window.sessionStorage.clear()
} else {
window.localStorage.clear()
}
}