Quellcode durchsuchen

修改人脸识别判断

yuanmingze vor 2 Monaten
Ursprung
Commit
ce16ef541a

+ 21 - 0
src/hooks/useInvoice.ts

@@ -4,6 +4,7 @@ import { showToast, showSuccessToast } from 'vant'
 import { getStatusApi, submitInvoiceApplyApi } from '@/services/modules/invoiceInformation'
 import type { PushRecordIdRequest } from '@/services/modules/invoiceInformation/type.d.ts'
 import { useUserStore } from '@/stores/modules/user'
+import { getFaceAuthResultApi } from '@/services/modules/faceRecognition'
 
 interface ToStatus {
   /** 待处理事件 */
@@ -47,6 +48,24 @@ export function useInvoice() {
     pushRecordId: userStore.pushRecordId,
   })
 
+  const faceAuthResult = ref(false)
+
+  // 获取认证结果
+  const getFaceAuthResult = async () => {
+    try {
+      const res = await getFaceAuthResultApi(params)
+      if (res.code === 0 && res.data?.success) {
+        const rzzt = res.data.rzzt
+        // 已认证或无需认证提交跳转
+        if (rzzt === 'NO_REQUIRED_AUTHENTICATION') {
+          faceAuthResult.value = true
+        }
+      }
+    } catch (err) {
+      console.error('获取认证结果失败', err)
+    }
+  }
+
   /**
    * 获取开票状态
    */
@@ -109,7 +128,9 @@ export function useInvoice() {
     statusMap,
     btnDisabled,
     isLoading,
+    faceAuthResult,
     getStatus,
     submitInvoiceApply,
+    getFaceAuthResult,
   }
 }

+ 3 - 3
src/views/identity-upload/index.vue

@@ -81,7 +81,7 @@ import { useInvoice } from '@/hooks/useInvoice'
 import type { UpdateH5IdcardInfoRequest } from '@/services/modules/identityUpload/type.d'
 
 // --- 初始化 Hooks ---
-const { getStatus, submitInvoiceApply } = useInvoice()
+const { getStatus, submitInvoiceApply, getFaceAuthResult, faceAuthResult } = useInvoice()
 const userStore = useUserStore()
 /** 上传项类型 */
 interface UploadFileItem {
@@ -196,7 +196,7 @@ const handleNext = async () => {
     if (res.code === 0) {
       // 需要人脸识别->跳转人脸识别
       // 已处理状态,跳转人脸识别
-      if (userStore.needFaceId) {
+      if (userStore.needFaceId && !faceAuthResult.value) {
         return router.push({ path: '/face-recognition' })
       }
       // 其他情况,直接提交
@@ -214,7 +214,7 @@ const onClickLeft = () => history.back()
 /** 下一步按钮点击 */
 
 onMounted(async () => {
-  await Promise.all([getStatus()])
+  await Promise.all([getStatus(), getFaceAuthResult()])
 })
 </script>
 

+ 4 - 3
src/views/invoice-information/index.vue

@@ -133,7 +133,8 @@ import { useUserStore } from '@/stores/modules/user'
 // ✅ 使用封装好的 Hook
 import { useInvoice } from '@/hooks/useInvoice'
 // --- 初始化 Hooks ---
-const { getStatus, submitInvoiceApply, btnDisabled, statusMap } = useInvoice()
+const { getStatus, submitInvoiceApply, getFaceAuthResult, btnDisabled, statusMap, faceAuthResult } =
+  useInvoice()
 
 // --- 其余本页面独有逻辑 ---
 const userStore = useUserStore()
@@ -174,7 +175,7 @@ const handleNext = async () => {
   }
 
   // 已处理状态,跳转人脸识别
-  if (userStore.needFaceId) {
+  if (userStore.needFaceId && !faceAuthResult.value) {
     return router.push({ path: '/face-recognition' })
   }
 
@@ -192,7 +193,7 @@ const toDetail = () => {
 
 /** 生命周期 */
 onMounted(async () => {
-  await Promise.all([getStatus(), getConfirmInvoiceInfo()])
+  await Promise.all([getStatus(), getConfirmInvoiceInfo(), getFaceAuthResult()])
 })
 </script>