login.js
1.77 KB
1
2
3
4
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
import { queryLogin, loginOut } from '@/services/login';
import { getUserInfo, getBosUserList } from '@/services/user';
import { message } from 'antd';
import { history } from 'umi';
import md5 from 'blueimp-md5';
import defaultSettings from '../../config/defaultSettings';
import { getDataMenus } from '@/utils/menu';
const { tokenKey, md5Key } = defaultSettings;
const Model = {
namespace: 'login',
state: {
status: undefined,
},
effects: {
//退出登录
*logout({ payload }, { call, put, select }) {
try {
const res = yield call(loginOut);
if (res.code === 0 && res.data) {
if (!payload) {
message.success('退出成功');
}
localStorage.removeItem(tokenKey);
setTimeout(() => {
window.location.href = '/user/login';
}, 500);
}
} catch (err) {
console.error(err);
}
},
//登录
*login({ payload }, { call, put }) {
try {
const res = yield call(queryLogin, payload);
if (res.code === 0) {
localStorage.setItem(tokenKey, res.data);
// const userinfo = yield call(getUserInfo);
// const { permissionVos = [] } = userinfo.data;
// const dataMenus = getDataMenus(permissionVos);
// console.log(dataMenus);
// if (dataMenus.length) {
// history.replace(dataMenus[0].path);
// } else {
// history.replace('/');
// }
history.replace('/');
message.success('登录成功');
}
} catch (err) {
console.error(err);
}
},
},
reducers: {
changeLoginStatus(state, { payload }) {
return { ...state, status: payload.status, type: payload.type };
},
},
};
export default Model;