login.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. const { miniLogin } = require('./api/index')
  2. const { login, sessionStorageKey } = require('../../api/request')
  3. const { envDomain } = require('../../utils/config')
  4. const app = getApp()
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. checked: false,
  11. booLock: false
  12. },
  13. wxCode: '',
  14. /**
  15. * 生命周期函数--监听页面加载
  16. */
  17. onLoad: function (options) {
  18. this.getWxCode()
  19. },
  20. /**
  21. * 生命周期函数--监听页面初次渲染完成
  22. */
  23. onReady: function () {
  24. },
  25. /**
  26. * 生命周期函数--监听页面显示
  27. */
  28. onShow: function () {
  29. },
  30. /**
  31. * 生命周期函数--监听页面隐藏
  32. */
  33. onHide: function () {
  34. },
  35. /**
  36. * 生命周期函数--监听页面卸载
  37. */
  38. onUnload: function () {
  39. },
  40. async getWxCode() {
  41. try {
  42. this.wxCode = await login()
  43. } catch (e) {}
  44. },
  45. bindTip() {
  46. wx.showToast({
  47. title: '请阅读并勾选协议',
  48. icon: 'none'
  49. })
  50. },
  51. // 获取token
  52. async getPhoneNumber(e) {
  53. const { errMsg, encryptedData, iv } = e.detail
  54. if (errMsg === 'getPhoneNumber:ok') {
  55. this.setData({
  56. booLock: true
  57. })
  58. try {
  59. const { status, data } = await miniLogin({ wxCode: this.wxCode, encryptedData, iv })
  60. if (status) {
  61. try {
  62. wx.setStorageSync(sessionStorageKey, data.token)
  63. } catch (err) {}
  64. await app.fetchUserData()
  65. const pages = getCurrentPages()
  66. if (pages.length > 1) {
  67. const route = pages[pages.length - 2]
  68. wx.navigateBack({
  69. delta: 1
  70. })
  71. route.bindCallBack && route.bindCallBack()
  72. }
  73. } else {
  74. wx.showToast({
  75. title: '登录出错了,请重试',
  76. icon: 'none'
  77. })
  78. this.getWxCode()
  79. }
  80. } catch (e) {
  81. this.getWxCode()
  82. }
  83. this.setData({
  84. booLock: false
  85. })
  86. }
  87. },
  88. jumpBind() {
  89. wx.navigateTo({
  90. url: '/pages/bind/bind'
  91. })
  92. },
  93. // 去包个大巴服务协议
  94. jumpAgreement() {
  95. wx.navigateTo({
  96. url: '/pages/h5/h5?url=' + envDomain.h5Domain + '/agreement'
  97. })
  98. },
  99. // 去隐私政策
  100. jumpPrivacy() {
  101. wx.navigateTo({
  102. url: '/pages/h5/h5?url=' + envDomain.h5Domain + '/privacy'
  103. })
  104. },
  105. bindChange() {
  106. this.setData({
  107. checked: !(this.data.checked)
  108. })
  109. }
  110. })