<template>
|
|
<uv-popup ref="loginPopup"
|
|
mode="center"
|
|
:round="20"
|
|
:closeable="false"
|
|
:maskClick="false"
|
|
:closeOnClickOverlay="false"
|
|
:customStyle="{backgroundColor: '#fff', padding: 0}"
|
|
overlayOpacity="0.8">
|
|
<view class="login-card">
|
|
<view class="login-title">登录后即可查看分享内容</view>
|
|
<view class="login-content">
|
|
<button class="login-btn" @click="handleLogin">
|
|
微信一键登录
|
|
</button>
|
|
</view>
|
|
</view>
|
|
</uv-popup>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data(){
|
|
return {
|
|
}
|
|
},
|
|
methods: {
|
|
open(){
|
|
this.$refs.loginPopup.open()
|
|
},
|
|
close(){
|
|
this.$refs.loginPopup.close()
|
|
},
|
|
|
|
// 处理登录
|
|
handleLogin() {
|
|
uni.showLoading({
|
|
title: '登录中...'
|
|
})
|
|
uni.login({
|
|
success : (res) => {
|
|
if (res.errMsg != "login:ok") {
|
|
return
|
|
}
|
|
|
|
let data = {
|
|
code: res.code,
|
|
}
|
|
|
|
if (uni.getStorageSync('shareId')) {
|
|
data.shareId = uni.getStorageSync('shareId')
|
|
}
|
|
|
|
if (uni.getStorageSync('id')) {
|
|
data.id = uni.getStorageSync('id')
|
|
}
|
|
|
|
if (uni.getStorageSync('state')) {
|
|
data.state = uni.getStorageSync('state')
|
|
}
|
|
|
|
this.$api('wxLogin', data, res => {
|
|
|
|
uni.hideLoading()
|
|
|
|
if (res.code != 200) {
|
|
this.close()
|
|
return
|
|
}
|
|
|
|
uni.setStorageSync('token', res.result.token)
|
|
this.$store.commit('getUserInfo')
|
|
this.close()
|
|
this.$emit('login')
|
|
})
|
|
}
|
|
})
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
.login-card {
|
|
width: 600rpx;
|
|
padding: 40rpx;
|
|
text-align: center;
|
|
|
|
.login-title {
|
|
font-size: 32rpx;
|
|
font-weight: bold;
|
|
color: #333;
|
|
margin-bottom: 40rpx;
|
|
}
|
|
|
|
.login-content {
|
|
.login-image {
|
|
width: 300rpx;
|
|
height: 300rpx;
|
|
margin-bottom: 40rpx;
|
|
}
|
|
|
|
.login-btn {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin: 0 auto;
|
|
width: 80%;
|
|
height: 88rpx;
|
|
background: #07C160;
|
|
color: #fff;
|
|
border-radius: 44rpx;
|
|
font-size: 32rpx;
|
|
|
|
.wechat-icon {
|
|
width: 48rpx;
|
|
height: 48rpx;
|
|
margin-right: 10rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|