|
@@ -26,27 +26,26 @@
|
|
|
<script setup lang="ts">
|
|
|
import { ModeEnum } from "@/types";
|
|
|
import type { SpecialTag, Track } from "@/types";
|
|
|
-import { computed, defineProps, watch } from "vue";
|
|
|
+import { computed, defineProps, toRefs, watch } from "vue";
|
|
|
import { store } from "./store";
|
|
|
|
|
|
-const props =
|
|
|
- defineProps<{
|
|
|
- trackList: Array<Track>;
|
|
|
- specialTagList: Array<SpecialTag>;
|
|
|
- sliceImage: HTMLImageElement;
|
|
|
- dx: number;
|
|
|
- dy: number;
|
|
|
- }>();
|
|
|
-const { trackList, sliceImage, dx, dy } = props;
|
|
|
+const props = defineProps<{
|
|
|
+ trackList: Array<Track>;
|
|
|
+ specialTagList: Array<SpecialTag>;
|
|
|
+ sliceImage: HTMLImageElement;
|
|
|
+ dx: number;
|
|
|
+ dy: number;
|
|
|
+}>();
|
|
|
+const { trackList, sliceImage, dx, dy } = toRefs(props);
|
|
|
|
|
|
const isTrackMode = computed(() => store.setting.mode === ModeEnum.TRACK);
|
|
|
|
|
|
const computeTopAndLeft = (track: Track | SpecialTag) => {
|
|
|
- const topInsideSlice = track.offsetY - dy;
|
|
|
- const leftInsideSlice = track.offsetX - dx;
|
|
|
+ const topInsideSlice = track.offsetY - dy.value;
|
|
|
+ const leftInsideSlice = track.offsetX - dx.value;
|
|
|
return {
|
|
|
- top: (topInsideSlice / sliceImage.naturalHeight) * 100 + "%",
|
|
|
- left: (leftInsideSlice / sliceImage.naturalWidth) * 100 + "%",
|
|
|
+ top: (topInsideSlice / sliceImage.value.naturalHeight) * 100 + "%",
|
|
|
+ left: (leftInsideSlice / sliceImage.value.naturalWidth) * 100 + "%",
|
|
|
"font-size": store.setting.uiSetting["answer.paper.scale"] * 2.2 + "em",
|
|
|
};
|
|
|
};
|