tremble 2 년 전
부모
커밋
dad4135c28

+ 2 - 0
packages/qjkankan-editor/src/framework/play/pano/index.vue

@@ -64,7 +64,9 @@ export default {
         })
         })
       }
       }
       if (newVal.type == '4dkk') {
       if (newVal.type == '4dkk') {
+        console.log(newVal.type);
         $("#pano").empty();
         $("#pano").empty();
+        return
       } else {
       } else {
         $("#pano").empty();
         $("#pano").empty();
         window.vrInitFn = () => {
         window.vrInitFn = () => {

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

@@ -259,6 +259,17 @@ onMounted(() => {
       },
       },
       "*"
       "*"
     );
     );
+
+    window.parent.postMessage(
+      {
+        source: "qjkankan",
+        event: "toggleBgmStatus",
+        params: {
+          status: false,
+        },
+      },
+      "*"
+    );
   });
   });
 
 
   app.Scene.on("panorama.videorenderer.suspendrender", async () => {
   app.Scene.on("panorama.videorenderer.suspendrender", async () => {
@@ -274,6 +285,16 @@ onMounted(() => {
         },
         },
         "*"
         "*"
       );
       );
+      window.parent.postMessage(
+        {
+          source: "qjkankan",
+          event: "toggleBgmStatus",
+          params: {
+            status: true,
+          },
+        },
+        "*"
+      );
     }
     }
   });
   });
   app.store.on("metadata", (metadata) => {
   app.store.on("metadata", (metadata) => {

+ 4 - 2
packages/qjkankan-view/public/showMobile.html

@@ -22,7 +22,9 @@
     <script src="<%= VUE_APP_STATIC_DIR %>/lib/howler/howler.min.js"></script>
     <script src="<%= VUE_APP_STATIC_DIR %>/lib/howler/howler.min.js"></script>
     <script src="<%= VUE_APP_STATIC_DIR %>/lib/swiper/swiper-bundle.min.js"></script>
     <script src="<%= VUE_APP_STATIC_DIR %>/lib/swiper/swiper-bundle.min.js"></script>
     <!-- <script src="<%= VUE_APP_STATIC_DIR %>/lib/jssor/jssor.slider-28.1.0.min.js"></script> -->
     <!-- <script src="<%= VUE_APP_STATIC_DIR %>/lib/jssor/jssor.slider-28.1.0.min.js"></script> -->
-
-   
+    <!-- <script src="https://4dkk.4dage.com/v4-test/www/viewer/static/lib/vconsole.js"></script>
+    <script>
+      var vConsole = new window.VConsole()
+  </script> -->
   </body>
   </body>
 </html>
 </html>

+ 3 - 1
packages/qjkankan-view/src/components/Fdkk/index.vue

@@ -14,7 +14,8 @@
 
 
 
 
     <iframe :key="currentScene.sceneCode" v-else id="fdkkifr"
     <iframe :key="currentScene.sceneCode" v-else id="fdkkifr"
-      :src="`${isMobile ? 'smg' : 'spg'}.html?m=${currentScene.sceneCode}`" frameborder="0"></iframe>
+      :src="`${isMobile ? 'smg' : 'spg'}.html?m=${currentScene.sceneCode}`"
+      frameborder="0"></iframe>
     <!-- :src="`http://192.168.20.66:8080/${isMobile ? 'smg' : 'spg'}.html?m=${currentScene.sceneCode}`" -->
     <!-- :src="`http://192.168.20.66:8080/${isMobile ? 'smg' : 'spg'}.html?m=${currentScene.sceneCode}`" -->
 
 
 
 
@@ -83,6 +84,7 @@ const handleMessage = (res) => {
     if (event == "fdkkBgmLink") {
     if (event == "fdkkBgmLink") {
       store.commit('fdkk/setFdkkBGM', params.music)
       store.commit('fdkk/setFdkkBGM', params.music)
       if (params.music) {
       if (params.music) {
+        // console.log(useMusicPlayer.player,'useMusicPlayer.player');
         useMusicPlayer.player.watchPlay(true)
         useMusicPlayer.player.watchPlay(true)
       }
       }
 
 

+ 14 - 5
packages/qjkankan-view/src/components/Pano/index.vue

@@ -47,33 +47,42 @@ watch(currentScene, (newVal, oldVal) => {
   if (newVal.type == 'pano') {
   if (newVal.type == 'pano') {
     if (store.getters['fdkk/fdkkBGM']) {
     if (store.getters['fdkk/fdkkBGM']) {
       store.commit('fdkk/setFdkkBGM', '')
       store.commit('fdkk/setFdkkBGM', '')
+      musicPlayer.pause()
       useMusicPlayer.player.watchPlay(true)
       useMusicPlayer.player.watchPlay(true)
     }
     }
 
 
     nextTick(() => {
     nextTick(() => {
       loadScene(newVal);
       loadScene(newVal);
+      console.log(currentPlaying.value);
     });
     });
   } else {
   } else {
+    store.commit("fdkk/setV3FdkkBGM", '');
+    store.commit("fdkk/setV3BGMStatus", '');
     getFdkkInfo({ num: newVal.sceneCode }).then((data) => {
     getFdkkInfo({ num: newVal.sceneCode }).then((data) => {
       if (data.data.isUpgrade != void 0) {
       if (data.data.isUpgrade != void 0) {
         store.commit("scene/setFdkkCurrentVersion", data.data.isUpgrade !== 0 ? 'v4' : 'v3');
         store.commit("scene/setFdkkCurrentVersion", data.data.isUpgrade !== 0 ? 'v4' : 'v3');
         if (data.data.isUpgrade === 0) {
         if (data.data.isUpgrade === 0) {
+          
           musicPlayer.pauseFromOther = true
           musicPlayer.pauseFromOther = true
           if (!browser.isMobile()) {
           if (!browser.isMobile()) {
             musicPlayer.pause()
             musicPlayer.pause()
           } else {
           } else {
+            let flag = data.data.bgMusic && data.data.bgMusic != '0' && data.data.bgMusic != 'noMusic'
+            store.commit("fdkk/setV3FdkkBGM", flag);
             // 该v3场景有背景音乐
             // 该v3场景有背景音乐
-            store.commit("fdkk/setV3FdkkBGM", data.data.bgMusic && data.data.bgMusic != '0' && data.data.bgMusic != 'noMusic');
-
-            console.log(data.data.bgMusic && data.data.bgMusic != '0' && data.data.bgMusic != 'noMusic','==========');
+            if (flag) {
+              musicPlayer.pause()
+            }
+            // console.log(data.data.bgMusic && data.data.bgMusic != '0' && data.data.bgMusic != 'noMusic','==========');
           }
           }
-
-
         }
         }
       }
       }
 
 
+
+      //上一个场景如果是四维看看场景且当前场景是v4 
       if (oldVal.type == '4dkk' && data.data.isUpgrade !== 0) {
       if (oldVal.type == '4dkk' && data.data.isUpgrade !== 0) {
         store.commit('fdkk/setFdkkBGM', '')
         store.commit('fdkk/setFdkkBGM', '')
+        musicPlayer.pause()
         useMusicPlayer.player.watchPlay(true)
         useMusicPlayer.player.watchPlay(true)
       }
       }
     })
     })

+ 6 - 4
packages/qjkankan-view/src/components/UIGather/mobile/control.fdkk.vue

@@ -1,11 +1,11 @@
 <template>
 <template>
   <ul class="control-fdkk"
   <ul class="control-fdkk"
-    v-if="(fdkkmetadata && (fdkkmetadata.controls.showPanorama || fdkkmetadata.controls.showFloorplan || fdkkmetadata.controls.showDollhouse))
+    v-if="(fdkkmetadata && (fdkkCurrentVersion != 'v3' && (fdkkmetadata && !fdkkmetadata.controls.showMap)) && (fdkkmetadata.controls.showPanorama || fdkkmetadata.controls.showFloorplan || fdkkmetadata.controls.showDollhouse))
     || toursList.length > 0
     || toursList.length > 0
     || (customLink && customLink.isShow)
     || (customLink && customLink.isShow)
     || (customTelephone && customTelephone.isShow)
     || (customTelephone && customTelephone.isShow)
     || (metadata.description)
     || (metadata.description)
-    || ((((metadata.backgroundMusic && metadata.backgroundMusic.id && (fdkkCurrentVersion != 'v3')) || fdkkBGM || v3IsBgm)) && (fdkkmetadata && !fdkkmetadata.controls.showMap))">
+    || ((metadata.backgroundMusic && metadata.backgroundMusic.id) || fdkkBGM || v3IsBgm)">
 
 
     <li class="daolan" :class="{ v3daolan: fdkkCurrentVersion == 'v3' }" @click.stop="playTour"
     <li class="daolan" :class="{ v3daolan: fdkkCurrentVersion == 'v3' }" @click.stop="playTour"
       v-if="toursList.length > 0">
       v-if="toursList.length > 0">
@@ -43,7 +43,7 @@
         (customLink && customLink.isShow) ||
         (customLink && customLink.isShow) ||
         (customTelephone && customTelephone.isShow) ||
         (customTelephone && customTelephone.isShow) ||
         (metadata.description) ||
         (metadata.description) ||
-        ((metadata.backgroundMusic && metadata.backgroundMusic.id && (fdkkCurrentVersion != 'v3')) || fdkkBGM || v3IsBgm) &&
+        ((metadata.backgroundMusic && metadata.backgroundMusic.id) || fdkkBGM || v3IsBgm) &&
         (fdkkmetadata && (fdkkmetadata.controls.showPanorama || fdkkmetadata.controls.showFloorplan || fdkkmetadata.controls.showDollhouse))">
         (fdkkmetadata && (fdkkmetadata.controls.showPanorama || fdkkmetadata.controls.showFloorplan || fdkkmetadata.controls.showDollhouse))">
       </li>
       </li>
 
 
@@ -70,7 +70,7 @@
 
 
 
 
     <!-- 背景音乐 -->
     <!-- 背景音乐 -->
-    <li @click="onIsBGM" v-if="(metadata.backgroundMusic && metadata.backgroundMusic.id && (fdkkCurrentVersion != 'v3'))
+    <li @click="onIsBGM" v-if="(metadata.backgroundMusic && metadata.backgroundMusic.id)
     || fdkkBGM
     || fdkkBGM
     || v3IsBgm">
     || v3IsBgm">
       <img v-if="v3IsBgm"
       <img v-if="v3IsBgm"
@@ -104,6 +104,8 @@ const musicPlayer = useMusicPlayer()
 
 
 const showMusicPlaying = ref(musicPlayer.isPlay)
 const showMusicPlaying = ref(musicPlayer.isPlay)
 
 
+// alert(showMusicPlaying.value)
+
 const store = useStore();
 const store = useStore();
 const toursList = computed(() => store.getters["fdkk/toursList"]);
 const toursList = computed(() => store.getters["fdkk/toursList"]);
 
 

+ 0 - 2
packages/qjkankan-view/src/store/modules/fdkk.js

@@ -121,9 +121,7 @@ export default {
       }
       }
     },
     },
     setV3FdkkBGM(state, payload) {
     setV3FdkkBGM(state, payload) {
-      if (payload) {
         state.v3IsBgm = payload
         state.v3IsBgm = payload
-      }
     },
     },
     setV3BGMStatus(state, payload) {
     setV3BGMStatus(state, payload) {
         state.v3BGMStatus = payload
         state.v3BGMStatus = payload

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

@@ -1,127 +1,143 @@
 import {computePosition, offset, flip, shift, arrow} from '@floating-ui/dom';
 import {computePosition, offset, flip, shift, arrow} from '@floating-ui/dom';
 
 
+let tooltipNode = null
 
 
-const Tooltip = (el, binding, vNode, preVnode) => {
-    if (!binding.value) {
-        return
-    }
-    let tooltipNode = null
-    el.addEventListener('mouseenter', function (e) {
-        tooltipNode = document.createElement('div')
-        tooltipNode.style.position = 'fixed'
-        tooltipNode.style.zIndex = 100
-        tooltipNode.style.backgroundColor = 'rgba(0,0,0,1)'
-        tooltipNode.style.border = '1px solid rgba(151, 151, 151, 0.2)'
-        tooltipNode.style.borderRadius = '3px'
-        tooltipNode.style.border = '1px solid rgba(151, 151, 151, 0.2)'
-        tooltipNode.style.boxShadow = '0px 2px 12px 0px rgba(0, 0, 0, 0.06)'
-        tooltipNode.style.padding = '8px 8px'
-        tooltipNode.style.fontSize = '12px'
-        tooltipNode.style.cursor = 'default'
-        tooltipNode.style.pointerEvents = 'none'
-        tooltipNode.style.wordBreak = 'keep-all'
-        tooltipNode.style.whiteSpace = 'pre'
-        tooltipNode.style.fontSize = '12px'
-        tooltipNode.style.lineHeight = '17px'
-        tooltipNode.style.color = '#ffffff'
-        tooltipNode.innerText = binding.value
 
 
-        const arrowNode = document.createElement('div')
-        arrowNode.style.position = 'absolute'
-        arrowNode.style.backgroundColor = 'inherit'
-        arrowNode.style.boxSizing = 'border-box'
-        arrowNode.style.width = '12px'
-        arrowNode.style.height = '12px'
-        arrowNode.style.border = '1px solid transparent'
-        arrowNode.style.borderRight = 'inherit'
-        arrowNode.style.borderBottom = 'inherit'
-        arrowNode.style.transform = 'rotate(45deg)'
-
-        tooltipNode.appendChild(arrowNode)
-        document.body.appendChild(tooltipNode)
-
-        computePosition(el, tooltipNode, {
-            placement: 'top',
-            middleware: [
-                offset(13),
-                flip(),
-                shift({ padding: 12 }),
-                arrow({
-                    element: arrowNode,
-                    padding: 3,
-                }),
-            ],
-        }).then(({ x, y, placement, middlewareData }) => {
-            Object.assign(tooltipNode.style, {
-                left: `${x}px`,
-                top: `${y}px`,
-            });
-
-            const { x: arrowX, y: arrowY } = middlewareData.arrow;
-            const staticSide = {
-                top: 'bottom',
-                right: 'left',
-                bottom: 'top',
-                left: 'right',
-            }[placement.split('-')[0]];
-
-            Object.assign(arrowNode.style, {
-                left: arrowX != null ? `${arrowX}px` : '',
-                [staticSide]: '-6px',
-            });
-        });
-    }, {
-        passive: false,
-    })
-    el.addEventListener('mouseleave', function () {
-        try {
-            document.body.removeChild(tooltipNode)
-        } catch (e) {
-            console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
-        }
-    })
-    el.addEventListener('mousedown', function () {
-        try {
-            document.body.removeChild(tooltipNode)
-        } catch (e) {
-            console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
-        }
-    })
-    el.addEventListener('keydown', function () {
-        try {
-            document.body.removeChild(tooltipNode)
-        } catch (e) {
-            console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
-        }
-    })
-    el.addEventListener('scroll', function () {
-        try {
-            document.body.removeChild(tooltipNode)
-        } catch (e) {
-            console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
-        }
-    })
-    el.addEventListener('dragstart', function () {
-        try {
-            document.body.removeChild(tooltipNode)
-        } catch (e) {
-            console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
-        }
-    })
-    el.addEventListener('dragstart', function () {
-        try {
-            document.body.removeChild(tooltipNode)
-        } catch (e) {
-            console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
+const Tooltip = {
+    beforeMount(el, binding) {
+        if (!binding.value) {
+            return
         }
         }
-    })
-    el.addEventListener('dragleave', function () {
+        el.addEventListener('mouseenter', function (e) {
+            tooltipNode = document.createElement('div')
+            tooltipNode.style.position = 'fixed'
+            tooltipNode.style.zIndex = 100
+            tooltipNode.style.backgroundColor = 'rgba(0,0,0,1)'
+            tooltipNode.style.border = '1px solid rgba(151, 151, 151, 0.2)'
+            tooltipNode.style.borderRadius = '3px'
+            tooltipNode.style.border = '1px solid rgba(151, 151, 151, 0.2)'
+            tooltipNode.style.boxShadow = '0px 2px 12px 0px rgba(0, 0, 0, 0.06)'
+            tooltipNode.style.padding = '8px 8px'
+            tooltipNode.style.fontSize = '12px'
+            tooltipNode.style.cursor = 'default'
+            tooltipNode.style.pointerEvents = 'none'
+            tooltipNode.style.wordBreak = 'keep-all'
+            tooltipNode.style.whiteSpace = 'pre'
+            tooltipNode.style.fontSize = '12px'
+            tooltipNode.style.lineHeight = '17px'
+            tooltipNode.style.color = '#ffffff'
+            tooltipNode.innerText = binding.value
+    
+            const arrowNode = document.createElement('div')
+            arrowNode.style.position = 'absolute'
+            arrowNode.style.backgroundColor = 'inherit'
+            arrowNode.style.boxSizing = 'border-box'
+            arrowNode.style.width = '12px'
+            arrowNode.style.height = '12px'
+            arrowNode.style.border = '1px solid transparent'
+            arrowNode.style.borderRight = 'inherit'
+            arrowNode.style.borderBottom = 'inherit'
+            arrowNode.style.transform = 'rotate(45deg)'
+    
+            tooltipNode.appendChild(arrowNode)
+            document.body.appendChild(tooltipNode)
+    
+            computePosition(el, tooltipNode, {
+                placement: 'top',
+                middleware: [
+                    offset(13),
+                    flip(),
+                    shift({ padding: 12 }),
+                    arrow({
+                        element: arrowNode,
+                        padding: 3,
+                    }),
+                ],
+            }).then(({ x, y, placement, middlewareData }) => {
+                Object.assign(tooltipNode.style, {
+                    left: `${x}px`,
+                    top: `${y}px`,
+                });
+    
+                const { x: arrowX, y: arrowY } = middlewareData.arrow;
+                const staticSide = {
+                    top: 'bottom',
+                    right: 'left',
+                    bottom: 'top',
+                    left: 'right',
+                }[placement.split('-')[0]];
+    
+                Object.assign(arrowNode.style, {
+                    left: arrowX != null ? `${arrowX}px` : '',
+                    [staticSide]: '-6px',
+                });
+            });
+        }, {
+            passive: false,
+        })
+        el.addEventListener('mouseleave', function () {
+            try {
+                tooltipNode && document.body.removeChild(tooltipNode)
+            } catch (e) {
+                console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
+            }
+        })
+        el.addEventListener('mousedown', function () {
+            try {
+                tooltipNode && document.body.removeChild(tooltipNode)
+            } catch (e) {
+                console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
+            }
+        })
+        el.addEventListener('keydown', function () {
+            try {
+                tooltipNode && document.body.removeChild(tooltipNode)
+            } catch (e) {
+                console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
+            }
+        })
+        el.addEventListener('scroll', function () {
+            try {
+                tooltipNode && document.body.removeChild(tooltipNode)
+            } catch (e) {
+                console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
+            }
+        })
+        el.addEventListener('dragstart', function () {
+            try {
+                tooltipNode && document.body.removeChild(tooltipNode)
+            } catch (e) {
+                console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
+            }
+        })
+        el.addEventListener('dragstart', function () {
+            try {
+                tooltipNode && document.body.removeChild(tooltipNode)
+            } catch (e) {
+                console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
+            }
+        })
+        el.addEventListener('dragleave', function () {
+            try {
+                tooltipNode && document.body.removeChild(tooltipNode)
+            } catch (e) {
+                console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
+            }
+        })
+    },
+    updated(el, binding) {
+   
+    },
+    unmounted() {
         try {
         try {
-            document.body.removeChild(tooltipNode)
+            console.log(tooltipNode);
+             tooltipNode && document.body.removeChild(tooltipNode)
         } catch (e) {
         } catch (e) {
             console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
             console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
         }
         }
-    })
+    },
 }
 }
 
 
+
+
 export default Tooltip
 export default Tooltip

+ 12 - 5
packages/qjkankan-view/src/utils/sound.js

@@ -128,7 +128,13 @@ class MusicPlayer extends AudioPlayer {
                     'getNetworkType',
                     'getNetworkType',
                     {},
                     {},
                     e => {
                     e => {
-                        this.play()
+                        try {
+                            if (!player.pauseFromOther) {
+                                this.play()
+                            }
+                        } catch (error) {
+
+                        }
                     },
                     },
                     false
                     false
                 )
                 )
@@ -155,6 +161,7 @@ class MusicPlayer extends AudioPlayer {
             })
             })
 
 
             if (source.value && source.value.src) {
             if (source.value && source.value.src) {
+                console.log(source.value);
                 this._create(source.value.src, {
                 this._create(source.value.src, {
                     loop: source.value.loop,
                     loop: source.value.loop,
                     html5: false,
                     html5: false,
@@ -168,11 +175,11 @@ class MusicPlayer extends AudioPlayer {
                             }
                             }
                         } else {
                         } else {
                             if (autoplay) {
                             if (autoplay) {
-                              setTimeout(() => {
-                                this.play()
-                              }, 50);
+                                setTimeout(() => {
+                                    this.play()
+                                }, 50);
                             }
                             }
-                            else{
+                            else {
                                 retryPlay(this)
                                 retryPlay(this)
                             }
                             }
                             // ready()
                             // ready()