100 lines
2.4 KiB
JavaScript
100 lines
2.4 KiB
JavaScript
import Cookies from 'js-cookie'
|
||
const TokenKey = 'Authorization-Token'
|
||
import $storage from 'good-storage'
|
||
import store from '@/store'
|
||
import { encode } from 'js-base64'
|
||
|
||
// token失效时间:天
|
||
const expiresDays = 365
|
||
|
||
// 获取登录信息
|
||
export function getUserInfo() {
|
||
return $storage.get('userInfo') || {}
|
||
}
|
||
|
||
// 设置用户信息
|
||
export function setUserInfo(data) {
|
||
let userInfoKey = 'userInfo'
|
||
$storage.set(userInfoKey, data)
|
||
}
|
||
|
||
// 获取token
|
||
export function getToken() {
|
||
return Cookies.get(TokenKey)
|
||
}
|
||
|
||
/**
|
||
* 设置Token,没有失效时间
|
||
* 需要判断当前是否是应用,不同的应用存为不同的token
|
||
* @param {String} token
|
||
*/
|
||
export function setToken(token) {
|
||
return Cookies.set(TokenKey, token, { expires: expiresDays })
|
||
}
|
||
|
||
// 移除Token
|
||
export function removeToken() {
|
||
return Cookies.remove(TokenKey)
|
||
}
|
||
|
||
// 设置登录信息
|
||
export function setLogin(value) {
|
||
return Cookies.set("loginInfo", JSON.stringify(value), { expires: expiresDays })
|
||
}
|
||
|
||
// 读取登录名
|
||
export function getLogin() {
|
||
return Cookies.get("loginInfo")
|
||
}
|
||
|
||
// 获取请求头参数
|
||
export function getHeaders() {
|
||
let headers = {}
|
||
// 请求中包含token
|
||
const token = getToken()
|
||
if (token) headers.Authorization = `Bearer ${token}`
|
||
headers['x-login-type'] = "web"
|
||
// 多语言
|
||
let lang = store.state.main.language;
|
||
// headers.LanguageCode = lang;
|
||
headers['language'] = lang;
|
||
return headers
|
||
}
|
||
|
||
// 获取组件尺寸
|
||
export function getDimension() {
|
||
let dimension = localStorage.getItem('dimension') || 'default'
|
||
return dimension
|
||
}
|
||
|
||
// 设置组件尺寸
|
||
export function setDimension(value) {
|
||
return localStorage.setItem('dimension', value)
|
||
}
|
||
|
||
// 获取当前语言
|
||
export function getLang() {
|
||
return store.state.main.language
|
||
}
|
||
|
||
// 切换主题
|
||
export function toggleTheme() {
|
||
let theme = store.state.main.theme
|
||
let current = document.body.getAttribute('arco-theme') || ''
|
||
if (theme !== current) {
|
||
if (theme == 'dark') {
|
||
document.body.setAttribute('arco-theme', 'dark')
|
||
} else if (theme == '') {
|
||
document.body.removeAttribute('arco-theme')
|
||
}
|
||
}
|
||
}
|
||
|
||
// 判断是否有权限
|
||
export function hasPermission(code) {
|
||
if (!code) return false
|
||
if (code === 'pass') return true
|
||
let permissions = store.state.user.permissions
|
||
return permissions.some((item) => item === code)
|
||
}
|