<template>
|
|
<view class="flex card" @click="jumpToDetail(data.id)">
|
|
<view class="flex main" style="opacity: 0;">
|
|
<view class="left">
|
|
<thesisInfoView :data="data"></thesisInfoView>
|
|
</view>
|
|
<view class="right">
|
|
<image class="img" :src="data.paperImage" mode="aspectFill"></image>
|
|
</view>
|
|
</view>
|
|
<view class="bg">
|
|
<image class="img" src="@/static/image/card-bg-icon.png" mode="widthFix"></image>
|
|
</view>
|
|
<view class="flex main" style="position: absolute; left: 0; top: 0;">
|
|
<view class="left">
|
|
<thesisInfoView :data="data"></thesisInfoView>
|
|
</view>
|
|
<view class="right">
|
|
<image class="img" :src="data.paperImage" mode="aspectFill"></image>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import thesisInfoView from './thesisInfoView.vue';
|
|
|
|
export default {
|
|
components: {
|
|
thesisInfoView,
|
|
},
|
|
props: {
|
|
data: {
|
|
type: Object,
|
|
default() {
|
|
return {}
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
jumpToDetail(thesisId) {
|
|
this.$emit('jumpToDetail')
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
|
|
.card {
|
|
position: relative;
|
|
background: linear-gradient(to right, rgba($color: #C8C3FD, $alpha: 0.22), #FFFFFF);
|
|
|
|
.bg {
|
|
position: absolute;
|
|
bottom: 0;
|
|
left: 4rpx;
|
|
font-size: 0;
|
|
|
|
.img {
|
|
width: 206rpx;
|
|
height: auto;
|
|
}
|
|
}
|
|
|
|
.main {
|
|
// align-items: flex-start;
|
|
width: 100%;
|
|
}
|
|
|
|
.left {
|
|
flex: 1;
|
|
position: relative;
|
|
}
|
|
|
|
.right {
|
|
padding: 16rpx 18rpx 14rpx 0;
|
|
box-sizing: border-box;
|
|
|
|
.img {
|
|
// $w: 225rpx;
|
|
// width: 225rpx;
|
|
// height: calc(#{$w} * 1184 / 750);
|
|
width: 184rpx;
|
|
height: 290rpx;
|
|
}
|
|
}
|
|
}
|
|
</style>
|