From 06f16f78e7664e1feb7d3f8942aafb01bc2fc77e Mon Sep 17 00:00:00 2001 From: "qingwei.li" Date: Thu, 25 Aug 2016 11:51:25 +0800 Subject: [PATCH 1/6] Table: render asynchronous data --- packages/table/src/table.vue | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/table/src/table.vue b/packages/table/src/table.vue index 17f9eea3a..f70edffd1 100644 --- a/packages/table/src/table.vue +++ b/packages/table/src/table.vue @@ -312,7 +312,6 @@ }, created() { - this.tableData = this.data; this.gridId = 'grid_' + gridIdSeed + '_'; if (GUTTER_WIDTH === undefined) { @@ -370,6 +369,10 @@ this.$calcHeight(value); }, + data(val) { + this.tableData = val; + }, + tableData(newVal) { this.doOnDataChange(newVal); this.updateScrollInfo(); @@ -408,14 +411,16 @@ this.updateScrollInfo(); if (this.fixedColumnCount > 0) { this.$nextTick(() => { - this.$refs.fixed.style.height = this.$el.clientHeight + 'px'; + const style = this.$refs.fixed.style; + if (!style) return; + style.height = this.$el.clientHeight + 'px'; }); } }, data() { return { - tableData: [], + tableData: this.data, showHScrollBar: false, showVScrollBar: false, hoverRowIndex: null, From 6eaa9ef545331fc573ddf8bf7ef717f803d41ddd Mon Sep 17 00:00:00 2001 From: "qingwei.li" Date: Thu, 25 Aug 2016 13:43:09 +0800 Subject: [PATCH 2/6] Table: get context in custom template --- examples/docs/table.md | 3 ++- packages/table/src/table-body.js | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/docs/table.md b/examples/docs/table.md index ba0db20eb..b3525db33 100644 --- a/examples/docs/table.md +++ b/examples/docs/table.md @@ -676,4 +676,5 @@ Table 组件中,只要在列中设置`sortable`属性即可实现以该列为 | type | 对应列的类型。如果设置了 `selection` 则显示多选按钮,如果设置了 `index` 则显示该行的索引(从 1 开始计算) | string | 'selection', 'index' | 0 | | formatter | 用来格式化内容,在 formatter 执行的时候,会传入 row 和 column | function | | | | show-tooltip-when-overflow | 当过长被隐藏时显示 tooltip | Boolean | | false | -| inline-template | 指定该属性后可以自定义 column 模板,参考多选的时间列,通过 row 获取行信息。此时不需要配置 property 属性 | | | +| inline-template | 指定该属性后可以自定义 column 模板,参考多选的时间列,通过 row 获取行信息,通过 _self 获取当前上下文。此时不需要配置 property 属性 | | | + diff --git a/packages/table/src/table-body.js b/packages/table/src/table-body.js index 8b92314ac..d2d3d73b5 100644 --- a/packages/table/src/table-body.js +++ b/packages/table/src/table-body.js @@ -59,7 +59,7 @@ export default { on-mouseleave={ this.handleCellMouseLeave }> { column.template - ? column.template.call(this._renderProxy, h, { row, column, $index }) + ? column.template.call(this._renderProxy, h, { row, column, $index, _self: this.$parent.$parent }) :
{ this.$getPropertyText(row, column.property, column.id) }
} From 7bdda0b9948ac16413e505ce87f4df7eeb32129b Mon Sep 17 00:00:00 2001 From: "qingwei.li" Date: Thu, 25 Aug 2016 14:47:39 +0800 Subject: [PATCH 3/6] Table: multiple selection mode failure --- packages/table/src/table.vue | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/table/src/table.vue b/packages/table/src/table.vue index f70edffd1..fc81b431b 100644 --- a/packages/table/src/table.vue +++ b/packages/table/src/table.vue @@ -370,7 +370,11 @@ }, data(val) { - this.tableData = val; + if (val && this.selectionMode === 'multiple') { + this.tableData = val.map(item => objectAssign({ '$selected': false }, item)); + } else { + this.tableData = val; + } }, tableData(newVal) { @@ -398,10 +402,6 @@ this.styleNode = styleNode; - if (this.tableData && this.selectionMode === 'multiple') { - this.tableData = this.tableData.map(item => objectAssign({ '$selected': false }, item)); - } - this.doRender(); this.$ready = true; From 5954d9899f7abfd2c316da13b49f247f9df253af Mon Sep 17 00:00:00 2001 From: "qingwei.li" Date: Thu, 25 Aug 2016 15:03:57 +0800 Subject: [PATCH 4/6] Table: fix single selection mode highlight class --- packages/table/src/table-body.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/table/src/table-body.js b/packages/table/src/table-body.js index d2d3d73b5..b3a469a72 100644 --- a/packages/table/src/table-body.js +++ b/packages/table/src/table-body.js @@ -44,7 +44,7 @@ export default { on-click={ ($event) => this.handleClick($event, row) } on-mouseenter={ _ => this.handleMouseEnter($index) } class={{ - 'current-row': row === this.$parent.$parent.selected, + 'current-row': row === this.$parent.selected, 'hover': this.$parent.$parent.hoverRowIndex === $index, 'positive-row': row.$positive, 'info-row': row.$info, From 9743c8b4a35eb15d007ca8a523175b751e5f0bf3 Mon Sep 17 00:00:00 2001 From: "qingwei.li" Date: Thu, 25 Aug 2016 15:08:15 +0800 Subject: [PATCH 5/6] Table: fix trigger double selectionchange --- packages/table/src/table-body.js | 1 - packages/table/src/table.vue | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/table/src/table-body.js b/packages/table/src/table-body.js index b3a469a72..5e868ddf0 100644 --- a/packages/table/src/table-body.js +++ b/packages/table/src/table-body.js @@ -131,7 +131,6 @@ export default { if (grid.selectionMode === 'single') { grid.selected = row; - grid.$emit('selectionchange', row); } grid.$emit('rowclick', row, event); diff --git a/packages/table/src/table.vue b/packages/table/src/table.vue index fc81b431b..8022c8d31 100644 --- a/packages/table/src/table.vue +++ b/packages/table/src/table.vue @@ -251,8 +251,9 @@ gridWrapper.style.height = bodyHeight + 'px'; this.$el.style.height = height + 'px'; - this.$refs.fixed.style.height = height + 'px'; - + if (this.$refs.fixed) { + this.$refs.fixed.style.height = height + 'px'; + } const fixedBodyWrapper = this.$el.querySelector('.el-table__fixed-body-wrapper'); if (fixedBodyWrapper) { fixedBodyWrapper.style.height = (this.showHScrollBar ? gridWrapper.offsetHeight - this.currentGutterWidth : gridWrapper.offsetHeight) + 'px'; From 561f70142f74dfcdde2f3dd6b7309ab6c1a383a7 Mon Sep 17 00:00:00 2001 From: "qingwei.li" Date: Thu, 25 Aug 2016 16:49:31 +0800 Subject: [PATCH 6/6] Poppover(doc): Undeclared 'model' --- examples/docs/popover.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/docs/popover.md b/examples/docs/popover.md index 9b8f424bc..047b0f2f9 100644 --- a/examples/docs/popover.md +++ b/examples/docs/popover.md @@ -76,7 +76,8 @@ address: '上海市普陀区金沙江路 1518 弄' }], singleSelection: {}, - multipleSelection: [] + multipleSelection: [], + model: '' }; },