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
+})