fullscreenState ? exitFullscreen() : enterFullscreen()">
+
fullscreenState ? manualExitFullscreen() : enterFullscreen()">
{{ fullscreenState ? '退出全屏' : '全屏' }}
@@ -19,6 +19,7 @@
:slideHeight="slideHeight"
:animationIndex="animationIndex"
:turnSlideToId="turnSlideToId"
+ :manualExitFullscreen="manualExitFullscreen"
@mousewheel="$event => mousewheelListener($event)"
@touchstart="$event => touchStartListener($event)"
@touchend="$event => touchEndListener($event)"
@@ -70,13 +71,13 @@ import { computed, defineComponent, nextTick, ref, watch, PropType } from 'vue'
import { storeToRefs } from 'pinia'
import { useSlidesStore } from '@/store'
import { ContextmenuItem } from '@/components/Contextmenu/types'
-import { enterFullscreen, exitFullscreen } from '@/utils/fullscreen'
+import { enterFullscreen } from '@/utils/fullscreen'
import { parseText2Paragraphs } from '@/utils/textParser'
import useScreening from '@/hooks/useScreening'
import useLoadSlides from '@/hooks/useLoadSlides'
import useExecPlay from './hooks/useExecPlay'
import useSlideSize from './hooks/useSlideSize'
-import useFullscreenState from './hooks/useFullscreenState'
+import useFullscreen from './hooks/useFullscreen'
import ThumbnailSlide from '@/views/components/ThumbnailSlide/index.vue'
import ScreenSlideList from './ScreenSlideList.vue'
@@ -116,7 +117,7 @@ export default defineComponent({
const { slideWidth, slideHeight } = useSlideSize(slideListWrapRef)
const { exitScreening } = useScreening()
const { slidesLoadLimit } = useLoadSlides()
- const { fullscreenState } = useFullscreenState()
+ const { fullscreenState, manualExitFullscreen } = useFullscreen()
const remarkFontSize = ref(16)
const currentSlideRemark = computed(() => {
@@ -211,7 +212,7 @@ export default defineComponent({
exitScreening,
fullscreenState,
enterFullscreen,
- exitFullscreen,
+ manualExitFullscreen,
writingBoardToolVisible,
}
},
diff --git a/src/views/Screen/ScreenElement.vue b/src/views/Screen/ScreenElement.vue
index b0aa0625..397e78df 100644
--- a/src/views/Screen/ScreenElement.vue
+++ b/src/views/Screen/ScreenElement.vue
@@ -54,6 +54,10 @@ export default defineComponent({
type: Function as PropType<(id: string) => void>,
required: true,
},
+ manualExitFullscreen: {
+ type: Function as PropType<() => void>,
+ required: true,
+ },
},
setup(props) {
const currentElementComponent = computed(() => {
@@ -84,9 +88,14 @@ export default defineComponent({
// 打开元素绑定的超链接
const openLink = () => {
const link = props.elementInfo.link
- if (link) {
- if (link.type === 'web') window.open(link.target)
- else if (link.type === 'slide') props.turnSlideToId(link.target)
+ if (!link) return
+
+ if (link.type === 'web') {
+ props.manualExitFullscreen()
+ window.open(link.target)
+ }
+ else if (link.type === 'slide') {
+ props.turnSlideToId(link.target)
}
}
diff --git a/src/views/Screen/ScreenSlide.vue b/src/views/Screen/ScreenSlide.vue
index 0ae7138a..6a6fdcdd 100644
--- a/src/views/Screen/ScreenSlide.vue
+++ b/src/views/Screen/ScreenSlide.vue
@@ -15,6 +15,7 @@
:elementIndex="index + 1"
:animationIndex="animationIndex"
:turnSlideToId="turnSlideToId"
+ :manualExitFullscreen="manualExitFullscreen"
/>
@@ -51,6 +52,10 @@ export default defineComponent({
type: Function as PropType<(id: string) => void>,
required: true,
},
+ manualExitFullscreen: {
+ type: Function as PropType<() => void>,
+ required: true,
+ },
},
setup(props) {
const { viewportRatio } = storeToRefs(useSlidesStore())
diff --git a/src/views/Screen/ScreenSlideList.vue b/src/views/Screen/ScreenSlideList.vue
index ac1f9ada..c29b1914 100644
--- a/src/views/Screen/ScreenSlideList.vue
+++ b/src/views/Screen/ScreenSlideList.vue
@@ -27,6 +27,7 @@
:scale="scale"
:animationIndex="animationIndex"
:turnSlideToId="turnSlideToId"
+ :manualExitFullscreen="manualExitFullscreen"
/>