This commit is contained in:
lcj
2026-07-07 09:00:53 +08:00
parent 203d129ffb
commit 6d89d1049f
19 changed files with 476 additions and 255 deletions
+9 -37
View File
@@ -97,7 +97,7 @@
</view>
<view class="agreement__text">
<text class="agreement__label">我已阅读并知晓</text>
<text class="agreement__link" @tap.stop="showNotice = true">《用卡须知》</text>
<text class="agreement__link" @tap.stop="openNotice">《用卡须知》</text>
</view>
</view>
@@ -117,7 +117,7 @@
</view>
<!-- 弹窗:证件类型选择 -->
<uni-popup ref="idTypePopup" type="bottom" :mask-click="true" @change="(e: any) => showIdTypePicker = e.show">
<uni-popup ref="idTypePopup" type="bottom" :mask-click="true" mask-background="transparent" @change="(e: any) => showIdTypePicker = e.show">
<view class="popup-sheet">
<view class="popup-header">
<text class="popup-title">选择证件类型</text>
@@ -140,21 +140,6 @@
</view>
</uni-popup>
<!-- 弹窗:用卡须知 -->
<uni-popup ref="noticePopup" type="bottom" :mask-click="true" @change="(e: any) => showNotice = e.show">
<view class="popup-sheet">
<view class="popup-header">
<text class="popup-title">用卡须知</text>
<view class="popup-close" @tap="showNotice = false">
<view class="popup-close__icon" />
</view>
</view>
<scroll-view scroll-y class="popup-body">
<text class="popup-content">1. 年卡仅限本人使用,不得转借他人。\n2. 入园时需出示有效身份证件及年卡二维码。\n3. 年卡有效期内可不限次数游览合作景区。\n4. 部分景区节假日需提前预约,请以景区公告为准。\n5. 年卡一经激活,不予退换。</text>
</scroll-view>
</view>
</uni-popup>
<!-- 隐藏 canvas,用于图片压缩 -->
<canvas
canvas-id="myCanvas"
@@ -165,7 +150,7 @@
</template>
<script setup lang="ts">
import { ref, reactive, watch, computed } from 'vue'
import { ref, reactive, computed, watch } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
import { checkFaceFlag, uploadImage, bindCard as apiBindCard, bindFaceImg } from '../api/card'
@@ -203,9 +188,7 @@ const agreed = ref(false)
const submitting = ref(false)
const uploading = ref(false)
const needFaceBind = ref(false)
const showNotice = ref(false)
const showIdTypePicker = ref(false)
const noticePopup = ref<any>(null)
const idTypePopup = ref<any>(null)
onLoad(async (options) => {
@@ -229,10 +212,10 @@ onLoad(async (options) => {
}
})
watch(showNotice, (v) => {
if (v) noticePopup.value?.open()
else noticePopup.value?.close()
})
/** 打开用卡须知(跳转新页面) */
function openNotice() {
uni.navigateTo({ url: '/packages/user/pages/card-notice' })
}
watch(showIdTypePicker, (v) => {
if (v) idTypePopup.value?.open()
@@ -756,6 +739,8 @@ function handleCancel() {
max-height: 70vh;
display: flex;
flex-direction: column;
box-shadow: none;
padding-bottom: 0;
font-family: $font-family-body;
}
@@ -813,19 +798,6 @@ function handleCancel() {
}
}
.popup-body {
padding: 32rpx;
max-height: 55vh;
}
.popup-content {
font-family: $font-family-body;
font-size: $font-size-sm;
font-weight: 400;
color: $uv-content-color;
line-height: 1.8;
}
/* ===== ID Type Picker List ===== */
.id-type-list {
padding: 16rpx 0;