bind.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. // packageUser/pages/user/bind/bind.js
  2. var validator = require('../../../../utils/validator.js')
  3. var _request = require('../../../../utils/request.js')
  4. var _handle = require('../../../../utils/handle.js')
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. tel: 0,
  11. yzm: '',
  12. countdown: 0
  13. },
  14. getTel (val) {
  15. console.log(val)
  16. if (val.detail.encryptedData) {
  17. this.bindWxTel(val.detail)
  18. }
  19. },
  20. bindWxTel (res) {
  21. var str = JSON.stringify({
  22. encryptedData: res.encryptedData,
  23. iv: res.iv
  24. })
  25. var that = this
  26. var url = 'v1/wxuser/one_click/binding/phonumer'
  27. var params = {
  28. userinfo: str
  29. }
  30. var success = function (res) {
  31. var bindbackurl = wx.getStorageSync('bindbackurl');
  32. if(bindbackurl){
  33. wx.navigateBack({})
  34. wx.navigateTo({
  35. url: bindbackurl
  36. })
  37. wx.showToast({
  38. title: '手机号码绑定成功~',
  39. icon: 'none',
  40. duration: 2000
  41. })
  42. }else{
  43. wx.navigateTo({
  44. url: '/packageUser/pages/user/bindsuccess/bindsuccess'
  45. })
  46. }
  47. }
  48. _request.$post(url, params, success)
  49. },
  50. bindPhone (e) {
  51. this.setData({
  52. tel: e.detail.value
  53. })
  54. },
  55. bindYzm (e) {
  56. this.setData({
  57. yzm: e.detail.value
  58. })
  59. },
  60. getYzm (e) {
  61. _handle.setFormId(e)
  62. if (validator.telphone(this.data.tel)) {
  63. this.requireYzm()
  64. } else {
  65. wx.showToast({
  66. title: '手机号码格式不正确',
  67. icon: 'none',
  68. duration: 2000
  69. })
  70. }
  71. },
  72. startCountdown: function () {
  73. var smsRequestTime = wx.getStorageSync('sms_request_time')
  74. if (smsRequestTime) {
  75. var count = parseInt((60000 - (new Date() - smsRequestTime)) / 1000)
  76. this.setData({
  77. countdown: count
  78. })
  79. if (this.data.countdown > 0) {
  80. var timer = setInterval(() => {
  81. var countdown = this.data.countdown - 1
  82. this.setData({
  83. countdown: countdown
  84. })
  85. if (this.data.countdown <= 0) {
  86. clearInterval(timer)
  87. }
  88. }, 1000)
  89. // clearInterval(this.interval)
  90. }
  91. } else {
  92. }
  93. },
  94. requireYzm () {
  95. var that = this
  96. var url = 'v1/code/send'
  97. var params = {
  98. tel: this.data.tel,
  99. valid_type: 'binding'
  100. }
  101. var success = function (res) {
  102. wx.setStorageSync('sms_request_time', Date.now())
  103. that.startCountdown()
  104. }
  105. _request.$post(url, params, success)
  106. },
  107. requireBindTel () {
  108. var that = this
  109. var url = 'v1/wxuser/binding/tel'
  110. var params = {
  111. tel: this.data.tel,
  112. code: this.data.yzm
  113. }
  114. var success = function (res) {
  115. var bindbackurl = wx.getStorageSync('bindbackurl');
  116. if(bindbackurl){
  117. wx.navigateBack({})
  118. wx.navigateTo({
  119. url: bindbackurl
  120. })
  121. wx.showToast({
  122. title: '手机号码绑定成功~',
  123. icon: 'none',
  124. duration: 2000
  125. })
  126. }else{
  127. wx.navigateTo({
  128. url: '/packageUser/pages/user/bindsuccess/bindsuccess'
  129. })
  130. }
  131. }
  132. _request.$post(url, params, success)
  133. },
  134. setBind (e) {
  135. _handle.setFormId(e)
  136. var { isOk, msg } = this.validate()
  137. if (isOk) {
  138. this.requireBindTel()
  139. } else {
  140. wx.showToast({
  141. title: msg,
  142. icon: 'none',
  143. duration: 2000
  144. })
  145. }
  146. },
  147. validate () {
  148. var msg
  149. if (!validator.required(this.data.tel)) {
  150. msg = '手机不能为空'
  151. } else if (!validator.telphone(this.data.tel)) {
  152. msg = '手机号码格式不正确'
  153. } else if (!validator.required(this.data.yzm)) {
  154. msg = '验证码不能为空'
  155. }
  156. return { isOk: !msg, msg }
  157. },
  158. otherbind () {
  159. var that = this
  160. var url = 'v1/wxuser/one_click/binding/tel'
  161. var params = {
  162. }
  163. var success = function (res) {
  164. wx.navigateTo({
  165. url: '/packageUser/pages/user/bindsuccess/bindsuccess'
  166. })
  167. }
  168. _request.$post(url, params, success)
  169. },
  170. onShareAppMessage: function (val) {
  171. return _request.share({
  172. sc: 'xcx_user_bind'
  173. })
  174. }
  175. })