basic.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. const app = getApp()
  2. import WxValidate from '../../../utils/wxValidate';
  3. Page({
  4. data: {
  5. frameStyle: { useTop: true, name: '学员信息管理', leftArrow: true, useBar: false },
  6. id: '',
  7. form: { icon: [] },
  8. // 性别
  9. genderList: [],
  10. //运动等级
  11. levelList: [],
  12. },
  13. initValidate() {
  14. const rules = { icon: { required: true }, name: { required: true }, age: { required: false }, birth: { required: true }, gender: { required: true }, phone: { required: true, tel: true } }
  15. // 验证字段的提示信息,若不传则调用默认的信息
  16. const messages = { icon: { required: '请选择头像' }, name: { required: '请输入学员姓名' }, age: { required: '请输入年龄' }, gender: { required: '请选择性别' }, birth: { required: '请选择出生日期' }, phone: { required: '请输入联系电话' } };
  17. this.WxValidate = new WxValidate(rules, messages)
  18. },
  19. // 返回
  20. back: function () {
  21. wx.navigateBack({ delta: 1 })
  22. },
  23. //上传图片
  24. imgUpl: function (e) {
  25. const that = this;
  26. let data = that.data.form.icon;
  27. data.push(e.detail)
  28. that.setData({ 'form.icon': data })
  29. },
  30. // 删除图片
  31. imgDel: function (e) {
  32. const that = this;
  33. let list = that.data.form.icon;
  34. let arr = list.filter((i, index) => index != e.detail.index)
  35. that.setData({ 'form.icon': arr })
  36. },
  37. // 选择性别
  38. genderChange: function (e) {
  39. const that = this;
  40. let data = that.data.genderList[e.detail.value];
  41. if (data) {
  42. that.setData({ 'form.gender': data.value });
  43. that.setData({ 'form.zhGender': data.label });
  44. }
  45. },
  46. // 选择出生日期
  47. birthChange: function (e) {
  48. const that = this;
  49. that.setData({ 'form.birth': e.detail.value });
  50. },
  51. // 选择等级
  52. levelChange: function (e) {
  53. const that = this;
  54. let data = that.data.levelList[e.detail.value];
  55. if (data) {
  56. that.setData({ 'form.level': data.value });
  57. that.setData({ 'form.zhLevel': data.label });
  58. }
  59. },
  60. //提交
  61. onSubmit: async function (e) {
  62. const that = this;
  63. const form = that.data.form;
  64. const params = e.detail.value;
  65. params.icon = form.icon;
  66. if (!this.WxValidate.checkForm(params)) {
  67. const error = this.WxValidate.errorList[0];
  68. wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 })
  69. return false
  70. } else {
  71. let arr;
  72. if (form._id) arr = await app.$post(`/student/${form._id}`, params);
  73. if (arr.errcode == '0') { wx.showToast({ title: `维护信息完成`, icon: 'success', duration: 2000 }); that.watchLogin(); }
  74. else wx.showToast({ title: `${errmsg}`, icon: 'error', duration: 2000 })
  75. }
  76. },
  77. /**
  78. * 生命周期函数--监听页面加载
  79. */
  80. onLoad: async function (options) {
  81. const that = this;
  82. that.setData({ id: options.id || '' })
  83. //验证规则函数
  84. that.initValidate();
  85. // 查询其他信息
  86. await that.searchOther();
  87. // 监听用户是否登录
  88. await that.watchLogin();
  89. },
  90. searchOther: async function () {
  91. const that = this;
  92. let arr;
  93. // 性别
  94. arr = await app.$get(`/dict`, { code: 'gender' });
  95. if (arr.errcode == '0' && arr.total > 0) {
  96. let list = arr.data[0].list;
  97. that.setData({ genderList: list })
  98. }
  99. // 运动等级
  100. arr = await app.$get(`/dict`, { code: 'student_grade' });
  101. if (arr.errcode == '0' && arr.total > 0) {
  102. let list = arr.data[0].list;
  103. that.setData({ levelList: list })
  104. }
  105. },
  106. // 监听用户是否登录
  107. watchLogin: async function () {
  108. const that = this;
  109. let genderList = that.data.genderList;
  110. let levelList = that.data.levelList;
  111. wx.getStorage({
  112. key: 'user',
  113. success: async res => {
  114. const arr = await app.$get(`/student/${res.data?.info?._id}`);
  115. if (arr.errcode == '0') {
  116. let gender = genderList.find(i => i.value == arr.data.gender)
  117. if (gender) arr.data.zhGender = gender.label;
  118. let level = levelList.find(i => i.value == arr.data.level)
  119. if (level) arr.data.zhLevel = level.label;
  120. that.setData({ form: arr.data });
  121. }
  122. },
  123. fail: async res => {
  124. wx.redirectTo({ url: '/pages/index/index' })
  125. }
  126. })
  127. },
  128. /**
  129. * 生命周期函数--监听页面初次渲染完成
  130. */
  131. onReady: function () {
  132. },
  133. /**
  134. * 生命周期函数--监听页面显示
  135. */
  136. onShow: function () {
  137. },
  138. /**
  139. * 生命周期函数--监听页面隐藏
  140. */
  141. onHide: function () {
  142. const that = this;
  143. that.setData({ skip: 0, page: 0, list: [] })
  144. },
  145. /**
  146. * 生命周期函数--监听页面卸载
  147. */
  148. onUnload: function () {
  149. },
  150. /**
  151. * 页面相关事件处理函数--监听用户下拉动作
  152. */
  153. onPullDownRefresh: function () {
  154. },
  155. /**
  156. * 页面上拉触底事件的处理函数
  157. */
  158. onReachBottom: function () {
  159. },
  160. /**
  161. * 用户点击右上角分享
  162. */
  163. onShareAppMessage: function () {
  164. }
  165. })