diff --git a/apps/web-antd/src/views/_core/authentication/login.vue b/apps/web-antd/src/views/_core/authentication/login.vue index 80b513d2..2d6325be 100644 --- a/apps/web-antd/src/views/_core/authentication/login.vue +++ b/apps/web-antd/src/views/_core/authentication/login.vue @@ -30,13 +30,23 @@ const captchaInfo = ref({ img: '', uuid: '', }); +// 验证码loading +const captchaLoading = ref(false); async function loadCaptcha() { - const resp = await captchaImage(); - if (resp.captchaEnabled) { - resp.img = `data:image/png;base64,${resp.img}`; + try { + captchaLoading.value = true; + + const resp = await captchaImage(); + if (resp.captchaEnabled) { + resp.img = `data:image/png;base64,${resp.img}`; + } + captchaInfo.value = resp; + } catch (error) { + console.error(error); + } finally { + captchaLoading.value = false; } - captchaInfo.value = resp; } const tenantInfo = ref({ @@ -116,6 +126,7 @@ const formSchema = computed((): VbenFormSchema[] => { class: 'focus:border-primary', onCaptchaClick: loadCaptcha, placeholder: $t('authentication.code'), + loading: captchaLoading.value, }, dependencies: { if: () => captchaInfo.value.captchaEnabled, diff --git a/packages/@core/ui-kit/shadcn-ui/src/components/input-captcha/input-captcha.vue b/packages/@core/ui-kit/shadcn-ui/src/components/input-captcha/input-captcha.vue index 2f545b78..d9c46141 100644 --- a/packages/@core/ui-kit/shadcn-ui/src/components/input-captcha/input-captcha.vue +++ b/packages/@core/ui-kit/shadcn-ui/src/components/input-captcha/input-captcha.vue @@ -1,22 +1,23 @@ @@ -24,26 +25,56 @@ const modelValue = defineModel({ default: '', type: String });
- +
+ +
+ +
+