2022-04-21 18:20:39 +08:00
|
|
|
<script lang="ts" setup>
|
2022-08-22 15:29:29 +08:00
|
|
|
import { ref, onUnmounted } from "vue"
|
2022-05-05 17:18:58 +08:00
|
|
|
import { ElMessage } from "element-plus"
|
2022-04-22 01:16:02 +08:00
|
|
|
import screenfull from "screenfull"
|
2022-04-21 18:20:39 +08:00
|
|
|
|
2022-08-22 15:29:29 +08:00
|
|
|
type contentType = "全屏" | "退出全屏"
|
|
|
|
|
|
|
|
const content = ref<contentType>("全屏")
|
|
|
|
const isFullscreen = ref(false)
|
|
|
|
|
2022-04-21 18:20:39 +08:00
|
|
|
const click = () => {
|
|
|
|
if (!screenfull.isEnabled) {
|
2022-04-22 01:16:02 +08:00
|
|
|
ElMessage.warning("您的浏览器无法工作")
|
2022-04-21 18:20:39 +08:00
|
|
|
return
|
|
|
|
}
|
|
|
|
screenfull.toggle()
|
|
|
|
}
|
2022-08-22 15:29:29 +08:00
|
|
|
|
|
|
|
const change = () => {
|
|
|
|
isFullscreen.value = screenfull.isFullscreen
|
|
|
|
content.value = screenfull.isFullscreen ? "退出全屏" : "全屏"
|
|
|
|
}
|
|
|
|
|
|
|
|
screenfull.on("change", change)
|
|
|
|
|
|
|
|
onUnmounted(() => {
|
|
|
|
if (screenfull.isEnabled) {
|
|
|
|
screenfull.off("change", change)
|
|
|
|
}
|
|
|
|
})
|
2022-04-21 18:20:39 +08:00
|
|
|
</script>
|
2022-04-22 12:47:04 +08:00
|
|
|
|
|
|
|
<template>
|
|
|
|
<div @click="click">
|
2022-08-22 15:29:29 +08:00
|
|
|
<el-tooltip effect="dark" :content="content" placement="bottom">
|
|
|
|
<svg-icon :name="isFullscreen ? 'fullscreen-exit' : 'fullscreen'" />
|
2022-04-22 12:47:04 +08:00
|
|
|
</el-tooltip>
|
|
|
|
</div>
|
|
|
|
</template>
|
2022-08-22 15:29:29 +08:00
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
.svg-icon {
|
|
|
|
font-size: 20px;
|
|
|
|
&:focus {
|
|
|
|
outline: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|