| 123456789101112131415161718192021222324252627282930313233343536373839 |
- <template>
- <div class="pptist-screen">
- <BaseView :changeViewMode="changeViewMode" v-if="viewMode === 'base'" />
- <PresenterView :changeViewMode="changeViewMode" v-else-if="viewMode === 'presenter'" />
- </div>
- </template>
- <script lang="ts" setup>
- import { onMounted, onUnmounted, ref } from 'vue'
- import { KEYS } from '@/configs/hotkey'
- import useScreening from '@/hooks/useScreening'
- import BaseView from './BaseView.vue'
- import PresenterView from './PresenterView.vue'
- const viewMode = ref<'base' | 'presenter'>('base')
- const changeViewMode = (mode: 'base' | 'presenter') => {
- viewMode.value = mode
- }
- const { exitScreening } = useScreening()
- // 快捷键退出放映
- const keydownListener = (e: KeyboardEvent) => {
- const key = e.key.toUpperCase()
- if (key === KEYS.ESC) exitScreening()
- }
- onMounted(() => document.addEventListener('keydown', keydownListener))
- onUnmounted(() => document.removeEventListener('keydown', keydownListener))
- </script>
- <style lang="scss" scoped>
- .pptist-screen {
- width: 100%;
- height: 100%;
- }
- </style>
|