gemercheung 2 vuotta sitten
vanhempi
commit
cff8ddead3

+ 0 - 5
packages/qjkankan-kankan-view/src/components/Controls/BottomControl.vue

@@ -11,11 +11,6 @@ import { ref } from 'vue'
 import { useApp, getApp } from '@/app'
 import FloorSwitch from './FloorSwitch'
 import tours from './tours'
-// import { useMusicPlayer } from '@/utils/sound'
-
-// const musicPlayer = useMusicPlayer()
-
-const showMusicPlaying = ref(false)
 
 const store = useStore()
 const show = ref(false)

+ 1 - 7
packages/qjkankan-kankan-view/src/components/Controls/Control.Mobile.vue

@@ -11,11 +11,6 @@ import { ref } from 'vue'
 import { useApp, getApp } from '@/app'
 import FloorSwitch from './FloorSwitch'
 import tours from './tours.mobile'
-// import { useMusicPlayer } from '@/utils/sound'
-
-// const musicPlayer = useMusicPlayer()
-
-const showMusicPlaying = ref(false)
 
 const store = useStore()
 const show = ref(false)
@@ -27,8 +22,7 @@ useApp().then(app => {
     app.Scene.on('loaded', () => (show.value = true))
 })
 
-// musicPlayer.on('play', () => (showMusicPlaying.value = true))
-// musicPlayer.on('pause', () => (showMusicPlaying.value = false))
+
 </script>
 <style lang="scss" scoped>
 .disable {

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

@@ -41,7 +41,7 @@
 </template>
   
 <script setup>
-import { useMusicPlayer } from "@/utils/sound";
+
 import UiTags from "@/components/Tags";
 
 import { listenMessage } from '@/utils/messageHandler'
@@ -62,7 +62,6 @@ import { useApp, getApp } from "@/app";
 import { useI18n, getLocale } from '@/i18n'
 const { t } = useI18n({ useScope: 'global' })
 
-const musicPlayer = useMusicPlayer();
 
 let app = null;
 
@@ -257,8 +256,6 @@ onMounted(() => {
   });
   app.Scene.on("loaded", (pano) => {
     refMiniMap.value = "[xui_min_map]";
-    store.commit("setFloorId", pano.floorIndex);
-    useMusicPlayer();
     let music = store.getters['scene/musicURL']
 
     window.parent.postMessage(
@@ -279,7 +276,7 @@ onMounted(() => {
         source: "qjkankan",
         event: "togglefdkkBGM",
         params: {
-          paly: false,
+          play: false,
         },
       },
       "*"
@@ -305,7 +302,7 @@ onMounted(() => {
           source: "qjkankan",
           event: "togglefdkkBGM",
           params: {
-            paly: true,
+            play: true,
           },
         },
         "*"

+ 219 - 220
packages/qjkankan-kankan-view/src/pages/SPG.vue

@@ -1,241 +1,240 @@
 <template>
-    <Password />
-    <LoadingLogo :thumb="true" />
-    <div class="ui-view-layout" :class="{ show: show }">
-        <div class="scene" ref="scene$"></div>
-        <!-- <template v-show="sceneUi"> -->
-        <div>
-            <UiTags />
-            <Information />
-            <BottomControl />
-        </div>
-        <!-- </template> -->
+  <Password />
+  <LoadingLogo :thumb="true" />
+  <div class="ui-view-layout" :class="{ show: show }">
+    <div class="scene" ref="scene$"></div>
+    <!-- <template v-show="sceneUi"> -->
+    <div>
+      <UiTags />
+      <Information />
+      <BottomControl />
     </div>
-    <DesignOption />
+    <!-- </template> -->
+  </div>
+  <DesignOption />
 </template>
 
 <script setup>
-import { useMusicPlayer } from '@/utils/sound'
-const musicPlayer = useMusicPlayer()
-import UiTags from '@/components/Tags'
-import DesignOption from './DesignOption'
-import Information from '@/components/Information'
+import UiTags from "@/components/Tags";
+import DesignOption from "./DesignOption";
+import Information from "@/components/Information";
 
-import BottomControl from '@/components/Controls/BottomControl'
-import Password from '@/components/shared/Password.vue'
-import LoadingLogo from '@/components/shared/Loading.vue'
-import { createApp } from '@/app'
-import { listenMessage } from '@/utils/messageHandler'
-import {Dialog} from '@/global_components'
+import BottomControl from "@/components/Controls/BottomControl";
+import Password from "@/components/shared/Password.vue";
+import LoadingLogo from "@/components/shared/Loading.vue";
+import { createApp } from "@/app";
+import { listenMessage } from "@/utils/messageHandler";
+import { Dialog } from "@/global_components";
 
+import { ref, onMounted, computed } from "vue";
+import { useStore } from "vuex";
+import { useApp, getApp } from "@/app";
+import browser from "@/utils/browser";
+import { useI18n, getLocale } from "@/i18n";
+const { t } = useI18n({ useScope: "global" });
 
-import { ref, onMounted, computed } from 'vue'
-import { useStore } from 'vuex'
-import { useApp, getApp } from '@/app'
-import browser from '@/utils/browser'
-import { useI18n, getLocale } from '@/i18n'
-const { t } = useI18n({ useScope: 'global' })
-
-
-
-const autoPlayMedia = player => {
-    function onclick() {
-        window.parent.postMessage(
-            {
-                source: "qjkankan",
-                event: "autoPlayBgm",
-                params: {
-                    status: true,
-                },
-            },
-            "*"
-        );
-        $player.removeEventListener('click', onclick)
-        $player.removeEventListener('touchstart', onclick)
-    }
-    const $player = document.querySelector('.player')
-    $player.addEventListener('click', onclick)
-    $player.addEventListener('touchstart', onclick)
-}
+const autoPlayMedia = (player) => {
+  function onclick() {
+    window.parent.postMessage(
+      {
+        source: "qjkankan",
+        event: "autoPlayBgm",
+        params: {
+          status: true,
+        },
+      },
+      "*"
+    );
+    $player.removeEventListener("click", onclick);
+    $player.removeEventListener("touchstart", onclick);
+  }
+  const $player = document.querySelector(".player");
+  $player.addEventListener("click", onclick);
+  $player.addEventListener("touchstart", onclick);
+};
 
-const store = useStore()
-const show = ref(false)
-const scene$ = ref(null)
+const store = useStore();
+const show = ref(false);
+const scene$ = ref(null);
 
-const sceneUI = computed(() => store.getters['sceneUI'])
+const sceneUI = computed(() => store.getters["sceneUI"]);
 
-listenMessage()
+listenMessage();
 
 onMounted(() => {
-    const app = createApp({
-        num: browser.getURLParam('m'),
-        dom: scene$.value,
-        lang: getLocale(),
-        langs: {
-            en: {
-                'model.enter': t('model.enter'),
-            },
+  const app = createApp({
+    num: browser.getURLParam("m"),
+    dom: scene$.value,
+    lang: getLocale(),
+    langs: {
+      en: {
+        "model.enter": t("model.enter"),
+      },
+    },
+    useShortcutKeys: true,
+  });
+  app.use("MinMap", { theme: { camera_fillStyle: "#0076f6" } });
+  app.use("Tag");
+  app.use("TourPlayer");
+  app.Scene.lock();
+  app.Scene.on("ready", () => {
+    show.value = true;
+  });
+  app.Scene.on("error", (data) => {
+    console.error(data);
+    switch (data.code) {
+      case 5033:
+        window.location.replace(`/5033.html?m=` + browser.getURLParam("m"));
+        break;
+      case 5034:
+        window.location.replace(`/5034.html?m=` + browser.getURLParam("m"));
+        break;
+      case 5009:
+        window.location.replace(`/5034.html?m=` + browser.getURLParam("m"));
+        break;
+      case 5005:
+        Dialog.toast({
+          content: t("guide.no_scene"),
+          type: "error",
+        });
+        break;
+    }
+  });
+  app.Scene.on("loaded", (pano) => {
+    store.commit("setFloorId", pano.floorIndex);
+
+    let music = store.getters["scene/musicURL"];
+    window.parent.postMessage(
+      {
+        source: "qjkankan",
+        event: "fdkkBgmLink",
+        params: {
+          music,
         },
-        useShortcutKeys: true,
-    })
-    app.use("MinMap", { theme: { camera_fillStyle: "#0076f6" } });
-    app.use('Tag')
-    app.use('TourPlayer')
-    app.Scene.lock()
-    app.Scene.on('ready', () => {
-        show.value = true
-    })
-    app.Scene.on('error', data => {
-        console.error(data)
-        switch (data.code) {
-            case 5033:
-                window.location.replace(`/5033.html?m=` + browser.getURLParam('m'))
-                break
-            case 5034:
-                window.location.replace(`/5034.html?m=` + browser.getURLParam('m'))
-                break
-            case 5009:
-                window.location.replace(`/5034.html?m=` + browser.getURLParam('m'))
-                break
-            case 5005:
-                Dialog.toast({
-                    content: t('guide.no_scene'),
-                    type: 'error',
-                })
-                break
-        }
-    })
-    app.Scene.on('loaded', pano => {
-        store.commit('setFloorId', pano.floorIndex)
-        useMusicPlayer()
-        let music = store.getters['scene/musicURL']
-        window.parent.postMessage(
-            {
-                source: "qjkankan",
-                event: "fdkkBgmLink",
-                params: {
-                    music,
-                },
-            },
-            "*"
-        );
-        autoPlayMedia()
-    })
-    app.store.on('tags', tags => {
-        store.commit('tag/load', tags)
-    })
-    app.store.on('metadata', metadata => {
-        store.commit('scene/load', metadata)
-        console.log(metadata, 'metadata');
-        if (!metadata.controls.showMap) {
-            app.MinMap.hide(true)
-        }
-    })
-    app.Scene.on('panorama.videorenderer.resumerender', () => {
-        console.log(1111111);
-        window.parent.postMessage(
-            {
-                source: "qjkankan",
-                event: "togglefdkkBGM",
-                params: {
-                    paly: false,
-                },
-            },
-            "*"
-        );
+      },
+      "*"
+    );
+    autoPlayMedia();
+  });
+  app.store.on("tags", (tags) => {
+    store.commit("tag/load", tags);
+  });
+  app.store.on("metadata", (metadata) => {
+    store.commit("scene/load", metadata);
+    console.log(metadata, "metadata");
+    if (!metadata.controls.showMap) {
+      app.MinMap.hide(true);
+    }
+  });
+  app.Scene.on("panorama.videorenderer.resumerender", () => {
+    // console.log(1111111);
+    window.parent.postMessage(
+      {
+        source: "qjkankan",
+        event: "togglefdkkBGM",
+        params: {
+          play: false,
+        },
+      },
+      "*"
+    );
 
-        window.parent.postMessage(
-            {
-                source: "qjkankan",
-                event: "toggleBgmStatus",
-                params: {
-                    status: false,
-                },
-            },
-            "*"
-        );
-    })
+    window.parent.postMessage(
+      {
+        source: "qjkankan",
+        event: "toggleBgmStatus",
+        params: {
+          status: false,
+        },
+      },
+      "*"
+    );
+  });
 
-    app.Scene.on('panorama.videorenderer.suspendrender', async () => {
-        let player = await getApp().TourManager.player
-        if (!player.isPlaying) {
-            // musicPlayer.resume()
-            window.parent.postMessage(
-                {
-                    source: "qjkankan",
-                    event: "togglefdkkBGM",
-                    params: {
-                        paly: true,
-                    },
-                },
-                "*"
-            );
-            window.parent.postMessage(
-                {
-                    source: "qjkankan",
-                    event: "toggleBgmStatus",
-                    params: {
-                        status: true,
-                    },
-                },
-                "*"
-            );
-        }
-    })
-    app.Camera.on('mode.beforeChange', ({ fromMode, toMode, floorIndex }) => {
-        if (fromMode) {
-            store.commit('setFlying', true)
+  app.Scene.on("panorama.videorenderer.suspendrender", async () => {
+    let player = await getApp().TourManager.player;
+    if (!player.isPlaying) {
+      // musicPlayer.resume()
+      window.parent.postMessage(
+        {
+          source: "qjkankan",
+          event: "togglefdkkBGM",
+          params: {
+            play: true,
+          },
+        },
+        "*"
+      );
+      window.parent.postMessage(
+        {
+          source: "qjkankan",
+          event: "toggleBgmStatus",
+          params: {
+            status: true,
+          },
+        },
+        "*"
+      );
+    }
+  });
+  app.Camera.on("mode.beforeChange", ({ fromMode, toMode, floorIndex }) => {
+    if (fromMode) {
+      store.commit("setFlying", true);
+    }
+  });
+  app.Camera.on("mode.afterChange", ({ toMode, floorIndex }) => {
+    store.commit("setFlying", false);
+  });
+  app.Camera.on("flying.started", (pano) => {
+    store.commit("setFlying", true);
+  });
+  app.Camera.on("flying.ended", ({ targetPano }) => {
+    store.commit("setFlying", false);
+    store.commit("setPanoId", targetPano.id);
+  });
+  app.TourManager.on("loaded", async (tour) => {
+    let tours = JSON.parse(
+      JSON.stringify(app.TourManager.tours, (key, val) => {
+        if (key === "audio") {
+          return null;
+        } else {
+          return val;
         }
-    })
-    app.Camera.on('mode.afterChange', ({ toMode, floorIndex }) => {
-        store.commit('setFlying', false)
-    })
-    app.Camera.on('flying.started', pano => {
-        store.commit('setFlying', true)
-    })
-    app.Camera.on('flying.ended', ({ targetPano }) => {
-        store.commit('setFlying', false)
-        store.commit('setPanoId', targetPano.id)
-    })
-    app.TourManager.on('loaded', async tour => {
-        let tours = JSON.parse(
-            JSON.stringify(app.TourManager.tours, (key, val) => {
-                if (key === 'audio') {
-                    return null
-                } else {
-                    return val
-                }
-            })
-        )
-        store.commit('tour/setData', {
-            tours: tours,
-        })
+      })
+    );
+    store.commit("tour/setData", {
+      tours: tours,
+    });
 
-        window.parent.postMessage(
-            {
-                source: "qjkankan",
-                event: "toursList",
-                params: {
-                    tours,
-                },
-            },
-            "*"
-        );
+    window.parent.postMessage(
+      {
+        source: "qjkankan",
+        event: "toursList",
+        params: {
+          tours,
+        },
+      },
+      "*"
+    );
 
-        store.commit('tour/setBackUp', {
-            tours: JSON.parse(
-                JSON.stringify(app.TourManager.tours, (key, val) => {
-                    if (key === 'audio') {
-                        return null
-                    } else {
-                        return val
-                    }
-                })
-            ),
+    store.commit("tour/setBackUp", {
+      tours: JSON.parse(
+        JSON.stringify(app.TourManager.tours, (key, val) => {
+          if (key === "audio") {
+            return null;
+          } else {
+            return val;
+          }
         })
-    })
-    app.store.on('floorcad', floor => store.commit('scene/loadFloorData', floor))
-    app.store.on('flooruser', floor => store.commit('scene/loadFloorData', floor)) //4.7以后新楼层方式
-    app.render()
-})
+      ),
+    });
+  });
+  app.store.on("floorcad", (floor) =>
+    store.commit("scene/loadFloorData", floor)
+  );
+  app.store.on("flooruser", (floor) =>
+    store.commit("scene/loadFloorData", floor)
+  ); //4.7以后新楼层方式
+  app.render();
+});
 </script>

+ 1 - 0
packages/qjkankan-view/.env.prod

@@ -2,6 +2,7 @@ NODE_ENV=production
 VUE_APP_STATIC_DIR=showviewer
 VUE_APP_CDN=https://4dkk.4dage.com
 VUE_APP_PROXY_URL_ROOT='https://www.4dkankan.com'
+VUE_APP_RESOURCE_URL='https://www.4dkankan.com/panorama/'
 VUE_APP_PROXY_URL='https://www.4dkankan.com/qjkankan/'
 VUE_APP_URL_FILL=/qjkankan
 

+ 1 - 0
packages/qjkankan-view/.env.testdev

@@ -1,6 +1,7 @@
 VUE_APP_STATIC_DIR=showviewer
 VUE_APP_CDN=https://ossxiaoan.4dage.com
 VUE_APP_PROXY_URL_ROOT='https://test.4dkankan.com'
+VUE_APP_RESOURCE_URL='https://test.4dkankan.com/panorama/'
 VUE_APP_PROXY_URL='https://test.4dkankan.com/qjkankan/'
 VUE_APP_URL_FILL=
 

+ 1 - 0
packages/qjkankan-view/.env.testprod

@@ -2,6 +2,7 @@ NODE_ENV=production
 VUE_APP_STATIC_DIR=showviewer
 VUE_APP_CDN=https://ossxiaoan.4dage.com
 VUE_APP_PROXY_URL_ROOT='https://test.4dkankan.com'
+VUE_APP_RESOURCE_URL='https://test.4dkankan.com/panorama/'
 VUE_APP_PROXY_URL='https://test.4dkankan.com/qjkankan/'
 VUE_APP_URL_FILL=/qjkankan
 # 接口请求地址

+ 25 - 19
packages/qjkankan-view/src/components/Fdkk/index.vue

@@ -1,14 +1,13 @@
 <template>
   <div class="fdkkcon">
     <template v-if="fdkkCurrentVersion == 'v3'">
-      
       <iframe
         allowfullscreen="true"
         allow="autoplay"
         :key="currentScene.sceneCode"
         v-if="!isMobile"
         id="fdkkifr"
-        :src="`https://test.4dkankan.com/spc.html?m=${currentScene.sceneCode}&lang=${lang}`"
+        :src="`/spc.html?m=${currentScene.sceneCode}&lang=${lang}`"
         frameborder="0"
       ></iframe>
       <!-- <iframe :key="currentScene.sceneCode" v-if="!isMobile" id="fdkkifr" :src="`https://test.4dkankan.com/spc.html?m=${currentScene.sceneCode}`" -->
@@ -23,7 +22,7 @@
         :url="
           otherLink
             ? otherLink
-            : `https://test.4dkankan.com/embed.html?from=mingyuan&m=${
+            : `/embed.html?from=mingyuan&m=${
                 embeM || currentScene.sceneCode
               }&lang=${lang}&scene-link=1&rnd=${rnd}`
         "
@@ -37,7 +36,7 @@
       :key="currentScene.sceneCode"
       v-else
       id="fdkkifr"
-      :src="`http://192.168.0.186:8081/${isMobile ? 'smg' : 'spg'}.html?m=${
+      :src="`${isMobile ? 'smg' : 'spg'}.html?m=${
         currentScene.sceneCode
       }&lang=${lang}`"
       frameborder="0"
@@ -50,7 +49,15 @@
 </template>
 
 <script setup>
-import { ref, watch, computed, onUnmounted, onMounted, nextTick } from "vue";
+import {
+  ref,
+  watch,
+  computed,
+  onUnmounted,
+  onMounted,
+  nextTick,
+  unref,
+} from "vue";
 import { useStore } from "vuex";
 import browser from "@/utils/browser";
 
@@ -64,6 +71,7 @@ const isMobile = computed(() => browser.isMobile());
 const lang = computed(() => config.lang);
 
 const currentScene = computed(() => store.getters["scene/currentScene"]);
+const isHasV4BGM = computed(() => store.getters["audio/isHasV4BGM"]);
 const fdkkCurrentVersion = computed(
   () => store.getters["scene/fdkkCurrentVersion"]
 );
@@ -107,9 +115,8 @@ const handleMessage = (res) => {
       store.commit("functions/setVrStatus", params.status);
     }
 
-    //场景本身的背景音乐 (同时可判断场景已经加载完成)
+    // V4场景本身的背景音乐 (同时可判断场景已经加载完成)
     if (event == "fdkkBgmLink") {
-      // store.commit('fdkk/setFdkkBGM', params.music)
       console.log("fdkkBgmLink", params.music);
       store.dispatch("audio/initV4BGM", params.music);
       // loading完毕
@@ -128,21 +135,20 @@ const handleMessage = (res) => {
     }
 
     if (event == "toggleBgmStatus") {
-      // if (params.status) {
-      //   musicPlayer.resume()
-      // } else {
-      //   musicPlayer.pause(true)
-      // }
+      // debugger;
+      if (params.status) {
+        if (unref(isHasV4BGM)) {
+          store.dispatch("audio/playBGM", 2);
+        } else {
+          store.dispatch("audio/playBGM", 0);
+        }
+      } else {
+        store.dispatch("audio/pauseBGM");
+      }
     }
 
     if (event == "autoPlayBgm") {
-      // useMusicPlayer.player.watchPlay(true)
-      // if (!useMusicPlayer.player.isPlay && !musicPlayer.pauseFromOther) {
-      //   musicPlayer.pauseFromOther = true
-      //   setTimeout(() => {
-      //     musicPlayer.play()
-      //   }, 50);
-      // }
+      store.dispatch("audio/playBGM", 2);
     }
   }
 };

+ 192 - 0
packages/qjkankan-view/src/components/Fdkk/index_dev.vue

@@ -0,0 +1,192 @@
+<template>
+  <div class="fdkkcon">
+    <template v-if="fdkkCurrentVersion == 'v3'">
+      <iframe
+        allowfullscreen="true"
+        allow="autoplay"
+        :key="currentScene.sceneCode"
+        v-if="!isMobile"
+        id="fdkkifr"
+        :src="`https://test.4dkankan.com/spc.html?m=${currentScene.sceneCode}&lang=${lang}`"
+        frameborder="0"
+      ></iframe>
+      <!-- <iframe :key="currentScene.sceneCode" v-if="!isMobile" id="fdkkifr" :src="`https://test.4dkankan.com/spc.html?m=${currentScene.sceneCode}`" -->
+
+      <!-- v3场景移动端,用embed.html定制开发 -->
+      <v3mobile
+        v-else
+        @changeUrl="handleChange"
+        @otherUrl="handleOther"
+        :somedatainfo="somedatainfo"
+        :key="embeM || currentScene.sceneCode"
+        :url="
+          otherLink
+            ? otherLink
+            : `https://test.4dkankan.com/embed.html?from=mingyuan&m=${
+                embeM || currentScene.sceneCode
+              }&lang=${lang}&scene-link=1&rnd=${rnd}`
+        "
+      />
+    </template>
+    <!-- :url="otherLink ? otherLink : `https://test.4dkankan.com/embed.html?from=mingyuan&m=${embeM || currentScene.sceneCode}&lang=zh&scene-link=1&rnd=${rnd}`" /> -->
+
+    <iframe
+      allowfullscreen="true"
+      allow="autoplay"
+      :key="currentScene.sceneCode"
+      v-else
+      id="fdkkifr"
+      :src="`http://192.168.0.186:8081/${isMobile ? 'smg' : 'spg'}.html?m=${
+        currentScene.sceneCode
+      }&lang=${lang}`"
+      frameborder="0"
+    ></iframe>
+
+    <!-- :src="`http://192.168.20.66:8080/${isMobile ? 'smg' : 'spg'}.html?m=${currentScene.sceneCode}`" -->
+
+    <!-- <iframe id="fdkkifr" :src="`${isMobile?'smg':'spg'}.html?m=${currentScene.sceneCode}`" frameborder="0"></iframe> -->
+  </div>
+</template>
+
+<script setup>
+import {
+  ref,
+  watch,
+  computed,
+  onUnmounted,
+  onMounted,
+  nextTick,
+  unref,
+} from "vue";
+import { useStore } from "vuex";
+import browser from "@/utils/browser";
+
+import v3mobile from "./v3fdkkmobile/iframe.vue";
+import { getApp } from "@/app";
+import config from "@/utils/config";
+
+const store = useStore();
+const isMobile = computed(() => browser.isMobile());
+
+const lang = computed(() => config.lang);
+
+const currentScene = computed(() => store.getters["scene/currentScene"]);
+const isHasV4BGM = computed(() => store.getters["audio/isHasV4BGM"]);
+const fdkkCurrentVersion = computed(
+  () => store.getters["scene/fdkkCurrentVersion"]
+);
+
+const somedatainfo = ref({});
+
+const embeM = ref(null);
+
+const otherLink = ref(null);
+
+const rnd = ref(null);
+
+const handleMessage = (res) => {
+  if (Object.prototype.toString.call(res.data) == "[object Object]") {
+    if (res.data.source !== "qjkankan") {
+      return;
+    }
+
+    let { event, params } = res.data;
+
+    //导览片段
+    if (event == "toursList") {
+      store.commit("fdkk/setToursList", params.tours);
+    }
+
+    //是否导览中
+    if (event == "isPlayTours") {
+      store.commit("fdkk/setIsPlayTours", params.isPlay);
+    }
+
+    // 是否flying
+    if (event == "isFlying") {
+      store.commit("fdkk/setIsFlying", params.isFlying);
+    }
+
+    if (event == "setMode") {
+      store.commit("fdkk/setMode", params.mode);
+    }
+
+    if (event == "setVR") {
+      store.commit("functions/setVrStatus", params.status);
+    }
+
+    // V4场景本身的背景音乐 (同时可判断场景已经加载完成)
+    if (event == "fdkkBgmLink") {
+      console.log("fdkkBgmLink", params.music);
+      store.dispatch("audio/initV4BGM", params.music);
+      // loading完毕
+      getApp().Scene.emit("ready");
+    }
+
+    if (event == "fdkkMetadata") {
+      store.commit("fdkk/setMetadata", params.metadata);
+    }
+
+    if (event == "toggleFdkkHotspot") {
+      if (params.status == "open") {
+        store.commit("functions/setShowScenesList", false);
+        store.commit("fdkk/setShowToursList", false);
+      }
+    }
+
+    if (event == "toggleBgmStatus") {
+      // debugger;
+      if (params.status) {
+        if (unref(isHasV4BGM)) {
+          store.dispatch("audio/playBGM", 2);
+        } else {
+          store.dispatch("audio/playBGM", 0);
+        }
+      } else {
+        store.dispatch("audio/pauseBGM");
+      }
+    }
+
+    if (event == "autoPlayBgm") {
+      store.dispatch("audio/playBGM", 2);
+    }
+  }
+};
+
+onMounted(() => {
+  nextTick(() => {
+    window.removeEventListener("message", handleMessage);
+    window.addEventListener("message", handleMessage);
+  });
+});
+
+onUnmounted(() => {
+  window.removeEventListener("message", handleMessage);
+});
+
+const handleOther = (data) => {
+  otherLink.value = data;
+  rnd.value = Math.random();
+};
+const handleChange = (data) => {
+  embeM.value = data;
+  rnd.value = Math.random();
+};
+</script>
+
+<style lang="scss" scoped>
+.fdkkcon {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+
+  > iframe {
+    width: 100%;
+    height: 100%;
+  }
+}
+</style>

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

@@ -9,7 +9,7 @@ import { useStore } from "vuex";
 import { useApp, getApp } from "@/app";
 import Fdkk from "../Fdkk";
 import { getFdkkInfo } from "@/apis";
-// import { useMusicPlayer, useSoundPlayer } from "@/utils/sound";
+
 import browser from "@/utils/browser";
 import config from "@/utils/config";
 
@@ -96,7 +96,7 @@ watch(
               data.data.bgMusic != "noMusic";
 
             store.commit("fdkk/setV3FdkkBGM", flag);
-            if (!unref(isHasNormalBGM) && !flag) {
+            if (unref(isHasNormalBGM) && !flag) {
               store.dispatch("audio/pauseBGM");
             }
           }

+ 0 - 3
packages/qjkankan-view/src/components/UIGather/control.vue

@@ -125,15 +125,12 @@ const isHasNormalBGM = computed(() => store.getters["audio/isHasNormalBGM"]);
 const isCurrentPlaying = computed(
   () => store.getters["audio/isCurrentPlaying"]
 );
-const isHasV3BGM = computed(() => store.getters["audio/isHasV3BGM"]);
 const isHasV4BGM = computed(() => store.getters["audio/isHasV4BGM"]);
 const isHasExplanationBGM = computed(
   () => store.getters["audio/isHasExplanationBGM"]
 );
 //BMG playing音乐
 const isPlayNormalBGM = computed(() => store.getters["audio/isPlayNormalBGM"]);
-const isPlayV3BGM = computed(() => store.getters["audio/isPlayV3BGM"]);
-const isPlayV4BGM = computed(() => store.getters["audio/isPlayV4BGM"]);
 const isPlayExplanationBGM = computed(
   () => store.getters["audio/isPlayExplanationBGM"]
 );

+ 13 - 2
packages/qjkankan-view/src/store/modules/audio.js

@@ -1,6 +1,8 @@
 import { useAudio } from '@/hooks/useAudio';
 import { unref } from 'vue';
 
+const resourceURL = process.env.VUE_APP_RESOURCE_URL
+
 export default {
     namespaced: true,
     state() {
@@ -65,7 +67,7 @@ export default {
             return getters.currentAudio.type === 0
         },
         isPlayV3BGM: (_, getters) => {
-            return getters.currentAudio.type === 2
+            return getters.currentAudio.type === 1
         },
         isPlayV4BGM: (_, getters) => {
             return getters.currentAudio.type === 2
@@ -112,7 +114,16 @@ export default {
         },
         initV4BGM({ commit }, url) {
             // v4音乐
-            commit('setV4BGM', { url, repeat: true, isAuto: true });
+            let newURL = ''
+            if (url) {
+                if (!/^https?:\/\//.test(url)) {
+                    newURL = resourceURL + url
+                } else {
+                    newURL = url
+                }
+            }
+
+            commit('setV4BGM', { url: newURL, repeat: true, isAuto: true });
         },
         playBGM({ commit, getters, state }, type) {
             const index = getters['currentAudio'].order;