You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.5 KiB
58 lines
1.5 KiB
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<any>(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 }
|
|
}
|
|
|