bill 8 ヶ月 前
コミット
1844c4d90a
2 ファイル変更11 行追加11 行削除
  1. 8 7
      src/components/tagging/sign-new.vue
  2. 3 4
      src/hook/use-pixel.ts

+ 8 - 7
src/components/tagging/sign-new.vue

@@ -1,5 +1,5 @@
 <template>
-  <!-- <div
+  <div
     v-if="show && posStyle"
     class="hot-item pc"
     :style="posStyle"
@@ -38,7 +38,7 @@
         v-if="!!~pullIndex"
       />
     </div>
-  </div> -->
+  </div>
 </template>
 
 <script lang="ts" setup>
@@ -66,6 +66,12 @@ const emit = defineEmits<{
   ): void;
 }>();
 
+// const pos = ref();
+const [posStyle, pos] = usePixel(() => ({
+  localPos: { x: 0, y: 0, z: 0 },
+  modelId: "0",
+}));
+
 const queryItems = computed(() =>
   props.tagging.images.map((image) => ({
     type: MediaType.img,
@@ -149,11 +155,6 @@ tag.bus.on("leave", () => {
 });
 tag.bus.on("click", () => iconClickHandler());
 
-const [posStyle, pos] = usePixel(() => ({
-  localPos: { x: 0, y: 0, z: 0 },
-  modelId: "0",
-}));
-
 const changePos = () => {
   const c = tag.getImageCenter();
   pos.value = { localPos: c };

+ 3 - 4
src/hook/use-pixel.ts

@@ -13,12 +13,11 @@ export const usePixel = (
       pixel.value = void 0;
       return;
     }
-    console.error(
-      pos.value)
     const screenPos = sdk.getScreenByPosition(
       pos.value.localPos,
       pos.value.modelId
     );
+    console.log(pos.value)
     if (!screenPos) {
       pixel.value = void 0;
       return;
@@ -29,11 +28,11 @@ export const usePixel = (
       top: screenPos.pos.y + "px",
     };
   };
-  watch(pos, updatePosStyle, {deep: true})
-
   useViewStack(() => {
+    const stop = watch(pos, updatePosStyle, {deep: true})
     sdk.sceneBus.on("cameraChange", updatePosStyle);
     return () => {
+      stop()
       sdk.sceneBus.off("cameraChange", updatePosStyle);
     };
   });