This commit is contained in:
lcj
2026-09-04 16:20:56 +08:00
parent 08e2f6888b
commit 4ed72056a9
6 changed files with 304 additions and 68 deletions
+85 -5
View File
@@ -115,6 +115,35 @@
</button>
</view>
<!-- 5. 照片拍摄要求提示 -->
<view class="photo-tips">
<text class="photo-tips__title">照片拍摄要求</text>
<view class="photo-tips__item">
<view class="photo-tips__dot" />
<text class="photo-tips__text">图片仅允许1张人脸,多人脸直接驳回</text>
</view>
<view class="photo-tips__item">
<view class="photo-tips__dot" />
<text class="photo-tips__text">图片不能无人脸、侧脸过大、遮挡严重(口罩/帽子遮大半脸)</text>
</view>
<view class="photo-tips__item">
<view class="photo-tips__dot" />
<text class="photo-tips__text">不允许全身、远景、远距离人像照片</text>
</view>
<view class="photo-tips__item">
<view class="photo-tips__dot" />
<text class="photo-tips__text">不允许脸部极致特写、贴脸拍摄无留白</text>
</view>
<view class="photo-tips__item">
<view class="photo-tips__dot" />
<text class="photo-tips__text">图片清晰,无严重模糊、逆光、黑影、反光</text>
</view>
<view class="photo-tips__item">
<view class="photo-tips__dot" />
<text class="photo-tips__text">不允许翻拍屏幕、截图、证件复印件照片</text>
</view>
</view>
<!-- 弹窗:证件类型选择 -->
<uni-popup ref="idTypePopup" type="bottom" :mask-click="true" mask-background="transparent" @change="(e: any) => showIdTypePicker = e.show">
<view class="popup-sheet">
@@ -237,11 +266,16 @@ async function handleImage(filePath: string) {
try {
const compressedPath = await compressImage(filePath)
uni.showLoading({ title: '上传中...' })
const url = await uploadImage(compressedPath)
const url = await uploadImage(compressedPath, '/open-api/oss/uploadWithFaceCheck')
photoUrl.value = url
uni.showToast({ title: '上传成功', icon: 'success' })
} catch {
uni.showToast({ title: '上传失败', icon: 'none' })
} catch (e) {
uni.showModal({
title: '上传失败',
content: (e as Error).message || '上传失败',
showCancel: false,
confirmText: '确定',
})
} finally {
uploading.value = false
uni.hideLoading()
@@ -362,8 +396,8 @@ function handleCancel() {
/* ===== Page ===== */
.page {
height: 100vh;
overflow: hidden;
min-height: 100vh;
overflow-y: auto;
background: $color-card;
font-family: $font-family-body;
}
@@ -714,6 +748,52 @@ function handleCancel() {
color: $uv-tips-color;
}
/* ===== 5. Photo Tips ===== */
.photo-tips {
margin: 32rpx 24rpx;
padding: 28rpx;
background: #f7f8fa;
border-radius: 16rpx;
}
.photo-tips__title {
display: block;
font-family: $font-family-body;
font-size: $font-size-sm;
font-weight: $font-weight-medium;
color: $uv-main-color;
margin-bottom: 16rpx;
}
.photo-tips__item {
display: flex;
align-items: flex-start;
margin-bottom: 12rpx;
&:last-child {
margin-bottom: 0;
}
}
.photo-tips__dot {
width: 8rpx;
height: 8rpx;
border-radius: 50%;
background: $uv-primary;
flex-shrink: 0;
margin-top: 14rpx;
margin-right: 12rpx;
}
.photo-tips__text {
flex: 1;
font-family: $font-family-body;
font-size: $font-size-xs;
font-weight: 400;
color: $uv-tips-color;
line-height: 36rpx;
}
/* ===== Popup Sheet ===== */
.popup-sheet {
background: $color-card;