UserApi.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { DataModel } from '@imengyu/js-request-transform';
  2. import { AppServerRequestModule } from '../RequestModules';
  3. export class LoginResult extends DataModel<LoginResult> {
  4. constructor() {
  5. super(LoginResult, "登录结果");
  6. this._convertTable = {
  7. userInfo: { clientSide: 'object', clientSideChildDataModel: UserInfo },
  8. };
  9. this._nameMapperServer = {
  10. 'userinfo': 'userInfo',
  11. 'mainBodyUserInfo': 'userInfo',
  12. }
  13. this._afterSolveServer = () => {
  14. if (this.mainBodyUserInfo) {
  15. this.userInfo.token = this.mainBodyUserInfo.token;
  16. }
  17. };
  18. }
  19. userInfo !:UserInfo;
  20. mainBodyUserInfo?:UserInfo;
  21. }
  22. export class UserInfo extends DataModel<UserInfo> {
  23. constructor() {
  24. super(UserInfo, "用户信息");
  25. this.setNameMapperCase('Camel', 'Snake');
  26. this._convertTable = {
  27. id: { clientSide: 'number', serverSide: 'number', clientSideRequired: true },
  28. }
  29. }
  30. expiresIn = 0;
  31. id = 0;
  32. userId = 0;
  33. mobile = '';
  34. nickname = '';
  35. avatar = '';
  36. username = '';
  37. token = '';
  38. }
  39. export class UserApi extends AppServerRequestModule<DataModel> {
  40. constructor() {
  41. super();
  42. }
  43. async loginAdmin(data?: {
  44. account: string,
  45. password: string,
  46. }) {
  47. const form = new FormData();
  48. form.append('account', data?.account || '');
  49. form.append('password', data?.password || '');
  50. return (await this.post('/user/adminLogin', form, '登录', undefined, LoginResult)).data as LoginResult;
  51. }
  52. async getUserInfo(main_body_user_id: number) {
  53. return (await this.post('/content/main_body_user/getMainBodyUser', {
  54. main_body_user_id,
  55. }, '获取用户信息', undefined, UserInfo)).data as UserInfo;
  56. }
  57. async refresh() {
  58. return (await this.post('/content/main_body_user/refreshUser', {
  59. }, '刷新用户', undefined, LoginResult)).data as LoginResult;
  60. }
  61. }
  62. export default new UserApi();