|
|
@@ -11,13 +11,47 @@
|
|
|
</van-loading>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
+ <!-- 低证等级弹窗 -->
|
|
|
+ <van-dialog
|
|
|
+ v-model:show="lowCertLevelDialog"
|
|
|
+ title="税局账号安全等级升级提醒"
|
|
|
+ confirmButtonText="我知道啦"
|
|
|
+ @confirm="lowCertLevelConfirm"
|
|
|
+ >
|
|
|
+ <div class="dialog-content">
|
|
|
+ <div class="dialog-text">
|
|
|
+ 抱歉,您在电子税务局的账号安全等级较低,无法确认开票申请,请登录至电子税务局提升账号安全等级。
|
|
|
+ </div>
|
|
|
+ <div class="dialog-btn" @click="handleSecurityLevelGuideClick">
|
|
|
+ 点击了解提升安全等级操作指引
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </van-dialog>
|
|
|
+
|
|
|
+ <!-- 安全等级操作指引 -->
|
|
|
+ <van-dialog
|
|
|
+ v-model:show="securityLevelGuideDialog"
|
|
|
+ width="90%"
|
|
|
+ :closeOnClickOverlay="true"
|
|
|
+ className="security-level-guide-dialog"
|
|
|
+ @confirm="securityLevelGuideDialog = false"
|
|
|
+ >
|
|
|
+ <div class="security-level-guide-body">
|
|
|
+ <img
|
|
|
+ src="@/assets/images/securityLevelGuide.png"
|
|
|
+ alt="安全等级升级指引"
|
|
|
+ class="guide-image"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </van-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import { getFaceAuthResultApi } from '@/services/modules/faceRecognition'
|
|
|
import type { PushRecordIdRequest } from '@/services/modules/invoiceInformation/type.d.ts'
|
|
|
-import { reactive, onMounted } from 'vue'
|
|
|
+import { ref, reactive, onMounted } from 'vue'
|
|
|
import { useUserStore } from '@/stores/modules/user'
|
|
|
import { showToast } from 'vant'
|
|
|
import { useInvoice } from '@/hooks/useInvoice'
|
|
|
@@ -36,10 +70,16 @@ const params = reactive<PushRecordIdRequest>({
|
|
|
pushRecordId: userStore.pushRecordId,
|
|
|
})
|
|
|
|
|
|
+const lowCertLevelDialog = ref(false)
|
|
|
// 获取认证结果
|
|
|
const getFaceAuthResult = async () => {
|
|
|
try {
|
|
|
const res = await getFaceAuthResultApi(params)
|
|
|
+ if (res.code === 0 && res.data.lowCertLevel) {
|
|
|
+ lowCertLevelDialog.value = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
if (res.code === 0 && res.data?.success) {
|
|
|
const rzzt = res.data.rzzt
|
|
|
// 已认证或无需认证提交跳转
|
|
|
@@ -62,6 +102,15 @@ const getFaceAuthResult = async () => {
|
|
|
}, 1800)
|
|
|
}
|
|
|
|
|
|
+const lowCertLevelConfirm = () => {
|
|
|
+ router.back()
|
|
|
+}
|
|
|
+
|
|
|
+const securityLevelGuideDialog = ref(false)
|
|
|
+const handleSecurityLevelGuideClick = () => {
|
|
|
+ securityLevelGuideDialog.value = true
|
|
|
+}
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
getFaceAuthResult()
|
|
|
})
|
|
|
@@ -97,4 +146,37 @@ html {
|
|
|
justify-content: center;
|
|
|
padding-top: 14vw; /* 预留固定导航空间 */
|
|
|
}
|
|
|
+.dialog-content {
|
|
|
+ padding: 12px;
|
|
|
+ .dialog-text {
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 22px;
|
|
|
+ color: #333;
|
|
|
+
|
|
|
+ font-weight: 400;
|
|
|
+ }
|
|
|
+ .dialog-btn {
|
|
|
+ text-align: center;
|
|
|
+ font-weight: 600;
|
|
|
+ margin: 18px 0;
|
|
|
+ color: #0072f8;
|
|
|
+ }
|
|
|
+}
|
|
|
+:deep(.security-level-guide-dialog) {
|
|
|
+ top: 50%;
|
|
|
+ height: 90vh;
|
|
|
+
|
|
|
+ .security-level-guide-body {
|
|
|
+ height: 80vh;
|
|
|
+ overflow-y: auto;
|
|
|
+ -webkit-overflow-scrolling: touch;
|
|
|
+ padding: 12px;
|
|
|
+
|
|
|
+ .guide-image {
|
|
|
+ width: 100%;
|
|
|
+ height: auto;
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|