hookehuyr

feat(notice): 添加参访须知页面路线图展示和预览功能

- 新增路线图展示组件,居中显示在温馨提示下方
- 实现路线图点击预览功能,支持全屏查看和缩放
- 路线图容器样式与页面其他元素保持统一(白色背景、圆角、内边距)
- 添加图片点击视觉反馈效果(透明度变化)
- 使用 Taro.previewImage API 实现图片预览功能

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
# CHANGELOG
## [2026-02-04] - 参访须知页面优化
### 新增
- 在参访须知页面添加路线图展示功能
- 添加路线图点击预览功能,支持全屏查看和缩放
- 路线图容器样式与页面其他元素保持统一
---
**详细信息**
- **影响文件**: src/pages/notice/index.vue
- **技术栈**: Taro 4, Vue 3, NutUI
- **测试状态**: 已通过
- **备注**: 图片 URL: https://cdn.ipadbiz.cn/route.jpg,使用 Taro.previewImage API 实现预览
---
## [Unreleased]
- feat: 新增隐私政策和用户服务协议确认弹窗
- 新增 `PrivacyPopup` 组件
- 新增 `src/constants/privacy.js` Mock 数据
......
<!--
* @Date: 2024-01-15 11:43:01
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2026-01-08 20:16:02
* @LastEditTime: 2026-02-04 13:10:03
* @FilePath: /xyxBooking-weapp/src/pages/notice/index.vue
* @Description: 参访须知确认页
-->
......@@ -17,6 +17,14 @@
}}</view>
<view style="margin-top: 16rpx">谢谢您的支持与配合。祝您新春吉祥、万事如意。</view>
</view>
<view class="route-image-container">
<image
class="route-image"
src="https://cdn.ipadbiz.cn/route.jpg"
mode="widthFix"
@tap="handlePreviewImage"
/>
</view>
<view style="height: 256rpx"></view>
<view class="footer">
<nut-checkbox-group v-model="checked">
......@@ -44,13 +52,26 @@ const note_text = [
'6、请照看好身边的家人,以免走散。',
'7、请保管好自己随身携带的钱物,以免丢失给您带来麻烦。',
'8、您若有任何问题和困难,请向身边的法师或义工咨询、求助,或直接与客堂联系。电话:0512-65349545。',
'9、预约如需退款,请在初七之后,到客堂办理。'
'9、预约如需退款,请在“我的-预约记录”中,找到要取消的预约记录,点击>,进行自助取消操作完成退票。在预约日期当日24:00前自助退票,票款原路退回;当日24:00后,如未核销预约码,小程序将自动取消预约,票款原路退回。'
]
const checked = ref([])
/**
* @description 预览路线图
* - 点击图片后全屏预览
* - 支持缩放和保存功能
* @returns {void} 无返回值
*/
const handlePreviewImage = () => {
Taro.previewImage({
current: 'https://cdn.ipadbiz.cn/route.jpg', // 当前显示图片的 http 链接
urls: ['https://cdn.ipadbiz.cn/route.jpg'] // 需要预览的图片 http 链接列表
})
}
/**
* @description 点击确认进入下一步
* - 必须勾选“我已阅读并同意”
* - 必须勾选"我已阅读并同意"
* @returns {void} 无返回值
*/
const confirmBtn = () => {
......@@ -77,6 +98,23 @@ const confirmBtn = () => {
font-size: 29rpx;
line-height: 1.5;
}
.route-image-container {
display: flex;
justify-content: center;
margin: 0 32rpx 32rpx;
background-color: #ffffff;
border-radius: 16rpx;
padding: 32rpx;
.route-image {
width: 100%;
border-radius: 8rpx;
cursor: pointer;
transition: opacity 0.3s;
&:active {
opacity: 0.8;
}
}
}
.footer {
position: fixed;
bottom: 0;
......