user.js 1.8 KB
import uc from '@/api/uc.js'
import store from '@/store/login'
import Vue from 'vue'

const state = {
  currentUserDetail: null,
  pwdStrategy: {}, //默认密码策略
  dialogVisible: false,
  showDialog: false,
  fileList: [],
}

const getters = {}

const actions = {
  // 加载当前用户详情
  loadCurrentUserDetail({commit, state}) {
    if (!state.currentUserDetail) {
      const currentUser = store.state.currentUser
      if (currentUser && currentUser.account) {
        return new Promise((resolve, reject) => {
          uc.getUserByAccount(currentUser.account, (resp) => {
            resolve(resp)
            commit('setCurrentUserDetail', resp)
          })
        })
      }
    }
  },
  //获取默认密码策略
  getDefPwdStrategy({commit, state}) {
    return new Promise((resolve, reject) => {
      uc.getDefPwdStrategy((response) => {
        commit('setPwdStrategy', response)
        resolve(response)
      })
    })
  },
}

const mutations = {
  setCurrentUserDetail(state, data) {
    if (data && data.role && data.role.roleName) {
      data.role = data.role.roleName.split('|')
    }
    state.currentUserDetail = data
  },
  setPwdStrategy(state, pwdStrategy) {
    state.pwdStrategy = pwdStrategy
  },
  setDialogVisible(state, data) {
    state.dialogVisible = data
  },
  setshowDialog(state, data) {
    state.showDialog = data
  },
  setFileList(state, data) {
    state.fileList = data
  },
  addFiles(state, data) {
    state.fileList = [...data, ...state.fileList]
    if (state.fileList.length >= 99) {
      state.fileList.splice(99, state.fileList.length - 99)
    }
  },
  setFile(state, {index, column, value}) {
    if (state.fileList[index]) {
      state.fileList[index][column] = value
    }
  },
}

export default {
  namespaced: true,
  state,
  getters,
  actions,
  mutations,
}