绑卡
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user