import {baseLogin, } from '../../api/login'
import { getProjectDefValue } from "../../api/user";
import { getToken, setToken, removeToken } from '../../utils/auth'
import md5 from 'js-md5'
if(window.Scp==null){
window.Scp = {}
}
if(window.Scp.User==null){
window.Scp.User={}
}
const user = {
namespaced: true,
state: {
token: getToken(),
avatar: '',
introduction: '',
roles: [],
//后面加的
userInfo: {},
id:Scp.User.id,
name:Scp.User.name,
deptId:Scp.User.deptId,
deptName:Scp.User.deptName,
positionId:Scp.User.positionId,
postionName:Scp.User.postionName,
bzId:Scp.User.bzId,
bzName:Scp.User.bzName,
bzDeptId:Scp.User.bzDeptId,
bzDeptName:Scp.User.bzDeptName,
bzPositionId:Scp.User.bzPositionId,
bzPositionName:Scp.User.bzPositionName,
orgId:Scp.User.orgId ,
defOrgId:Scp.User.defOrgId
},
mutations: {
SET_CODE: (state, code) => {
state.code = code
},
SET_TOKEN: (state, token) => {
state.token = token
},
SET_INTRODUCTION: (state, introduction) => {
state.introduction = introduction
},
SET_NAME: (state, name) => {
state.name = name
},
SET_AVATAR: (state, avatar) => {
state.avatar = avatar
},
SET_ROLES: (state, roles) => {
state.roles = roles
},
SET_USERINFO: (state, userInfo) => {
state.userInfo = userInfo
}
},
actions: {
load({ commit, state }) {
},
// user login
login({ commit }, userInfo) {
const { username, password } = userInfo
return new Promise((resolve, reject) => {
baseLogin({ username: username.trim(), password: md5(password) }).then(response => {
const data = response
commit('SET_TOKEN', data.token)
setToken(data.token)
resolve()
}).catch(error => {
reject(error)
})
})
},
// get user info
getInfo({ commit, state }) {
/*return new Promise((resolve, reject) => {
getInfo(state.token).then(response => {
if (!response.dataPack) {
reject('Verification failed, please Login again.')
}
//const { info ,org} = response.data;
const info = response.dataPack
// if (!info) {
// reject('Verification failed, please Login again.')
// }
//const { roles, name, avatar, introduction } = data
let roles = ['admim'], avatar = "", introduction = "", name = info.fuserid, userInfo = {
bzid: info.fbzid,
id: info.fuserid,
name: info.fusername,
weixin: info.fweixin,
qq: info.fqq,
mbPhone: info.fmbphone,
email: info.femail,
roleid: info.froleid,
rolename: info.frolename,
enterpriseid: info.fenterpriseid,
enterprisename: info.fenterprisename,
shopid: info.fshopid,
shopname: info.fshopname,
//org
}
// roles must be a non-empty array
if (!roles || roles.length <= 0) {
reject('getInfo: roles must be a non-null array!')
}
commit('SET_USERINFO', userInfo)
commit('SET_ROLES', roles)
commit('SET_NAME', name)
commit('SET_AVATAR', avatar)
commit('SET_INTRODUCTION', introduction)
resolve(info)
}).catch(error => {
reject(error)
})
})*/
},
// user logout
logout({ commit, state }) {
/*return new Promise((resolve, reject) => {
logout(state.token).then(() => {
commit('SET_TOKEN', '')
commit('SET_ROLES', [])
removeToken()
resetRouter()
resolve()
}).catch(error => {
reject(error)
})
})*/
},
// remove token
resetToken({ commit }) {
return new Promise(resolve => {
commit('SET_TOKEN', '')
commit('SET_ROLES', [])
removeToken()
resolve()
})
},
setToken({ commit },token) {
return new Promise(resolve => {
commit('SET_TOKEN', token)
setToken(token)
resolve()
})
},
// dynamically modify permissions
changeRoles({ commit, dispatch }, role) {
return new Promise(async resolve => {
const token = role + '-token'
commit('SET_TOKEN', token)
setToken(token)
const { roles } = await dispatch('getInfo')
//resetRouter()
// generate accessible routes map based on roles
const accessRoutes = await dispatch('permission/generateRoutes', roles, { root: true })
// dynamically add accessible routes
router.addRoutes(accessRoutes)
// reset visited views and cached views
dispatch('tagsView/delAllViews', null, { root: true })
resolve()
})
},
//获取后端项目配置参数
getProjectDefValue({ commit, dispatch }, param){
return new Promise((resolve, reject) => {
getProjectDefValue({
"key":param.key,
"defaultValue": param.defaultValue
}).then((res)=>{
resolve(res?res.dataPack:res);
}).catch((err)=>{
reject(err);
});
});
},
}
}
export default user