likeshop/uniapp/components/lyg-popup/lyg-popup.vue
小城外的桃李 5e64528893 3.0.3版本
2024-08-15 11:06:13 +08:00

188 lines
4.2 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template name="protocol-popup">
<view @touchmove.stop.prevent="clear" v-show="showPopup">
<view class="popup_mask1" @touchmove.stop.prevent="clear"></view>
<view class="popup_mask" @touchmove.stop.prevent="clear"></view>
<view class="popup_content">
<view class="title">{{ title }}</view>
<view class="content">
请你务必审慎阅读充分理解服务协议隐私政策各条款包括但不限于为了更好的向你提供服务我们需要收集你的设备标识操作日志等信息用于分析优化应用性能你可阅读
<text class="link" @click="linkClick(1)">服务协议</text>
<text class="link" @click="linkClick(2)">隐私政策</text>
了解详细信息如果你同意请点击下面按钮开始接受我们的服务
</view>
<view class="btn">
<view class="flex-1">
<button class="plain" @click="back">拒绝仅浏览</button>
</view>
<view class="flex-1">
<button @click="confirm">同意并继续</button>
</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");
const platform = uni.getSystemInfoSync().osName
const agree = uni.getStorageSync(this.policyStorageKey)
if (platform === 'android' || agree) {
this.showPopup = false;
uni.showTabBar({})
} else {
this.showPopup = true;
uni.hideTabBar({})
}
},
methods: {
// 查看隐私协议或服务协议
linkClick (num) {
switch (num) {
case 1:
// 跳转服务协议
this.$Router.push(this.protocolPath)
break
case 2:
// 跳转隐私政策
this.$Router.push(this.policyPath)
break
}
},
// 禁止滚动
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.showTabBar({})
uni.setStorageSync(this.policyStorageKey, true)
}
}
};
</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: 1299;
}
.popup_mask {
opacity: 1;
}
.popup_mask1 {
position: fixed;
bottom: 0;
top: 0;
left: 0;
right: 0;
z-index: 1298;
background-color: #ffffff;
}
.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: 1300;
.title {
text-align: center;
line-height: 120rpx;
font-size: 32rpx;
font-weight: 600;
}
.content {
padding: 0 32rpx;
text-indent: 1em;
.link {
color: #4982db;
}
}
.btn {
display: flex;
flex: 1;
margin-top: 30rpx;
>view {
margin: 20rpx;
flex: 1;
}
button {
color: $-color-white;
background-color: $-color-primary;
}
.plain {
color: $-color-primary;
background-color: $-color-white;
border: 1px solid $-color-primary;
}
}
}
</style>