info.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. // pages/contest/contest.js
  2. import {
  3. imine
  4. } from '../../../api/api.js'
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. sexList: [{label:'男',value:1},{label:'女',value:2}],
  11. form: {schoolName:''},
  12. areaList: [],
  13. sortList: [
  14. {name:'actualName',title:'姓名'},
  15. {name:'sex',title:'性别'},
  16. {name:'birthday',title:'生日'},
  17. {name:'area',title:'区域'},
  18. {name:'school',title:'学校'},
  19. {name:'grade',title:'年级'}
  20. ],
  21. ageList: [],
  22. gradeList: [
  23. {label:'一年级',value:'一年级'},
  24. {label:'二年级',value:'二年级'},
  25. {label:'三年级',value:'三年级'},
  26. {label:'四年级',value:'四年级'},
  27. {label:'五年级',value:'五年级'},
  28. {label:'六年级',value:'六年级'},
  29. {label:'七年级',value:'七年级'},
  30. {label:'八年级',value:'八年级'},
  31. {label:'九年级',value:'九年级'},
  32. {label:'高一',value:'高一'},
  33. {label:'高二',value:'高二'},
  34. {label:'高三',value:'高三'}
  35. ],
  36. schoolList: [],
  37. jgList: [true,true,true,true,true,true],
  38. statusBar: 0
  39. },
  40. goHome (e) {
  41. wx.reLaunch({
  42. url: '/pages/home/home',
  43. })
  44. },
  45. changeInput (e) {
  46. const id = e.currentTarget.id;
  47. let value = (id === 'actualName' ? e.detail.value.replace(/[^\u4E00-\u9FA5]/g, '') : e.detail.value)
  48. this.setData({
  49. ['form.'+id]: value
  50. })
  51. },
  52. bindAddrChange (e) {
  53. const id = e.currentTarget.id;
  54. const value = e.detail.value
  55. this.setData({
  56. ['form.'+id]: value.join(' ')
  57. })
  58. },
  59. bindPickerData (e) {
  60. const id = e.currentTarget.id;
  61. const value = this.formatYMD(e.detail.value)
  62. this.setData({
  63. ['form.'+id]: value
  64. })
  65. },
  66. formatYMD (time) {
  67. let date = new Date(time)
  68. let y = date.getFullYear()
  69. let m = date.getMonth() + 1
  70. m = m < 10 ? '0' + m : m
  71. let d = date.getDate()
  72. d = d < 10 ? '0' + d : d
  73. return y + '-' + m + '-' + d
  74. },
  75. bindPicker (e) {
  76. const id = e.currentTarget.id;
  77. const list = e.currentTarget.dataset.list
  78. const value = e.detail.value
  79. this.setData({
  80. ['form.'+id]: this.data[list][value].value
  81. })
  82. },
  83. bindPickerSchool (e) {
  84. const id = e.currentTarget.id;
  85. const value = e.detail.value
  86. this.setData({
  87. ['form.'+id]: this.data.schoolList[value].id,
  88. ['form.schoolName']: this.data.schoolList[value].schoolName
  89. })
  90. },
  91. bindPickerChange(e) {
  92. const id = e.currentTarget.id;
  93. const value = e.detail.value
  94. this.setData({
  95. ['form.'+id]: this.data.areaList[value].id,
  96. ['form.areaName']: this.data.areaList[value].areaName
  97. }, () => {
  98. imine.querySchoolByAreaId({reqdata:{
  99. id: this.data.form[id]
  100. }},r => {
  101. let list = r.list
  102. let index = list.findIndex(item=>item.schoolName.includes('其他'))
  103. let obj = list.splice(index,1)
  104. list.push(obj[0])
  105. this.setData({
  106. schoolList: list,
  107. ['form.school']: null,
  108. ['form.schoolName']: ''
  109. })
  110. })
  111. })
  112. },
  113. submit (e) {
  114. let {actualName,sex,birthday,area,grade,other,school} = this.data.form
  115. let {sortList} = this.data
  116. this.setData({
  117. jgList: sortList.map(item => !!this.data.form[item.name])
  118. }, () => {
  119. if (!sortList.every(item => this.data.form[item.name])) {
  120. console.log(this.data.jgList);
  121. return
  122. }
  123. let id = wx.getStorageSync('id')
  124. imine.updateUser({reqdata:{actualName,sex,birthday,area,grade,other,school,id}},r => {
  125. this.loadMyinformation()
  126. wx.showModal({
  127. title: '答题须知:',
  128. content: '1.每人每天最多答题三次\n\n 2.排行榜以得分情况计算',
  129. confirmColor: '#ff0000',
  130. cancelText: '返回',
  131. success (res) {
  132. if (res.confirm) {
  133. wx.navigateTo({
  134. url: '/pages/contest/answer/answer'
  135. })
  136. } else if (res.cancel) {
  137. wx.reLaunch({
  138. url: '/pages/home/home',
  139. })
  140. }
  141. }
  142. })
  143. })
  144. })
  145. },
  146. queryAllArea () {
  147. imine.queryAllArea({},r => {
  148. this.setData({
  149. areaList: r.list
  150. })
  151. })
  152. },
  153. loadMyinformation() {
  154. let id = wx.getStorageSync('id')
  155. imine.loadMyinformation({reqdata: {id}},r => {
  156. wx.setStorageSync('user', r.object)
  157. })
  158. },
  159. /**
  160. * 生命周期函数--监听页面加载
  161. */
  162. onLoad: function (options) {
  163. this.queryAllArea()
  164. wx.getSystemInfo({
  165. success: e => {
  166. this.setData({
  167. statusBar: e.statusBarHeight + 13
  168. })
  169. }
  170. })
  171. let {ageList} = this.data
  172. for (let index = 0; index < 100; index++) {
  173. // const element = array[index];
  174. ageList[index] = { label: index+1+'岁',value: index+1}
  175. }
  176. this.setData({
  177. ageList,
  178. endDate: new Date().format('yyyy-MM-dd')
  179. })
  180. },
  181. /**
  182. * 生命周期函数--监听页面初次渲染完成
  183. */
  184. onReady: function () {
  185. },
  186. /**
  187. * 生命周期函数--监听页面显示
  188. */
  189. onShow: function () {
  190. },
  191. /**
  192. * 生命周期函数--监听页面隐藏
  193. */
  194. onHide: function () {
  195. },
  196. /**
  197. * 生命周期函数--监听页面卸载
  198. */
  199. onUnload: function () {
  200. },
  201. /**
  202. * 页面相关事件处理函数--监听用户下拉动作
  203. */
  204. onPullDownRefresh: function () {
  205. },
  206. /**
  207. * 页面上拉触底事件的处理函数
  208. */
  209. onReachBottom: function () {
  210. },
  211. /**
  212. * 用户点击右上角分享
  213. */
  214. onShareAppMessage: function () {
  215. }
  216. })