feat: 客服热线弹窗、取消预约文案与旅游卡页布局优化

- 客服热线改为弹窗拉取 mpContent/queryList 客服信息(SERVICE_INFO),富文本电话可点击拨号
- 取消预约确认弹窗展示具体预约日期与景区名称,取消后隐藏取消按钮
- makePhoneCall 用户取消时静默处理,不再上报异常
- 景区列表搜索图标改为 OSS 图片
- 旅游卡页:人脸头像方形竖版、信息单行靠右、入园提示移至持卡人信息下方等布局优化
- project.config.json appid 同步为 wxae3b39ac443fedc3

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
jacobxu666
2026-08-07 18:29:12 +08:00
co-authored by Claude Opus 4.8
parent f0911c67a0
commit 08e2f6888b
8 changed files with 312 additions and 90 deletions
+9 -2
View File
@@ -63,7 +63,7 @@
<!-- 操作 -->
<view class="record-actions">
<view
v-if="r.canCancel"
v-if="r.canCancel && r.status !== 'cancelled'"
class="btn-sm btn-sm--outline"
@tap="showCancelModal(r)"
>
@@ -110,7 +110,7 @@
<view class="cancel-modal">
<text class="cancel-modal__title">取消预约</text>
<view class="cancel-modal__body">
<text class="cancel-modal__text">确定取消该预约吗?未提前取消且未入园将扣除1次年卡使用次数,权益不可恢复。</text>
<text class="cancel-modal__text">确定取消 {{ formatReserveDate(cancelRecord?.date) }}{{ cancelRecord?.scenicName }} 的预约吗?</text>
</view>
<view class="cancel-modal__actions">
<view class="btn-modal btn-modal--outline" @tap="cancelPopup?.close()">
@@ -325,6 +325,13 @@ watch(activeTab, () => {
fetchRecords()
})
/** 将预约日期(如 2026-08-05)格式化为「2026 年 8 月 5 日」 */
function formatReserveDate(date?: string): string {
const m = (date || '').match(/(\d{4})[-/年.](\d{1,2})[-/月.](\d{1,2})/)
if (!m) return date || ''
return `${m[1]} 年 ${Number(m[2])} 月 ${Number(m[3])} 日`
}
function showCancelModal(r: ReserveRecord) {
cancelRecord.value = r
cancelPopup.value?.open()