const $$ = require('../../utils/util'); const app = getApp(); // 获取手机号码 function getPhoneNumber(submitData) { return $$.request({ url: 'paAccount/getUserPhone', type: 'post', service: 'cust', submitData }); } Component({ /** * 组件的属性列表 * popup: 下拉框的数据;visible:boolean 是否显示;title: string 标题;selectData: array;列数据;可拓展对象属性 * safeBottom: iphoneX安全距离 */ properties: { popup: { type: Object, value: { visible: false }, // default: { visible: false, title: '', selectData: [] } }, safeBottom: { type: Boolean, value: true, }, }, /** * 组件的初始数据 */ columnsDefaultIndex: 0, data: { loginVisible: false, popupIndex: null, }, pageLifetimes: { show: function () { if (!app.globalData.token) { console.log('测试') if (!app.globalData.access_token) { $$.showModal({ content: '抱歉您未登录,是否前往登录?', success: (res) => { if (res.confirm) { // wx.redirectTo({ // url: '../../pages/login/index', // }); this.handleGetUserInfo() } else { wx.navigateBack({ delta: 1, }); } }, }); } } if (app.globalData.token && !this.data.loginVisible) { this.setData({ loginVisible: true }); } }, }, // 登录,获取用户信息 async handleGetUserInfo() { $$.showLoading(); wx.getUserProfile({ desc: '完善用户信息', complete(res) { if (res.errMsg === 'getUserProfile:ok') { wx.login({ async success(res2) { if (res2.code) { const accountInfo = wx.getAccountInfoSync(); const submitData = { appid: accountInfo.miniProgram.appId, code: res2.code, avatar: res?.userInfo.avatarUrl, encryptedData: res.encryptedData, ivStr: res.iv, }; const res3 = await loginApi(submitData); $$.hideLoading(); if (res3.type) { wx.setStorage({ key: 'userInfo', data: res3.data }); app.globalData.token = res3.data.token; $$.showToast({ title: '登录成功', icon: 'success' }); await $$.sleep(); wx.reLaunch({ url: '../../pages/homePage/index', }); } } else { $$.hideLoading(); $$.showToast('登录失败,请稍后重试'); } }, }); } else { $$.hideLoading(); $$.showToast({ title: '抱歉!授权失败' }); } }, }); }, observers: { 'popup.visible,popup.noPicker': function (data1, data2) { if ((data1, data2)) { this.setData({ popupIndex: this.data.popup.activeIndex }); } }, }, /** * 组件的方法列表 */ methods: { // 退出登录 loginOut() { this.setData({ loginVisible: false }); }, // 获取手机号码 async handleGetPhoneNumber(code) { $$.showLoading(); const accountInfo = wx.getAccountInfoSync(); const res = await getPhoneNumber({ appid: accountInfo.miniProgram.appId, code }); $$.hideLoading(); if (res.type) { $$.showToast({ title: '获取成功' }); return res.data; } }, // 下拉框底层弹出层方法 _handleClosePopup() { this.triggerEvent('onClosePopup'); }, _handleChangePicker(e) { this.triggerEvent('onChangePicker', { dataset: e.currentTarget.dataset, detail: e.detail }); }, _handleConfirmPicker(e) { if (this.data.popup.noPicker) { // 当组件不是Picker时 let index = e.currentTarget.dataset.index; let value = e.currentTarget.dataset.value; this.triggerEvent('onConfirmPicker', { dataset: e.currentTarget.dataset, detail: { index, value } }); return; } this.triggerEvent('onConfirmPicker', { dataset: e.currentTarget.dataset, detail: e.detail }); }, }, });