From 14d2ad7b53356b62cae6b443e8da347fe03b284c Mon Sep 17 00:00:00 2001 From: zoujing Date: Fri, 20 Mar 2026 00:25:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BF=AB=E9=80=9F=E9=A2=84=E5=AE=9A?= =?UTF-8?q?=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages-quick/components/Tabs/index.vue | 15 ++++++++++++-- src/pages-quick/list.vue | 25 ++++++++++++----------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/pages-quick/components/Tabs/index.vue b/src/pages-quick/components/Tabs/index.vue index bc81081..4ba5e6a 100644 --- a/src/pages-quick/components/Tabs/index.vue +++ b/src/pages-quick/components/Tabs/index.vue @@ -61,8 +61,12 @@ const tabList = ref([]); // 处理Tab点击 const handleTabClick = (index) => { - if (activeIndex.value === index) return; + changeTabItem(index); +}; +// 支持 force 参数,强制触发(即使 index 与当前相同) +const changeTabItem = (index, force = false) => { + if (!force && activeIndex.value === index) return; activeIndex.value = index; emit("change", { @@ -70,7 +74,8 @@ const handleTabClick = (index) => { item: tabList.value[index], }); emit("update:modelValue", index); -}; +} + // 监听tabs变化 watch( @@ -114,6 +119,12 @@ const getCommodityTypePageList = async () => { } else { tabList.value = props.tabs; } + // 加载完成后强制选中第一个项并通知外部 + if (tabList.value && tabList.value.length > 0) { + changeTabItem(0, true); + } else { + changeTabItem(props.defaultActive, true); + } }; diff --git a/src/pages-quick/list.vue b/src/pages-quick/list.vue index 4e89d7c..e56da49 100644 --- a/src/pages-quick/list.vue +++ b/src/pages-quick/list.vue @@ -4,16 +4,16 @@