element/packages/steps/src/steps.vue

58 lines
1001 B
Vue
Raw Normal View History

<template>
<div
class="el-steps"
:class="['is-' + direction, center ? 'is-center' : '']">
<slot></slot>
</div>
</template>
<script>
export default {
name: 'ElSteps',
props: {
2017-01-19 09:44:27 +00:00
space: [Number, String],
active: Number,
direction: {
type: String,
default: 'horizontal'
},
2016-11-13 02:44:15 +00:00
alignCenter: Boolean,
center: Boolean,
finishStatus: {
type: String,
default: 'finish'
},
processStatus: {
type: String,
default: 'process'
}
},
data() {
return {
steps: [],
stepOffset: 0
};
},
2016-09-09 04:28:56 +00:00
watch: {
active(newVal, oldVal) {
this.$emit('change', newVal, oldVal);
},
2016-09-09 04:28:56 +00:00
steps(steps) {
steps.forEach((child, index) => {
child.index = index;
});
if (this.center) {
const len = steps.length;
this.$nextTick(() => {
this.stepOffset = steps[len - 1].$el.getBoundingClientRect().width / (len - 1);
});
}
}
}
};
</script>