yfs/pages/user/login.vue
2025-04-16 20:31:57 +08:00

320 lines
6.9 KiB
Vue

<template>
<view class="all">
<view v-if="isCanUse">
<view>
<view class="header">
<image :src="$img1('common/logo.png?x=1')"></image>
</view>
<view class="content">
<view>申请获取以下权限</view>
<text style="color: #979797;">获得你的公开信息</text>
</view>
<view @click="isAgree = !isAgree" class="agree">
<view class="icon">
<image v-if="isAgree" :src="$img1('common/check_act.png')" lazy-load></image>
<image v-else :src="$img1('common/check.png')" lazy-load></image>
</view>
<view class="agree-r">
我已阅读并同意
<text @click.stop="$c.to({ url: '/pages/guize/guize?type=4' })">
《用户协议》
</text>
<text @click.stop="$c.to({ url: '/pages/guize/guize?type=5' })">
《隐私政策》
</text>
</view>
</view>
<view class="btn-list">
<view @click="$c.to({ type: 3, url: '/pages/shouye/index' })" class="cancel">
拒绝
</view>
<button v-if="isAgree" class="bottom center" type="primary" withCredentials="true" lang="zh_CN"
@click="getUserProfile">
<text>授权登录</text>
</button>
<button v-else class="bottom center" type="primary" withCredentials="true" lang="zh_CN"
@click="getUserProfile">
<text>授权登录</text>
</button>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
z_imgPath: this.$z_img2,
SessionKey: '',
OpenId: '',
nickName: null,
avatarUrl: null,
isCanUse: uni.getStorageSync('isCanUse') || true, //默认为true
code: '',
isAgree: false
}
},
onLoad(option) {
//默认加载
// this.login();
// console.log(window.location.href, option);
if (option != null) {
if (option.code != null) {
//登录
this.h5Login(option.code);
}
}
},
methods: {
//第一授权获取用户信息===》按钮触发
getUserProfile(e) {
if (!this.isAgree) {
return this.$c.toast({
title: '请阅读并同意《用户协议》和《隐私政策》'
})
}
// #ifdef H5
this.h5UserProfile();
// #endif
// #ifdef MP-WEIXIN
this.wxUserProfile();
// #endif
},
wxUserProfile() {
var that = this
uni.getUserProfile({
desc: '用于向用户发送商品', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
lang: 'zh_CN',
success: res => {
uni.login({
provider: 'weixin',
success: function(loginRes) {
that.req({
url: 'login',
data: {
code: loginRes.code,
nickname: res.userInfo.nickName,
headimg: res.userInfo.avatarUrl,
pid: uni.getStorageSync('pid')
},
success: function(res) {
if (res.status == 1) {
uni.setStorageSync('token', res.data)
var lgurl = uni.getStorageSync(
'lgurl') //获取页面路径
var lgdata = uni.getStorageSync(
'lgurldata') //获取页面参数
if (lgurl) {
lgdata = JSON.parse(lgdata)
// 拼接参数
let param = ''
for (let key in lgdata) {
param += '&' + key + '=' + lgdata[
key]
}
param = '/' + lgurl + param.replace(
'&', '?')
uni.setStorageSync('lgurl', '')
uni.setStorageSync('lgurldata', '')
console.log(param)
setTimeout(() => {
uni.reLaunch({
url: param
})
}, 1000)
} else {
that.getdata();
// uni.reLaunch({
// url: 'index'
// })
}
}
}
})
},
complete: (e) => {
console.log(e, '登录');
}
})
},
complete: (e) => {
console.log(e, '用于向用户发送商品');
}
})
},
h5Login(code) {
var that = this;
that.req({
url: 'h5login',
data: {
code: code,
pid: uni.getStorageSync('pid')
},
success: function(res) {
if (res.status == 1) {
uni.setStorageSync('token', res.data)
var lgurl = uni.getStorageSync(
'lgurl') //获取页面路径
var lgdata = uni.getStorageSync(
'lgurldata') //获取页面参数
if (lgurl) {
lgdata = JSON.parse(lgdata)
// 拼接参数
let param = ''
for (let key in lgdata) {
param += '&' + key + '=' + lgdata[
key]
}
param = '/' + lgurl + param.replace(
'&', '?')
uni.setStorageSync('lgurl', '')
uni.setStorageSync('lgurldata', '')
console.log(param)
setTimeout(() => {
uni.reLaunch({
url: param
})
}, 1000)
} else {
uni.reLaunch({
url: 'index'
})
}
}
}
})
},
h5UserProfile() {
var that = this;
console.log('进入h5')
this.$c.msg('暂未开放登录');
// window.location.href = this.$wxloginPage;
},
getdata() {
let that = this
that.req({
url: 'user',
success(res) {
if (res.status == 1 && res.data.userinfo != null && res.data.userinfo.mobile_is == 0) {
console.log("判断用户有没有手机号", res.data.userinfo.mobile_is);
uni.reLaunch({
url: 'bangding'
})
} else {
uni.reLaunch({
url: 'index'
})
}
}
})
}
}
}
</script>
<style lang="scss">
.all {
min-height: 100vh;
background-color: #FFFFFF;
// background: url($imgurl+'common/pageBg1.png') no-repeat 0 0 / 100% auto;
}
.header {
margin: 0 0 90rpx 50rpx;
padding: 90rpx 0 0;
border-bottom: 1px solid #E8E8E8;
text-align: center;
width: 650rpx;
height: 300rpx;
line-height: 450rpx;
}
.header image {
width: 200rpx;
height: 200rpx;
border-radius: 50%;
}
.content {
margin-left: 50rpx;
margin-bottom: 90rpx;
color: #333333;
}
.content text {
display: block;
margin-top: 28rpx;
}
.agree {
display: flex;
padding: 0 50rpx;
.icon {
width: 32rpx;
height: 32rpx;
}
.agree-r {
flex: 1;
word-wrap: break-word;
word-break: break-all;
padding-left: 20rpx;
line-height: 32rpx;
font-size: 20rpx;
color: #999999;
text {
color: #333333;
}
}
}
.btn-list {
display: flex;
justify-content: space-evenly;
padding: 50rpx 0 0;
.cancel {
width: 200rpx;
height: 80rpx;
box-sizing: border-box;
border-radius: 16rpx;
font-size: 28rpx;
color: #333333;
display: flex;
justify-content: center;
align-items: center;
background-color: #CDEF27;
// filter: grayscale(1);
}
.bottom {
background: #333333;
margin: 0;
width: 416rpx;
height: 80rpx;
text-align: center;
box-sizing: border-box;
border-radius: 16rpx;
font-size: 28rpx;
color: #CDEF27;
}
}
</style>