修复小程序内来馆地图导航
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
lyf
2026-07-10 11:20:17 +08:00
parent 52f5217252
commit a5b19db355
4 changed files with 304 additions and 1 deletions

View File

@@ -68,7 +68,7 @@
:class="{ disabled: !selectedTarget }"
@tap="handleNavigateTap"
>
<text class="arrival-primary-text">第三方导航</text>
<text class="arrival-primary-text">{{ primaryActionText }}</text>
</view>
</template>
</view>
@@ -116,9 +116,11 @@ import {
} from '@/data/arrivalSearchTargets'
import {
openThirdPartyMapSearch,
openWechatMiniProgramLocation,
THIRD_PARTY_MAP_PROVIDERS,
type ThirdPartyMapProviderOption
} from '@/services/ThirdPartyMapSearchService'
import { isEmbeddedInWechatMiniProgram } from '@/utils/hostEnvironment'
const props = withDefaults(defineProps<{
visible?: boolean
@@ -142,6 +144,10 @@ const emit = defineEmits<{
const typeOptions = computed(() => ARRIVAL_TARGET_TYPES)
const mapProviders = computed(() => THIRD_PARTY_MAP_PROVIDERS)
const shouldUseMiniProgramLocation = computed(() => isEmbeddedInWechatMiniProgram())
const primaryActionText = computed(() => (
shouldUseMiniProgramLocation.value ? '打开地图导航' : '第三方导航'
))
const arrivalPanelRef = ref<unknown>(null)
const isCollapsed = ref(false)
const providerSheetVisible = ref(false)
@@ -238,6 +244,16 @@ const handleNavigateTap = () => {
return
}
if (shouldUseMiniProgramLocation.value) {
void openWechatMiniProgramLocation({
latitude: props.selectedTarget.latitude,
longitude: props.selectedTarget.longitude,
name: props.selectedTarget.title,
address: props.selectedTarget.subtitle
})
return
}
providerSheetVisible.value = true
}