feat: 处理二维码生成失败状态
This commit is contained in:
@ -32,12 +32,15 @@
|
|||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<div class="img-box">
|
<div class="img-box">
|
||||||
<template v-if="qrCodeLoading">
|
<template v-if="qrCodeLoading || isFailLoadQrCode">
|
||||||
<div class="relative w-160px h-160px">
|
<div class="relative w-160px h-160px">
|
||||||
<a-image :src="icon1" width="160" height="160" />
|
<a-image :src="icon1" width="160" height="160" />
|
||||||
<div class="absolute top-0 left-0 z-2 w-full h-full flex flex-col items-center justify-center">
|
<div class="absolute top-0 left-0 z-2 w-full h-full flex flex-col items-center justify-center">
|
||||||
<icon-loading size="24" class="color-#6D4CFE mb-13px" />
|
<img v-if="isFailLoadQrCode" :src="icon4" width="24" height="24" class="mb-13px" />
|
||||||
<span class="s2 !color-#6D4CFE">二维码生成中...</span>
|
<icon-loading v-else size="24" class="color-#6D4CFE mb-13px" />
|
||||||
|
<span :class="isFailLoadQrCode ? '!color-#F64B31' : '!color-#6D4CFE'" class="s2">{{
|
||||||
|
isFailLoadQrCode ? '二维码生成失败' : '二维码生成中...'
|
||||||
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="absolute top-0 left-0 w-full h-full flex items-center justify-center opacity-80 bg-#fff"
|
class="absolute top-0 left-0 w-full h-full flex items-center justify-center opacity-80 bg-#fff"
|
||||||
@ -70,6 +73,7 @@ import { getAuthorizedImage, getMediaAccountsAuthorizedStatus } from '@/api/all/
|
|||||||
import icon1 from '@/assets/img/media-account/icon-default-qrcode.png';
|
import icon1 from '@/assets/img/media-account/icon-default-qrcode.png';
|
||||||
import icon2 from '@/assets/img/media-account/icon-feedback-success.png';
|
import icon2 from '@/assets/img/media-account/icon-feedback-success.png';
|
||||||
import icon3 from '@/assets/img/media-account/icon-feedback-fail.png';
|
import icon3 from '@/assets/img/media-account/icon-feedback-fail.png';
|
||||||
|
import icon4 from '@/assets/img/media-account/icon-warn.png';
|
||||||
|
|
||||||
// 失效时间
|
// 失效时间
|
||||||
|
|
||||||
@ -85,7 +89,7 @@ const failReason = ref('');
|
|||||||
const progress = ref(0);
|
const progress = ref(0);
|
||||||
const id = ref('');
|
const id = ref('');
|
||||||
|
|
||||||
const qrCodeError = ref(false);
|
const isFailLoadQrCode = ref(false);
|
||||||
const qrCodeUrl = ref('');
|
const qrCodeUrl = ref('');
|
||||||
const qrCodeLoading = ref(false);
|
const qrCodeLoading = ref(false);
|
||||||
|
|
||||||
@ -94,6 +98,7 @@ let overdueTimer = null;
|
|||||||
let statusPollingTimer = null;
|
let statusPollingTimer = null;
|
||||||
|
|
||||||
const confirmBtnText = computed(() => {
|
const confirmBtnText = computed(() => {
|
||||||
|
if (isFailLoadQrCode.value) return '重新生成';
|
||||||
if (!isCompleted.value) return '完成扫码';
|
if (!isCompleted.value) return '完成扫码';
|
||||||
return isSuccess.value ? '继续添加' : '重新扫码';
|
return isSuccess.value ? '继续添加' : '重新扫码';
|
||||||
});
|
});
|
||||||
@ -112,7 +117,7 @@ const resetTaskFields = () => {
|
|||||||
progress.value = 0;
|
progress.value = 0;
|
||||||
qrCodeUrl.value = '';
|
qrCodeUrl.value = '';
|
||||||
qrCodeLoading.value = false;
|
qrCodeLoading.value = false;
|
||||||
qrCodeError.value = false;
|
isFailLoadQrCode.value = false;
|
||||||
};
|
};
|
||||||
const close = () => {
|
const close = () => {
|
||||||
resetTaskFields();
|
resetTaskFields();
|
||||||
@ -137,10 +142,10 @@ const getAuthorizedQrCode = async () => {
|
|||||||
isOverdue.value = true;
|
isOverdue.value = true;
|
||||||
}, OVERDUE_TIME);
|
}, OVERDUE_TIME);
|
||||||
} else {
|
} else {
|
||||||
qrCodeError.value = true;
|
isFailLoadQrCode.value = true;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
qrCodeError.value = true;
|
isFailLoadQrCode.value = true;
|
||||||
} finally {
|
} finally {
|
||||||
qrCodeLoading.value = false;
|
qrCodeLoading.value = false;
|
||||||
}
|
}
|
||||||
@ -219,8 +224,14 @@ const clearOverdueTimer = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleOk = () => {
|
const handleOk = () => {
|
||||||
|
if (isFailLoadQrCode.value) {
|
||||||
|
resetTaskFields();
|
||||||
|
getAuthorizedQrCode();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!qrCodeUrl.value) {
|
if (!qrCodeUrl.value) {
|
||||||
AMessage.error('二维码生成中,请稍等');
|
AMessage.warning('二维码生成中,请稍等');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -32,12 +32,15 @@
|
|||||||
</template> -->
|
</template> -->
|
||||||
<!-- <template v-else> -->
|
<!-- <template v-else> -->
|
||||||
<div class="img-box">
|
<div class="img-box">
|
||||||
<template v-if="qrCodeLoading">
|
<template v-if="qrCodeLoading || isFailLoadQrCode">
|
||||||
<div class="relative w-160px h-160px">
|
<div class="relative w-160px h-160px">
|
||||||
<a-image :src="icon1" width="160" height="160" />
|
<a-image :src="icon1" width="160" height="160" />
|
||||||
<div class="absolute top-0 left-0 z-2 w-full h-full flex flex-col items-center justify-center">
|
<div class="absolute top-0 left-0 z-2 w-full h-full flex flex-col items-center justify-center">
|
||||||
<icon-loading size="24" class="color-#6D4CFE mb-13px" />
|
<img v-if="isFailLoadQrCode" :src="icon4" width="24" height="24" class="mb-13px" />
|
||||||
<span class="s2 !color-#6D4CFE">二维码生成中...</span>
|
<icon-loading v-else size="24" class="color-#6D4CFE mb-13px" />
|
||||||
|
<span :class="isFailLoadQrCode ? '!color-#F64B31' : '!color-#6D4CFE'" class="s2">{{
|
||||||
|
isFailLoadQrCode ? '二维码生成失败' : '二维码生成中...'
|
||||||
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="absolute top-0 left-0 w-full h-full flex items-center justify-center opacity-80 bg-#fff"
|
class="absolute top-0 left-0 w-full h-full flex items-center justify-center opacity-80 bg-#fff"
|
||||||
@ -122,7 +125,7 @@ const failReason = ref('');
|
|||||||
const progress = ref(0);
|
const progress = ref(0);
|
||||||
const id = ref('');
|
const id = ref('');
|
||||||
|
|
||||||
const qrCodeError = ref(false);
|
const isFailLoadQrCode = ref(false);
|
||||||
const qrCodeUrl = ref('');
|
const qrCodeUrl = ref('');
|
||||||
const qrCodeLoading = ref(false);
|
const qrCodeLoading = ref(false);
|
||||||
|
|
||||||
@ -136,6 +139,7 @@ let overdueTimer = null;
|
|||||||
let statusPollingTimer = null;
|
let statusPollingTimer = null;
|
||||||
|
|
||||||
const confirmBtnText = computed(() => {
|
const confirmBtnText = computed(() => {
|
||||||
|
if (isFailLoadQrCode.value) return '重新生成';
|
||||||
if (taskStep.value === TASK_STEP.default) {
|
if (taskStep.value === TASK_STEP.default) {
|
||||||
// return hasUnsyncData.value ? '确定' : '完成扫码';
|
// return hasUnsyncData.value ? '确定' : '完成扫码';
|
||||||
return '完成扫码';
|
return '完成扫码';
|
||||||
@ -162,7 +166,7 @@ const resetTaskFields = () => {
|
|||||||
qrCodeUrl.value = '';
|
qrCodeUrl.value = '';
|
||||||
qrCodeLoading.value = false;
|
qrCodeLoading.value = false;
|
||||||
isNicknameChanged.value = false;
|
isNicknameChanged.value = false;
|
||||||
qrCodeError.value = false;
|
isFailLoadQrCode.value = false;
|
||||||
actionType.value = 1;
|
actionType.value = 1;
|
||||||
taskStep.value = TASK_STEP.default;
|
taskStep.value = TASK_STEP.default;
|
||||||
};
|
};
|
||||||
@ -215,10 +219,10 @@ const getAuthorizedQrCode = async () => {
|
|||||||
isOverdue.value = true;
|
isOverdue.value = true;
|
||||||
}, OVERDUE_TIME);
|
}, OVERDUE_TIME);
|
||||||
} else {
|
} else {
|
||||||
qrCodeError.value = true;
|
isFailLoadQrCode.value = true;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
qrCodeError.value = true;
|
isFailLoadQrCode.value = true;
|
||||||
} finally {
|
} finally {
|
||||||
qrCodeLoading.value = false;
|
qrCodeLoading.value = false;
|
||||||
}
|
}
|
||||||
@ -271,10 +275,16 @@ const clearStatusPollingTimer = () => {
|
|||||||
|
|
||||||
const handleOk = () => {
|
const handleOk = () => {
|
||||||
if (taskStep.value === TASK_STEP.default) {
|
if (taskStep.value === TASK_STEP.default) {
|
||||||
|
if (isFailLoadQrCode.value) {
|
||||||
|
resetTaskFields();
|
||||||
|
getAuthorizedQrCode();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
clearOverdueTimer();
|
clearOverdueTimer();
|
||||||
|
|
||||||
if (!qrCodeUrl.value) {
|
if (!qrCodeUrl.value) {
|
||||||
AMessage.error('二维码生成中,请稍等');
|
AMessage.warning('二维码生成中,请稍等');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (isOverdue.value) {
|
if (isOverdue.value) {
|
||||||
|
|||||||
Reference in New Issue
Block a user