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