12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <template>
- <view :style="[hotspotWrapStyle]">
- <view class="hotspot">
- <image :src="dataConfig.picStyle.url" mode="widthFix" class="image" :style="[imageRadius]"></image>
- <view v-for="(item, index) in dataConfig.picStyle.list" :key="item.number" :style="{
- top: `${item.starY}rpx`,
- left: `${item.starX}rpx`,
- width: `${item.areaWidth}rpx`,
- height: `${item.areaHeight}rpx`,
- }" class="area" @click="goPage(item.link)"></view>
- </view>
- </view>
- </template>
- <script>
- export default {
- props: {
- dataConfig: {
- type: Object,
- default: () => {}
- },
- isSortType: {
- type: String | Number,
- default: 0
- }
- },
- data() {
- return {}
- },
- computed: {
- imageRadius() {
- let borderRadius = `${this.dataConfig.fillet.val * 2}rpx`;
- if (this.dataConfig.fillet.type) {
- borderRadius =
- `${this.dataConfig.fillet.valList[0].val * 2}rpx ${this.dataConfig.fillet.valList[1].val * 2}rpx ${this.dataConfig.fillet.valList[2].val * 2}rpx ${this.dataConfig.fillet.valList[3].val * 2}rpx`;
- }
- return {
- 'border-radius': borderRadius,
- };
- },
- hotspotWrapStyle() {
- return {
- 'padding': `${this.dataConfig.topConfig.val}rpx ${this.dataConfig.prConfig.val}rpx ${this.dataConfig.bottomConfig.val}rpx`,
- 'margin-top': `${this.dataConfig.mbConfig.val}rpx`,
- 'background': this.dataConfig.bottomBgColor.color[0].item,
- };
- },
- },
- methods: {
- goPage(link) {
- this.$util.JumpPath(link);
- },
- },
- }
- </script>
- <style lang="scss" scoped>
- .hotspot {
- position: relative;
- .image {
- display: block;
- width: 100%;
- }
- .area {
- position: absolute;
- }
- }
- </style>
|