From d165e17b4d1902d80a589b2ca72c707ab430f4cf Mon Sep 17 00:00:00 2001
From: lyf <2514544224@qq.com>
Date: Thu, 9 Jul 2026 00:29:01 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9D=A5=E9=A6=86=E9=9D=A2?=
=?UTF-8?q?=E6=9D=BF=E6=94=B6=E8=B5=B7=E5=85=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/navigation/ArrivalPanel.vue | 129 ++++++++++++++++++---
src/pages/index/index.vue | 20 +++-
2 files changed, 132 insertions(+), 17 deletions(-)
diff --git a/src/components/navigation/ArrivalPanel.vue b/src/components/navigation/ArrivalPanel.vue
index 607c678..6cbd818 100644
--- a/src/components/navigation/ArrivalPanel.vue
+++ b/src/components/navigation/ArrivalPanel.vue
@@ -1,23 +1,35 @@
-
+
+
+ 来馆
+ 公交 / 地铁 / 停车
+
+
+ 展开
+
+
+
+
+
+
(), {
- visible: false
+ visible: false,
+ defaultCollapsed: false
})
const emit = defineEmits<{
- close: []
+ collapsedChange: [collapsed: boolean]
}>()
const venueTargets = computed(() => ARRIVAL_VENUE_TARGETS)
@@ -141,11 +156,22 @@ const transitTargets = computed(() => ARRIVAL_TRANSIT_TARGETS)
const realtimeTargets = computed(() => ARRIVAL_REALTIME_TARGETS)
const mapProviders = computed(() => THIRD_PARTY_MAP_PROVIDERS)
const selectedTarget = ref(null)
+const isCollapsed = ref(false)
const handleTargetSelect = (target: ArrivalSearchTarget) => {
selectedTarget.value = target
}
+const collapsePanel = () => {
+ isCollapsed.value = true
+ emit('collapsedChange', true)
+}
+
+const expandPanel = () => {
+ isCollapsed.value = false
+ emit('collapsedChange', false)
+}
+
const closeProviderSheet = () => {
selectedTarget.value = null
}
@@ -163,11 +189,20 @@ const handleProviderSelect = (provider: ThirdPartyMapProviderOption) => {
watch(
() => props.visible,
(visible) => {
- if (!visible) {
+ if (visible) {
+ isCollapsed.value = props.defaultCollapsed
+ emit('collapsedChange', props.defaultCollapsed)
+ } else {
selectedTarget.value = null
+ isCollapsed.value = false
+ emit('collapsedChange', false)
}
}
)
+
+defineExpose({
+ expandPanel
+})