index.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. // pages/register/index.js
  2. const { gender } = require('../../utils/dict')
  3. import WxValidate from '../../utils/wxValidate'
  4. const app = getApp();
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. frameStyle: { useTop: true, name: '注册', leftArrow: false, useBar: false },
  11. form: {},
  12. fields: [
  13. { label: '头像', model: 'icon', type: "upload" },
  14. { label: '姓名', model: 'name' },
  15. { label: '身份证号', model: 'card', type: 'idCard' },
  16. { label: '性别', model: 'gender', type: 'select' },
  17. { label: '手机号', model: 'phone' },
  18. { label: '邮箱', model: 'email' },
  19. ]
  20. },
  21. initValidate() {
  22. const rules = { icon: { required: true }, name: { required: true }, card: { required: true }, gender: { required: true }, phone: { required: true } }
  23. // 验证字段的提示信息,若不传则调用默认的信息
  24. const messages = { icon: { required: '请选择头像', }, name: { required: '请输入用户姓名', }, card: { required: '请输入身份证号', }, gender: { required: '请选择性别', }, phone: { required: '请输入手机号', } };
  25. this.WxValidate = new WxValidate(rules, messages)
  26. },
  27. async toSubmit(e) {
  28. const data = e?.detail;
  29. if (!data) return;
  30. const wxInfo = app.globalData.wxInfo
  31. if (!wxInfo.openid) {
  32. wx.showToast({ title: '缺少微信关联', icon: 'error' })
  33. return
  34. }
  35. data.openid = wxInfo.openid;
  36. if (!this.WxValidate.checkForm(data)) {
  37. const error = this.WxValidate.errorList[0];
  38. wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 })
  39. return false
  40. } else {
  41. const res = await app.$post('/newCourt/api/user', data)
  42. if (app.$checkRes(res)) {
  43. wx.showToast({
  44. title: '注册成功',
  45. success: () => {
  46. wx.redirectTo({ url: '/pages/index/index' });
  47. }
  48. })
  49. } else {
  50. const { errmsg = '注册失败' } = res;
  51. wx.showModal({ title: errmsg, showCancel: false })
  52. }
  53. }
  54. },
  55. /**
  56. * 生命周期函数--监听页面加载
  57. */
  58. onLoad(options) {
  59. const fields = this.data.fields;
  60. const fg = fields.find(f => f.model === 'gender')
  61. if (fg) fg.list = gender
  62. this.setData({ fields })
  63. //验证规则函数
  64. this.initValidate();
  65. },
  66. /**
  67. * 生命周期函数--监听页面初次渲染完成
  68. */
  69. onReady() { },
  70. /**
  71. * 生命周期函数--监听页面显示
  72. */
  73. onShow() { },
  74. /**
  75. * 生命周期函数--监听页面隐藏
  76. */
  77. onHide() { },
  78. /**
  79. * 生命周期函数--监听页面卸载
  80. */
  81. onUnload() { },
  82. /**
  83. * 页面相关事件处理函数--监听用户下拉动作
  84. */
  85. onPullDownRefresh() { },
  86. /**
  87. * 页面上拉触底事件的处理函数
  88. */
  89. onReachBottom() { },
  90. /**
  91. * 用户点击右上角分享
  92. */
  93. onShareAppMessage() { },
  94. });