MapContainer.vue 789 B

123456789101112131415161718192021222324252627282930
  1. <template>
  2. <div
  3. :style="{
  4. position: 'relative',
  5. width: `${mapWidth}px`,
  6. height: `${mapHeight}px`,
  7. background: `url(${getRealImgUrl()})`,
  8. }"
  9. >
  10. <Transformer v-for="item in showShops" :key="item.id" :shop="item" />
  11. </div>
  12. </template>
  13. <script setup lang="ts">
  14. import { storeToRefs } from 'pinia';
  15. import Transformer from './Transformer.vue';
  16. import useMapEditor from '../../stores/useMapEditor';
  17. import { useGlobSetting } from '@/hooks/setting';
  18. import urlJoin from 'url-join';
  19. const mapEditor = useMapEditor();
  20. const { mapWidth, mapHeight, bgImg, showShops } = storeToRefs(mapEditor);
  21. const globSetting = useGlobSetting();
  22. const getRealImgUrl = () => urlJoin(globSetting.imgUrl!, bgImg.value);
  23. </script>
  24. <style scoped></style>