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>
 |