auto.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. const app = getApp()
  2. import WxValidate from '../../utils/wxValidate'
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. frameStyle: { useTop: true, name: '组项信息', leftArrow: true, useBar: false },
  9. form: {},
  10. // 赛事信息
  11. matchList: [],
  12. // 组别
  13. groupingList: [],
  14. //组内项目
  15. projectList: [],
  16. // 组内人员
  17. personList: [],
  18. // 组列表
  19. teamList: []
  20. },
  21. initValidate() {
  22. const rules = { match_id: { required: true }, grouping_id: { required: true }, project_id: { required: true }, team_id: { required: true } }
  23. // 验证字段的提示信息,若不传则调用默认的信息
  24. const messages = { match_id: { required: '请选择赛事名称', }, grouping_id: { required: '请选择赛事组别', }, project_id: { required: '请选择组内项目', }, team_id: { required: '请选择组' } };
  25. this.WxValidate = new WxValidate(rules, messages)
  26. },
  27. back(e) { wx.navigateBack({ delta: 1 }) },
  28. // 选择赛事
  29. matchChange: function (e) {
  30. const that = this;
  31. let data = that.data.matchList[e.detail.value];
  32. if (data) {
  33. that.setData({ 'form.match_id': data._id });
  34. that.setData({ 'form.match_name': data.name });
  35. if (data.grouping && data.grouping.length > 0) {
  36. that.setData({ groupingList: data.grouping })
  37. }
  38. }
  39. },
  40. // 选择赛事组别
  41. grpupChange: async function (e) {
  42. const that = this;
  43. let data = that.data.groupingList[e.detail.value];
  44. if (data) {
  45. that.setData({ 'form.grouping_id': data._id });
  46. that.setData({ 'form.grouping_name': data.name });
  47. if (data.project && data.project.length > 0) {
  48. let projectList = [];
  49. for (const val of data.project) {
  50. const arr = await app.$get(`/newCourt/api/matchProject/${val}`)
  51. if (arr.errcode == '0') projectList.push(arr.data);
  52. that.setData({ projectList: projectList })
  53. }
  54. }
  55. }
  56. },
  57. // 选择组内项目
  58. projectChange: function (e) {
  59. const that = this;
  60. let data = that.data.projectList[e.detail.value];
  61. if (data) {
  62. that.setData({ 'form.project_id': data._id });
  63. that.setData({ 'form.project_name': data.name });
  64. // 查询赛事,组别,项目,分组数据
  65. that.searchTeam()
  66. }
  67. },
  68. // 查询分组数据
  69. searchTeam: async function () {
  70. const that = this;
  71. let form = that.data.form;
  72. let info = { match_id: form.match_id, grouping_id: form.grouping_id, project_id: form.project_id }
  73. const arr = await app.$get(`/newCourt/api/raceTeam`, { ...info });
  74. if (arr.errcode == '0') { that.setData({ teamList: arr.data }); }
  75. },
  76. // 选择赛事分组
  77. teamChange: function (e) {
  78. const that = this;
  79. let data = that.data.teamList[e.detail.value];
  80. if (data) {
  81. that.setData({ 'form.team_id': data._id });
  82. that.setData({ 'form.team_name': data.name });
  83. }
  84. },
  85. // 提交保存
  86. onSubmit: async function (e) {
  87. const that = this;
  88. const params = e.detail.value;
  89. if (!this.WxValidate.checkForm(params)) {
  90. const error = this.WxValidate.errorList[0];
  91. wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 })
  92. return false
  93. } else {
  94. const arr = await app.$post(`/newCourt/api/race/toArrange`, params)
  95. if (arr.errcode == '0') { wx.showToast({ title: `信息创建成功`, icon: 'success', duration: 2000 }); that.back(); }
  96. else wx.showToast({ title: `${arr.errmsg}`, icon: 'error', duration: 2000 })
  97. }
  98. },
  99. /**
  100. * 生命周期函数--监听页面加载
  101. */
  102. onLoad: function (options) {
  103. const that = this;
  104. that.setData({ id: options.id || '' });
  105. //验证规则函数
  106. that.initValidate();
  107. that.watchLogin()
  108. },
  109. // 监听用户是否登录
  110. watchLogin: async function () {
  111. const that = this;
  112. wx.getStorage({
  113. key: 'user',
  114. success: async res => {
  115. const arr = await app.$get(`/newCourt/api/match`, { status: '0' });//2
  116. if (arr.errcode == '0') {
  117. that.setData({ matchList: arr.data });
  118. }
  119. },
  120. fail: res => {
  121. wx.redirectTo({ url: '/pages/index/index', })
  122. }
  123. })
  124. },
  125. /**
  126. * 生命周期函数--监听页面初次渲染完成
  127. */
  128. onReady: function () {
  129. },
  130. /**
  131. * 生命周期函数--监听页面显示
  132. */
  133. onShow: function () {
  134. },
  135. /**
  136. * 生命周期函数--监听页面隐藏
  137. */
  138. onHide: function () {
  139. },
  140. /**
  141. * 生命周期函数--监听页面卸载
  142. */
  143. onUnload: function () {
  144. },
  145. /**
  146. * 页面相关事件处理函数--监听用户下拉动作
  147. */
  148. onPullDownRefresh: function () {
  149. },
  150. /**
  151. * 页面上拉触底事件的处理函数
  152. */
  153. onReachBottom: function () {
  154. },
  155. /**
  156. * 用户点击右上角分享
  157. */
  158. onShareAppMessage: function () {
  159. }
  160. })