Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

model.ts 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { Authorization } from '@/constants/authorization';
  2. import userService from '@/services/userService';
  3. import authorizationUtil from '@/utils/authorizationUtil';
  4. import { message } from 'antd';
  5. import { DvaModel } from 'umi';
  6. export interface LoginModelState {
  7. list: any[];
  8. info: any;
  9. visible: boolean;
  10. }
  11. const model: DvaModel<LoginModelState> = {
  12. namespace: 'loginModel',
  13. state: {
  14. list: [],
  15. info: {},
  16. visible: false,
  17. },
  18. reducers: {
  19. updateState(state, { payload }) {
  20. return {
  21. ...state,
  22. ...payload,
  23. };
  24. },
  25. },
  26. effects: {
  27. *login({ payload = {} }, { call }) {
  28. const { data, response } = yield call(userService.login, payload);
  29. const { retcode, data: res } = data;
  30. const authorization = response.headers.get(Authorization);
  31. if (retcode === 0) {
  32. message.success('logged!');
  33. const token = res.access_token;
  34. const userInfo = {
  35. avatar: res.avatar,
  36. name: res.nickname,
  37. email: res.email,
  38. };
  39. authorizationUtil.setItems({
  40. Authorization: authorization,
  41. userInfo: JSON.stringify(userInfo),
  42. Token: token,
  43. });
  44. }
  45. return retcode;
  46. },
  47. *register({ payload = {} }, { call }) {
  48. const { data } = yield call(userService.register, payload);
  49. console.log();
  50. const { retcode } = data;
  51. if (retcode === 0) {
  52. message.success('Registered!');
  53. }
  54. return retcode;
  55. },
  56. *logout({ payload = {} }, { call }) {
  57. const { data } = yield call(userService.logout, payload);
  58. const { retcode } = data;
  59. if (retcode === 0) {
  60. message.success('logout');
  61. }
  62. return retcode;
  63. },
  64. },
  65. };
  66. export default model;