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