// pages/my/my.js import itt from '../../utils/util' import { ittLogin, bindMobile, bindBaseInfo } from '../../api/my' const app = getApp() Page({ /** * 页面的初始数据 */ data: { overshow: false, pageLogin: false, showPhoneAuthBtn: true, showAvaNick: false, isNeedPhone: false, isRegister: false, avatarUrl: '', confirmAvatarUrl: '', confirmNickname: '点击获取头像昵称', nickname: '', phone: '', count: 0, gridList: [ { id: 0, title: '我的地址', url: '/pages/address/address?form=my&back=0', imgUrl: '../../imaes/dizhi@2x.png' }, { id: 1, title: '我的档案', url: '/pages/myFile/myFile?form=my', imgUrl: '../../imaes/dangan@2x.png' }, { id: 2, title: '我的预约', url: '/pages/myAppointment/myAppointment?form=my', imgUrl: '../../imaes/yuyue@2x.png' }, { id: 3, title: '我的记录', url: '/pages/myRecord/myRecord?form=my', imgUrl: '../../imaes/jilu@2x.png' }, { id: 4, title: '我的报告', url: '/pages/report/report?form=my', imgUrl: '../../imaes/baogao2@2x.png' }, { id: 5, title: '开通区域', url: '/pages/openArea/openArea?form=my', imgUrl: '../../imaes/quyu@2x.png' }, { id: 6, title: '设置', url: '/pages/set/set?form=my', imgUrl: '../../imaes/shezhi@2x.png' } ] }, /** * 生命周期函数--监听页面加载 * 调用login接口,判断是否需要绑定手机号和头像昵称 */ onLoad(options) { this.userLogin() }, // 通过 code 获取 token userLogin () { var that = this wx.login({ success (res) { if (res.code) { var data = { code: res.code } wx.showLoading({ title: '登录中...', mask: true }) ittLogin(data).then(loginRes => { wx.hideLoading() app.globalData.accessToken = loginRes.data.accessToken that.setData({ isNeedPhone: loginRes.data.isNeedPhone, isRegister: loginRes.data.isRegister }) if (loginRes.data.isNeedPhone) { that.setData({ showPhoneAuthBtn: true, showAvaNick: false }) } else { app.globalData.userInfo.phoneNumber = loginRes.data.phoneNumber if (loginRes.data.isRegister) { that.setData({ showPhoneAuthBtn: false, showAvaNick: true }) } else { // 全部授权 that.setData({ showPhoneAuthBtn: false, showAvaNick: true, pageLogin: true, confirmAvatarUrl: loginRes.data.headImg, confirmNickname: loginRes.data.userName.length > 4 ? loginRes.data.userName.substring(0,4) : loginRes.data.userName }) app.globalData.userInfo.login = true app.globalData.userInfo.phoneNumber = loginRes.data.phoneNumber app.globalData.userInfo.headImg = loginRes.data.headImg app.globalData.userInfo.userName = loginRes.data.userName } } }).catch(e => { wx.hideLoading() wx.showModal({ content: e, confirmColor: '#333', showCancel: false }) }) } } }) }, onChooseAvatar(e) { const { avatarUrl } = e.detail this.setData({ avatarUrl, }) }, // 拉起用户头像和昵称 getNickName () { if (!this.data.pageLogin) { this.setData({ overshow: true }) } }, // 拉起手机号授权弹窗 getPhoneNumber (e) { var that = this var phoneCode = e.detail.code wx.login({ success (res) { if (res.code) { let data = { code: res.code } wx.showLoading({ title: '登录中...', mask: true }) ittLogin(data).then(ittLoginRes => { wx.hideLoading() that.bindMobileFn(phoneCode, ittLoginRes) }).catch(e => { wx.hideLoading() wx.showModal({ content: e, confirmColor: '#333', showCancel: false }) }) } } }) }, // 绑定手机号 // isRegister = true 代表第一次进入显示获取头像 bindMobileFn (phoneCode, ittLoginRes) { var that = this var data = { mobileCode: phoneCode } wx.showLoading({ title: '加载中...', mask: true }) bindMobile(data).then(res => { wx.hideLoading() app.globalData.userInfo.phoneNumber = res.data if (that.data.isRegister) { that.setData({ overshow: true, phone: res.data, showPhoneAuthBtn: false, showAvaNick: true }) } else { that.setData({ phone: res.data, showPhoneAuthBtn: false, showAvaNick: true, pageLogin: true, avatarUrl: ittLoginRes.data.headImg, nickname: ittLoginRes.data.userName.length > 4 ? ittLoginRes.data.userName.substring(0,4) : ittLoginRes.data.userName }) app.globalData.userInfo.login = true app.globalData.userInfo.headImg = ittLoginRes.data.headImg app.globalData.userInfo.userName = ittLoginRes.data.userName } }).catch(e => { wx.hideLoading() wx.showModal({ content: e, confirmColor: '#333', showCancel: false }) }) }, bindNickNameInput (e) { this.setData({ nickname: e.detail.value }) }, // 绑定用户头像和昵称 handleConfirmNickname () { var that = this var data = { avatarUrl: that.data.avatarUrl, nickName: that.data.nickname } wx.showLoading({ title: '加载中...', mask: true }) bindBaseInfo(data).then(res => { wx.hideLoading() app.globalData.userInfo.login = true that.setData({ pageLogin: true, overshow: false, confirmAvatarUrl: that.data.avatarUrl, confirmNickname: that.data.nickname.length > 4 ? that.data.nickname.substring(0,4) : that.data.nickname }) app.globalData.userInfo.headImg = that.data.confirmAvatarUrl app.globalData.userInfo.userName = that.data.confirmNickname }).catch(e => { wx.hideLoading() wx.showModal({ content: e, confirmColor: '#333', showCancel: false }) }) }, /** * 生命周期函数--监听页面显示 */ onShow() { this.setData({ pageLogin: app.globalData.userInfo.login }) }, // 路由跳转 handleNavTo (e) { var url = e.currentTarget.dataset.url this.authNavTo(url) }, handleAppoint () { this.authNavTo('/pages/appointment/appointment') }, /** * 路由拦截 * **/ authNavTo (url) { if (itt.loginAuth()) { if (url.indexOf('/report') !== -1) { app.globalData.selectedInex = 1 wx.switchTab({ url: url, }) } else { wx.navigateTo({ url: url, }) } } else { itt.errorToast('请先授权登录') } } })