UNPKG

byt-ui

Version:

byt组件库

104 lines (100 loc) 2.42 kB
/* * @Description: * @Author: 王国火 * @Date: 2022-10-08 09:10:49 * @LastEditTime: 2024-04-18 16:26:42 * @LastEditors: 王国火 */ import { validatenull } from './validate' import website from './website' // 存储前缀 避免与同域的其它项目冲突 const keyName = website.key /** * 存储localStorage */ export const setStore = (key, value, type = 0) => { const name = `${keyName}-${key}` const obj = { dataType: typeof (value), content: value, 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 = (key, debug = false) => { const name = `${keyName}-${key}` let obj = window.sessionStorage.getItem(name) || window.localStorage.getItem(name) let content if (validatenull(obj)) return null 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 = JSON.parse(obj.content) } else if (obj.dataType === 'object') { content = obj.content } return content } /** * 删除localStorage */ export const removeStore = (key) => { const name = `${keyName}-${key}` window.sessionStorage.removeItem(name) window.localStorage.removeItem(name) } /** * 获取全部localStorage */ export const getAllStore = (type = 0) => { const list = [] 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 = (type = 0) => { if (type) { window.sessionStorage.clear() } else { window.localStorage.clear() } }