File size: 1,925 Bytes
04aba1b
88e5a61
6b8fc2c
04aba1b
 
362ec6c
6b8fc2c
362ec6c
fad2ec7
 
 
 
362ec6c
 
6b8fc2c
 
 
 
 
 
362ec6c
 
 
 
 
 
 
 
6b8fc2c
04d557b
6b8fc2c
af3ef26
04aba1b
6b8fc2c
88e5a61
6b8fc2c
 
 
 
04aba1b
6b8fc2c
04aba1b
 
 
 
 
6b8fc2c
362ec6c
6b8fc2c
04d557b
 
04aba1b
04d557b
6b8fc2c
88e5a61
6b8fc2c
362ec6c
04aba1b
04d557b
 
 
 
88e5a61
04d557b
 
 
04aba1b
6b8fc2c
362ec6c
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
62
63
64
65
66
67
68
69
70
import { Authorization } from '@/constants/authorization';
import i18n from '@/locales/config';
import userService from '@/services/userService';
import authorizationUtil from '@/utils/authorizationUtil';
import { message } from 'antd';
import { DvaModel } from 'umi';

export interface LoginModelState {
  list: any[];
  info: any;
  visible: boolean;
}

const model: DvaModel<LoginModelState> = {
  namespace: 'loginModel',
  state: {
    list: [],
    info: {},
    visible: false,
  },
  reducers: {
    updateState(state, { payload }) {
      return {
        ...state,
        ...payload,
      };
    },
  },
  effects: {
    *login({ payload = {} }, { call }) {
      const { data, response } = yield call(userService.login, payload);
      const { retcode, data: res } = data;
      const authorization = response.headers.get(Authorization);
      if (retcode === 0) {
        message.success(i18n.t('message.logged'));
        const token = res.access_token;
        const userInfo = {
          avatar: res.avatar,
          name: res.nickname,
          email: res.email,
        };
        authorizationUtil.setItems({
          Authorization: authorization,
          userInfo: JSON.stringify(userInfo),
          Token: token,
        });
      }
      return retcode;
    },
    *register({ payload = {} }, { call }) {
      const { data } = yield call(userService.register, payload);
      console.log();
      const { retcode } = data;
      if (retcode === 0) {
        message.success(i18n.t('message.registered'));
      }
      return retcode;
    },
    *logout({ payload = {} }, { call }) {
      const { data } = yield call(userService.logout, payload);
      const { retcode } = data;
      if (retcode === 0) {
        message.success(i18n.t('message.logout'));
      }
      return retcode;
    },
  },
};
export default model;