import { decrptPhone, getUserInfo, updateUserInfo, updateAvatar } from '../../api/user' const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms)); Component({ /** * 组件的属性列表 */ properties: { show: { // 属性名 type: Boolean, value: false, }, showPhone: { // 属性名 type: Boolean, value: false, }, }, /** * 组件的初始数据 */ observers: { show: function (val) { console.log('gemer', val) this.setData({ ifShow: val }) } }, data: { ifShow: true, bottom: 0, defaultAvatarUrl: 'https://4dkk.4dage.com/miniapp-source/daikan/avatar_default.png', avatar: '', nickname: '', phoneNumber: '' }, attached() { // this.setData({ // bottom: 0 // }) // debugger }, /** * 组件的方法列表 */ methods: { updateNickName(ev) { this.setData({ nickname: ev.detail.value }) }, quitHandle: function () { // getApp().setLoginProps(true) }, async onChooseAvatar(e: WechatMiniprogram.TouchEvent) { const { avatarUrl } = e.detail const url = await updateAvatar(avatarUrl) console.log('url', url) this.setData({ avatar: url }) }, async updateUserInfo() { const wxUserId = wx.getStorageSync('wxUserId'); await updateUserInfo({ wxUserId, nickName: this.data.nickname, avatarUrl: this.data.avatar, phoneNumber: this.data.phoneNumber, }) await getUserInfo(); this.setData({ ifShow: false }); this.triggerEvent('update') }, async checkSession(): Promise { let isExist = false wx.checkSession({ success() { isExist = true }, fail() { isExist = false } }) await sleep(1000) return Promise.resolve(isExist) }, async handleGetPhoneNumber(event: WechatMiniprogram.ButtonGetPhoneNumber) { console.log('event', event) const isValid = await this.checkSession(); console.log('isValid', isValid) if (isValid) { const { code, iv, encryptedData } = event.detail if (code && iv && encryptedData) { const res = await decrptPhone({ iv: iv, code: code, encryptedData: encryptedData }) console.log('res', res) if (res && res.phoneNumber) { this.setData({ phoneNumber: res.phoneNumber }) } } } } } })