index.js 2.96 KB
Newer Older
姜雷 committed
1 2 3
import { login, logout, changePwd } from '@/api/user/login';
import { getToken, setToken, removeToken } from '@/utils/auth';
import { SET_TOKEN, UPDATE_USERINFO } from './mutation-types';
姜雷 committed
4
import { updateUserinfo, updateUserCellphone } from '@/api/user/update';
姜雷 committed
5 6 7 8 9 10 11 12 13 14 15 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 50 51 52 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
import md5 from 'blueimp-md5';

const state = {
  token: getToken(),
  name: '',
  id: '',
  createDate: '',
  trueName: '',
  isSetPassword: null,
};

const getters = {
  token: state => state.token,
  userInfo: ({ token, ...other }) => other,
  adminId: state => state.id,
};

const actions = {
  // 登录
  Login({ commit, dispatch }, { remenberAccount, ...entity }) {
    return login({
      data: {
        ...entity,
        pwd: md5(entity.pwd),
      },
    }).then(response => {
      const {
        token,
        data: { userRoles, userInfo },
      } = response;
      if (remenberAccount) {
        setToken(token, 7);
      } else {
        setToken(token, 1);
      }
      commit(SET_TOKEN, token);
      commit(UPDATE_USERINFO, userInfo);
      dispatch('getAsyncRoute', userRoles);
    });
  },
  // token登录
  TokenLogin({ commit, dispatch }, entity) {
    return login(entity).then(response => {
      const {
        data: { userRoles, userInfo },
      } = response;
      commit(UPDATE_USERINFO, userInfo);
      dispatch('getAsyncRoute', userRoles);
    });
  },

  // 登出
  LogOut({ commit, state }) {
    return logout(state.token).then(() => {
      commit(SET_TOKEN, '');
      removeToken();
      resolve();
    });
  },

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

  // 修改密码
  updatePassword({ commit, dispatch }, { oldPwd, newPwd }) {
    return changePwd({
      data: {
        oldPwd: md5(oldPwd),
        newPwd: md5(newPwd),
      },
    }).then(res => {
      const {
        data: { userRoles, userInfo },
      } = res;
      commit(UPDATE_USERINFO, userInfo);
      dispatch('getAsyncRoute', userRoles);
    });
  },
姜雷 committed
89 90 91 92 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
  // 修改资料
  updateUserinfo({ commit, dispatch }, { name, newPwd, oldPwd }) {
    return updateUserinfo({
      data: newPwd
        ? {
            name,
            newPwd: md5(newPwd),
            oldPwd: md5(oldPwd),
          }
        : {
            name,
          },
    }).then(res => {
      const {
        data: { userRoles, userInfo },
      } = res;
      commit(UPDATE_USERINFO, userInfo);
      dispatch('getAsyncRoute', userRoles);
      return res;
    });
  },
  // 修改电话
  updateUserCellphone({ commit }, entity) {
    return updateUserCellphone({
      params: entity,
    }).then(res => {
      console.log(res);
      commit(UPDATE_USERINFO, entity);
      return res;
    });
  },
姜雷 committed
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
};

const mutations = {
  [SET_TOKEN](state, token) {
    state.token = token;
  },
  [UPDATE_USERINFO](state, userInfo) {
    state = Object.assign(state, {
      ...userInfo,
    });
  },
};

export default {
  state,
  getters,
  actions,
  mutations,
};