mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
72 lines
1.4 KiB
Vue
72 lines
1.4 KiB
Vue
<template>
|
|
<div class="van-steps" :class="stepsClass">
|
|
<div class="van-steps__status" v-if="title || description">
|
|
<div class="van-steps__icon" v-if="icon || $slots.icon">
|
|
<slot name="icon">
|
|
<van-icon :name="icon" :class="iconClass"></van-icon>
|
|
</slot>
|
|
</div>
|
|
<div class="van-steps__message">
|
|
<div class="van-steps__message-wrapper">
|
|
<div class="van-steps__title" v-text="title"></div>
|
|
<div class="van-steps__desc" v-text="description"></div>
|
|
</div>
|
|
</div>
|
|
<slot name="message-extra">
|
|
</slot>
|
|
</div>
|
|
<div class="van-steps__items" :class="{
|
|
'van-steps__items--alone': !title && !description
|
|
}">
|
|
<slot></slot>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import Icon from '../icon';
|
|
|
|
export default {
|
|
name: 'van-steps',
|
|
|
|
components: {
|
|
[Icon.name]: Icon
|
|
},
|
|
|
|
props: {
|
|
active: Number,
|
|
icon: String,
|
|
iconClass: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
title: String,
|
|
description: String,
|
|
direction: {
|
|
type: String,
|
|
default: 'horizontal'
|
|
},
|
|
activeColor: {
|
|
type: String,
|
|
default: '#06bf04'
|
|
}
|
|
},
|
|
|
|
data() {
|
|
return {
|
|
steps: []
|
|
};
|
|
},
|
|
|
|
computed: {
|
|
stepsClass() {
|
|
return [
|
|
`van-steps--${this.direction}`, {
|
|
[`van-steps--${this.steps.length}`]: this.direction === 'horizontal'
|
|
}
|
|
];
|
|
}
|
|
}
|
|
};
|
|
</script>
|