bill 4 ヶ月 前
コミット
9674c3c8df
1 ファイル変更18 行追加11 行削除
  1. 18 11
      src/layout/model-list/sign.vue

+ 18 - 11
src/layout/model-list/sign.vue

@@ -48,7 +48,7 @@ import { custom } from "@/env";
 import { getSceneModel } from "@/sdk";
 
 import type { FuseModel } from "@/store";
-import { computed, ref } from "vue";
+import { computed, ref, watchEffect } from "vue";
 import { currentModel, fuseModel } from "@/model";
 
 type ModelProps = { model: FuseModel; canChange?: boolean; search?: boolean };
@@ -57,14 +57,23 @@ const props = defineProps<ModelProps>();
 const active = computed(
   () => custom.currentModel === props.model && currentModel.value === fuseModel
 );
-const sceneModel = getSceneModel(props.model);
-const supportPano = ref(sceneModel?.supportPano());
-if (sceneModel) {
-  sceneModel.bus.on("loadDone", () => {
-    console.error(sceneModel.supportPano());
-    supportPano.value = sceneModel.supportPano();
-  });
-}
+const show = getFuseModelShowVariable(props.model);
+const supportPano = ref(false);
+watchEffect(() => {
+  if (!show.value) {
+    supportPano.value = false;
+    return;
+  }
+  const sceneModel = getSceneModel(props.model);
+  const support = sceneModel?.supportPano();
+  console.error("sceneModel", props.model.title, sceneModel, sceneModel?.supportPano());
+  supportPano.value = !!support;
+});
+// if (sceneModel) {
+//   sceneModel.bus.on("loadDone", () => {
+//     supportPano.value = sceneModel.supportPano();
+//   });
+// }
 
 type ModelEmits = {
   (e: "changeSelect", selected: boolean): void;
@@ -72,8 +81,6 @@ type ModelEmits = {
   (e: "click", mode: "pano" | "fuse"): void;
 };
 defineEmits<ModelEmits>();
-
-const show = getFuseModelShowVariable(props.model);
 </script>
 
 <style lang="scss" scoped src="./style.scss"></style>