171 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Vue
		
	
	
		
		
			
		
	
	
			171 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Vue
		
	
	
| 
								 | 
							
								<template name="protocol-popup">
							 | 
						|||
| 
								 | 
							
									<view @touchmove.stop.prevent="clear" v-show="showPopup">
							 | 
						|||
| 
								 | 
							
										<view class="popup_mask" @touchmove.stop.prevent="clear"></view>
							 | 
						|||
| 
								 | 
							
										<view class="popup_content">
							 | 
						|||
| 
								 | 
							
											<view class="title">{{title}}</view>
							 | 
						|||
| 
								 | 
							
											<view class="explain_text">
							 | 
						|||
| 
								 | 
							
												请你务必认真阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了向你提供数据、分享等服务所要获取的权限信息。
							 | 
						|||
| 
								 | 
							
												<view class="line">你可以阅读<navigator :url="protocolPath" class="path" hover-class="navigator-hover">《服务协议》
							 | 
						|||
| 
								 | 
							
													</navigator>和<navigator :url="policyPath" class="path" hover-class="navigator-hover">《隐私政策》
							 | 
						|||
| 
								 | 
							
													</navigator>了解详细信息。如您同意,请点击"同意"开始接受我们的服务。
							 | 
						|||
| 
								 | 
							
												</view>
							 | 
						|||
| 
								 | 
							
											</view>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											<view class="button">
							 | 
						|||
| 
								 | 
							
												<view @tap="back">暂不使用</view>
							 | 
						|||
| 
								 | 
							
												<view @tap="confirm">同意</view>
							 | 
						|||
| 
								 | 
							
											</view>
							 | 
						|||
| 
								 | 
							
										</view>
							 | 
						|||
| 
								 | 
							
									</view>
							 | 
						|||
| 
								 | 
							
								</template>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<script>
							 | 
						|||
| 
								 | 
							
									export default {
							 | 
						|||
| 
								 | 
							
										name: "lyg-popup",
							 | 
						|||
| 
								 | 
							
										props: {
							 | 
						|||
| 
								 | 
							
											title: {
							 | 
						|||
| 
								 | 
							
												type: String,
							 | 
						|||
| 
								 | 
							
												default: "服务协议和隐私政策"
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											// 协议路径
							 | 
						|||
| 
								 | 
							
											protocolPath: {
							 | 
						|||
| 
								 | 
							
												type: String
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											// 政策路径
							 | 
						|||
| 
								 | 
							
											policyPath: {
							 | 
						|||
| 
								 | 
							
												type: String
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											policyStorageKey: {
							 | 
						|||
| 
								 | 
							
												type: String,
							 | 
						|||
| 
								 | 
							
												default: "has_read_privacy"
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										},
							 | 
						|||
| 
								 | 
							
										data() {
							 | 
						|||
| 
								 | 
							
											return {
							 | 
						|||
| 
								 | 
							
												showPopup: false
							 | 
						|||
| 
								 | 
							
											};
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										},
							 | 
						|||
| 
								 | 
							
										created: function() {
							 | 
						|||
| 
								 | 
							
											var that = this;
							 | 
						|||
| 
								 | 
							
											console.log("lyg-popup created");
							 | 
						|||
| 
								 | 
							
											uni.getStorage({
							 | 
						|||
| 
								 | 
							
												key: this.policyStorageKey,
							 | 
						|||
| 
								 | 
							
												success: (res) => {
							 | 
						|||
| 
								 | 
							
													if (res.data) {
							 | 
						|||
| 
								 | 
							
														that.showPopup = false;
							 | 
						|||
| 
								 | 
							
														uni.showTabBar({});
							 | 
						|||
| 
								 | 
							
													}
							 | 
						|||
| 
								 | 
							
												},
							 | 
						|||
| 
								 | 
							
												fail: function(e) {
							 | 
						|||
| 
								 | 
							
													that.showPopup = true;
							 | 
						|||
| 
								 | 
							
													uni.hideTabBar({});
							 | 
						|||
| 
								 | 
							
													console.log(e)
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
											});
							 | 
						|||
| 
								 | 
							
										},
							 | 
						|||
| 
								 | 
							
										methods: {
							 | 
						|||
| 
								 | 
							
											// 禁止滚动
							 | 
						|||
| 
								 | 
							
											clear() {
							 | 
						|||
| 
								 | 
							
												return;
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											back() {
							 | 
						|||
| 
								 | 
							
												this.$emit('popupState', false)
							 | 
						|||
| 
								 | 
							
												// #ifdef APP-PLUS  
							 | 
						|||
| 
								 | 
							
												if (uni.getSystemInfoSync().platform == 'ios') {
							 | 
						|||
| 
								 | 
							
													const threadClass = plus.ios.importClass("NSThread");
							 | 
						|||
| 
								 | 
							
													const mainThread = plus.ios.invoke(threadClass, "mainThread");
							 | 
						|||
| 
								 | 
							
													// plus.ios.invoke(mainThread, "exit");
							 | 
						|||
| 
								 | 
							
													//上面的不起效果下面的
							 | 
						|||
| 
								 | 
							
													plus.ios.import("UIApplication").sharedApplication().performSelector("exit")
							 | 
						|||
| 
								 | 
							
												} else if (uni.getSystemInfoSync().platform == 'android') {
							 | 
						|||
| 
								 | 
							
													plus.runtime.quit();
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
												// #endif
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											// 关闭弹框
							 | 
						|||
| 
								 | 
							
											confirm() {
							 | 
						|||
| 
								 | 
							
												this.showPopup = false;
							 | 
						|||
| 
								 | 
							
												this.$emit('popupState', true);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
												uni.setStorage({
							 | 
						|||
| 
								 | 
							
													key: this.policyStorageKey,
							 | 
						|||
| 
								 | 
							
													data: true
							 | 
						|||
| 
								 | 
							
												});
							 | 
						|||
| 
								 | 
							
												uni.showTabBar({});
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									};
							 | 
						|||
| 
								 | 
							
								</script>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<style lang="scss">
							 | 
						|||
| 
								 | 
							
									.popup_mask {
							 | 
						|||
| 
								 | 
							
										position: fixed;
							 | 
						|||
| 
								 | 
							
										bottom: 0;
							 | 
						|||
| 
								 | 
							
										top: 0;
							 | 
						|||
| 
								 | 
							
										left: 0;
							 | 
						|||
| 
								 | 
							
										right: 0;
							 | 
						|||
| 
								 | 
							
										background-color: rgba(0, 0, 0, 0.4);
							 | 
						|||
| 
								 | 
							
										transition-property: opacity;
							 | 
						|||
| 
								 | 
							
										transition-duration: 0.3s;
							 | 
						|||
| 
								 | 
							
										opacity: 0;
							 | 
						|||
| 
								 | 
							
										z-index: 98;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.popup_mask {
							 | 
						|||
| 
								 | 
							
										opacity: 1;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.popup_content {
							 | 
						|||
| 
								 | 
							
										overflow: hidden;
							 | 
						|||
| 
								 | 
							
										box-sizing: border-box;
							 | 
						|||
| 
								 | 
							
										padding: 40upx 20upx 0 20upx;
							 | 
						|||
| 
								 | 
							
										position: fixed;
							 | 
						|||
| 
								 | 
							
										bottom: 30%;
							 | 
						|||
| 
								 | 
							
										border-radius: 8px;
							 | 
						|||
| 
								 | 
							
										left: 50%;
							 | 
						|||
| 
								 | 
							
										margin-left: -40%;
							 | 
						|||
| 
								 | 
							
										right: 0;
							 | 
						|||
| 
								 | 
							
										min-height: 400upx;
							 | 
						|||
| 
								 | 
							
										background: #ffffff;
							 | 
						|||
| 
								 | 
							
										width: 80%;
							 | 
						|||
| 
								 | 
							
										z-index: 99;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										.title {
							 | 
						|||
| 
								 | 
							
											text-align: center;
							 | 
						|||
| 
								 | 
							
											font-size: 34upx;
							 | 
						|||
| 
								 | 
							
											padding: 10upx 0 0 0;
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										.explain_text {
							 | 
						|||
| 
								 | 
							
											font-size: 30upx;
							 | 
						|||
| 
								 | 
							
											padding: 30upx 30upx 40upx 30upx;
							 | 
						|||
| 
								 | 
							
											line-height: 38upx;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											.line {
							 | 
						|||
| 
								 | 
							
												display: block;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
												.path {
							 | 
						|||
| 
								 | 
							
													color: #007aff;
							 | 
						|||
| 
								 | 
							
													display: inline-block;
							 | 
						|||
| 
								 | 
							
													text-align: center;
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										.button {
							 | 
						|||
| 
								 | 
							
											display: flex;
							 | 
						|||
| 
								 | 
							
											padding: 20upx;
							 | 
						|||
| 
								 | 
							
											align-items: center;
							 | 
						|||
| 
								 | 
							
											font-size: 34upx;
							 | 
						|||
| 
								 | 
							
											justify-content: space-around;
							 | 
						|||
| 
								 | 
							
											border-top: 1upx solid #f2f2f2;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											view {
							 | 
						|||
| 
								 | 
							
												text-align: center;
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								</style>
							 |