user.js 3.74 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
import { login, logout, getInfo } from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth'

const user = {
  state: {
    token: getToken(),
    name: '',
    avatar: '',
    roles: [],
    permissions: [],
    systemSetting:{},
    posts: [],
    enterpriseId: '',
    userId: '',
15
    roleId: '',
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
    enterpriseName:'',
  },

  mutations: {
    SET_TOKEN: (state, token) => {
      state.token = token
    },
    SET_NAME: (state, name) => {
      state.name = name
    },
    SET_AVATAR: (state, avatar) => {
      state.avatar = avatar
    },
    SET_ROLES: (state, roles) => {
      state.roles = roles
    },
    SET_PERMISSIONS: (state, permissions) => {
      state.permissions = permissions
    },
    SET_SYSTEMSETTING: (state, systemSetting) => {
      state.systemSetting = systemSetting
    },
    SET_POSTS: (state, posts) => {
      state.posts = posts
    },
    SET_ENTERPRISEID: (state,enterpriseId) =>{
      state.enterpriseId = enterpriseId
    },
    SET_ENTERPRISENAME:(state,enterpriseName) =>{
      state.enterpriseName = enterpriseName
    },
    SET_USERID:(state,userId) =>{
      state.userId = userId
    },
50 51 52
    SET_ROLEID:(state,roleId) =>{
      state.roleId = roleId
    },
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
  },

  actions: {
    // 登录
    Login({ commit }, userInfo) {
      const username = userInfo.username.trim()
      const password = userInfo.password
      const code = userInfo.code
      const uuid = userInfo.uuid
      return new Promise((resolve, reject) => {
        login(username, password, code, uuid).then(res => {
          setToken(res.token)
          commit('SET_TOKEN', res.token)
          resolve()
        }).catch(error => {
          reject(error)
        })
      })
    },
    // 获取用户信息
    GetInfo({ commit, state,dispatch}) {
      return new Promise((resolve, reject) => {
        getInfo().then(res => {
          const user = res.user
          const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
          console.log("getInfo")
          if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
            commit('SET_ROLES', res.roles)
            commit('SET_PERMISSIONS', res.permissions)
          } else {
            commit('SET_ROLES', ['ROLE_DEFAULT'])
          }
          commit('SET_NAME', user.userName)
          commit('SET_AVATAR', avatar)
          // 默认配置
          commit('SET_SYSTEMSETTING', res.systemSetting)
          commit('SET_POSTS',res.posts)
          commit('SET_ENTERPRISEID',user.deptId)
          commit('SET_USERID',user.userId);
92
          commit('SET_ROLEID',user.roles[0].roleId);
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
          commit('SET_ENTERPRISENAME',user.enterpriseName);
          // 大屏公司获取
          // 第一个参数是其他模块的 actions 路径,
          // 第二个是传给 actions 的数据, 如果不需要传数据, 也必须预留,
          // 第三个参数是配置选项, 申明这个 acitons 不是当前模块的
          dispatch("bigWindowCompany/GetCompany",{},{root:true})
         console.log(res.systemSetting)
          resolve(res)
        }).catch(error => {
          reject(error)
        })
      })
    },

    // 退出系统
    LogOut({ commit, state }) {
      return new Promise((resolve, reject) => {
        logout(state.token).then(() => {
          commit('SET_TOKEN', '')
          commit('SET_ROLES', [])
          commit('SET_PERMISSIONS', [])
          removeToken()
          resolve()
        }).catch(error => {
          reject(error)
        })
      })
    },

    // 前端 登出
    FedLogOut({ commit }) {
      return new Promise(resolve => {
        commit('SET_TOKEN', '')
        removeToken()
        resolve()
      })
    }
  }
}

export default user