瑶都万能墙
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

76 lines
1.2 KiB

<template>
<view class="article-item" @click="handleClick">
<view class="image-container">
<image :src="item.image" mode="aspectFill" class="article-image" />
</view>
<view class="content-container">
<text class="article-title">{{ item.title }}</text>
</view>
</view>
</template>
<script>
export default {
name: 'ArticleItem',
props: {
item: {
type: Object,
required: true,
default: () => ({
title: '',
image: ''
})
}
},
methods: {
handleClick() {
this.$emit('click', this.item);
}
}
}
</script>
<style scoped lang="scss">
.article-item {
display: flex;
flex-direction: column;
background: #fff;
border-radius: 12rpx;
overflow: hidden;
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
margin-bottom: 20rpx;
transition: transform 0.2s ease;
&:active {
transform: scale(0.98);
}
}
.image-container {
width: 100%;
height: 300rpx;
overflow: hidden;
.article-image {
width: 100%;
height: 100%;
object-fit: cover;
}
}
.content-container {
padding: 20rpx;
.article-title {
font-size: 30rpx;
font-weight: 500;
color: #333;
line-height: 1.6;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
}
}
</style>