62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
// store/index.js
|
|
import { reactive } from 'vue'
|
|
|
|
const store = reactive({
|
|
// 认证信息
|
|
token: uni.getStorageSync('token') || '',
|
|
userId: uni.getStorageSync('userId') || '',
|
|
userName: uni.getStorageSync('userName') || '',
|
|
isPermission: false,
|
|
|
|
// 用户菜单权限列表
|
|
permissions: JSON.parse(uni.getStorageSync('permissions') || '[]'),
|
|
|
|
// 功能版块权限列表
|
|
modules: JSON.parse(uni.getStorageSync('modules') || '[]'),
|
|
|
|
// 字典数据
|
|
dictUnitTypes: [], // 设备型号列表
|
|
dictBusinessTypes: [], // 业务类型列表
|
|
|
|
// 设置认证信息
|
|
setAuth(token, userId, userName, permissions) {
|
|
this.token = token
|
|
this.userId = userId
|
|
this.userName = userName
|
|
this.permissions = permissions || []
|
|
uni.setStorageSync('token', token)
|
|
uni.setStorageSync('userId', userId)
|
|
uni.setStorageSync('userName', userName)
|
|
uni.setStorageSync('permissions', JSON.stringify(this.permissions))
|
|
},
|
|
|
|
// 检查是否拥有某个权限
|
|
hasPermi(perm) {
|
|
if (this.permissions.includes('*:*:*')) return true
|
|
return this.permissions.includes(perm)
|
|
},
|
|
|
|
// 设置功能版块权限
|
|
setModules(modules) {
|
|
this.modules = modules || []
|
|
uni.setStorageSync('modules', JSON.stringify(this.modules))
|
|
},
|
|
|
|
// 清除认证信息
|
|
clearAuth() {
|
|
this.token = ''
|
|
this.userId = ''
|
|
this.userName = ''
|
|
this.isPermission = false
|
|
this.permissions = []
|
|
this.modules = []
|
|
uni.removeStorageSync('token')
|
|
uni.removeStorageSync('userId')
|
|
uni.removeStorageSync('userName')
|
|
uni.removeStorageSync('permissions')
|
|
uni.removeStorageSync('modules')
|
|
}
|
|
})
|
|
|
|
export default store
|