123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- import Vue from 'vue'
- import { login, mobileOrEmailCodeLogin, logout } from '@/api/login.js'
- import { setToken, removeToken, setRefreshToken } from '@/utils/auth';
- import { LOGIN, MOBILE_LOGIN, LOGOUT, SET_USER, SET_USER_FROM_STORAGE } from '@/store/mutation-types'
- const state = {
- user: {
- userId: null,
- username: '',
- realName: '',
- office: {
- },
- department: {
- },
- authorities: []
- }
- }
- // getters
- const getters = {
- isLogin: state => {
- if (!state.user.userId) {
- var userJson = sessionStorage.getItem('user');
- if(userJson && userJson != ''){
- //state.user = JSON.parse(userJson);
- //Vue.set(state.user, 'office', user.office);
- }
- }
- return state.user.userId;
- }
- }
- // actions
- const actions = {
- [LOGIN]({ commit }, user) {
- return new Promise((resolve, reject) => {
- login(user.account, user.password, user.captcha, user.codeUid, user.token, user.validate, user.captchaToken).then(response => {
- const data = response.data;
- user.password = '';
- data['user'] = user;
- commit(SET_USER, data);
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- },
- [MOBILE_LOGIN]({ commit }, param) {
- return new Promise((resolve, reject) => {
- mobileOrEmailCodeLogin(param.mobile, param.checkCode,param.service,param.token).then(response => {
- const data = response.data;
- param.password = '';
- data['user'] = param;
- commit(SET_USER, data);
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- },
- [LOGOUT]({ commit }, meetingId) {
- return new Promise((resolve, reject) => {
- logout().then(response => {
- // commit(SET_USER, {
- // user: {
- // userId: '',
- // account: '',
- // realName: '',
- // }
- // })
- removeToken();
- localStorage.removeItem('user');
- resolve()
- }).catch(error => {
- removeToken();
- localStorage.removeItem('user');
- reject(error)
- })
- })
- // return null;
- },
- }
- // mutations
- const mutations = {
- [SET_USER](state, data) {
-
- // state.user.account = data.user.account;
- var userInfo = JSON.parse(data.userInfo);
- Vue.set(state.user, 'office', userInfo.office);
- Vue.set(state.user, 'realName', userInfo.realName);
- Vue.set(state.user, 'username', userInfo.username);
- Vue.set(state.user, "userId", userInfo.id);
- Vue.set(state.user, "office", userInfo.office);
- Vue.set(state.user, "department", userInfo.department);
- Vue.set(state.user, "authorities", userInfo.authorities);
- Vue.set(state.user, "umsUser", userInfo.umsUser);
- setToken(data.access_token);
- setRefreshToken(data['refresh_token']);
- localStorage.setItem('user', JSON.stringify(state.user));
- },
- [SET_USER_FROM_STORAGE](state, data) {
- state.user = data;
-
- // Vue.set(state.user, 'office', data.office);
- // Vue.set(state.user, 'realName', data.realName);
- }
- }
- export default {
- namespaced: true,
- state,
- getters,
- actions,
- mutations
- }
|