公众号项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

201 lines
5.0 KiB

<template>
<view>
<WxBLogin v-if="code === ''"/>
<view v-else class="login">
<view class="login-img flex align-center justify-center">
<image src="@/static/img/logon-icon.png" mode=""></image>
</view>
<view class="login-title">汇智文化学苑</view>
<view class="btn-box">
<u-button v-if="code !== ''" text="微信授权登录" :round="true" openType="getUserInfo" @click="logionClick" :customStyle="baomingStyle" :hairline="false" color="#00CCCC"></u-button>
<u-button v-else="code === ''" text="获取登录权限" :round="true" openType="getUserInfo" @click="logionClick" :customStyle="baomingStyle" :hairline="false" color="#00CCCC"></u-button>
</view>
<view class="tips flex align-center justify-between" @click="xieyiChoose = !xieyiChoose">
<view>
注册/登录即代表同意
<text class="xieyi" @click.stop="seeXieyi">用户协议与隐私政策</text>
</view>
</view>
</view>
</view>
</template>
<script>
import WxBLogin from '@/components/run-component/wx-b-login.vue'
export default{
components: {
WxBLogin
},
data(){
return{
xieyiChoose:true,
code: '',
did: '',
vid:'',
baomingStyle: {
fontSize:"30rpx",
fontWeight:"700",
height: "100rpx",
width: "480rpx"
},
baomingStyleQuxiao:{
fontSize:"30rpx",
fontWeight:"700",
height: "100rpx",
width: "480rpx",
marginTop : "40rpx"
}
}
},
onLoad(err){
if (err.vid) {
this.$store.commit('set_ivcode', err.vid);
}
if (err.did) {
uni.setStorageSync("did", err.did);
}
this.code = this.GetQueryString('code');
if(!this.code){
this.getwx_authorize();
}
},
onShow() {
if(uni.getStorageSync("set_userToken")){
uni.navigateTo({
url:'/pages/home/index'
})
}
},
// 隐藏微信h5的标题栏
onReady() {
this.$com.displayNav();
},
methods:{
seeXieyi(){
uni.navigateTo({
url:'/pages/my/xieyi'
})
},
logionClick(){
// let actoken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2OTMzNjA0NDEsInVzZXJuYW1lIjoib1loZmFzdlY0RjVpMk5nWGR2cmU3akZwME5zTSJ9.KtxULfyzKVouBAWRe41AFEB3uSL_VTVU-lXpSGF-yw8";
// this.$store.commit('set_userToken',actoken);
// uni.navigateTo({
// url:'/pages/home/index'
// })
// let did = uni.getStorageSync("did");
// if (did) {
// uni.navigateTo({
// url:'/pages/home/index?id=' + did
// })
// } else {
// uni.navigateTo({
// url:'/pages/home/index'
// })
// }
if(this.code){
//直接去登录发起请求
this.toWxLogin()
} else {
//获取code 静默授权
this.getwx_authorize();
}
},
toWxLogin(code){
this.vid= uni.getStorageSync("ivcode");
this.$api('wxLogin',{code:this.code, vid: this.vid})
.then(res=>{
if(res.code == 200){
this.$store.commit('set_userToken',res.result.token);
this.$store.commit('set_userInfo',res.result.userInfo);
let did = uni.getStorageSync("did");
if (did) {
uni.setStorageSync("did", null);
uni.navigateTo({
url:'/pages/home/index?id=' + did
})
} else {
uni.navigateTo({
url:'/pages/home/index'
})
}
}else{
this.$Toast(res.message)
}
}).catch(error=>{
uni.showModal({
content:JSON.stringify(error)
})
})
},
getwx_authorize(){
console.log("进入了这")
// this.logionClick()
let vid = uni.getStorageSync("ivcode");
//授权的回调地址
let redirect_uri = encodeURIComponent('https://cmbms-h5.xzaiyp.top/pages/my/login-kehu');
//这是我们公众号的appid
let appid = 'wx77fe1fcd6471ecbe';
//修改授权参数
window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appid+'&redirect_uri='+redirect_uri+'&response_type=code&scope=snsapi_userinfo&state='+vid+'&connect_redirect=1#wechat_redirect';
},
//获取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 "";
}
},
}
}
</script>
<style lang="scss" scoped>
.login {
background-size: 100% 100%;
height: 70vh;
padding-top: 154rpx;
.login-title {
margin-top: 40rpx;
font-size: 34rpx;
font-weight: 700;
text-align: center;
padding-bottom: 30rpx;
}
.login-img {
image {
border-radius: 50%;
width:248rpx;
height: 248rpx;
}
}
.btn-box {
margin-top: 136rpx;
}
.tips {
width: 500rpx;
position: fixed;
bottom: 52rpx;
left: 51%;
transform: translate(-50%,0);
font-size: 24rpx;
color: #707070;
.xieyi {
color: #00CCFF;
}
}
}
</style>