<template>
	<uni-popup ref="noticePopup" :mask-click="false" type="center">
		<view class="popup-container">
			<view class="title-box">
				<view class="title-empty"></view>
				<view class="title">星妈会活动参与协议</view>
				<view @click="close" class="title-img">
					<image :src="$baseUrl + 'sign-up/cross.png'" mode="aspectFit" />
				</view>
			</view>
			<!-- 可滚动内容区域 -->
			<scroll-view class="content-box" scroll-y @scrolltolower="onScrollLower">
				<view class="sub-title">发布/更新于：2025年12月1日 </view>
				<view class="sub-content">
					<text class="sub-tips">重要提示：本协议是您与星妈会之间关于参与线下活动的法律文件。为使您更好地参与活动并保障您的合法权益，星妈会特别提示您仔细阅读、理解并同意本协议的全部内容，特别是其中加粗或以其他显著方式标识的，与您的权益（可能）有重大关系的条款（包括但不限于免除、限制星妈会责任的条款及争议解决条款）。如您对本协议的任何条款存在疑问，请在报名前通过官方公布的联系方式与我们联系。如您不同意本协议的任何内容，您应立即停止活动报名程序。</text>
				</view>
				<view class="sub-two-title">第一条 活动报名及参与承诺</view>
				<view class="sub-content">
					1.  作为报名参加活动及使用相关设施/服务的先决条件，您确认已注册成为星妈会小程序用户，并<text class="sub-tips">完全知晓并自愿接受</text>参与该活动可能存在的所有风险及危险。<br/>
					2.  您承诺将配合星妈会工作人员的指引妥善完成活动参与的事项准备，包括但不限于随身物品的寄存、遵守着装要求等。同时您也知晓<text class="sub-tips">个人财物（特别是贵重物品）须由您本人妥善保管，如有遗失或损坏，星妈会不承担赔偿责任。</text><br/>
					3.  您承诺报名时填写的所有信息真实、准确、完整且有效。<text class="sub-tips">您知悉本次活动资格具有人身专属性，不得以任何形式转让予任何第三方。若因您隐瞒、伪造信息或转让资格所引致的任何法律责任、损失或第三方索赔，均由您独立承担。在此情况下，星妈会有权立即单方面取消您的参与资格，并无需承担任何责任地收回您通过本活动已获得的全部权益。</text><br/>
					<text class="sub-tips">请特别注意：</text><br/>
					若您报名多个场次活动，需确保选择的各场次时间无冲突且存在合理时间差，否则将无法报名相关场次。<br/>
					若您报名活动后无法出席且未在活动开始前24小时通过小程序指定功能完成取消，<text class="sub-tips">累计发生两次后，您将在30日内被限制报名任何其他星妈会线下活动。</text>
				</view>
				<view class="sub-two-title">第二条 健康状况承诺及安全提示</view>
				<view class="sub-content">
					1.  本人同意并承认：<br/>
					 (a) 本人知晓如果该活动发生在户外，则活动期间该活动所在区域附近街道将会有正常车辆交通，本人会遵守所有的交通法律法规；<br/>
					 (b) 本人了解，本人没有义务参加活动，且系自行选择参加及加入活动；<br/>
					 (c) 本人参加的活动可能导致暴露或感染传染病的风险增加。<br/>
					 (d) 本人理解并同意，若本人的行为（包括但不限于违反本协议约定、活动规则、工作人员指引或公共秩序善良风俗）对活动、星妈会品牌声誉、其他参与者或任何第三方造成任何损害、损失或引发任何权利主张，<text class="sub-tips">本人愿意承担相应的法律责任并对星妈会因此遭受的损失（包括但不限于赔偿金、罚金、律师费、诉讼费等）予以全额赔偿。<br/>
					本人进一步理解，本人对自身的安全、身心健康和福祉负有全部责任，且本人的参与完全是自愿和可选择的。</text><br/>
					
					2.  <text class="sub-tips">在中华人民共和国法律所允许的最大限度内，本人特此完全免除并不可撤销地永远放弃本人、本人继承人及直系亲属现在或将来的针对被豁免方的全部权利主张，且同意不提出主张，即使该主张是基于被豁免方或任何其他方的疏忽大意或过失。</text>不限于以上规定，就本人进一步不可撤销地代表本人、本人继承人及直系亲属放弃任何现在或将来可能获得的由任何被豁免方的决定引起的追索权。<br/>
					
					3. 本人知晓，应在参与该活动之前咨询医务人员自身的身体及心理情况。本人声明并保证：<br/>
					(a) 本人身体或健康状况不会妨碍本人正确、安全地参与活动；<br/>
					(b) 医务人员没有指示本人避免<text class="sub-tips">参与本活动所涉类型的</text>活动和/或存在任何不适宜参与活动的历史疾病，身体状态良好；<br/>
					(c) 本人没有妨碍自我正确、安全参与活动的精神痛苦、创伤或相关症状；<br/>
					(d) 如本人确实咨询过生理及心理的医务人员，则本人已采纳医务人员的建议。<br/>
					
					4. 本人知晓，除星妈会现场另有特殊安排外，活动期间没有人有义务向本人提供医疗服务。本人了解并承认：<br/>
					(a)该活动可能不提供任何救助站点或心理医务人员；<br/>
					(b) 如有任何为本人提供的医疗服务，并且提供服务当时本人无法表示同意，则应视为本人已经同意。本人承认，如果本人在参加活动之前、期间或之后出现身体伤害、精神困扰或创伤症状，本人有责任通知生理及心理的医务人员。
				</view>
				<view class="sub-two-title">第三条 肖像及关联元素授权</view>
				<view class="sub-content">
					1.  本人确认同意，星妈会在活动中可拍摄包含本人肖像的照片或视频素材（“素材”），本人同意，除法律法规另有明确规定外，以上素材作品的全部权利（包括但不限于著作权和所有权）在作品拍摄完成时即无偿且永久属于星妈会。星妈会可以其认为合适的方式对素材进行编辑、修改、剪辑，及其他形式的加工。<br/>
					2.  同时，本人同意根据星妈会的需求提交本人肖像或肖像元素的影像、照片、图片等肖像内容（以下统称“肖像内容”）供星妈会编辑使用。星妈会可以其认为合适的方式对肖像内容进行编辑、修改、剪辑，及其他形式的加工。<br/>
					3.  星妈会有权将以上素材和肖像内容的衍生品、复制品或创作成果（以下统称“作品”）合理地于全世界范围内用于包括但不限于：公司内部报告、广告营销、发表和出版、公开展览、参加展会或比赛，以及其他与星妈会品牌或产品的营销宣传有关的活动。<br/>
					4.  除非经星妈会事先书面同意，本人将不会在任何个人注册、管理的社交媒体账户<text class="sub-tips">对星妈会提供的或于活动期间拍摄的专业品质素材进行首次公开发布。</text>
				</view>
				<view class="sub-two-title">第四条 隐私</view>
				<view class="sub-content">
					1.  本人理解，本人提供的部分信息，包括但不限于本人的姓名、手机号码、微信账号信息（微信绑定手机号、微信昵称、微信头像）等（“信息”）将由星妈会收集和使用，本人同意将信息传送给星妈会、星妈会的代理人和/或服务提供商，并授权其为提供和管理活动之目的并根据星妈会的隐私政策以收集、处理和存储该等信息。<br/>
					2.  本人知晓并进一步同意，通过报名参加活动，星妈会可以通过小程序服务通知或您预留的联系方式，向您发送包括但不限于活动详情、活动邀请、星妈会品牌资讯、产品资讯、促销信息等。<text class="sub-tips">如您不希望接收此类信息，可通过信息中的退订指引进行操作。</text>
				</view>
				<view class="sub-two-title">第五条 未成年人</view>
				<view class="sub-content">
					本人理解，本人必须至少年满十八（18）周岁。如果参加者未满十八周岁或不具备完全民事行为能力，其父母或监护人同意以下声明：作为未成年参加者的父母或监护人，本人授权未成年参加者参加活动，且同意本协议。如果未成年参加者出现医疗紧急情况，且任何被豁免方无法联系本人，本人同意并允许任何被豁免方为未成年参加者提供医疗服务。本人承认，如果未成年参加者在参加活动之前、期间或之后出现精神困扰症状，本人有责任告知医生或心理健康专家。
				</view>
				<view class="sub-two-title">第六条 活动变更与调整</view>
				<view class="sub-content">
					1.  本人理解并同意，星妈会作为活动主办方，有权根据当次活动的实际情况，在法律法规允许范围内，对当次活动的开展做出调整。如发生相关变动或调整（包括但不限于活动地点、时间的改变），星妈会将有关信息公布或以合适方式通知本人，选择继续参与调整后的活动即代表本人同意该等活动变动或调整。<br/>
					2.  如当次活动因不可抗力、相关情势变更，或法律法规、政府监管部门的原因暂停、延期或取消，星妈会有权根据相关法律法规免责。该等原因包括但不限于活动受到第三方任何不正当方式攻击或阻碍、系统故障、行政机关政策要求及暴雨、洪水、地震、高温等自然灾害的影响。<br/>
					3.  本人进一步同意，因本条所述情况导致的活动延期及/或取消等所产生的本人个人额外支出、经济损失等，由本人自行承担。
				</view>
				<view class="sub-two-title">第七条 通用</view>
				<view class="sub-content">
					1. <text class="sub-tips"> 定义：</text>“权利主张”包括但不限于因参与该活动引起损失、个人伤亡、暴露于或感染传染病所致的任何或全部责任、索赔、要求、起诉等法律行动或权利主张。“被豁免方”指星妈会以及其全部关联方以及前述公司或机构的代表人、董事、管理人员、代理人、雇员和志愿者。<br/>
					2.  <text class="sub-tips">可分割性：</text>如果本协议任何条款违法、无效或因任何原因不可执行，该条款应视为与本协议分离，不影响本协议任何其他条款的效力和执行。<br/>
					3.  <text class="sub-tips">完整阅读：</text>本人已全部阅读并同意本协议。本人知晓，签署本协议将放弃本人或本人继承人及近亲属可能享有的针对被豁免方的某些法律权利。<br/>
					4.  <text class="sub-tips">管辖法律：</text>本人进一步承认并同意，本协议应当按照中华人民共和国法律解释及管辖，不包括其冲突法规则。
				</view>
				<view class="sub-two-title">第八条 协议变更与生效</view>
				<view class="sub-content">
					1.  <text class="sub-tips">星妈会有权在必要时单方面修改本协议条款，并于星妈会小程序公示后生效。若您在前述修订公告发布后继续参与星妈会活动的，即表示您已接受修改后的协议。</text>
				</view>
				<view class="read-complete" @click="onChange">
					<image v-if="isAgree" :src="$baseUrl + 'sign-up/selected.png'" mode="aspectFit" />
					<image v-else :src="$baseUrl + 'sign-up/circle.png'" mode="aspectFit" />
					<view class="read-text">
						本人知晓并同意《星妈会活动协议》全部条款
					</view>
				</view>
			</scroll-view>
			<view :class="!isBottom ? 'btn-box':'btn-box btn-opaque'">
				<view v-if="!isBottom">请滑动到底部阅读页面须知</view>
				<view v-else @click="goToSign">我已阅读页面所有须知</view>
			</view>
		</view>
	</uni-popup>
</template>

<script setup>
import {ref, defineProps, defineEmits} from 'vue'

const props = defineProps({
  agreement: {
    type: Boolean,
    default: false,
  },
  isView: {
    type: Boolean,
    default: false,
  },
})
const isAgree = ref(false)
const emit = defineEmits(['goToSign'])
const noticePopup = ref(null)
//中奖状态
//是否到达中奖公布日期
const isBottom=ref(false)
// 滚动事件处理 - 核心方法
const onScrollLower=()=>{
	console.log(isBottom.value,'到底部')
	if(!isBottom.value){
		isBottom.value = true
	}
}
const onChange=()=>{
	if(props.isView) return
	isAgree.value = !isAgree.value
}
const goToSign = () => {
	if(!isAgree.value) {
		return uni.showToast({
			title: "请阅读并勾选须知信息",
			icon: "none",
		});
	}
	emit('goToSign',isAgree.value)
	close()
}
const open = ()=>{
	noticePopup.value.open()
	isAgree.value = props.agreement
}
const close = ()=>{
	noticePopup.value.close()
	isBottom.value = false
}
defineExpose({
	open
})
</script>

<style lang="less" scoped>
@import '@/common.less';
.popup-container {
	height: 1050rpx;
	width: calc(100vw - 150rpx);
	padding: 40rpx 28rpx;
	box-sizing: border-box;
	background: linear-gradient(180.11deg, #FFE9C5 -1.57%, #FFFFFF 13.06%);
	border-radius: 38rpx;
	.title-box{
		display: flex;
		align-items: center;
		justify-content: space-between;
		.title-empty{
			width: 50rpx;
		}
		.title{
			font-weight: 600;
			font-size: 36rpx;
			color: #D3A458;
		}
		.title-img{
			width: 50rpx;
			height: 50rpx;
			line-height: 50rpx;
			text-align: center;
			image {
				width: 19rpx;
				height: 19rpx;
			}
		}
	}
	.content-box{
		height: 747rpx;
		overflow: scroll;
		margin: 30rpx 0rpx;
		line-height: 30rpx;
		.sub-title{
			font-size: 24rpx;
			font-weight: 600;
		}
		.sub-two-title{
			font-size: 22rpx;
			font-weight: 600;
		}
		.sub-content{
			font-size: 20rpx;
			text-align: justify;
			margin: 30rpx 0rpx;
			.sub-tips{
				font-weight: 600;
			}
		}
		.read-complete{
			font-size: 20rpx;
			text-align: justify;
			display: flex;
			justify-content: space-between;
			margin: 30rpx 0rpx;
			image{
				width: 18rpx;
				height: 18rpx;
				margin-top: 6rpx;
			}
			.read-text{
				width: calc(100% - 25rpx);
			}
		}
	}
	.btn-box{
		height: 90rpx;
		line-height: 90rpx;
		border-radius: 50rpx;
		font-weight: 500;
		font-size: 28rpx;
		background: rgba(211, 164, 88, 0.3);
		text-align: center;
		margin: 0 30rpx;
		color: #B27C1E;
	}
	.btn-opaque{
		background: rgba(211, 164, 88, 1);
		color: #FFFFFF;
	}
}
</style>
