personal.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. // pages/personal/personal.ts
  2. import ActionSheet, { ActionSheetTheme, ActionSheetShowOption } from 'tdesign-miniprogram/action-sheet/index';
  3. import { decrptPhone } from '../../api/user'
  4. const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms));
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. avatar: 'https://cdn-we-retail.ym.tencent.com/retail-ui/components-exp/avatar/avatar-v2/1.png',
  11. },
  12. /**
  13. * 生命周期函数--监听页面加载
  14. */
  15. onLoad() {
  16. },
  17. /**
  18. * 生命周期函数--监听页面初次渲染完成
  19. */
  20. onReady() {
  21. },
  22. /**
  23. * 生命周期函数--监听页面显示
  24. */
  25. onShow() {
  26. const app = getApp<IAppOption>()
  27. this.setData({
  28. isLogin: app.globalData.isLogin
  29. })
  30. },
  31. /**
  32. * 生命周期函数--监听页面隐藏
  33. */
  34. onHide() {
  35. },
  36. /**
  37. * 生命周期函数--监听页面卸载
  38. */
  39. onUnload() {
  40. },
  41. /**
  42. * 页面相关事件处理函数--监听用户下拉动作
  43. */
  44. onPullDownRefresh() {
  45. },
  46. /**
  47. * 页面上拉触底事件的处理函数
  48. */
  49. onReachBottom() {
  50. },
  51. /**
  52. * 用户点击右上角分享
  53. */
  54. onShareAppMessage() {
  55. },
  56. async checkSession(): Promise<boolean> {
  57. let isExist = false
  58. wx.checkSession({
  59. success() {
  60. isExist = true
  61. },
  62. fail() {
  63. isExist = false
  64. }
  65. })
  66. await sleep(1000)
  67. return Promise.resolve(isExist)
  68. },
  69. async handleGetPhoneNumber(event: WechatMiniprogram.ButtonGetPhoneNumber) {
  70. // debugger
  71. console.log('event', event)
  72. const isValid = await this.checkSession();
  73. console.log('isValid', isValid)
  74. if (isValid) {
  75. const { code, iv, encryptedData } = event.detail
  76. if (code && iv && encryptedData) {
  77. const res = await decrptPhone({
  78. iv: iv,
  79. code: code,
  80. encryptedData: encryptedData
  81. })
  82. console.log('res', res.phoneNumber)
  83. }
  84. }
  85. },
  86. handleSexSelectShow() {
  87. const basicListOption: ActionSheetShowOption = {
  88. theme: ActionSheetTheme.List,
  89. selector: '#t-action-sheet',
  90. items: [
  91. {
  92. label: '男性',
  93. },
  94. {
  95. label: '女性',
  96. },
  97. ],
  98. };
  99. const handler = ActionSheet.show(basicListOption);
  100. },
  101. handleSelected(event: WechatMiniprogram.TouchEvent) {
  102. console.log('event', event)
  103. const { index } = event.detail
  104. }
  105. })