register.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. // pages/register/register.js
  2. const userApi = require('../../api/user');
  3. Page({
  4. data: {
  5. username: '',
  6. password: '',
  7. confirmPassword: '',
  8. nickname: '',
  9. phone: '',
  10. email: '',
  11. loading: false
  12. },
  13. // 输入用户名
  14. onUsernameInput(e) {
  15. this.setData({
  16. username: e.detail.value
  17. });
  18. },
  19. // 输入密码
  20. onPasswordInput(e) {
  21. this.setData({
  22. password: e.detail.value
  23. });
  24. },
  25. // 输入确认密码
  26. onConfirmPasswordInput(e) {
  27. this.setData({
  28. confirmPassword: e.detail.value
  29. });
  30. },
  31. // 输入昵称
  32. onNicknameInput(e) {
  33. this.setData({
  34. nickname: e.detail.value
  35. });
  36. },
  37. // 输入手机号
  38. onPhoneInput(e) {
  39. this.setData({
  40. phone: e.detail.value
  41. });
  42. },
  43. // 输入邮箱
  44. onEmailInput(e) {
  45. this.setData({
  46. email: e.detail.value
  47. });
  48. },
  49. // 注册
  50. async handleRegister() {
  51. const { username, password, confirmPassword, nickname, phone, email } = this.data;
  52. if (!username || !password) {
  53. wx.showToast({
  54. title: '请输入用户名和密码',
  55. icon: 'none'
  56. });
  57. return;
  58. }
  59. if (password !== confirmPassword) {
  60. wx.showToast({
  61. title: '两次密码输入不一致',
  62. icon: 'none'
  63. });
  64. return;
  65. }
  66. if (password.length < 6) {
  67. wx.showToast({
  68. title: '密码长度至少6位',
  69. icon: 'none'
  70. });
  71. return;
  72. }
  73. this.setData({ loading: true });
  74. try {
  75. const userData = {
  76. username,
  77. password,
  78. nickname: nickname || username,
  79. phone: phone || '',
  80. email: email || ''
  81. };
  82. await userApi.userRegister(userData);
  83. wx.showToast({
  84. title: '注册成功',
  85. icon: 'success'
  86. });
  87. setTimeout(() => {
  88. wx.navigateBack();
  89. }, 1500);
  90. } catch (error) {
  91. wx.showToast({
  92. title: error || '注册失败',
  93. icon: 'none'
  94. });
  95. } finally {
  96. this.setData({ loading: false });
  97. }
  98. }
  99. });