<template>
|
|
<view :class="['card', `card-${index % 5}`]">
|
|
<view class="header">
|
|
<view class="index">{{ getNum(index) }}</view>
|
|
<view class="intro">
|
|
<view class="title">{{ data.title }}</view>
|
|
<view class="desc">{{ data.desc }}</view>
|
|
</view>
|
|
</view>
|
|
<view class="main">
|
|
<image class="img" :src="data.url" mode="aspectFit"></image>
|
|
<view class="flex flex-column">
|
|
<view class="use">{{ data.use }}</view>
|
|
<view class="name-zh">{{ data.name }}</view>
|
|
<view class="name-en">{{ data.nameEn }}</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
props: {
|
|
index: {
|
|
type: Number,
|
|
default: 0,
|
|
},
|
|
data: {
|
|
type: Object,
|
|
default() {
|
|
return {}
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
getNum(index) {
|
|
let num = index + 1
|
|
return num < 10 ? `0${num}` : num
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
$header-height: 374rpx;
|
|
|
|
.card {
|
|
width: 100%;
|
|
height: auto;
|
|
padding-top: calc(#{$header-height} - 8rpx);
|
|
}
|
|
|
|
.header {
|
|
position: absolute;
|
|
top: 0;
|
|
left: -8rpx;
|
|
width: calc(100% + 8rpx * 2);
|
|
height: 374rpx;
|
|
padding: 32rpx;
|
|
box-sizing: border-box;
|
|
border-top-left-radius: 64rpx;
|
|
border-top-right-radius: 64rpx;
|
|
|
|
.index {
|
|
font-size: 128rpx;
|
|
font-weight: 900;
|
|
line-height: 1.4;
|
|
font-family: HarmonyOS Sans;
|
|
color: transparent;
|
|
background-image: linear-gradient(#FFFFFF, #FFFFFF00);
|
|
background-clip: text;
|
|
display: inline-block;
|
|
}
|
|
|
|
.intro {
|
|
position: absolute;
|
|
left: 32rpx;
|
|
bottom: 32rpx;
|
|
width: calc(100% - 32rpx * 2);
|
|
font-family: PingFang SC;
|
|
color: #FFFFFF;
|
|
|
|
.title {
|
|
font-weight: 600;
|
|
font-size: 40rpx;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.desc {
|
|
margin-top: 16rpx;
|
|
font-weight: 400;
|
|
font-size: 28rpx;
|
|
line-height: 1.3;
|
|
}
|
|
}
|
|
}
|
|
|
|
.main {
|
|
.img {
|
|
width: 100%;
|
|
height: 500rpx;
|
|
// margin: 48rpx 0;
|
|
}
|
|
|
|
.use{
|
|
font-family: PingFang SC;
|
|
font-weight: 600;
|
|
font-size: 48rpx;
|
|
line-height: 1.4;
|
|
color: #252545;
|
|
}
|
|
|
|
.name {
|
|
&-zh {
|
|
margin: 16rpx 0;
|
|
font-size: 64rpx;
|
|
font-weight: 900;
|
|
line-height: 1.4;
|
|
font-family: HarmonyOS Sans;
|
|
color: transparent;
|
|
background-clip: text;
|
|
display: inline-block;
|
|
}
|
|
|
|
&-en {
|
|
font-family: PingFang SC;
|
|
font-weight: 400;
|
|
font-size: 32rpx;
|
|
line-height: 1.4;
|
|
color: #989898;
|
|
}
|
|
}
|
|
}
|
|
|
|
.card {
|
|
&-0 {
|
|
$color: linear-gradient(to right, #667EE2, #77BDDF);
|
|
|
|
.header,
|
|
.name-zh {
|
|
background-image: $color;
|
|
}
|
|
}
|
|
}
|
|
.card {
|
|
&-1 {
|
|
$color: linear-gradient(to right, #BB7721, #EBBF5B);
|
|
|
|
.header,
|
|
.name-zh {
|
|
background-image: $color;
|
|
}
|
|
}
|
|
}
|
|
.card {
|
|
&-2 {
|
|
$color: linear-gradient(to right, #72281E, #AA4E3F);
|
|
|
|
.header,
|
|
.name-zh {
|
|
background-image: $color;
|
|
}
|
|
}
|
|
}
|
|
.card {
|
|
&-3 {
|
|
$color: linear-gradient(to right, #493489, #8360F6);
|
|
|
|
.header,
|
|
.name-zh {
|
|
background-image: $color;
|
|
}
|
|
}
|
|
}
|
|
.card {
|
|
&-4 {
|
|
$color: linear-gradient(to right, #699656, #B7D39C);
|
|
|
|
.header,
|
|
.name-zh {
|
|
background-image: $color;
|
|
}
|
|
}
|
|
}
|
|
</style>
|