47 lines
		
	
	
		
			910 B
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			910 B
		
	
	
	
		
			Vue
		
	
	
<!-- 装修图文组件:热区 -->
 | 
						||
<template>
 | 
						||
  <view class="hotzone-wrap">
 | 
						||
    <image :src="sheep.$url.cdn(data.imgUrl)" style="width: 100%" mode="widthFix"></image>
 | 
						||
    <view
 | 
						||
      class="hotzone-box"
 | 
						||
      v-for="(item, index) in data.list"
 | 
						||
      :key="index"
 | 
						||
      :style="[
 | 
						||
        {
 | 
						||
          top: `${item.top}px`,
 | 
						||
          left: `${item.left}px`,
 | 
						||
          width: `${item.width}px`,
 | 
						||
          height: `${item.height}px`,
 | 
						||
        },
 | 
						||
      ]"
 | 
						||
      @tap.stop="sheep.$router.go(item.url)"
 | 
						||
    >
 | 
						||
    </view>
 | 
						||
  </view>
 | 
						||
</template>
 | 
						||
 | 
						||
<script setup>
 | 
						||
  import sheep from '@/sheep';
 | 
						||
 | 
						||
  // 接收参数
 | 
						||
  const props = defineProps({
 | 
						||
    data: {
 | 
						||
      type: Object,
 | 
						||
      default: () => ({}),
 | 
						||
    },
 | 
						||
    styles: {
 | 
						||
      type: Object,
 | 
						||
      default: () => ({}),
 | 
						||
    },
 | 
						||
  });
 | 
						||
</script>
 | 
						||
 | 
						||
<style lang="scss" scoped>
 | 
						||
  .hotzone-wrap {
 | 
						||
    position: relative;
 | 
						||
  }
 | 
						||
  .hotzone-box {
 | 
						||
    position: absolute;
 | 
						||
  }
 | 
						||
</style>
 |