strategy.vue
1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<template>
<LayoutApp title="闲鱼潮玩转攻略" :show-back="true" :back-action="goBack">
<ul>
<li v-for="(item, index) in dataList" :key="index">
<div v-if="item.urls && item.urls.length > 0" class="link-container">
<a href="javascript:;"
v-for="linkItem in item.urls"
:key="linkItem.link"
:style="{left: linkItem.left, top: linkItem.top, width: linkItem.width, height: linkItem.height}"
@click="jumpTo"
:data-item="JSON.stringify(linkItem)"
>
</a>
</div>
<img :src="item.image" alt=""/>
</li>
</ul>
</LayoutApp>
</template>
<script>
import data from './image.json';
export default {
name: 'Strategy',
data() {
return {
dataList: []
}
},
methods: {
goBack() {
this.$router.go(-1);
},
jumpTo(event) {
let linkItem = JSON.parse(event.currentTarget.dataset.item || '{}') || {};
if (linkItem.subName === '') {
this.$router.push({
name: linkItem.linkName
});
} else {
this.$router.push({
name: linkItem.linkName,
params: {
subName: linkItem.subName
}
});
}
}
},
mounted() {
let result = data.result;
this.dataList = result.xianyuchaoList;
}
};
</script>
<style lang="scss" scoped>
ul {
width: 100%;
list-style: none;
margin: 0;
padding: 0;
li {
position: relative;
width: 100%;
overflow: hidden;
img {
width: 100%;
float: left;
}
.link-container {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
z-index: 9;
a {
position: absolute;
display: block;
width: 200px;
height: 100px;
background-color: transparent;
}
}
}
}
</style>