diff --git a/packages/steps/src/step.vue b/packages/steps/src/step.vue
index 1527c778a..98ee0ea75 100644
--- a/packages/steps/src/step.vue
+++ b/packages/steps/src/step.vue
@@ -173,6 +173,10 @@ export default {
mounted() {
const unwatch = this.$watch('index', val => {
this.$watch('$parent.active', this.updateStatus, { immediate: true });
+ this.$watch('$parent.processStatus', () => {
+ const activeIndex = this.$parent.active;
+ this.updateStatus(activeIndex);
+ }, { immediate: true });
unwatch();
});
}
diff --git a/test/unit/specs/steps.spec.js b/test/unit/specs/steps.spec.js
index 527cce896..7955240b6 100644
--- a/test/unit/specs/steps.spec.js
+++ b/test/unit/specs/steps.spec.js
@@ -59,6 +59,29 @@ describe('Steps', () => {
});
});
+ it('update processStatus', done => {
+ vm = createVue({
+ template: `
+
+
+
+
+ `,
+ data() {
+ return { processStatus: 'error' };
+ }
+ });
+
+ vm.$nextTick(_ => {
+ expect(vm.$el.querySelectorAll('.el-step__head.is-error')).to.length(1);
+ vm.processStatus = 'process';
+ vm.$nextTick(_ => {
+ expect(vm.$el.querySelectorAll('.el-step__head.is-process')).to.length(1);
+ done();
+ });
+ });
+ });
+
it('finishStatus', done => {
vm = createVue(`