287 lines
7.7 KiB
JavaScript
287 lines
7.7 KiB
JavaScript
/**
|
||
* 存储管理对象
|
||
* 目标:将现有系统的所有需要存储的数据,统一管理
|
||
*
|
||
* @author terrfly
|
||
* @site https://www.jeequan.com
|
||
* @date 2022/04/13 07:18
|
||
*/
|
||
|
||
import appConfig from "@/config/appConfig.js"
|
||
|
||
// 应用级(vue级别)缓存, 当存在时则读取此值, 否则读取storage中的值。( vue线程内的缓存,不必要每次读取应用数据,影响性能)
|
||
const appCache = {
|
||
tokenVal: null, // token取值
|
||
currentUser: null, // 当前商户信息
|
||
}
|
||
|
||
const model = {
|
||
|
||
setLogin(res){
|
||
uni.setStorageSync('shopInfo',res.shopInfo)
|
||
uni.setStorageSync('loginType',res.loginType)
|
||
if(res.loginType=='1'){
|
||
// uni.setStorageSync('merchantName',user.createBy||user.updateBy)
|
||
}
|
||
},
|
||
// 退出清空所有的缓存数据。 (不包含 环境相关)
|
||
cleanByLogout: () => {
|
||
// 1. 清空app级别缓存。
|
||
Object.keys(appCache).forEach(k => appCache[k] = null)
|
||
const merchantName=uni.getStorageSync('merchantName')
|
||
const MerchantId=uni.getStorageSync('MerchantId')
|
||
let envName = model.env() // 获取到当前的环境变量
|
||
uni.clearStorageSync() // 清除所有的缓存信息
|
||
uni.setStorageSync('merchantName',merchantName)
|
||
uni.setStorageSync('MerchantId',MerchantId)
|
||
model.env(envName) // 重置env
|
||
},
|
||
|
||
// 获取和放置token
|
||
token: (val, isDelete = false) => {
|
||
if (isDelete) {
|
||
appCache.tokenVal = ""
|
||
return uni.removeStorageSync(appConfig.tokenKey)
|
||
}
|
||
|
||
if (val) {
|
||
// 有值,为放置
|
||
appCache.tokenVal = val.tokenValue
|
||
uni.setStorageSync(appConfig.tokenKey, val)
|
||
} else {
|
||
// 否则为获取
|
||
|
||
if (!appCache.tokenVal) {
|
||
//缓存取不到,获取应用本地信息
|
||
appCache.tokenVal = uni.getStorageSync(appConfig.tokenKey).tokenValue
|
||
}
|
||
return appCache.tokenVal
|
||
}
|
||
},
|
||
// 获取和放置shopId
|
||
shopId: (val, isDelete = false) => {
|
||
if (isDelete) {
|
||
appCache.shopId = ""
|
||
return uni.removeStorageSync('shopId')
|
||
}
|
||
|
||
if (val) {
|
||
// 有值,为放置
|
||
appCache.shopId = val
|
||
uni.setStorageSync('shopId', val)
|
||
} else {
|
||
// 否则为获取
|
||
|
||
if (!appCache.shopId) {
|
||
//缓存取不到,获取应用本地信息
|
||
appCache.shopId = uni.getStorageSync('shopId')
|
||
}
|
||
return appCache.shopId
|
||
}
|
||
},
|
||
// 获取和放置店铺员工id
|
||
shopUserId: (val, isDelete = false) => {
|
||
if (isDelete) {
|
||
appCache.shopUserId = ""
|
||
return uni.removeStorageSync('shopUserId')
|
||
}
|
||
|
||
if (val) {
|
||
// 有值,为放置
|
||
appCache.shopUserId = val
|
||
uni.setStorageSync('shopUserId', val)
|
||
} else {
|
||
// 否则为获取
|
||
|
||
if (!appCache.shopUserId) {
|
||
//缓存取不到,获取应用本地信息
|
||
appCache.shopUserId = uni.getStorageSync('shopUserId')
|
||
}
|
||
return appCache.shopUserId
|
||
}
|
||
},
|
||
// 获取和放置useType就餐类型
|
||
useType: (val, isDelete = false) => {
|
||
if (isDelete) {
|
||
appCache.useType = ""
|
||
return uni.removeStorageSync('useType')
|
||
}
|
||
|
||
if (val) {
|
||
// 有值,为放置
|
||
appCache.useType = val
|
||
uni.setStorageSync('useType', val)
|
||
} else {
|
||
// 否则为获取
|
||
|
||
if (!appCache.useType) {
|
||
//缓存取不到,获取应用本地信息
|
||
appCache.useType = uni.getStorageSync('useType')
|
||
}
|
||
return appCache.useType
|
||
}
|
||
},
|
||
// 缓存代客下单商品
|
||
cacheGoods: (val, isDelete = false) => {
|
||
if (isDelete) {
|
||
appCache.cacheGoods = ""
|
||
return uni.removeStorageSync('cacheGoods')
|
||
}
|
||
|
||
if (val) {
|
||
// 有值,为放置
|
||
appCache.cacheGoods = val
|
||
uni.setStorageSync('cacheGoods', val)
|
||
} else {
|
||
// 否则为获取
|
||
|
||
if (!appCache.cacheGoods) {
|
||
//缓存取不到,获取应用本地信息
|
||
appCache.cacheGoods = uni.getStorageSync('cacheGoods')
|
||
}
|
||
return appCache.cacheGoods
|
||
}
|
||
},
|
||
// 缓存代客下单商品节点信息缓存
|
||
cacheGoodsNode: (val, isDelete = false) => {
|
||
if (isDelete) {
|
||
appCache.cacheGoodsNode = ""
|
||
return uni.removeStorageSync('cacheGoodsNode')
|
||
}
|
||
|
||
if (val) {
|
||
// 有值,为放置
|
||
appCache.cacheGoodsNode = val
|
||
uni.setStorageSync('cacheGoodsNode', val)
|
||
} else {
|
||
// 否则为获取
|
||
|
||
if (!appCache.cacheGoodsNode) {
|
||
//缓存取不到,获取应用本地信息
|
||
appCache.cacheGoodsNode = uni.getStorageSync('cacheGoodsNode')
|
||
}
|
||
return appCache.cacheGoodsNode
|
||
}
|
||
},
|
||
// 已经登录的用户记录
|
||
loggedInUser: (addUserName = null, removeUserName = null) => {
|
||
let key = "loggedInUserList"
|
||
|
||
// 删除
|
||
if (removeUserName) {
|
||
let nameList = uni.getStorageSync(key) || []
|
||
if (nameList.length <= 0) {
|
||
//不存在数据
|
||
return false
|
||
}
|
||
|
||
let hasUserIndex = nameList.indexOf(removeUserName)
|
||
if (hasUserIndex >= 0) {
|
||
nameList.splice(hasUserIndex, 1) //删除
|
||
uni.setStorageSync(key, nameList)
|
||
}
|
||
|
||
return false
|
||
}
|
||
|
||
// 有新插入的记录
|
||
if (addUserName) {
|
||
let nameList = uni.getStorageSync(key) || []
|
||
|
||
let hasUser = false
|
||
for (let i = 0; i < nameList.length; i++) {
|
||
if (nameList[i] == addUserName) {
|
||
hasUser = true
|
||
}
|
||
}
|
||
|
||
// 包含记录
|
||
if (hasUser) {
|
||
return false
|
||
}
|
||
|
||
// 最多存储 5 个
|
||
if (nameList.length >= 5) {
|
||
nameList.splice(0, 1) //删除第一个
|
||
}
|
||
nameList.push(addUserName)
|
||
uni.setStorageSync(key, nameList)
|
||
|
||
//获取
|
||
} else {
|
||
return uni.getStorageSync(key) || [] //默认空数组
|
||
}
|
||
},
|
||
|
||
// 用户信息
|
||
userInfo: (currentUserInfo) => {
|
||
if (currentUserInfo) {
|
||
// 仅保存基础数据
|
||
let saveUser = {
|
||
|
||
sysUserId: currentUserInfo.sysUserId, // 用户ID
|
||
realname: currentUserInfo.realname, // 用户姓名
|
||
avatarUrl: currentUserInfo.avatarUrl, // 头像
|
||
telphone: currentUserInfo.telphone, // 手机号
|
||
userType: currentUserInfo.userType, // 用户类型
|
||
|
||
mchNo: currentUserInfo.userNo, // 商户No
|
||
mchShortName: currentUserInfo.shortName, // 商户简称
|
||
mchType: currentUserInfo.mchType, // 商户类型
|
||
mchLevel: currentUserInfo.mchLevel, // 商户级别
|
||
isHasMemberEnt:currentUserInfo.isHasMemberEnt,// 是否购买会员模块
|
||
entIdList: currentUserInfo.entIdList, // 权限集合List
|
||
|
||
}
|
||
uni.setStorageSync("currentUserInfo", saveUser) // 改变存储
|
||
appCache.currentUser = null
|
||
}
|
||
|
||
if(!appCache.currentUser){ // 获取缓存数据
|
||
appCache.currentUser = uni.getStorageSync("currentUserInfo")
|
||
}
|
||
|
||
return appCache.currentUser
|
||
},
|
||
|
||
// 项目环境变量:(测试、 生产的切换)
|
||
env: (envMode) => {
|
||
if (envMode) {
|
||
uni.setStorageSync(appConfig.storeEnvEnumKey, envMode) // 改变存储
|
||
}
|
||
|
||
return uni.getStorageSync(appConfig.storeEnvEnumKey)
|
||
},
|
||
|
||
// push 状态是否开启
|
||
pushIsOpen: (pushFlag) => {
|
||
if (pushFlag) {
|
||
uni.setStorageSync('pushFlag', pushFlag) // 改变存储
|
||
}
|
||
return uni.getStorageSync('pushFlag')
|
||
},
|
||
// 网站信息
|
||
siteInfos: (siteInfos) => {
|
||
if (siteInfos) {
|
||
uni.setStorageSync("siteInfos", siteInfos) // 改变存储
|
||
}
|
||
return uni.getStorageSync("siteInfos")
|
||
},
|
||
|
||
// unipush2 cid
|
||
uniPush2Cid: (uniPush2Cid) => {
|
||
if (uniPush2Cid) {
|
||
uni.setStorageSync("uniPush2Cid", uniPush2Cid) // 改变存储
|
||
}
|
||
return uni.getStorageSync("uniPush2Cid")
|
||
},
|
||
uploadImgSize: (uploadImgSize) => {
|
||
if (uploadImgSize) {
|
||
uni.setStorageSync("uploadImgSize", uploadImgSize) // 存储 上传 图片大小限制
|
||
}
|
||
return uni.getStorageSync("uploadImgSize")
|
||
},
|
||
}
|
||
|
||
export default model
|