hookehuyr

feat(用户协议): 添加用户服务协议弹窗组件并集成到隐私协议中

- 创建独立的用户服务协议弹窗组件
- 在隐私协议中集成该组件并实现联动逻辑
- 为隐私协议添加底部确认按钮
......@@ -49,5 +49,6 @@ declare module 'vue' {
RouterView: typeof import('vue-router')['RouterView']
SearchPopup: typeof import('./src/components/SearchPopup.vue')['default']
TabBar: typeof import('./src/components/TabBar.vue')['default']
UserServiceAgreementModal: typeof import('./src/components/UserServiceAgreementModal.vue')['default']
}
}
......
......@@ -78,13 +78,27 @@
<view class="content-text" v-html="contentText"></view>
</view>
</scroll-view>
<!-- 底部按钮 -->
<view class="modal-footer">
<nut-button type="primary" block color="#fb923c" @click="onCloseContentModal">
我已阅读并同意
</nut-button>
</view>
</view>
</nut-popup>
<!-- 用户服务协议弹窗 -->
<UserServiceAgreementModal
v-model:visible="showUserAgreementModal"
@confirm="onUserAgreementConfirm"
/>
</template>
<script setup>
import { ref, computed, watch, defineEmits, defineProps } from 'vue'
import Taro from '@tarojs/taro'
import UserServiceAgreementModal from './UserServiceAgreementModal.vue'
// Props
const props = defineProps({
......@@ -99,6 +113,7 @@ const emit = defineEmits(['update:visible', 'confirm', 'cancel'])
// 响应式数据
const agreed = ref(false)
const showUserAgreementModal = ref(false)
// 监听弹框显示状态,每次打开时重置agreed
watch(() => props.visible, (newVisible) => {
......@@ -229,9 +244,7 @@ const contentText = ref('')
* 点击用户服务协议
*/
const onUserAgreementClick = () => {
contentTitle.value = '用户服务协议'
contentText.value = userAgreementContent
showContentModal.value = true
showUserAgreementModal.value = true
}
/**
......@@ -262,6 +275,13 @@ const onCancel = () => {
}
/**
* 用户服务协议确认
*/
const onUserAgreementConfirm = () => {
showUserAgreementModal.value = false
}
/**
* 确认操作
*/
const onConfirm = () => {
......@@ -508,4 +528,13 @@ const onConfirm = () => {
border-top: 2rpx solid #e5e5e5;
font-style: italic;
}
.modal-footer {
padding: 32rpx;
border-top: 1rpx solid #eee;
background: white;
position: sticky;
bottom: 0;
z-index: 10;
}
</style>
......
This diff is collapsed. Click to expand it.