From 8fdbf4ae069d294b0abed9c8d685c0c783d0355e Mon Sep 17 00:00:00 2001 From: ZhuRui Date: Thu, 6 Aug 2026 10:38:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=84=E7=90=86=E9=83=A8=E5=88=86?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E6=A3=80=E6=B5=8B=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../banner/components/BannerFormModal.tsx | 50 ++++++++++--------- .../events/banner/model/useBannerModel.ts | 2 +- src/pages/login/model/useLoginModel.ts | 4 +- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/pages/events/banner/components/BannerFormModal.tsx b/src/pages/events/banner/components/BannerFormModal.tsx index 4197c7b..76bb223 100644 --- a/src/pages/events/banner/components/BannerFormModal.tsx +++ b/src/pages/events/banner/components/BannerFormModal.tsx @@ -319,34 +319,36 @@ export default defineComponent({ // ---- 监听 type 变化,清理联动字段 ---- useEffect(() => { - if (!typeChanged.value) { - if (formData.type !== '1') formData.relatedEventId = undefined; - if (formData.type !== '2' && formData.type !== '3') formData.linkUrl = ''; - typeChanged.value = true; - return; - } + const syncTypeFields = async () => { + if (!typeChanged.value) { + if (formData.type !== '1') formData.relatedEventId = undefined; + if (formData.type !== '2' && formData.type !== '3') formData.linkUrl = ''; + typeChanged.value = true; + return; + } - if (formData.type !== '1') { - formData.relatedEventId = undefined; - formRef.value?.clearValidate('relatedEventId'); - } - if (formData.type !== '2' && formData.type !== '3') { - formData.linkUrl = ''; - } - const activeNames: string[] = []; - if (formData.type === '1') activeNames.push('relatedEventId'); - if (formData.type === '2' || formData.type === '3') activeNames.push('linkUrl'); - formRef.value?.clearValidate(['relatedEventId', 'linkUrl']); - if (activeNames.length) { - setTimeout(() => formRef.value?.validateFields(activeNames).catch(() => {}), 0); - } + if (formData.type !== '1') { + formData.relatedEventId = undefined; + formRef.value?.clearValidate('relatedEventId'); + } + if (formData.type !== '2' && formData.type !== '3') { + formData.linkUrl = ''; + } + const activeNames: string[] = []; + if (formData.type === '1') activeNames.push('relatedEventId'); + if (formData.type === '2' || formData.type === '3') activeNames.push('linkUrl'); + formRef.value?.clearValidate(['relatedEventId', 'linkUrl']); + if (activeNames.length) { + await formRef.value?.validateFields(activeNames).catch(() => {}); + } + }; + + syncTypeFields(); }, [() => formData.type]); /** 重新校验 Banner 图片字段,上传完成后清除或更新错误提示 */ - const revalidateImageUrl = () => { - setTimeout(() => { - formRef.value?.validateFields(['imageUrl']).catch(() => {}); - }, 0); + const revalidateImageUrl = async () => { + await formRef.value?.validateFields(['imageUrl']).catch(() => {}); }; // ---- 图片上传相关 ---- diff --git a/src/pages/events/banner/model/useBannerModel.ts b/src/pages/events/banner/model/useBannerModel.ts index 4f96cf1..3954215 100644 --- a/src/pages/events/banner/model/useBannerModel.ts +++ b/src/pages/events/banner/model/useBannerModel.ts @@ -135,7 +135,7 @@ export function useBannerModel() { const handleSearch = () => fetchList(); /** 重置 */ - const handleReset = useThrottleFn(() => { + const handleReset = useThrottleFn(async () => { filterForm.title = ''; filterForm.status = ''; pagination.reset(); diff --git a/src/pages/login/model/useLoginModel.ts b/src/pages/login/model/useLoginModel.ts index 880da0a..3f5346c 100644 --- a/src/pages/login/model/useLoginModel.ts +++ b/src/pages/login/model/useLoginModel.ts @@ -97,8 +97,8 @@ export function useLoginModel() { : route.query.redirect; await auth.login(res.data.token, redirect || undefined); message.success('登录成功'); - } catch { - message.error('登录失败,请重试'); + } catch (error) { + console.error(error); } finally { setLoading(false); }