user.js 4.05 KB
import { login, logout, getLinkURL } from '@/api/login'
import { getInfo, initOwnerNameChange, getUserPortData, checkRdeUser } from '@/api/system/user.js'
import { getToken, setToken, removeToken, getUserId, setUserId, removeUserId, removeTime } from '@/utils/auth'
import { alertWarningMsg } from '@/utils/index.js'
import { encrypt } from '@/utils/jsencrypt'
import { unEntryLock } from "@/api/entry-api.js";

const user = {
  state: {
    token: getToken(),
    userData: {
      userSource: {}
    },
    name: '',
    avatar: '',
    lockTime: 0,
    roles: [],
    permissions: [],
    linkList: [],
    editEntryData: {
      id: null,
      status: 0,
    },
    dict: {},
    dictWit: ['H2000Account'],
    loading: {
      type: false,
      text: '拼命加载中"'
    }
  },

  mutations: {
    SET_TOKEN: (state, token) => {
      state.token = token
    },
    SET_USERDATA: (state, data) => {
      state.userData = data
    },
    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_LINKLIST: (state, linkList) => {
      state.linkList = linkList
    },
    SET_DICT: (state, dict) => {
      state.dict = dict
    },
    SET_LOAD: (state, loading) => {
      state.loading.type = loading.type
      state.loading.text = loading.text
    },
    SET_EDITENTRYDATA: (state, obj) => {
      state.editEntryData = obj
    },
    DEL_EDITENTRYDATA: (state) => {
      state.editEntryData = {
        id: null,
        status: 0,
      }
    },
    SET_LOCKTIME: (state, time) => {
      state.lockTime = time
    }
  },

  actions: {
    // 登录
    Login({ commit, state }, userInfo) {
      const loginName = userInfo.userName.trim()
      const password = userInfo.password
      const rememberMe = userInfo.rememberMe
      return new Promise((resolve, reject) => {
        login(loginName, password, rememberMe).then(res => {
          if (res.code != '200') {
            reject(res)
          } else {
            if (!getToken()) {
              setToken(res.data)
              commit('SET_TOKEN', res.data)
              resolve(res)
            } else {
              resolve(res)
            }
          }
        }).catch(error => {
          reject(error)
        })
      })
    },

    // 获取用户信息
    async GetInfo({ commit, state }) {
      return new Promise((resolve, reject) => {
        commit('SET_USERDATA', {
          id: 1,
          loginName: 'xxx',
          organization: {}
        })
        resolve({
          id: 1,
          loginName: 'xxx',
          organization: {}
        })
        // getInfo().then(res => {
        //   if (res == undefined || res.code != '200') {
        //     res != undefined ? alertWarningMsg(res.message).finally(() => {
        //       this.dispatch('FedLogOut')
        //     })
        //       : ''
        //     reject(res)
        //   } else {

        //     resolve(res)
        //   }
        // }).catch(error => {
        //   reject(error)
        // })
      })
    },

    //退出系统
    LogOut({ commit, state }) {
      return new Promise((resolve, reject) => {
        // removeEntryLock(state.editEntryData.id, state.editEntryData.status).then(() => {
        logout(state.token).then(() => {
          commit('SET_TOKEN', '')
          commit('SET_USERDATA', {})
          removeToken()
          removeTime()
          resolve()
        }).catch(error => {
          reject(error)
        })
        // })
      })
    },

    // 前端 登出
    FedLogOut({ commit, state }) {
      return new Promise(resolve => {
        // removeEntryLock(state.editEntryData.id, state.editEntryData.status).then(() => {
        commit('SET_TOKEN', '')
        commit('SET_USERDATA', {})
        removeToken()
        removeTime()
        removeUserId()
        location.replace(process.env.VUE_APP_BASE_ROUTE);
        resolve()
        // })
      })
    }
  }
}


export default user