效果图
要求:折叠面板跟随步骤打开,到哪一步,打开哪一步的折叠面板
完整代码(因为步骤比较简单,就不做注释了,有问题可以留言)
<template>
<div class="app-container">
<div>
<el-steps direction="vertical"
finish-status="success"
:active="Number(activeNames)">
<el-step :title="i.stepTitle"
class="step"
v-for="i in stepList"
:key="i.id">
<template slot="description">
<div class="description">
<div class="descriptionText">
<el-collapse v-model="activeNames"
accordion
@change="handleChange">
<el-collapse-item :title="i.title"
:name="i.name">
<div>{{i.text}}</div>
</el-collapse-item>
</el-collapse>
</div>
</div>
</template>
</el-step>
</el-steps>
</div>
</div>
</template>
<script>
export default {
data() {
return {
activeNames: '1',
active: 0,
stepList: [
{
name: '1',
title: '第一条',
stepTitle: '步骤1',
id: 1,
text: '第一条的内容',
},
{
name: '2',
title: '第二条',
stepTitle: '步骤2',
id: 2,
text: '第二条的内容',
},
{
name: '3',
title: '第三条',
stepTitle: '步骤3',
id: 3,
text: '第三条的内容',
},
],
};
},
methods: {
handleChange() {
if (this.active++ > 3) {
this.active = 0;
this.activeNamesNum = 0;
} else {
this.activeNamesNum++;
}
console.log(this.activeNames);
},
},
};
</script>
<style scoped>
.line {
text-align: center;
}
.step {
width: 320px;
}
.step ::v-deep .el-step__description {
padding-right: 0;
padding-bottom: 6px;
}
.step ::v-deep .el-collapse-item__content {
padding-bottom: 12px;
}
.step ::v-deep .el-collapse-item__header {
height: 32px;
line-height: 32px;
border: none;
}
.testRight ::v-deep .el-step.is-vertical .el-step__title {
line-height: 18px;
padding-bottom: 12px;
}
.step .description {
width: 100%;
}
</style>