mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-05 15:36:49 +08:00
feat(auth): 优化二维码登录状态处理逻辑并更新二维码组件
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import QrcodeVue from 'qrcode.vue'
|
|
||||||
import api from '@/api'
|
import api from '@/api'
|
||||||
|
import QrcodeVue from 'qrcode.vue'
|
||||||
|
|
||||||
// 定义事件
|
// 定义事件
|
||||||
const emit = defineEmits(['done', 'close'])
|
const emit = defineEmits(['done', 'close'])
|
||||||
@@ -43,15 +43,21 @@ async function checkQrcode() {
|
|||||||
if (result.success && result.data) {
|
if (result.success && result.data) {
|
||||||
const status = result.data.status
|
const status = result.data.status
|
||||||
text.value = result.data.tip
|
text.value = result.data.tip
|
||||||
if (status == 1) {
|
if (status == 0) {
|
||||||
// 已确认完成
|
|
||||||
alertType.value = 'success'
|
|
||||||
handleDone()
|
|
||||||
} else if (status == 0) {
|
|
||||||
alertType.value = 'info'
|
alertType.value = 'info'
|
||||||
// 新建、待扫码
|
// 新建、待扫码
|
||||||
clearTimeout(timeoutTimer)
|
clearTimeout(timeoutTimer)
|
||||||
timeoutTimer = setTimeout(checkQrcode, 3000)
|
timeoutTimer = setTimeout(checkQrcode, 3000)
|
||||||
|
} else if (status == 1) {
|
||||||
|
// 已扫码
|
||||||
|
alertType.value = 'info'
|
||||||
|
text.value = '已扫码,请确认登录'
|
||||||
|
clearTimeout(timeoutTimer)
|
||||||
|
timeoutTimer = setTimeout(checkQrcode, 3000)
|
||||||
|
} else if (status == 2) {
|
||||||
|
// 已确认完成
|
||||||
|
alertType.value = 'success'
|
||||||
|
handleDone()
|
||||||
} else {
|
} else {
|
||||||
// 过期或者已取消
|
// 过期或者已取消
|
||||||
alertType.value = 'error'
|
alertType.value = 'error'
|
||||||
@@ -80,10 +86,8 @@ onUnmounted(() => {
|
|||||||
<VCard title="115网盘登录" class="rounded-t">
|
<VCard title="115网盘登录" class="rounded-t">
|
||||||
<DialogCloseBtn @click="emit('close')" />
|
<DialogCloseBtn @click="emit('close')" />
|
||||||
<VCardText class="pt-2 flex flex-col items-center">
|
<VCardText class="pt-2 flex flex-col items-center">
|
||||||
<div class="my-6 shadow-lg rounded border">
|
<div class="my-6 shadow-lg rounded text-center p-3 border">
|
||||||
<VImg class="mx-auto" :src="qrCodeContent" style="block-size: 200px; inline-size: 200px">
|
<QrcodeVue class="mx-auto" :value="qrCodeContent" :size="200" />
|
||||||
<VSkeletonLoader v-if="!qrCodeContent" class="w-full h-full" />
|
|
||||||
</VImg>
|
|
||||||
</div>
|
</div>
|
||||||
<VAlert variant="tonal" :type="alertType" class="my-4 text-center" :text="text">
|
<VAlert variant="tonal" :type="alertType" class="my-4 text-center" :text="text">
|
||||||
<template #prepend />
|
<template #prepend />
|
||||||
|
|||||||
Reference in New Issue
Block a user