gemercheung 2 gadi atpakaļ
vecāks
revīzija
5331ee958e

+ 2 - 2
packages/qjkankan-editor/.env.testprod

@@ -7,5 +7,5 @@ VUE_APP_PROXY_URL_ROOT='https://test.4dkankan.com'
 VUE_APP_PROXY_URL='https://test.4dkankan.com/qjkankan/'
 VUE_APP_ORIGIN=
 VUE_APP_URL_FILL=/qjkankan
-VUE_APP_DEBBUG_FLAG=0615-04
-VUE_APP_DEBBUG_NOTIFY=0
+VUE_APP_DEBBUG_FLAG=0620-01
+VUE_APP_DEBBUG_NOTIFY=1

+ 67 - 52
packages/qjkankan-editor/src/directives/vTitleInEditor.js

@@ -1,71 +1,86 @@
-import Vue from 'vue'
+import Vue from "vue";
 
-let timerId = null
-let intervalId = null
-let isShowTitle = false
-let titleNode = null
+let timerId = null;
+let intervalId = null;
+let isShowTitle = false;
+let titleNode = null;
 
 function removeTitle() {
   if (!isShowTitle) {
-    clearTimeout(timerId)
+    clearTimeout(timerId);
   } else {
-    isShowTitle = false
-    document.body.removeChild(titleNode)
-    clearInterval(intervalId)
+    isShowTitle = false;
+    document.body.removeChild(titleNode);
+    clearInterval(intervalId);
   }
 }
 
-Vue.directive('title', {
+Vue.directive("title", {
   bind: function (el, binding) {
     if (!binding.value) {
-      return
+      return;
     }
-    el.addEventListener('mousemove', function(e) {
-      if (!isShowTitle) {
-        clearTimeout(timerId)
-        timerId = setTimeout(() => {
-          isShowTitle = true
+    el.addEventListener(
+      "mousemove",
+      function (e) {
+        if (!isShowTitle) {
+          clearTimeout(timerId);
+          timerId = setTimeout(() => {
+            isShowTitle = true;
 
-          titleNode = document.createElement('div')
+            titleNode = document.createElement("div");
 
-          titleNode.style.position = 'fixed',
-          titleNode.style.zIndex = 100,
-          titleNode.style.backgroundColor = '#191A1C'
-          titleNode.style.borderRadius = '2px'
-          titleNode.style.border = '1px solid rgba(151, 151, 151, 0.2)'
-          titleNode.style.padding = '2px 6px'
-          titleNode.style.fontSize = '12px'
-          titleNode.style.color = 'rgba(255, 255, 255, 0.6)'
-          titleNode.innerText = binding.value
-          titleNode.style.left = e.clientX + 11 + 'px'
-          titleNode.style.top = e.clientY + 18 + 'px'
+            titleNode.style.position = "fixed";
+            titleNode.style.zIndex = 2147483647;
+            titleNode.style.backgroundColor = "#191A1C";
+            titleNode.style.borderRadius = "2px";
+            titleNode.style.border = "1px solid rgba(151, 151, 151, 0.2)";
+            titleNode.style.padding = "2px 6px";
+            titleNode.style.fontSize = "12px";
+            titleNode.style.color = "rgba(255, 255, 255, 0.6)";
+            titleNode.innerText = binding.value;
+            titleNode.style.left = e.clientX + 11 + "px";
+            titleNode.style.top = e.clientY + 18 + "px";
 
-          document.body.appendChild(titleNode)
+            document.body.appendChild(titleNode);
 
-          if (e.clientX + 11 + titleNode.offsetWidth > document.documentElement.clientWidth) {
-            titleNode.style.left = document.documentElement.clientWidth - titleNode.offsetWidth + 'px'
-          }
-          if (e.clientY + 18 + titleNode.offsetHeight > document.documentElement.clientHeight) {
-            titleNode.style.top = document.documentElement.clientHeight - titleNode.offsetHeight + 'px'
-          }
-
-          intervalId = setInterval(() => {
-            if (!document.contains(el)) {
-              removeTitle()
+            if (
+              e.clientX + 11 + titleNode.offsetWidth >
+              document.documentElement.clientWidth
+            ) {
+              titleNode.style.left =
+                document.documentElement.clientWidth -
+                titleNode.offsetWidth +
+                "px";
+            }
+            if (
+              e.clientY + 18 + titleNode.offsetHeight >
+              document.documentElement.clientHeight
+            ) {
+              titleNode.style.top =
+                document.documentElement.clientHeight -
+                titleNode.offsetHeight +
+                "px";
             }
-          }, 300);
-          
-        }, 500);
+
+            intervalId = setInterval(() => {
+              if (!document.contains(el)) {
+                removeTitle();
+              }
+            }, 300);
+          }, 500);
+        }
+      },
+      {
+        passive: false,
       }
-    }, {
-      passive: false,
-    })
+    );
 
-    el.addEventListener('mouseleave', removeTitle)
-    el.addEventListener('mousedown', removeTitle)
-    el.addEventListener('keydown', removeTitle)
-    el.addEventListener('scroll', removeTitle)
-    el.addEventListener('dragover', removeTitle)
-    el.addEventListener('dragleave', removeTitle)
+    el.addEventListener("mouseleave", removeTitle);
+    el.addEventListener("mousedown", removeTitle);
+    el.addEventListener("keydown", removeTitle);
+    el.addEventListener("scroll", removeTitle);
+    el.addEventListener("dragover", removeTitle);
+    el.addEventListener("dragleave", removeTitle);
   },
-})
+});

+ 67 - 52
packages/qjkankan-editor/src/directives/vTitleInManageCenter.js

@@ -1,70 +1,85 @@
-import Vue from 'vue'
+import Vue from "vue";
 
-let timerId = null
-let intervalId = null
-let isShowTitle = false
-let titleNode = null
+let timerId = null;
+let intervalId = null;
+let isShowTitle = false;
+let titleNode = null;
 
 function removeTitle() {
   if (!isShowTitle) {
-    clearTimeout(timerId)
+    clearTimeout(timerId);
   } else {
-    isShowTitle = false
-    document.body.removeChild(titleNode)
-    clearInterval(intervalId)
+    isShowTitle = false;
+    document.body.removeChild(titleNode);
+    clearInterval(intervalId);
   }
 }
 
-Vue.directive('title', {
+Vue.directive("title", {
   bind: function (el, binding) {
     if (!binding.value) {
-      return
+      return;
     }
-    el.addEventListener('mousemove', function(e) {
-      if (!isShowTitle) {
-        clearTimeout(timerId)
-        timerId = setTimeout(() => {
-          isShowTitle = true
+    el.addEventListener(
+      "mousemove",
+      function (e) {
+        if (!isShowTitle) {
+          clearTimeout(timerId);
+          timerId = setTimeout(() => {
+            isShowTitle = true;
 
-          titleNode = document.createElement('div')
+            titleNode = document.createElement("div");
 
-          titleNode.style.position = 'fixed',
-          titleNode.style.zIndex = 100,
-          titleNode.style.backgroundColor = '#ffffff'
-          titleNode.style.borderRadius = '2px'
-          titleNode.style.border = '1px solid rgba(151, 151, 151, 0.2)'
-          titleNode.style.padding = '2px 6px'
-          titleNode.style.fontSize = '12px'
-          titleNode.style.color = '#323233'
-          titleNode.innerText = binding.value
-          titleNode.style.left = e.clientX + 11 + 'px'
-          titleNode.style.top = e.clientY + 18 + 'px'
+            titleNode.style.position = "fixed";
+            titleNode.style.zIndex = 2147483647;
+            titleNode.style.backgroundColor = "#ffffff";
+            titleNode.style.borderRadius = "2px";
+            titleNode.style.border = "1px solid rgba(151, 151, 151, 0.2)";
+            titleNode.style.padding = "2px 6px";
+            titleNode.style.fontSize = "12px";
+            titleNode.style.color = "#323233";
+            titleNode.innerText = binding.value;
+            titleNode.style.left = e.clientX + 11 + "px";
+            titleNode.style.top = e.clientY + 18 + "px";
 
-          document.body.appendChild(titleNode)
-          if (e.clientX + 11 + titleNode.offsetWidth > document.documentElement.clientWidth) {
-            titleNode.style.left = document.documentElement.clientWidth - titleNode.offsetWidth + 'px'
-          }
-          if (e.clientY + 18 + titleNode.offsetHeight > document.documentElement.clientHeight) {
-            titleNode.style.top = document.documentElement.clientHeight - titleNode.offsetHeight + 'px'
-          }
-
-          intervalId = setInterval(() => {
-            if (!document.contains(el)) {
-              removeTitle()
+            document.body.appendChild(titleNode);
+            if (
+              e.clientX + 11 + titleNode.offsetWidth >
+              document.documentElement.clientWidth
+            ) {
+              titleNode.style.left =
+                document.documentElement.clientWidth -
+                titleNode.offsetWidth +
+                "px";
+            }
+            if (
+              e.clientY + 18 + titleNode.offsetHeight >
+              document.documentElement.clientHeight
+            ) {
+              titleNode.style.top =
+                document.documentElement.clientHeight -
+                titleNode.offsetHeight +
+                "px";
             }
-          }, 300);
-          
-        }, 500);
+
+            intervalId = setInterval(() => {
+              if (!document.contains(el)) {
+                removeTitle();
+              }
+            }, 300);
+          }, 500);
+        }
+      },
+      {
+        passive: false,
       }
-    }, {
-      passive: false,
-    })
+    );
 
-    el.addEventListener('mouseleave', removeTitle)
-    el.addEventListener('mousedown', removeTitle)
-    el.addEventListener('keydown', removeTitle)
-    el.addEventListener('scroll', removeTitle)
-    el.addEventListener('dragover', removeTitle)
-    el.addEventListener('dragleave', removeTitle)
+    el.addEventListener("mouseleave", removeTitle);
+    el.addEventListener("mousedown", removeTitle);
+    el.addEventListener("keydown", removeTitle);
+    el.addEventListener("scroll", removeTitle);
+    el.addEventListener("dragover", removeTitle);
+    el.addEventListener("dragleave", removeTitle);
   },
-})
+});

+ 1 - 1
packages/qjkankan-editor/src/directives/vTooltipInEditor.js

@@ -26,7 +26,7 @@ Vue.directive("tooltip", {
       function (e) {
         tooltipNode = document.createElement("div");
         tooltipNode.style.position = "fixed";
-        tooltipNode.style.zIndex = 100;
+        tooltipNode.style.zIndex = 2147483647;
         tooltipNode.style.backgroundColor = "#191A1C";
         tooltipNode.style.border = "1px solid rgba(151, 151, 151, 0.2)";
         tooltipNode.style.borderRadius = "3px";

+ 1 - 1
packages/qjkankan-editor/src/directives/vTooltipInManageCenter.js

@@ -21,7 +21,7 @@ Vue.directive('tooltip', {
     el.addEventListener('mouseenter', function(e) {
       tooltipNode = document.createElement('div')
       tooltipNode.style.position = 'fixed'
-      tooltipNode.style.zIndex = 100000
+      tooltipNode.style.zIndex = 2147483647
       tooltipNode.style.backgroundColor = '#ffffff'
       tooltipNode.style.border = '1px solid rgba(151, 151, 151, 0.2)'
       tooltipNode.style.borderRadius = '3px'

+ 1 - 0
packages/qjkankan-kankan-view/src/assets/theme.editor.scss

@@ -152,6 +152,7 @@ body {
     width: 100%;
     height: 100%;
     visibility: hidden;
+    position: relative;
     &.show {
         visibility: visible;
     }

+ 44 - 42
packages/qjkankan-kankan-view/src/components/Information/View.Mobile.vue

@@ -1,7 +1,12 @@
 <template>
-  <div class="header" @touchmove.prevent>
+  <div class="header">
     <div class="left" :class="{ show: player.showVR }">
-      <div v-show="mode != 'panorama'" :class="{ disabled: flying }" class="back-pano" @click="onChangeMode">
+      <div
+        v-show="mode != 'panorama'"
+        :class="{ disabled: flying }"
+        class="back-pano"
+        @click="onChangeMode"
+      >
         <ui-icon type="show_back"></ui-icon>
       </div>
       <div v-show="mode == 'panorama'" class="back" @click="onBack">
@@ -10,7 +15,11 @@
     </div>
     <div
       class="title"
-      :class="{ up: player.showDescription, drak: mode != 'panorama', empty: !description }"
+      :class="{
+        up: player.showDescription,
+        drak: mode != 'panorama',
+        empty: !description,
+      }"
       @click="onShowDescription"
       v-show="player.showWidgets"
     >
@@ -21,16 +30,19 @@
         <i class="iconfont icon-pull-down"></i>
       </div>
     </div>
-    <div class="right">
-     
-    </div>
+    <div class="right"></div>
     <transition
       appear
       name="custom-classes-transition"
       enter-active-class="animated fadeInUp short faster"
       leave-active-class="animated fadeOutDown short faster"
     >
-      <div class="content" :class="{ drak: mode != 'panorama' }" v-if="player.showDescription" @click="onShowDescription">
+      <div
+        class="content"
+        :class="{ drak: mode != 'panorama' }"
+        v-if="player.showDescription"
+        @click="onShowDescription"
+      >
         <div>
           <div v-html="description"></div>
         </div>
@@ -46,7 +58,9 @@
         <div class="url">{{ copyLink }}</div>
         <div class="btns">
           <ui-button class="cancel" @click="showCopy = false">取消</ui-button>
-          <ui-button class="primary" :data-clipboard-text="copyLink" ref="copy$">一键复制</ui-button>
+          <ui-button class="primary" :data-clipboard-text="copyLink" ref="copy$"
+            >一键复制</ui-button
+          >
         </div>
       </div>
     </div>
@@ -252,6 +266,7 @@ const onChangeMode = () => {
   display: flex;
   align-items: center;
   text-shadow: 0px 0px 4px rgba(0, 0, 0, 0.4);
+  pointer-events: auto;
   &.app {
     top: 1rem;
   }
@@ -415,9 +430,11 @@ const onChangeMode = () => {
     letter-spacing: 1px;
     align-items: center;
     justify-content: center;
+    pointer-events: auto;
     > div {
       display: flex;
-      transition: background 0.3s ease, min-width 0.3s ease, border-radius 0.3s ease;
+      transition: background 0.3s ease, min-width 0.3s ease,
+        border-radius 0.3s ease;
       align-items: center;
       justify-content: center;
       padding-right: 12px;
@@ -428,7 +445,12 @@ const onChangeMode = () => {
       min-width: 100%;
       overflow: visible;
       pointer-events: none;
-      background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.15) 50%, rgba(0, 0, 0, 0) 100%);
+      background: linear-gradient(
+        90deg,
+        rgba(0, 0, 0, 0) 0%,
+        rgba(0, 0, 0, 0.15) 50%,
+        rgba(0, 0, 0, 0) 100%
+      );
     }
     span {
       display: inline-block;
@@ -472,7 +494,7 @@ const onChangeMode = () => {
     }
   }
   .content {
-    position: absolute;
+    position: fixed;
     top: 1.6rem;
     left: 0.92105rem;
     right: 0.92105rem;
@@ -481,6 +503,17 @@ const onChangeMode = () => {
     border-radius: 5px;
     font-size: 0.36842rem;
     text-align: center;
+    max-height: 80vh;
+    max-height: calc(var(--vh) * 80);
+    overflow: scroll;
+    -webkit-overflow-scrolling: touch;
+    // z-index: 10000;
+    pointer-events: auto;
+
+    * {
+      pointer-events: auto;
+      -webkit-overflow-scrolling: touch;
+    }
     &.drak {
       background: rgba(0, 0, 0, 0.8);
     }
@@ -491,25 +524,6 @@ const onChangeMode = () => {
       word-break: break-all;
       white-space: normal;
       line-height: 1.5;
-      // h4 {
-      //     margin: 0;
-      //     padding: 0;
-      //     margin-bottom: 0.28rem;
-      //     font-size: 0.43rem;
-      //     padding-left: 0.18789rem;
-      //     width: 100%;
-      //     position: relative;
-      //     &::before {
-      //         content: "";
-      //         position: absolute;
-      //         left: 0;
-      //         top: 50%;
-      //         height: 80%;
-      //         transform: translateY(-50%);
-      //         width: 2px;
-      //         background-color: var(--editor-main-color);
-      //     }
-      // }
 
       :deep(p) {
         word-break: break-word;
@@ -519,18 +533,6 @@ const onChangeMode = () => {
         color: var(--editor-main-color);
       }
     }
-    // &::after {
-    //     content: "";
-    //     position: absolute;
-    //     top: -6px;
-    //     left: 50%;
-    //     margin-left: -3px;
-    //     width: 0;
-    //     height: 0;
-    //     border-width: 0 7px 6px;
-    //     border-style: solid;
-    //     border-color: transparent transparent rgba(0, 0, 0, 0.5);
-    // }
   }
 
   .url-share {

+ 126 - 109
packages/qjkankan-kankan-view/src/components/Information/View.Pc.vue

@@ -1,139 +1,156 @@
 <template>
-    <div class="title" @click="onShowDescription" :class="{ 'pull-up': showDescription, }">
-        <div class="text">
-            <div>{{ metadata.title }}</div>
-        </div>
-        <div class="icon">
-            <i class="iconfont icon-pull-down"></i>
-        </div>
+  <div
+    class="title"
+    @click="onShowDescription"
+    :class="{ 'pull-up': showDescription }"
+  >
+    <div class="text">
+      <div>{{ metadata.title }}</div>
     </div>
-    <div v-if="showTitle" class="description" :class="{ show: showDescription }" @click="onShowDescription">
-        <div class="text" v-html="metadata.description"></div>
+    <div class="icon">
+      <i class="iconfont icon-pull-down"></i>
     </div>
+  </div>
+  <div
+    v-if="showTitle"
+    class="description"
+    :class="{ show: showDescription }"
+    @click="onShowDescription"
+  >
+    <div class="text" v-html="metadata.description"></div>
+  </div>
 </template>
 
 <script setup>
-import { ref, computed } from 'vue'
+import { ref, computed } from "vue";
 
-import { useStore } from 'vuex'
-const store = useStore()
-const metadata = computed(() => store.getters['scene/metadata'])
-const showDescription = ref(false)
-const showTitle = ref(true)
+import { useStore } from "vuex";
+const store = useStore();
+const metadata = computed(() => store.getters["scene/metadata"]);
+const showDescription = ref(false);
+const showTitle = ref(true);
 
 const onShowDescription = () => {
-    showDescription.value = !showDescription.value
-}
+  showDescription.value = !showDescription.value;
+};
 </script>
 
 <style lang="scss" scoped>
 .title {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  height: 100%;
+  cursor: pointer;
+  transition: all 0.1s;
+  background: linear-gradient(
+    90deg,
+    rgba(0, 0, 0, 0) 0%,
+    rgba(0, 0, 0, 0.3) 50%,
+    rgba(0, 0, 0, 0) 100%
+  );
+  &.collapse {
+    // width: 34px;
+    padding-right: 0;
+    .back-btn {
+      .iconfont {
+        transform: rotate(180deg);
+      }
+      &::after {
+        display: none;
+      }
+    }
+    .text {
+      display: none;
+    }
+    .icon {
+      display: none;
+    }
+  }
+  .back-btn {
+    width: 34px;
+    height: 34px;
     display: flex;
     align-items: center;
     justify-content: center;
-    height: 100%;
     cursor: pointer;
+    position: relative;
     transition: all 0.1s;
-    background: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.3) 50%, rgba(0,0,0,0) 100%);
-    &.collapse {
-        // width: 34px;
-        padding-right: 0;
-        .back-btn {
-            .iconfont {
-                transform: rotate(180deg);
-            }
-            &::after {
-                display: none;
-            }
-        }
-        .text {
-            display: none;
-        }
-        .icon {
-            display: none;
-        }
+    &::after {
+      content: "";
+      position: absolute;
+      width: 1px;
+      height: 65%;
+      background: linear-gradient(transparent, #fff, transparent);
+      top: 50%;
+      transform: translateY(-50%);
+      right: 0;
     }
-    .back-btn {
-        width: 34px;
-        height: 34px;
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        cursor: pointer;
-        position: relative;
-        transition: all 0.1s;
-        &::after {
-            content: '';
-            position: absolute;
-            width: 1px;
-            height: 65%;
-            background: linear-gradient(transparent, #fff, transparent);
-            top: 50%;
-            transform: translateY(-50%);
-            right: 0;
-        }
-    }
-    .text {
-        // width: 190px;
-        text-align: center;
-        min-width: 240px;
-        transition: width 0.3s;
-        padding: 0 20px;
+  }
+  .text {
+    // width: 190px;
+    text-align: center;
+    min-width: 240px;
+    transition: width 0.3s;
+    padding: 0 20px;
 
-        > div {
-            width: 100%;
-            overflow: hidden;
-            text-overflow: ellipsis;
-            white-space: nowrap;
-        }
+    > div {
+      width: 100%;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      white-space: nowrap;
     }
-    .icon {
-        i {
-            transition: transform 0.2s ease-in-out;
-        }
+  }
+  .icon {
+    i {
+      transition: transform 0.2s ease-in-out;
     }
+  }
 
-    &.pull-up {
-        background: rgba($color: #000000, $alpha: 0.5);
-        border-radius: 17px;
-        // .text {
-        //     width: 240px;
-        //     padding-left: 20px;
+  &.pull-up {
+    background: rgba($color: #000000, $alpha: 0.5);
+    border-radius: 17px;
+    // .text {
+    //     width: 240px;
+    //     padding-left: 20px;
 
-        //     > div {
-        //         // width: 100%;
-        //         // overflow: hidden;
-        //         // text-overflow: ellipsis;
-        //         // white-space: nowrap;
-        //     }
-        // }
-        .icon {
-            i {
-                transform: rotate(180deg);
-            }
-        }
+    //     > div {
+    //         // width: 100%;
+    //         // overflow: hidden;
+    //         // text-overflow: ellipsis;
+    //         // white-space: nowrap;
+    //     }
+    // }
+    .icon {
+      i {
+        transform: rotate(180deg);
+      }
     }
+  }
 }
 
 .description {
-    display: none;
-    position: absolute;
-    left: 50%;
-    transform: translateX(-50%);
-    top: calc(100% + 10px);
-    background: rgba(15, 15, 15, 0.5);
-    border-radius: 10px;
-    &.show {
-        display: block;
-    }
-    .text {
-        padding: 20px;
-        width: 400px;
-        letter-spacing: 1px;
-        overflow: hidden;
-        word-break: break-all;
-        white-space: normal;
-        line-height: 1.5;
-    }
+  display: none;
+  position: absolute;
+  left: 50%;
+  transform: translateX(-50%);
+  top: calc(100% + 10px);
+  background: rgba(15, 15, 15, 0.5);
+  border-radius: 10px;
+  max-height: 60vh;
+  overflow-y: scroll;
+  overflow-x: hidden;
+  &.show {
+    display: block;
+  }
+  .text {
+    padding: 20px;
+    width: 400px;
+    letter-spacing: 1px;
+    overflow: hidden;
+    word-break: break-all;
+    white-space: normal;
+    line-height: 1.5;
+  }
 }
 </style>

+ 2 - 1
packages/qjkankan-kankan-view/src/components/Information/index.vue

@@ -43,7 +43,8 @@ useApp().then(app => {
         transform: none;
         width: 100%;
         background: none;
-        height: 0;
+        min-height: calc(var(--vh) * 100);
+        pointer-events: none;
         &.disabled {
             // position: absolute;
         }

+ 2 - 2
packages/qjkankan-kankan-view/src/pages/SMG.vue

@@ -60,9 +60,9 @@ import { useStore } from "vuex";
 import browser from "@/utils/browser";
 import { useApp, getApp } from "@/app";
 import { useI18n, getLocale } from '@/i18n'
+import { useAppHeight } from "@/utils/globalViewHeight";
 const { t } = useI18n({ useScope: 'global' })
-
-
+useAppHeight();
 let app = null;
 
 const autoPlayMedia = player => {

+ 2 - 0
packages/qjkankan-kankan-view/src/pages/SPG.vue

@@ -33,6 +33,8 @@ import browser from "@/utils/browser";
 import { useI18n, getLocale } from "@/i18n";
 const { t } = useI18n({ useScope: "global" });
 
+
+
 const autoPlayMedia = (player) => {
   function onclick() {
     window.parent.postMessage(

+ 20 - 0
packages/qjkankan-kankan-view/src/utils/globalViewHeight.js

@@ -0,0 +1,20 @@
+import { onMounted, onUnmounted } from "vue";
+
+const appHeight = () => {
+  const doc = document.documentElement;
+  var windowVH = window.innerHeight / 100;
+  doc.style.setProperty("--vh", windowVH + "px");
+  doc.style.setProperty("--imageHeight", `${window.innerHeight}px`);
+};
+
+export const useAppHeight = () => {
+  onMounted(() => {
+    appHeight();
+    window.addEventListener("resize", appHeight);
+    window.addEventListener("orientationchange", appHeight);
+  });
+  onUnmounted(() => {
+    window.removeEventListener("resize", appHeight);
+    window.removeEventListener("orientationchange", appHeight);
+  });
+};

+ 2 - 2
packages/qjkankan-view/.env.testprod

@@ -7,7 +7,7 @@ VUE_APP_PROXY_URL='https://test.4dkankan.com/qjkankan/'
 VUE_APP_URL_FILL=/qjkankan
 # 接口请求地址
 VUE_APP_APIS_URL=https://test.4dkankan.com/
-VUE_APP_DEBBUG_FLAG=0616-02
-VUE_APP_DEBBUG_NOTIFY=0
+VUE_APP_DEBBUG_FLAG=0620-01
+VUE_APP_DEBBUG_NOTIFY=1
 VUE_APP_DEBBUG_V4=0
 VUE_APP_DEBBUG_V4_URL="http://192.168.0.186:8081"

+ 7 - 1
packages/qjkankan-view/src/components/UIGather/mobile/list.vue

@@ -176,7 +176,13 @@ const catalogRootW = computed(
 const show = ref(false);
 
 const tabCurrentScene = (data) => {
-  store.commit("scene/setCurrentScene", data);
+  console.log("tabCurrentScene", data.id, currentScene.value.id);
+  if (data.id !== currentScene.value.id) {
+    store.commit("scene/setCurrentScene", data);
+  } else {
+    console.log("重复点击当前导航");
+    // window.alert("alert-test-->重复点击当前导航");
+  }
 };
 
 const tabSecondary = (data) => {

+ 1 - 1
packages/qjkankan-view/src/utils/fns/ToolTip.js

@@ -11,7 +11,7 @@ const Tooltip = {
         el.addEventListener('mouseenter', function (e) {
             tooltipNode = document.createElement('div')
             tooltipNode.style.position = 'fixed'
-            tooltipNode.style.zIndex = 100
+            tooltipNode.style.zIndex = 2147483647
             tooltipNode.style.backgroundColor = 'rgba(0,0,0,1)'
             tooltipNode.style.border = '1px solid rgba(151, 151, 151, 0.2)'
             tooltipNode.style.borderRadius = '3px'

+ 20 - 0
packages/qjkankan-view/src/utils/globalViewHeight.js

@@ -0,0 +1,20 @@
+import { onMounted, onUnmounted } from "vue";
+
+const appHeight = () => {
+  const doc = document.documentElement;
+  var windowVH = window.innerHeight / 100;
+  doc.style.setProperty("--vh", windowVH + "px");
+  doc.style.setProperty("--imageHeight", `${window.innerHeight}px`);
+};
+
+export const useAppHeight = () => {
+  onMounted(() => {
+    appHeight();
+    window.addEventListener("resize", appHeight);
+    window.addEventListener("orientationchange", appHeight);
+  });
+  onUnmounted(() => {
+    window.removeEventListener("resize", appHeight);
+    window.removeEventListener("orientationchange", appHeight);
+  });
+};