From 50ee7232f3c98fe24a1f2e31dba9508cfec14887 Mon Sep 17 00:00:00 2001
From: gjj <Ganjj@probim.com.cn>
Date: Fri, 21 Feb 2025 17:35:39 +0800
Subject: [PATCH] 模型预览

---
 src/components/FullScreenButton.vue |   62 +++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/src/components/FullScreenButton.vue b/src/components/FullScreenButton.vue
new file mode 100644
index 0000000..c139bc5
--- /dev/null
+++ b/src/components/FullScreenButton.vue
@@ -0,0 +1,62 @@
+<template>
+  <span @click="onFullscreen" class="inline-flex justify-center items-center w-[42px] h-[42px] rounded-md cursor-pointer bg-[hsla(0,0%,0%,0.9)]">
+    <img class="w-[18px] h-[18px]" src="../assets/images/fullscreen.png" alt="全屏" />
+  </span>
+</template>
+
+<script>
+  export default {
+    name: "FullscreenButton",
+    methods: {
+      onFullscreen() {
+        if (this.isFullscreenEnabled()) {
+          if (this.isFullScreen()) {
+            this.exitFullscreen();
+          } else {
+            this.openFullScreen(document.body);
+          }
+        }
+      },
+      // 判断当前文档是否能切换到全屏
+      isFullscreenEnabled() {
+        return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled;
+      },
+      // 判断当前窗体是否为全屏状态
+      isFullScreen() {
+        return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen || document.webkitFullScreen || document.msFullScreen);
+      },
+      // 打开全屏
+      openFullScreen(ele) {
+        if (ele.requestFullscreen) {
+          ele.requestFullscreen();
+        } else if (ele.mozRequestFullScreen) {
+          ele.mozRequestFullScreen();
+        } else if (ele.webkitRequestFullscreen) {
+          ele.webkitRequestFullscreen();
+        } else if (ele.msRequestFullscreen) {
+          ele.msRequestFullscreen();
+        }
+        this.$store.dispatch("common/setFullscreenInfo", {
+          isFullscreen: true,
+          fullscreenElement: ele,
+        });
+      },
+      // 退出全屏
+      exitFullscreen() {
+        if (document.exitFullscreen) {
+          document.exitFullscreen();
+        } else if (document.mozCancelFullScreen) {
+          document.mozCancelFullScreen();
+        } else if (document.webkitExitFullscreen) {
+          document.webkitExitFullscreen();
+        } else if (element.msExitFullscreen) {
+          element.msExitFullscreen();
+        }
+        this.$store.dispatch("common/setFullscreenInfo", {
+          isFullscreen: false,
+          fullscreenElement: null,
+        });
+      },
+    },
+  };
+</script>

--
Gitblit v1.9.3