<template>
|
|
<view class="content">
|
|
<view style="height: 166rpx; width: 100%;"></view>
|
|
<view class="a1">手机号快捷登录</view>
|
|
<view class="a2">美好服务即刻享受</view>
|
|
<view class="a3" @click="clickStaff">
|
|
<image :src="configList.logo_image" mode="aspectFit"></image>
|
|
</view>
|
|
<view class="a4">上门服务服务平台</view>
|
|
|
|
<button class="a5" @click.once="clickLogin()">微信一键(注册)登录</button>
|
|
|
|
<view class="a6">
|
|
<view class="a7" :class="{ a8 : agreement}" @click="agreement = !agreement">
|
|
<span v-if="agreement">✓</span>
|
|
</view>
|
|
已同意<span @click="keyValue = 'policy'; configPopupShow = true" class="agreement">《隐私政策》</span>
|
|
<span @click="keyValue = 'server';configPopupShow = true" class="agreement">《服务条款》</span>
|
|
</view>
|
|
|
|
<configPopup :keyValue="keyValue" :show="configPopupShow" :list="config" @close="configPopupShow = false" />
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import configPopup from '@/components/configPopup'
|
|
|
|
export default {
|
|
components: {
|
|
configPopup
|
|
},
|
|
data() {
|
|
return {
|
|
step: 2,
|
|
openid: '',
|
|
code: undefined,
|
|
configPopupShow: false,
|
|
keyValue: '',
|
|
config: [],
|
|
agreement: false,
|
|
}
|
|
},
|
|
onShow() {
|
|
this.getConfig()
|
|
if (this.GetQueryString('code')) { //路径上面有code说明微信已授权
|
|
this.agreement = true; //勾选协议
|
|
//直接去登录发起请求
|
|
this.toWxLogin(this.GetQueryString('code'))
|
|
}
|
|
},
|
|
methods: {
|
|
clickCancel() {
|
|
uni.navigateTo({
|
|
url: '/pages/login/mobile'
|
|
})
|
|
},
|
|
clickStaff() {
|
|
uni.navigateTo({
|
|
url: '/pages/staff/center'
|
|
})
|
|
},
|
|
clickLogin() {
|
|
if (!this.agreement) {
|
|
return uni.showToast({
|
|
title: '请勾选协议',
|
|
icon: 'none'
|
|
})
|
|
}
|
|
this.getwx_authorize();
|
|
},
|
|
loginOrRegister(encryptData) {
|
|
uni.setStorageSync("userid", "1")
|
|
uni.switchTab({
|
|
url: '/pages/index/index'
|
|
})
|
|
this.$httpGet("/wxma/getMobile", {
|
|
encryptedData: encryptData
|
|
}, (res) => {
|
|
uni.setStorageSync("userid", "1")
|
|
})
|
|
},
|
|
getwx_authorize() {
|
|
let redirect_uri = encodeURIComponent(import.meta.env.VITE_REDIRECT_URI + '/#/pages/login/login');
|
|
let appid = import.meta.env.VITE_APPID;
|
|
window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appid +
|
|
'&redirect_uri=' + redirect_uri +
|
|
'&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect' + '&t=' + new Date().getTime();
|
|
},
|
|
//获取url中参数的方法
|
|
GetQueryString(name) {
|
|
var url = window.location.href;
|
|
try {
|
|
var cs = url.split('?')[1]; //获取?之后的参数字符串
|
|
var cs_arr = cs.split('&'); //参数字符串分割为数组
|
|
for (var i = 0; i < cs_arr.length; i++) { //遍历数组,拿到json对象
|
|
if (cs_arr[i].split('=')[0] == name) {
|
|
return cs_arr[i].split('=')[1];
|
|
}
|
|
}
|
|
return "";
|
|
} catch {
|
|
return "";
|
|
}
|
|
},
|
|
//微信登录
|
|
toWxLogin(code) {
|
|
let vid = sessionStorage.getItem('vid');
|
|
this.$api('wxLogin', {
|
|
code,
|
|
vid
|
|
}, res => {
|
|
if (res.code == 200) {
|
|
localStorage.setItem("token", res.result.token)
|
|
localStorage.setItem("userInfo", JSON.stringify(res.result.userInfo))
|
|
if (!res.result.userInfo.phone) {
|
|
uni.reLaunch({
|
|
url: '/pages/mine/phoneDetail'
|
|
})
|
|
} else {
|
|
location.href = import.meta.env.VITE_REDIRECT_URI + '/#/pages/index/index'
|
|
}
|
|
} else {
|
|
location.href = import.meta.env.VITE_REDIRECT_URI + '/#/pages/login/login'
|
|
}
|
|
sessionStorage.removeItem('vid')
|
|
})
|
|
},
|
|
getConfig() {
|
|
this.$api('getConfig', {}, res => {
|
|
if (res.code == 200) {
|
|
this.config = res.result
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
.a1 {
|
|
width: 336rpx;
|
|
height: 66rpx;
|
|
line-height: 66rpx;
|
|
font-size: 48rpx;
|
|
font-family: PingFang SC, PingFang SC-Heavy;
|
|
font-weight: 800;
|
|
text-align: center;
|
|
color: #333333;
|
|
width: 100%;
|
|
|
|
margin-bottom: 20rpx;
|
|
}
|
|
|
|
.a2 {
|
|
width: 100%;
|
|
height: 40rpx;
|
|
line-height: 40rpx;
|
|
font-size: 28rpx;
|
|
font-family: PingFang SC, PingFang SC-Regular;
|
|
font-weight: 400;
|
|
text-align: center;
|
|
color: #333333;
|
|
|
|
margin-bottom: 100rpx;
|
|
}
|
|
|
|
.a3 {
|
|
width: 170rpx;
|
|
height: 170rpx;
|
|
border-radius: 16px;
|
|
margin: 0 auto;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.a3 image {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.a4 {
|
|
height: 40rpx;
|
|
font-size: 28rpx;
|
|
font-family: PingFang SC, PingFang SC-Regular;
|
|
font-weight: 400;
|
|
text-align: center;
|
|
color: #333333;
|
|
|
|
margin-top: 20rpx;
|
|
margin-bottom: 80rpx;
|
|
}
|
|
|
|
.a5 {
|
|
width: 568rpx;
|
|
height: 90rpx;
|
|
background: #51d0b4;
|
|
border-radius: 16rpx;
|
|
|
|
margin: 0 auto;
|
|
|
|
line-height: 90rpx;
|
|
font-size: 28rpx;
|
|
font-family: PingFang SC, PingFang SC-Regular;
|
|
font-weight: 400;
|
|
text-align: center;
|
|
color: #ffffff;
|
|
}
|
|
|
|
.a6 {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
height: 34rpx;
|
|
font-size: 24rpx;
|
|
font-family: PingFang SC, PingFang SC-Medium;
|
|
font-weight: 500;
|
|
text-align: center;
|
|
color: #333333;
|
|
margin-top: 40rpx;
|
|
}
|
|
|
|
.a6 .agreement {
|
|
color: #6FDFBE;
|
|
}
|
|
|
|
.a7 {
|
|
box-sizing: border-box;
|
|
border-radius: 50%;
|
|
width: 34rpx;
|
|
height: 34rpx;
|
|
display: inline-block;
|
|
border: 1px solid #ccc;
|
|
margin-right: 4rpx;
|
|
}
|
|
|
|
.a8 {
|
|
background-color: #6FDFBE;
|
|
border: none;
|
|
color: #fff;
|
|
}
|
|
</style>
|