User.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. import request from '../Utils/RequestUtils';
  2. import {
  3. addAsyncStorage,
  4. removeAsyncStorage,
  5. } from '../Utils/AsyncStorageUtils';
  6. import submitPhone from '../Utils/FormUtils';
  7. import Toast from './Toast';
  8. import { alert } from '../Utils/TotastUtils';
  9. const app = (now) => ({
  10. id: null,
  11. userInfo: {},
  12. getUser() {
  13. return request
  14. .get('/user/my')
  15. .then((res) => {
  16. now({
  17. id: res.id,
  18. userInfo: res,
  19. });
  20. })
  21. .catch((e) => {
  22. now({
  23. id: 0,
  24. });
  25. return Promise.reject(e);
  26. });
  27. },
  28. loginByPsd(phone, password) {
  29. const { loading, warnning, success } = now(Toast);
  30. loading();
  31. return request
  32. .post('/auth/login', {
  33. data: {
  34. username: submitPhone(phone),
  35. password,
  36. },
  37. requestType: 'form',
  38. })
  39. .then((res) => {
  40. return addAsyncStorage('token', res);
  41. })
  42. .then(() => {
  43. const { getUser } = now();
  44. return getUser();
  45. })
  46. .then(() => {
  47. success('登录成功');
  48. })
  49. .catch((e) => {
  50. warnning(e.error);
  51. });
  52. },
  53. logout() {
  54. alert('', '确定要退出该账号吗?', () => {
  55. const { loading, success } = now(Toast);
  56. loading();
  57. // 移除 token
  58. removeAsyncStorage('token').then(() => {
  59. // 清除用户信息
  60. now({ id: 0, userInfo: {} });
  61. success('退出成功');
  62. });
  63. });
  64. },
  65. uploadInfo({ ...info }) {
  66. const { id, getUser } = now();
  67. const { loading, warnning, success } = now(Toast);
  68. loading();
  69. return request
  70. .post('/user/save', {
  71. data: {
  72. ...info,
  73. id,
  74. },
  75. })
  76. .then(() => {
  77. return getUser();
  78. })
  79. .then(() => {
  80. success('更新成功');
  81. return Promise.resolve();
  82. })
  83. .catch((e) => {
  84. warnning(e.error);
  85. });
  86. },
  87. loginByRegister(phone, password) {
  88. const { loading, warnning, success } = now(Toast);
  89. loading();
  90. return request
  91. .post('/auth/loginByRegister', {
  92. data: {
  93. phone: submitPhone(phone),
  94. password,
  95. },
  96. requestType: 'form',
  97. })
  98. .then(() => {
  99. return request.post('/auth/login', {
  100. data: {
  101. username: submitPhone(phone),
  102. password,
  103. },
  104. requestType: 'form',
  105. });
  106. })
  107. .then((res) => {
  108. return addAsyncStorage('token', res);
  109. })
  110. .then(() => {
  111. const { getUser } = now();
  112. return getUser();
  113. })
  114. .then(() => {
  115. success('注册成功');
  116. })
  117. .catch((e) => {
  118. warnning(e.error);
  119. });
  120. },
  121. });
  122. export default app;