Files
inkreach-uni/pages/index/components/StepsFlow.vue
T
2026-08-22 10:08:07 +08:00

156 lines
3.0 KiB
Vue

<template>
<!-- 4步开始你的按需定制生意 - Figma 1433:1295 -->
<view class="steps-section">
<text class="section-title">4步开始你的按需定制生意</text>
<!-- 步骤卡片横向滚动 -->
<scroll-view scroll-x class="steps-scroll" show-scrollbar="false">
<view class="steps-list">
<view
class="step-card"
:class="{ active: activeStep === index }"
v-for="(item, index) in steps"
:key="index"
@tap="onStepTap(index)"
>
<text class="step-num">{{ item.step }}</text>
<view class="step-text">
<text class="step-title">{{ item.title }}</text>
<text class="step-desc">{{ item.desc }}</text>
</view>
</view>
</view>
</scroll-view>
<!-- 预览大图 - image 25 370x370 6px圆角 -->
<view class="preview-wrap">
<image
class="preview-img"
src="/static/images/home/image_25_1484_1689.png"
mode="widthFix"
></image>
</view>
</view>
</template>
<script>
export default {
name: 'StepsFlow',
props: {
steps: {
type: Array,
default: () => []
}
},
data() {
return {
activeStep: 0
}
},
methods: {
onStepTap(index) {
this.activeStep = index
this.$emit('change', index)
}
}
}
</script>
<style scoped>
.steps-section {
width: 100%;
padding: 0;
background: #ffffff;
}
/* 区块标题 - 20px Heavy #1A1A1A 居中 */
.section-title {
display: block;
text-align: center;
font-size: 40rpx;
font-weight: 900;
color: #1a1a1a;
line-height: 1.45;
margin-top: 96rpx;
margin-bottom: 64rpx;
}
/* 步骤卡片横向滚动 */
.steps-scroll {
width: 100%;
white-space: nowrap;
padding: 0 20rpx;
box-sizing: border-box;
}
.steps-list {
display: inline-flex;
gap: 16rpx;
}
/* 卡片 - 166x80 圆角6px */
.step-card {
flex-shrink: 0;
width: 332rpx;
height: 160rpx;
padding: 20rpx;
background: #f2f2f2;
border-radius: 12rpx;
box-sizing: border-box;
display: flex;
align-items: flex-start;
gap: 16rpx;
}
.step-card.active {
background: #ff6800;
}
/* 步骤编号 - 16px Black weight 900 */
.step-num {
font-size: 32rpx;
font-weight: 900;
color: #ff6800;
line-height: 52rpx;
}
.step-card.active .step-num {
color: #ffffff;
}
.step-text {
flex: 1;
display: flex;
flex-direction: column;
}
/* 步骤标题 - 16px Medium */
.step-title {
font-size: 32rpx;
font-weight: 500;
color: #000000;
line-height: 44rpx;
}
.step-card.active .step-title {
color: #ffffff;
}
/* 步骤描述 - 10px Regular opacity 0.6 */
.step-desc {
margin-top: 6rpx;
font-size: 20rpx;
color: #000000;
opacity: 0.6;
line-height: 1.45;
white-space: normal;
}
.step-card.active .step-desc {
color: #ffffff;
opacity: 1;
}
/* 预览大图 - 370x370 6px圆角 */
.preview-wrap {
margin-top: 20rpx;
padding: 0 20rpx;
box-sizing: border-box;
}
.preview-img {
width: 100%;
border-radius: 12rpx;
display: block;
}
</style>