与牧同行-小程序用户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

188 lines
5.5 KiB

  1. import http from '../../utils/api'
  2. Page({
  3. data: {
  4. isAgree: true, // 是否同意协议
  5. showAgreementModal: false, // 是否显示协议弹窗
  6. modalTitle: '', // 弹窗标题
  7. modalContent: '', // 弹窗内容
  8. isLoading: false, // 是否显示加载中,
  9. phoneData: {},
  10. },
  11. onLoad() {
  12. this.login()
  13. },
  14. // 登录获取
  15. login() {
  16. // 小程序接口
  17. var that = this
  18. wx.login({
  19. success(res) {
  20. //登录接口
  21. http.login({
  22. data: {
  23. code: res.code,
  24. clientType: 'herdsman-app'
  25. },
  26. success: function (res) {
  27. if (res.data) {
  28. that.setData({
  29. phoneData: res.data
  30. })
  31. wx.showToast({
  32. title: res.data.message,
  33. icon: 'none',
  34. duration: 2000
  35. });
  36. }
  37. if (res.token) {
  38. wx.setStorageSync('token', res.token)
  39. wx.switchTab({
  40. url: '/pages/home/home'
  41. });
  42. }
  43. },
  44. })
  45. },
  46. fail: (error) => {
  47. console.log('登录失败!' + error);
  48. }
  49. })
  50. },
  51. // 获取用户手机号
  52. getPhoneNumber(e) {
  53. if (!this.data.isAgree) {
  54. wx.showToast({
  55. title: '请先同意协议',
  56. icon: 'none',
  57. duration: 2000
  58. });
  59. return;
  60. }
  61. // 显示加载中
  62. this.setData({
  63. isLoading: true
  64. });
  65. // 检查是否获取到手机号
  66. if (e.detail.errMsg === "getPhoneNumber:ok") {
  67. // 这里应该将加密数据发送到后端进行解密
  68. this.data.phoneData.encryptedData = e.detail.encryptedData
  69. this.data.phoneData.iv = e.detail.iv
  70. http.getPhoneNumber({
  71. data: this.data.phoneData,
  72. success: res => {
  73. if (res.code == 200) {
  74. wx.setStorageSync('token', res.token)
  75. setTimeout(() => {
  76. wx.switchTab({
  77. url: '/pages/home/home'
  78. });
  79. }, 1500);
  80. this.setData({
  81. isLoading: false
  82. })
  83. wx.showToast({
  84. title: '登录成功',
  85. icon: 'success',
  86. duration: 2000
  87. });
  88. }
  89. }
  90. })
  91. } else {
  92. // 用户拒绝授权
  93. this.setData({
  94. isLoading: false
  95. });
  96. wx.showToast({
  97. title: '需要手机号授权才能登录',
  98. icon: 'none',
  99. duration: 2000
  100. });
  101. }
  102. },
  103. // 切换协议同意状态
  104. toggleAgreement() {
  105. this.setData({
  106. isAgree: !this.data.isAgree
  107. });
  108. },
  109. // 显示用户协议
  110. showAgreement() {
  111. const content = `欢迎您使用与牧同行服务!
  112. 服务说明
  113. 与牧同行为您提供智慧放牧管理牲畜追踪草场监测等服务通过我们的平台您可以更高效地管理牧场资源提升放牧效率
  114. 账号注册
  115. 1. 您需要使用手机号完成注册
  116. 2. 您应保证提供的信息真实准确完整
  117. 3. 您对账号安全负全部责任
  118. 使用规范
  119. 1. 不得利用本服务从事任何违法违规活动
  120. 2. 不得干扰或破坏本服务的正常运行
  121. 3. 遵守相关法律法规和平台规则
  122. 服务变更与终止
  123. 我们可能根据需要变更服务内容如您不同意变更可停止使用本服务
  124. 免责声明
  125. 对于不可抗力网络问题等导致的服务中断我们不承担相应责任
  126. 法律适用
  127. 本协议受中华人民共和国法律管辖
  128. 感谢您选择与牧同行`;
  129. this.setData({
  130. showAgreementModal: true,
  131. modalTitle: '用户协议',
  132. modalContent: content
  133. });
  134. },
  135. // 显示隐私政策
  136. showPrivacy() {
  137. const content = `与牧同行隐私政策
  138. 我们深知个人信息对您的重要性并会尽全力保护您的个人信息安全可靠我们致力于维持您对我们的信任恪守以下原则保护您的个人信息权责一致原则目的明确原则选择同意原则最少够用原则确保安全原则主体参与原则公开透明原则等
  139. 我们如何收集和使用您的个人信息
  140. 我们仅会出于本政策所述的以下目的收集和使用您的个人信息
  141. 1. 账号注册手机号
  142. 2. 服务提供位置信息设备信息
  143. 3. 安全保障登录日志操作记录
  144. 我们如何共享转让公开披露您的个人信息
  145. 1. 我们不会与任何公司组织和个人共享您的个人信息
  146. 2. 我们不会将您的个人信息转让给任何公司组织和个人
  147. 3. 我们仅会在法律要求的情况下公开披露您的个人信息
  148. 我们如何保护您的个人信息
  149. 1. 我们已使用符合业界标准的安全防护措施保护您提供的个人信息
  150. 2. 我们会采取合理可行的措施确保未收集无关的个人信息
  151. 您的权利
  152. 您有权访问更正删除您的个人信息以及改变您授权同意的范围或撤回授权
  153. 我们如何处理儿童的个人信息
  154. 我们的服务主要面向成人如果没有父母或监护人的同意儿童不应创建自己的个人信息主体账户
  155. 本政策如何更新
  156. 我们可能适时修订本政策内容并通过公告等方式通知您
  157. 如有任何疑问请通过客服渠道联系我们`;
  158. this.setData({
  159. showAgreementModal: true,
  160. modalTitle: '隐私政策',
  161. modalContent: content
  162. });
  163. },
  164. // 隐藏弹窗
  165. hideModal() {
  166. this.setData({
  167. showAgreementModal: false
  168. });
  169. }
  170. })