45 lines
1.1 KiB
Vue
45 lines
1.1 KiB
Vue
<template>
|
|
<div class="ad-item" @click.stop="goPage(item)">
|
|
<el-image :src="item.image" fit="cover" style="width: 100%; height: 100%"></el-image>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { paramsToStr } from "~/utils/tools";
|
|
export default {
|
|
components: {},
|
|
props: {
|
|
item: {
|
|
type: Object,
|
|
default: () => ({}),
|
|
},
|
|
},
|
|
methods: {
|
|
goPage(item) {
|
|
let { link_type, link, params } = item;
|
|
switch (link_type) {
|
|
case 3:
|
|
window.open(item.link);
|
|
break;
|
|
default:
|
|
if (["/goods_details"].includes(link)) {
|
|
link += `/${params.id}`;
|
|
} else {
|
|
link += paramsToStr(params);
|
|
}
|
|
this.$router.push({
|
|
path: link,
|
|
});
|
|
}
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.ad-item {
|
|
width: 100%;
|
|
height: 100%;
|
|
cursor: pointer;
|
|
}
|
|
</style> |