This commit is contained in:
@@ -428,6 +428,7 @@ const searchVisiblePoiIds = ref<string[] | null>(null)
|
||||
const searchTargetFocusRequest = ref<TargetPoiFocusRequestViewModel | null>(null)
|
||||
let searchTargetFocusRequestId = 0
|
||||
let pendingCollapseSearchAfterDetail = false
|
||||
let pendingSearchDetailFocusRequest: TargetPoiFocusRequestViewModel | null = null
|
||||
|
||||
let launchOverlayFallbackTimer: ReturnType<typeof setTimeout> | null = null
|
||||
let launchOverlayFadeTimer: ReturnType<typeof setTimeout> | null = null
|
||||
@@ -1358,10 +1359,23 @@ onShow(async () => {
|
||||
await nextTick()
|
||||
if (pendingCollapseSearchAfterDetail) {
|
||||
pendingCollapseSearchAfterDetail = false
|
||||
const pendingFocusRequest = pendingSearchDetailFocusRequest
|
||||
pendingSearchDetailFocusRequest = null
|
||||
await homeSearchPanelRef.value?.returnToCollapsedAfterDetail?.()
|
||||
homeSearchExpanded.value = false
|
||||
homeCategoryModeActive.value = false
|
||||
searchVisiblePoiIds.value = null
|
||||
if (pendingFocusRequest) {
|
||||
closeArrivalPanel()
|
||||
showRoutePlanner.value = false
|
||||
isSimulatingRoute.value = false
|
||||
selectedGuidePoi.value = null
|
||||
isPoiCardCollapsed.value = false
|
||||
is3DMode.value = true
|
||||
indoorView.value = 'floor'
|
||||
activeGuideFloor.value = pendingFocusRequest.floorId
|
||||
searchTargetFocusRequest.value = pendingFocusRequest
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1455,16 +1469,8 @@ const createSearchDetailUrl = (poi: MuseumPoi, context: PoiSearchContext) => {
|
||||
}
|
||||
|
||||
const handleHomeSearchResultTap = async (poi: MuseumPoi, context: PoiSearchContext) => {
|
||||
closeArrivalPanel()
|
||||
showRoutePlanner.value = false
|
||||
isSimulatingRoute.value = false
|
||||
selectedGuidePoi.value = null
|
||||
isPoiCardCollapsed.value = false
|
||||
is3DMode.value = true
|
||||
indoorView.value = 'floor'
|
||||
activeGuideFloor.value = poi.floorId
|
||||
searchTargetFocusRequestId += 1
|
||||
searchTargetFocusRequest.value = toTargetFocusRequestViewModel({
|
||||
pendingSearchDetailFocusRequest = toTargetFocusRequestViewModel({
|
||||
poiId: poi.id,
|
||||
name: poi.name,
|
||||
floorId: poi.floorId,
|
||||
@@ -1478,13 +1484,14 @@ const handleHomeSearchResultTap = async (poi: MuseumPoi, context: PoiSearchConte
|
||||
entrances: poi.entrances
|
||||
}, searchTargetFocusRequestId)
|
||||
|
||||
// 先把楼层与目标请求交给地图,再进入详情页;返回时仅收起搜索 UI,不清焦点。
|
||||
await nextTick()
|
||||
// 详情页会一次性挂载目标楼层;首页不再先启动并销毁 ThreeMap。
|
||||
searchTargetFocusRequest.value = null
|
||||
pendingCollapseSearchAfterDetail = true
|
||||
uni.navigateTo({
|
||||
url: createSearchDetailUrl(poi, context),
|
||||
fail: () => {
|
||||
pendingCollapseSearchAfterDetail = false
|
||||
pendingSearchDetailFocusRequest = null
|
||||
uni.showToast({
|
||||
title: '点位详情打开失败,请重试',
|
||||
icon: 'none'
|
||||
|
||||
Reference in New Issue
Block a user