<template> <view> <view class='login-header'> <image class="infoImg" mode="aspectFill" :src="userInfo.avatarUrl || imgSrc"></image> <view class="logo-name">{{appletName}}</view> <view class="logo-title font24 color-99 mar-s20" style="text-align: center;">{{appleSubtitle}}</view> </view> <view class="login-footer"> <view class="login-btn radius20 color-ff background-blue font36" type='primary' @tap="bindGetUserInfo">微信授权</view> <view class="agreement-box font30">如您点击授权,则表示已阅读<text @tap="toAgreement" class="agreement color-orange">《免责声明》</text></view> </view> </view> </template> <script> export default { data() { return { userInfo: {}, //用户信息 canIGetUserProfile: false, imgSrc: '/static/logo.png', //默认logo头像 appletName:'闲置商品', //小程序名称 appleSubtitle:'发布、购买闲置商品平台', isShowP:false, }; }, onLoad() { if (uni.getUserProfile) { this.canIGetUserProfile = true; } }, methods: { // 设置logo图 setLogo(){ this.$requst.get('index/base-config').then(res=>{ this.imgSrc = this.$http + res.data.logo; this.appletName = res.data.appletName; }) }, refuse(){//暂不绑定事件 this.isShowP=false; this.$toolAll.tools.showToast('登录成功','success') uni.reLaunch({url:'/pages/idle/idle'}) }, getphonenumber(e){//授权绑定手机号 let ya = this; wx.login({ success:(res)=>{ this.$requst.post('/api/user/login',{code:res.code}).then(result => { if(e.detail.errMsg=="getPhoneNumber:ok"){ this.$requst.post('user/bind-phone',{openid: result.data.openid,session_key:result.data.session_key, iv:e.detail.iv,encryptedData:e.detail.encryptedData}).then(res=>{ console.log('手机号信息:',res); if(res.code==0){ this.$toolAll.tools.showToast('手机号绑定成功'); this.isShowP = true; } else this.$toolAll.tools.showToast(res.msg); },error=>{}) } else { // console.log('取消授权手机号') } }).catch(err=>{ console.log(err); }) } }) }, toAgreement(){ uni.navigateTo({ url:'/pages/login/disclaimers' }) }, //调起登录授权 bindGetUserInfo(e) { let ya = this; //新版登录方式 uni.getUserProfile({ desc: '登录', lang: 'zh_CN', success: (res) => { ya.userInfo = res.userInfo; uni.login({ provider: 'weixin', success: (res)=> { if (res.code) { ya.updateUserInfo(res.code); } else { uni.showToast({ title: '登录失败!', duration: 2000 }); } }, }); }, fail: (res) => {} }); }, //调用登录接口 updateUserInfo(code) { let ya = this; uni.showToast({ title: '登录中...', icon:'loading', duration:10000 }) var params = { code:code, nickname: ya.userInfo.nickName,//用户昵称 headimgurl: ya.userInfo.avatarUrl,//用户头像 country: ya.userInfo.country,//用户所在国家 province: ya.userInfo.province,//用户所在省份 city: ya.userInfo.city,//用户所在城市 gender: ya.userInfo.gender,//用户性别 language:ya.userInfo.language,//语言 invite_code:uni.getStorageSync('inviteCode')?uni.getStorageSync('inviteCode'):'', is_active:1 } this.$requst.post('/api/user/login',params).then(res => { if(res.code == 0){ uni.setStorageSync('userId',res.data.account_id) uni.setStorageSync('token',res.data.token)//缓存token uni.setStorageSync('openid',res.data.openid)//缓存openid uni.setStorageSync('expire',res.data.expire)//缓存失效时间(时间戳格式) uni.setStorageSync('phone_active',res.data.phone_active)//是否授权手机号 uni.setStorageSync('is_active',res.data.is_active)//是否授权头像和昵称 uni.setStorageSync('invite_code',res.data.invite_code)//缓存邀请码 if(uni.getStorageSync('page-path-options')) { uni.reLaunch({ // 重新进入当前页面 url:uni.getStorageSync('page-path-options') }) } else { uni.reLaunch({ url:'/pages/idle/idle' }) } } },error => {}) } } } </script> <style scoped> .login-header { justify-content: center; align-items: center; flex-direction: column; margin-top: 0; position: fixed; left: 50%; top: 40%; transform: translate(-50%,-50%); } .infoImg { display: block; width: 224rpx; height: 224rpx; border-radius: 100%; border: 2rpx solid #d8d8d8; margin: 0 auto; } .logo-name { font-size: 30rpx; margin-top: 20rpx; color: #333333; text-align: center; } .login-footer { width: 100%; text-align: center; position: fixed; left: 0; bottom: 120rpx; } .login-btn { width: calc(100% - 100rpx); line-height: 90rpx; margin: 0 auto; box-shadow: 0rpx 8rpx 20rpx rgba(25,129,255,.5); } .agreement-box{ margin-top: 30rpx; } </style>