index.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. import { match_status } from '../../utils/dict';
  2. const app = getApp()
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. frameStyle: { useTop: true, name: '赛事信息', leftArrow: true, useBar: false },
  9. fileUrl: app.globalData.fileUrl,
  10. user: {},
  11. id: '',
  12. info: {},
  13. // 选项卡
  14. tabs: {
  15. active: 'a',
  16. list: [
  17. { title: '规程', name: 'a' },
  18. { title: '选手', name: 'b' },
  19. { title: '秩序册', name: 'c' },
  20. { title: '赛况', name: 'd' },
  21. { title: '成绩册', name: 'e' },
  22. ],
  23. },
  24. // 选手
  25. bActive: '0',
  26. groupList: [
  27. {
  28. name: "第一组",
  29. age: "年龄限制",
  30. gender: "性别限制",
  31. total: "20",
  32. project: [
  33. {
  34. name: "名称1",
  35. type: "类别1",
  36. total: "10",
  37. user: [
  38. {
  39. icon: [{ url: '/image/icon.jpg' }],
  40. name: "用户姓名"
  41. },
  42. {
  43. icon: [{ url: '/image/icon.jpg' }],
  44. name: "用户姓名"
  45. },
  46. {
  47. icon: [{ url: '/image/icon.jpg' }],
  48. name: "用户姓名"
  49. },
  50. {
  51. icon: [{ url: '/image/icon.jpg' }],
  52. name: "用户姓名"
  53. },
  54. {
  55. icon: [{ url: '/image/icon.jpg' }],
  56. name: "用户姓名"
  57. },
  58. {
  59. icon: [{ url: '/image/icon.jpg' }],
  60. name: "用户姓名"
  61. },
  62. ]
  63. },
  64. {
  65. name: "名称2",
  66. type: "类别2",
  67. total: "10",
  68. user: [
  69. {
  70. icon: [{ url: '/image/icon.jpg' }],
  71. name: "用户姓名"
  72. },
  73. {
  74. icon: [{ url: '/image/icon.jpg' }],
  75. name: "用户姓名"
  76. },
  77. ]
  78. },
  79. ]
  80. },
  81. {
  82. name: "第二组",
  83. age: "年龄限制",
  84. gender: "性别限制",
  85. total: "120",
  86. project: [
  87. {
  88. name: "名称1",
  89. type: "类别2",
  90. total: "12",
  91. user: []
  92. }
  93. ]
  94. }
  95. ]
  96. },
  97. // 跳转菜单
  98. back(e) {
  99. wx.navigateBack({ delta: 1 })
  100. },
  101. // 选项卡
  102. tabsChange: function (e) {
  103. const that = this;
  104. const { name } = e.detail;
  105. if (name == 'c' || name == "d" || name == "e") {
  106. wx.showToast({ title: `暂无发布`, icon: 'error', duration: 2000 });
  107. } else {
  108. that.setData({ 'tabs.active': e.detail.name });
  109. }
  110. },
  111. // 更多
  112. toCommon: function (e) {
  113. const { route } = e.currentTarget.dataset;
  114. wx.redirectTo({ url: `/pages/${route}/index` })
  115. },
  116. // 报名
  117. toSign: function (e) {
  118. const { item } = e.currentTarget.dataset;
  119. wx.navigateTo({ url: `/pages/matchInfo/sign?id=${item._id}` })
  120. },
  121. // 选择手风琴
  122. bChange: function (e) {
  123. const that = this;
  124. that.setData({ bActive: e.detail })
  125. },
  126. /**
  127. * 生命周期函数--监听页面加载
  128. */
  129. onLoad: function (options) {
  130. const that = this;
  131. that.setData({ id: options.id || '62e23cd3bb22e03d0b49d73b' });
  132. // 监听用户是否登录
  133. that.watchLogin();
  134. },
  135. watchLogin: function () {
  136. const that = this;
  137. wx.getStorage({
  138. key: 'user',
  139. success: async (res) => {
  140. that.setData({ user: res.data })
  141. if (that.data.id) {
  142. const arr = await app.$get(`/newCourt/api/match/${that.data.id}`);
  143. if (arr.errcode == '0') {
  144. arr.data.statusZh = that.getStatusZh(arr.data.status);
  145. that.setData({ info: arr.data })
  146. } else { wx.showToast({ title: `${res.errMsg}`, icon: 'fail', duration: 2000 }); }
  147. }
  148. },
  149. fail: async (res) => {
  150. wx.redirectTo({ url: '/pages/index/index' });
  151. },
  152. });
  153. },
  154. getStatusZh(status) {
  155. let word = "未知"
  156. let data = match_status.find((i) => i.label == status);
  157. if (data) word = data.value;
  158. return word;
  159. },
  160. /**
  161. * 生命周期函数--监听页面初次渲染完成
  162. */
  163. onReady: function () {
  164. },
  165. /**
  166. * 生命周期函数--监听页面显示
  167. */
  168. onShow: function () {
  169. },
  170. /**
  171. * 生命周期函数--监听页面隐藏
  172. */
  173. onHide: function () {
  174. },
  175. /**
  176. * 生命周期函数--监听页面卸载
  177. */
  178. onUnload: function () {
  179. },
  180. /**
  181. * 页面相关事件处理函数--监听用户下拉动作
  182. */
  183. onPullDownRefresh: function () {
  184. },
  185. /**
  186. * 页面上拉触底事件的处理函数
  187. */
  188. onReachBottom: function () {
  189. },
  190. /**
  191. * 用户点击右上角分享
  192. */
  193. onShareAppMessage: function () {
  194. }
  195. })