2022-08-12 18:25:42 +08:00
|
|
|
|
<template>
|
|
|
|
|
<view>
|
|
|
|
|
<!-- 头部 -->
|
|
|
|
|
<status-nav :ifReturn="false" navBarTitle="登录" :marginBottom="0"></status-nav>
|
|
|
|
|
<!-- 头像 -->
|
|
|
|
|
<view class='login-header'>
|
|
|
|
|
<image class="infoImg" mode="aspectFill" :src="userInfo.avatarUrl || imgSrc"></image>
|
|
|
|
|
<view class="logo-name">{{appletName}}</view>
|
|
|
|
|
</view>
|
|
|
|
|
<!-- 登录 -->
|
|
|
|
|
<view class="login-footer">
|
2022-09-13 16:30:35 +08:00
|
|
|
|
<view class="login-btn radius20 font34" :style="{background:'#3b45b2'}" type='primary' @tap="bindGetUserInfo">微信登录</view>
|
2022-08-12 18:25:42 +08:00
|
|
|
|
<view class="agreement-box font28">如您同意授权,请点击微信登录!</text></view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
<script>
|
|
|
|
|
export default {
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
userInfo: {}, //用户信息
|
|
|
|
|
canIGetUserProfile: false,
|
2022-08-18 15:26:31 +08:00
|
|
|
|
imgSrc: '/static/public/logo.jpg', //默认logo头像
|
2022-08-12 18:25:42 +08:00
|
|
|
|
appletName:'上海集正', //小程序名称
|
|
|
|
|
isShowP:false,
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
onLoad() {
|
|
|
|
|
if (uni.getUserProfile) {
|
|
|
|
|
this.canIGetUserProfile = true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
//暂不绑定事件
|
|
|
|
|
refuse(){
|
|
|
|
|
this.isShowP=false;
|
|
|
|
|
this.$toolAll.tools.showToast('登录成功','success')
|
|
|
|
|
uni.reLaunch({url:'/pages/index/index'})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//授权绑定手机号
|
|
|
|
|
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);
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//调起登录授权
|
|
|
|
|
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/index/index'
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},error => {})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
<style>
|
|
|
|
|
.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 {
|
|
|
|
|
width: 224rpx;
|
|
|
|
|
height: 224rpx;
|
|
|
|
|
border-radius: 100%;
|
|
|
|
|
border: 2rpx solid #d8d8d8;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.logo-name {
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
margin-top: 30rpx;
|
|
|
|
|
color: #262626;
|
|
|
|
|
text-align: center;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.login-footer {
|
|
|
|
|
width: 100%;
|
|
|
|
|
text-align: center;
|
|
|
|
|
position: fixed;
|
|
|
|
|
left: 0;
|
|
|
|
|
bottom: 60rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.login-btn {
|
|
|
|
|
width: calc(100% - 80rpx);
|
|
|
|
|
line-height: 98rpx;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
box-shadow: 0rpx 8rpx 20rpx rgba(28,47,136,.75);
|
|
|
|
|
letter-spacing: 4rpx;
|
|
|
|
|
text-indent: 4rpx;
|
|
|
|
|
}
|
|
|
|
|
.agreement-box{
|
|
|
|
|
margin-top: 30rpx;
|
|
|
|
|
color: #262626;
|
|
|
|
|
}
|
|
|
|
|
</style>
|