index.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. const app = getApp()
  2. import WxValidate from '../../utils/wxValidate'
  3. const moment = require("../../utils/moment.min");
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. disabled: false,
  10. match_id: '',
  11. id: '',
  12. user: {},
  13. form: {},
  14. info: {},
  15. // 团队
  16. teamList: [],
  17. // 成员
  18. member: '',
  19. memberList: []
  20. },
  21. // 过滤字典表
  22. getDict(value, model) {
  23. const that = this;
  24. if (value) {
  25. let list = that.data[model + 'List']
  26. let data = list.find(i => i.value == value);
  27. if (data) return data.label
  28. else return '暂无'
  29. }
  30. },
  31. // 选择团队
  32. async teamChange(e) {
  33. const that = this;
  34. const index = e.detail.value;
  35. let data = that.data.teamList[index];
  36. if (data) {
  37. that.setData({ 'form.team_id': data._id })
  38. that.setData({ 'form.team_name': data.name })
  39. that.setData({ member: '', memberList: [] })
  40. let userList = []
  41. for (const val of data.member) {
  42. const member = await app.$api(`user/${val}`, 'GET', {})
  43. if (member.errcode == '0') {
  44. userList.push({
  45. _id: member.data._id,
  46. name: member.data.name,
  47. icon: member.data.icon,
  48. phone: member.data.phone,
  49. age: member.data.age
  50. })
  51. }
  52. }
  53. userList = userList.filter(i => i.name)
  54. that.setData({ userList })
  55. }
  56. },
  57. // 选择成员
  58. userChange(e) {
  59. const that = this;
  60. const memberList = that.data.memberList
  61. const index = e.detail.value;
  62. let data = that.data.userList[index];
  63. if (data) {
  64. const res = memberList.find(i => i._id == data._id)
  65. if (!res) {
  66. memberList.push(data)
  67. that.setData({ memberList, 'form.num': memberList.length.toString() })
  68. that.setData({ member: data.name })
  69. }
  70. }
  71. },
  72. // 删除成员
  73. async toDel(e) {
  74. const that = this;
  75. let res = e.currentTarget.dataset.item
  76. if (res) {
  77. let memberList = that.data.memberList.filter(i => i._id != res._id);
  78. that.setData({ memberList, 'form.num': memberList.length.toString() })
  79. }
  80. },
  81. // 提交保存
  82. async toSave(e) {
  83. const that = this;
  84. const parmas = e.detail.value;
  85. if (!this.WxValidate.checkForm(parmas)) {
  86. const error = that.WxValidate.errorList[0];
  87. wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 })
  88. return false
  89. } else {
  90. if (that.data.memberList.length > 0) {
  91. parmas.apply_time = moment().format('YYYY-MM-DD HH:mm:ss')
  92. parmas.user_id = that.data.memberList
  93. parmas.num = that.data.memberList.length.toString()
  94. let res
  95. if (that.data.id) res = await app.$api(`application/${that.data.id}`, 'POST', parmas);
  96. else res = await app.$api('application', 'POST', parmas);
  97. if (res.errcode == '0') {
  98. wx.showToast({ title: `信息提交成功`, icon: 'success' });
  99. wx.navigateBack({ delta: 1 });
  100. } else wx.showToast({ title: `${res.errmsg}`, icon: 'none' });
  101. } else {
  102. wx.showToast({ title: `请选择参加比赛成员`, icon: 'none' });
  103. }
  104. }
  105. },
  106. /**
  107. * 生命周期函数--监听页面加载
  108. */
  109. async onLoad(options) {
  110. const that = this;
  111. if (options.id) that.setData({ disabled: true });
  112. that.setData({ match_id: options.match, id: options.id });
  113. wx.showLoading({ title: '加载中', mask: true })
  114. //验证规则函数
  115. that.initValidate();
  116. await that.searchUser()
  117. await that.search()
  118. wx.hideLoading()
  119. },
  120. initValidate() {
  121. const rules = { match_name: { required: true }, team_name: { required: true } }
  122. const messages = { match_name: { required: '请输入比赛名称' }, team_name: { required: '请输入团队名称' } };
  123. this.WxValidate = new WxValidate(rules, messages)
  124. },
  125. async searchUser() {
  126. const that = this;
  127. wx.getStorage({
  128. key: 'user',
  129. async success(res) {
  130. that.setData({ user: res.data })
  131. that.searchOther()
  132. },
  133. fail(err) {
  134. // console.log(err);
  135. }
  136. })
  137. },
  138. // 查询其他信息
  139. async searchOther() {
  140. const that = this;
  141. let res;
  142. // 团队
  143. res = await app.$api('team', 'GET', { administrator: that.data.user._id, status: '1' })
  144. if (res.errcode == '0') that.setData({ teamList: res.data })
  145. },
  146. async search() {
  147. const that = this;
  148. if (that.data.id) {
  149. let arr = await app.$api(`application/${that.data.id}`, 'GET', {})
  150. if (arr.errcode == '0') {
  151. let data = that.data.teamList.find(i => i._id == arr.data.team_id);
  152. if (data) that.setData({ userList: data.member })
  153. that.setData({ form: arr.data, memberList: arr.data.user_id })
  154. }
  155. } else {
  156. let aee = await app.$api(`match/${that.data.match_id}`, 'GET', {})
  157. if (aee.errcode == '0') {
  158. that.setData({ 'form.match_id': aee.data._id, 'form.match_name': aee.data.name })
  159. }
  160. }
  161. },
  162. /**
  163. * 生命周期函数--监听页面初次渲染完成
  164. */
  165. onReady() {
  166. },
  167. /**
  168. * 生命周期函数--监听页面显示
  169. */
  170. onShow() {
  171. },
  172. /**
  173. * 生命周期函数--监听页面隐藏
  174. */
  175. onHide() {
  176. },
  177. /**
  178. * 生命周期函数--监听页面卸载
  179. */
  180. onUnload() {
  181. },
  182. /**
  183. * 页面相关事件处理函数--监听用户下拉动作
  184. */
  185. onPullDownRefresh() {
  186. },
  187. /**
  188. * 页面上拉触底事件的处理函数
  189. */
  190. onReachBottom() {
  191. },
  192. /**
  193. * 用户点击右上角分享
  194. */
  195. onShareAppMessage() {
  196. }
  197. })