import { ref, nextTick, onBeforeUnmount } from 'vue' export const useMapNavControl = () => { const SPEED_NORMAL = 6 const SPEED_FAST = 10 const replay = ref(false) //重播 const pause = ref(false) //暂停 const speedUp = ref(false) //加速 const replayTimer = ref(null) //重播定时器 //重播 function handleReplay() { window.Map_QM.util.changePlaySpeed(SPEED_NORMAL) replay.value = true pause.value = false speedUp.value = false window.Map_QM.pathRePlay() clearTimeout(replayTimer.value) replayTimer.value = setTimeout(() => { replay.value = false clearTimeout(replayTimer.value) replayTimer.value = null }, 1000) } //暂停导航 继续导航 function togglePause() { pause.value = !pause.value replay.value = false nextTick(() => { pause.value ? window.Map_QM.pathStop(false) : window.Map_QM.pathStop(true) }) } //加速 恢复初始加速状态 function handleSpeedUp() { replay.value = false pause.value = false speedUp.value = !speedUp.value window.Map_QM.pathStop(true) nextTick(() => { speedUp.value ? window.Map_QM.util.changePlaySpeed(SPEED_FAST) : window.Map_QM.util.changePlaySpeed(SPEED_NORMAL) }) } function resetPause() { pause.value = false } onBeforeUnmount(() => { clearTimeout(replayTimer.value) replayTimer.value = null window.Map_QM.util.changePlaySpeed(SPEED_NORMAL) }) return { replay, pause, speedUp, handleReplay, togglePause, handleSpeedUp, resetPause } }