import { CookieStorage } from "cookie-storage"; import config from "@/config"; const cookieStorage = new CookieStorage(); const systemCode = config.systemCode; // 随机长度字符串 const randomString = (len) => { len = len || 10; var chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; var maxPos = chars.length; var str = ""; for (let i = 0; i < len; i++) { str += chars.charAt(Math.floor(Math.random() * maxPos)); } return str; }; // 设置localStorage const _setItem = (key, data) => { localStorage.setItem(key, JSON.stringify(data)); }; // 获取localStorage const _getItem = (key) => { let data = localStorage.getItem(key); if (data) data = JSON.parse(data); return data; }; // 删除localStorage const _removeItem = (key) => { localStorage.removeItem(key); }; // 缓存用户信息 const setUserInfoCache = (info) => { let data = { account: info.account, avatar: info.avatar, userId: info.userId, userName: info.userName, }; _setItem("__UserInfo__", data); }; // 获取缓存的用户信息 const getUserInfoCache = () => { let data = _getItem("__UserInfo__"); return data; }; // 删除用户信息 const removeUserInfoCache = () => { _removeItem("__UserInfo__"); }; // 缓存token const setToken = (value) => { let curDate = new Date(); let nextDate = new Date(curDate.getTime() + 24 * 60 * 60 * 1000); cookieStorage.setItem("Authorization", value, { domain: document.domain, expires: nextDate, }); }; // 获取token const getToken = () => { return cookieStorage.getItem("Authorization"); }; // 删除token const removeToken = () => { cookieStorage.removeItem("Authorization"); }; // 缓存用户权限 const setUserPowerCache = (arr) => { let map = {}; for (let i = 0; i < arr.length; i++) { let k = arr[i].powerCode; map[k] = arr[i]; } _setItem(`__UserPower_${systemCode}__`, map); }; // 获取缓存的用户权限 const getUserPowerCache = () => { let data = _getItem(`__UserPower_${systemCode}__`); return data; }; // 获取指定的用户权限 const getUserSomeonePowerCache = (code) => { let data = getUserPowerCache(); let item = null; if (data) item = data[code]; return item; }; // 删除用户权限 const removeUserPowerCache = () => { _removeItem(`__UserPower_${systemCode}__`); }; export { randomString, setUserInfoCache, getUserInfoCache, removeUserInfoCache, setToken, getToken, removeToken, setUserPowerCache, getUserPowerCache, removeUserPowerCache, getUserSomeonePowerCache, };