From 0d8e31f4740eb2ba1f404d9962498772485b3f06 Mon Sep 17 00:00:00 2001 From: xiong hanbiao Date: Mon, 22 Jan 2018 14:51:08 +0800 Subject: [PATCH] Table: fix multi-header remove column (#9377) --- packages/table/src/table-column.js | 3 ++- packages/table/src/table-store.js | 12 ++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/table/src/table-column.js b/packages/table/src/table-column.js index 804ce2561..3d8fcb5b5 100644 --- a/packages/table/src/table-column.js +++ b/packages/table/src/table-column.js @@ -295,7 +295,8 @@ export default { destroyed() { if (!this.$parent) return; - this.owner.store.commit('removeColumn', this.columnConfig); + const parent = this.$parent; + this.owner.store.commit('removeColumn', this.columnConfig, this.isSubColumn ? parent.columnConfig : null); }, watch: { diff --git a/packages/table/src/table-store.js b/packages/table/src/table-store.js index 697abdb26..55cd232d5 100644 --- a/packages/table/src/table-store.js +++ b/packages/table/src/table-store.js @@ -204,10 +204,14 @@ TableStore.prototype.mutations = { this.scheduleLayout(); }, - removeColumn(states, column) { - let _columns = states._columns; - if (_columns) { - _columns.splice(_columns.indexOf(column), 1); + removeColumn(states, column, parent) { + let array = states._columns; + if (parent) { + array = parent.children; + if (!array) array = parent.children = []; + } + if (array) { + array.splice(array.indexOf(column), 1); } this.updateColumns(); // hack for dynamics remove column