feat(withdraw): 添加实名认证验证功能

- 在提现页面集成实名认证状态检查
- 添加 fetchVerifyStatus 函数用于获取认证状态
- 实现认证状态包括未知、已认证、未认证、审核中、已驳回
- 在提交提现前验证用户是否已完成实名认证
- 添加去认证按钮跳转到认证页面
- 优化订单详情和订单列表中的取消订单逻辑
- 修复用户认证页面的表单验证逻辑
- 添加真实姓名和身份证号输入字段到企业认证表单
This commit is contained in:
2026-02-07 15:35:23 +08:00
parent 5581493772
commit 6c83f6c082
4 changed files with 153 additions and 15 deletions

View File

@@ -362,13 +362,23 @@ function OrderList(props: OrderListProps) {
// 确认取消订单
const handleConfirmCancel = async () => {
if (!orderToCancel) return;
if (!orderToCancel.orderId) {
Taro.showToast({
title: '订单信息错误',
icon: 'error'
});
setOrderToCancel(null);
setCancelDialogVisible(false);
return;
}
try {
setCancelDialogVisible(false);
// 更新订单状态为已取消,而不是删除订单
await updateShopOrder({
...orderToCancel,
// 只传最小字段,避免误取消/误走售后流程
orderId: orderToCancel.orderId,
orderStatus: 2 // 已取消
});

View File

@@ -53,17 +53,17 @@ function Index() {
const submitSucceed = (values: any) => {
console.log('提交表单', values);
if (FormData.status != 2 && FormData.status != undefined) return false;
if (FormData.type == 0) {
if (!FormData.sfz1 || !FormData.sfz2) {
if (FormData.type == 0 || FormData.type == 1) {
if (!FormData.realName || !FormData.idCard) {
Taro.showToast({
title: '请上传身份证正反面',
title: '请填写真实姓名和身份证号码',
icon: 'none'
});
return false;
}
if (!FormData.realName || !FormData.idCard) {
if (!FormData.sfz1 || !FormData.sfz2) {
Taro.showToast({
title: '请填写真实姓名和身份证号码',
title: '请上传身份证正反面',
icon: 'none'
});
return false;
@@ -85,13 +85,6 @@ function Index() {
return false;
}
}
if(!FormData.realName){
Taro.showToast({
title: '请填写真实姓名',
icon: 'none'
});
return false;
}
const saveOrUpdate = isUpdate ? updateUserVerify : addUserVerify;
saveOrUpdate({...FormData, status: 0}).then(() => {
Taro.showToast({title: `提交成功`, icon: 'success'})
@@ -249,6 +242,54 @@ function Index() {
// 企业类型
FormData.type == 1 && (
<>
<Form.Item
label={'真实姓名'}
name="realName"
required
initialValue={FormData.realName}
rules={[{message: '请输入真实姓名'}]}
>
<Input
placeholder={'请输入真实姓名'}
type="text"
disabled={FormData.status != 2 && FormData.status != undefined}
value={FormData?.realName}
onChange={(value) => setFormData({...FormData, realName: value})}
/>
</Form.Item>
<Form.Item
label={'身份证号码'}
name="idCard"
required
initialValue={FormData.idCard}
rules={[{message: '请输入身份证号码'}]}
>
<Input
placeholder="请输入身份证号码"
type="text"
value={FormData?.idCard}
disabled={FormData.status != 2 && FormData.status != undefined}
maxLength={18}
onChange={(value) => setFormData({...FormData, idCard: value})}
/>
</Form.Item>
<Form.Item
label={'上传证件'}
name="image"
required
rules={[{message: '请上传身份证正反面'}]}
>
<div className={'flex gap-2'}>
<div onClick={uploadSfz1}>
<Image src={FormData.sfz1} lazyLoad={false}
radius="10%" width="80" height="80"/>
</div>
<div onClick={uploadSfz2}>
<Image src={FormData.sfz2} mode={'scaleToFill'} lazyLoad={false}
radius="10%" width="80" height="80"/>
</div>
</div>
</Form.Item>
<Form.Item
label={'主体名称'}
name="name"
@@ -260,6 +301,7 @@ function Index() {
placeholder={'请输入主体名称'}
type="text"
value={FormData?.name}
disabled={FormData.status != 2 && FormData.status != undefined}
onChange={(value) => setFormData({...FormData, name: value})}
/>
</Form.Item>
@@ -274,6 +316,7 @@ function Index() {
placeholder="请输入营业执照号码"
type="text"
value={FormData?.zzCode}
disabled={FormData.status != 2 && FormData.status != undefined}
maxLength={18}
onChange={(value) => setFormData({...FormData, zzCode: value})}
/>