| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377 | 
							- <template>
 
- 	<view class="content">
 
- 		<view class="force-login-wrap">
 
- 			<view class="force-login__content y-f">
 
- 				<view class="logo">
 
- 					<view class="logo-img">
 
- 						<image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/logo.png"></image>
 
- 					</view>
 
- 					<view class="title">医健宝医药</view>
 
- 				</view>
 
- 				<view class="login-notice">为了提供更优质的服务,请先登录</view>
 
- 				<view class="btns">
 
- 					<button class="author-btn" open-type="getPhoneNumber" @getphonenumber="phoneLogin">一键授权手机号登录</button>
 
- 					<button class="author-btn" v-if="isAgreement == false" @click="handleAgree()">一键授权手机号登录</button>
 
- 				</view>
 
- 				<!-- <button
 
- 					class="author-btn"
 
- 					open-type="getUserInfo"
 
- 					@click="wxLogin()"  >微信授权登录</button> -->
 
- 				<button class="close-btn" @tap="back">暂不登录</button>
 
- 				<view class="tips">
 
- 					<checkbox :checked="isAgreement" @click="handleAgreement()" />
 
- 					<view @click="handleAgreement()">您同意并接受</view>
 
- 					<view class="btn" @click="openContent('userRegister')">《用户协议》</view>
 
- 					<view class="btn" @click="openContent('userPrivacy')">《隐私保护》</view>
 
- 				</view>
 
- 			</view>
 
- 		</view>
 
- 		<u-popup bgColor="#f6f6f6" :safeAreaInsetBottom="false" :round="15" mode="bottom" :show="wxShow" @close="wxAuthClose" @open="wxAuthOpen">
 
- 			<view class="wxAuth">
 
- 				<view class="title">编辑头像和昵称</view>
 
- 				<wx-auth class="wx-box" @updateUser="updateUser()" ref="wxauth"></wx-auth>
 
- 			</view>
 
- 		</u-popup>
 
- 	</view>
 
- </template>
 
- <script>
 
- import { wxLogin, loginByMiniApp } from '@/api/user';
 
- import { wxAuth } from '../components/wxAuth.vue';
 
- export default {
 
- 	components: {
 
- 		wxAuth
 
- 	},
 
- 	data() {
 
- 		return {
 
- 			wxShow: false,
 
- 			isAgreement: false,
 
- 			code: null
 
- 		};
 
- 	},
 
- 	computed: {},
 
- 	onLoad(option) {
 
- 		uni.$on('refreshLogin', () => {
 
- 			uni.navigateBack({
 
- 				delta: 1
 
- 			});
 
- 		});
 
- 		//选获取CODE,防止后请求的时候腾讯服务端未同步报错
 
- 		this.getCode();
 
- 	},
 
- 	onUnload() {},
 
- 	mounted() {},
 
- 	methods: {
 
- 		updateUser() {
 
- 			this.wxShow = false;
 
- 			uni.$emit('refreshLogin');
 
- 			uni.$emit('refreshIM');
 
- 		},
 
- 		wxAuthOpen() {
 
- 			this.wxShow = true;
 
- 			var that = this;
 
- 			setTimeout(function () {
 
- 				that.$refs.wxauth.getUserInfo();
 
- 			});
 
- 		},
 
- 		wxAuthClose() {
 
- 			this.wxShow = false;
 
- 		},
 
- 		wxLogin(e) {
 
- 			var that = this;
 
- 			if (!this.isAgreement) {
 
- 				uni.showToast({
 
- 					icon: 'none',
 
- 					title: '请先同意协议后再登录'
 
- 				});
 
- 				return false;
 
- 			}
 
- 			uni.showLoading({
 
- 				title: '处理中...'
 
- 			});
 
- 			that.$getProvider()
 
- 				.then((provider) => {
 
- 					console.log('当前的环境商', provider);
 
- 					if (!provider) {
 
- 						reject();
 
- 					}
 
- 					// uni登录
 
- 					uni.login({
 
- 						provider: provider,
 
- 						success: async (loginRes) => {
 
- 							console.log(111);
 
- 							console.log(e);
 
- 							console.log(loginRes);
 
- 						}
 
- 					});
 
- 				})
 
- 				.catch((err) => {
 
- 					uni.showToast({
 
- 						icon: 'none',
 
- 						title: err
 
- 					});
 
- 				});
 
- 		},
 
- 		handleAgree() {
 
- 			if (!this.isAgreement) {
 
- 				uni.showToast({
 
- 					icon: 'none',
 
- 					title: '请先同意协议后再登录'
 
- 				});
 
- 			}
 
- 		},
 
- 		openContent(type) {
 
- 			console.log(type);
 
- 			uni.navigateTo({
 
- 				url: '/pages_user/agreement?type=' + type
 
- 			});
 
- 		},
 
- 		handleAgreement() {
 
- 			this.isAgreement = !this.isAgreement;
 
- 		},
 
- 		getCode() {
 
- 			var that = this;
 
- 			that.$getProvider()
 
- 				.then((provider) => {
 
- 					if (!provider) {
 
- 						reject();
 
- 					}
 
- 					// uni登录
 
- 					uni.login({
 
- 						provider: provider,
 
- 						success: async (loginRes) => {
 
- 							that.code = loginRes.code;
 
- 						}
 
- 					});
 
- 				})
 
- 				.catch((err) => {});
 
- 		},
 
- 		// 微信用户手机号登录
 
- 		phoneLogin(e) {
 
- 			var that = this;
 
- 			uni.showLoading({
 
- 				title: '处理中'
 
- 			});
 
- 			console.log(e);
 
- 			if (e.detail.errMsg == 'getPhoneNumber:ok') {
 
- 				this.$getProvider().then((provider) => {
 
- 						console.log('当前的环境商', provider);
 
- 						if (!provider) {
 
- 							reject();
 
- 						}
 
- 						// uni登录
 
- 						uni.login({
 
- 							provider: provider,
 
- 							success: async (loginRes) => {
 
- 								console.log("qxj loginRes---");
 
- 								console.log(loginRes);
 
- 								let code = loginRes.code; // 获取开发code
 
- 								var tuiUserId = uni.getStorageSync('tuiUserId');
 
- 							  
 
- 							   
 
- 								wxLogin({
 
- 									encryptedData: e.detail.encryptedData,
 
- 									iv: e.detail.iv,
 
- 									code: code,
 
- 									tuiUserId: tuiUserId,
 
- 									appId: getApp().globalData.appId
 
- 								}).then((res) => {
 
- 										uni.hideLoading();
 
- 										if (res.code == 200) {
 
- 											uni.showToast({
 
- 												icon: 'none',
 
- 												title: '登录成功'
 
- 											});
 
- 											uni.setStorageSync('userHistoryApp', res.user.historyApp);
 
- 											uni.setStorageSync('AppToken', res.token);
 
- 											uni.setStorageSync('userId', res.user.userId);
 
- 											uni.setStorageSync('avatar', res.user.avatar);
 
- 											uni.setStorageSync('nickName', res.user.nickName);
 
- 											if (res.user.isWeixinAuth == 0) {
 
- 												that.wxAuthOpen();
 
- 											} else {
 
- 												uni.$emit('refreshLogin');
 
- 												uni.$emit('refreshIM');
 
- 											}
 
- 										} else {
 
- 											uni.showToast({
 
- 												icon: 'none',
 
- 												title: '授权登录失败,请重新登录'
 
- 											});
 
- 										}
 
- 									})
 
- 									.catch((error) => {
 
- 										console.log("qxj error------");
 
- 										console.log(error);
 
- 										uni.hideLoading();
 
- 										uni.showToast({
 
- 											icon: 'none',
 
- 											title: '授权登录失败,请重新登录'
 
- 										});
 
- 									});
 
- 							}
 
- 						});
 
- 					})
 
- 					.catch((err) => {});
 
- 			} else {
 
- 				uni.showToast({
 
- 					title: '已拒绝授权',
 
- 					icon: 'none',
 
- 					duration: 2000
 
- 				});
 
- 			}
 
- 		},
 
- 		back() {
 
- 			uni.reLaunch({
 
- 				url: '/pages/index/index',
 
- 				animationType: 'pop-in',
 
- 				animationDuration: 100
 
- 			});
 
- 		}
 
- 	}
 
- };
 
- </script>
 
- <style lang="scss">
 
- .container {
 
- 	flex: 1;
 
- 	display: flex;
 
- 	flex-direction: column;
 
- 	justify-content: flex-start;
 
- 	position: relative;
 
- }
 
- .force-login-wrap {
 
- 	width: 100%;
 
- 	height: 100%;
 
- 	overflow: hidden;
 
- 	z-index: 11111;
 
- 	top: 0;
 
- 	.force-login__content {
 
- 		position: absolute;
 
- 		left: 50%;
 
- 		top: 40%;
 
- 		transform: translate(-50%, -50%);
 
- 		.logo {
 
- 			display: flex;
 
- 			flex-direction: column;
 
- 			justify-content: center;
 
- 			align-items: center;
 
- 			.logo-img {
 
- 				border: 4upx solid #ffffff;
 
- 				box-shadow: 0px 5px 15px 2px rgba(0, 0, 0, 0.1);
 
- 				border-radius: 50%;
 
- 				width: 80px;
 
- 				height: 80px;
 
- 				image {
 
- 					border-radius: 50%;
 
- 					width: 100%;
 
- 					height: 100%;
 
- 					overflow: hidden;
 
- 				}
 
- 			}
 
- 			.title {
 
- 				margin-top: 20rpx;
 
- 				font-size: 35rpx;
 
- 				font-family: PingFang SC;
 
- 				font-weight: bold;
 
- 				color: #000;
 
- 				margin-bottom: 30rpx;
 
- 			}
 
- 		}
 
- 		.login-notice {
 
- 			font-size: 28rpx;
 
- 			font-family: PingFang SC;
 
- 			font-weight: 400;
 
- 			color: #000;
 
- 			line-height: 44rpx;
 
- 			width: 500rpx;
 
- 			text-align: center;
 
- 			margin-bottom: 80rpx;
 
- 		}
 
- 		.btns {
 
- 			position: relative;
 
- 			width: 630rpx;
 
- 			height: 80rpx;
 
- 			.author-btn {
 
- 				z-index: 100;
 
- 				position: absolute;
 
- 				width: 630rpx;
 
- 				height: 80rpx;
 
- 				background: linear-gradient(to right, #2583EB 0%, #2EDAD4 100%);
 
- 				background: -moz-linear-gradient(to right, #2583EB 0%, #2EDAD4 100%);
 
- 				// box-shadow: 0px 7rpx 6rpx 0px rgba(229, 138, 0, 0.22);
 
- 				border-radius: 40rpx;
 
- 				font-size: 30rpx;
 
- 				font-family: PingFang SC;
 
- 				font-weight: 500;
 
- 				color: rgba(255, 255, 255, 1);
 
- 			}
 
- 		}
 
- 		.author-btn {
 
- 			z-index: 100;
 
- 			// position: absolute;
 
- 			width: 630rpx;
 
- 			height: 80rpx;
 
- 			background: linear-gradient(to right, #2583EB 0%, #2EDAD4 100%);
 
- 			background: -moz-linear-gradient(to right, #2583EB 0%, #2EDAD4 100%);
 
- 			// box-shadow: 0px 7rpx 6rpx 0px rgba(229, 138, 0, 0.22);
 
- 			border-radius: 40rpx;
 
- 			font-size: 30rpx;
 
- 			font-family: PingFang SC;
 
- 			font-weight: 500;
 
- 			color: rgba(255, 255, 255, 1);
 
- 		}
 
- 		.close-btn {
 
- 			width: 630rpx;
 
- 			height: 80rpx;
 
- 			margin-top: 30rpx;
 
- 			border-radius: 40rpx;
 
- 			border: 2rpx solid #2583EB;
 
- 			background: none;
 
- 			font-size: 30rpx;
 
- 			font-family: PingFang SC;
 
- 			font-weight: 500;
 
- 			color: #2583EB;
 
- 		}
 
- 	}
 
- }
 
- .tips {
 
- 	margin-top: 30rpx;
 
- 	display: flex;
 
- 	justify-content: center;
 
- 	align-items: center;
 
- 	font-size: 28rpx;
 
- 	color: #000;
 
- 	checkbox {
 
- 	}
 
- 	.btn {
 
- 		color: #2583EB;
 
- 	}
 
- }
 
- .wxAuth {
 
- 	border-radius: 30rpx;
 
- 	width: 100%;
 
- 	padding: 15rpx;
 
- 	display: flex;
 
- 	flex-direction: column;
 
- 	align-items: center;
 
- 	justify-content: center;
 
- 	background-color: #ffffff;
 
- 	.title {
 
- 		font-size: 32rpx;
 
- 		margin: 10rpx 0rpx;
 
- 		font-weight: bold;
 
- 		text-align: center;
 
- 	}
 
- 	.wx-box {
 
- 		width: 100%;
 
- 		padding: 0rpx 30rpx;
 
- 	}
 
- }
 
- </style>
 
 
  |