|
|
@@ -7,20 +7,25 @@ import { getToken, removeToken, setToken } from '@/utils/token'
|
|
|
import { resetRouter } from '@/router'
|
|
|
import { isArray, isString } from '@/utils/validate'
|
|
|
import { title, tokenName } from '@/config'
|
|
|
+import watermark from 'watermark-dom'
|
|
|
|
|
|
const state = () => ({
|
|
|
id: '',
|
|
|
token: getToken(),
|
|
|
username: '游客',
|
|
|
nickName: '',
|
|
|
+ phone: '',
|
|
|
avatar: 'https://i.gtimg.cn/club/item/face/img/2/15922_100.gif',
|
|
|
+ isFirstLogin: false,
|
|
|
})
|
|
|
const getters = {
|
|
|
id: (state) => state.id,
|
|
|
token: (state) => state.token,
|
|
|
username: (state) => state.username,
|
|
|
nickName: (state) => state.nickName,
|
|
|
+ phone: (state) => state.phone,
|
|
|
avatar: (state) => state.avatar,
|
|
|
+ isFirstLogin: (state) => state.isFirstLogin,
|
|
|
}
|
|
|
const mutations = {
|
|
|
/**
|
|
|
@@ -32,6 +37,10 @@ const mutations = {
|
|
|
state.token = token
|
|
|
setToken(token)
|
|
|
},
|
|
|
+ setIsFirstLogin(state, isFirstLogin) {
|
|
|
+ state.isFirstLogin = isFirstLogin
|
|
|
+ localStorage.setItem('isFirstLogin', isFirstLogin)
|
|
|
+ },
|
|
|
/**
|
|
|
* @description 设置用户名
|
|
|
* @param {*} state
|
|
|
@@ -43,6 +52,9 @@ const mutations = {
|
|
|
setNickName(state, nickName) {
|
|
|
state.nickName = nickName
|
|
|
},
|
|
|
+ setPhone(state, phone) {
|
|
|
+ state.phone = phone
|
|
|
+ },
|
|
|
setUserId(state, id) {
|
|
|
state.id = id
|
|
|
},
|
|
|
@@ -72,9 +84,10 @@ const actions = {
|
|
|
*/
|
|
|
async login({ commit }, userInfo) {
|
|
|
const {
|
|
|
- data: { [tokenName]: token },
|
|
|
+ data: { [tokenName]: token, isFirstLogin },
|
|
|
} = await userApi.login(userInfo)
|
|
|
if (token) {
|
|
|
+ commit('setIsFirstLogin', isFirstLogin)
|
|
|
commit('setToken', token)
|
|
|
const hour = new Date().getHours()
|
|
|
const thisTime =
|
|
|
@@ -98,7 +111,7 @@ const actions = {
|
|
|
// console.log(username, avatar, roles, permissions)
|
|
|
|
|
|
const res = await userApi.getUserInfo()
|
|
|
- const { id, userName, nickName, avatar } = res.data.entity
|
|
|
+ const { id, userName, nickName, phone, avatar } = res.data.entity
|
|
|
const { roleIds, permissions } = res.data
|
|
|
/**
|
|
|
* 检验返回数据是否正常,无对应参数,将使用默认用户名,头像,Roles和Permissions
|
|
|
@@ -111,6 +124,7 @@ const actions = {
|
|
|
(userName && !isString(userName)) ||
|
|
|
(avatar && !isString(avatar)) ||
|
|
|
(nickName && !isString(nickName)) ||
|
|
|
+ (phone && !isString(phone)) ||
|
|
|
(roleIds && !isArray(roleIds)) ||
|
|
|
(permissions && !isArray(permissions))
|
|
|
) {
|
|
|
@@ -123,12 +137,15 @@ const actions = {
|
|
|
// 如不使用username用户名,可删除以下代码
|
|
|
if (userName) commit('setUsername', userName)
|
|
|
if (nickName) commit('setNickName', nickName)
|
|
|
+ if (phone) commit('setPhone', phone)
|
|
|
// 如不使用avatar头像,可删除以下代码
|
|
|
if (avatar) commit('setAvatar', avatar)
|
|
|
// 如不使用roles权限控制,可删除以下代码
|
|
|
if (roleIds) dispatch('acl/setRole', roleIds, { root: true })
|
|
|
// 如不使用permissions权限控制,可删除以下代码
|
|
|
if (permissions) dispatch('acl/setPermission', permissions, { root: true })
|
|
|
+
|
|
|
+ watermark.init({ watermark_txt: nickName + phone, watermark_width: 150, watermark_alpha: 0.08 })
|
|
|
}
|
|
|
},
|
|
|
/**
|
|
|
@@ -154,6 +171,8 @@ const actions = {
|
|
|
await dispatch('tabs/delAllVisitedRoutes', null, { root: true })
|
|
|
await resetRouter()
|
|
|
removeToken()
|
|
|
+ watermark.init({ watermark_txt: ' ' })
|
|
|
+ watermark.remove()
|
|
|
},
|
|
|
/**
|
|
|
* @description 设置token
|