Commit 72979a782a87de9e1560f687b07c69e526492af8
1 parent
574ec504
fix #4207
Showing
2 changed files
with
24 additions
and
4 deletions
Show diff stats
src/components/table/table.vue
@@ -149,6 +149,10 @@ | @@ -149,6 +149,10 @@ | ||
149 | height: { | 149 | height: { |
150 | type: [Number, String] | 150 | type: [Number, String] |
151 | }, | 151 | }, |
152 | + // 3.4.0 | ||
153 | + maxHeight: { | ||
154 | + type: [Number, String] | ||
155 | + }, | ||
152 | stripe: { | 156 | stripe: { |
153 | type: Boolean, | 157 | type: Boolean, |
154 | default: false | 158 | default: false |
@@ -275,6 +279,10 @@ | @@ -275,6 +279,10 @@ | ||
275 | const height = parseInt(this.height); | 279 | const height = parseInt(this.height); |
276 | style.height = `${height}px`; | 280 | style.height = `${height}px`; |
277 | } | 281 | } |
282 | + if (this.maxHeight) { | ||
283 | + const maxHeight = parseInt(this.maxHeight); | ||
284 | + style.maxHeight = `${maxHeight}px`; | ||
285 | + } | ||
278 | if (this.width) style.width = `${this.width}px`; | 286 | if (this.width) style.width = `${this.width}px`; |
279 | return style; | 287 | return style; |
280 | }, | 288 | }, |
@@ -336,7 +344,11 @@ | @@ -336,7 +344,11 @@ | ||
336 | let style = {}; | 344 | let style = {}; |
337 | if (this.bodyHeight !== 0) { | 345 | if (this.bodyHeight !== 0) { |
338 | const height = this.bodyHeight; | 346 | const height = this.bodyHeight; |
339 | - style.height = `${height}px`; | 347 | + if (this.height) { |
348 | + style.height = `${height}px`; | ||
349 | + } else if (this.maxHeight) { | ||
350 | + style.maxHeight = `${height}px`; | ||
351 | + } | ||
340 | } | 352 | } |
341 | return style; | 353 | return style; |
342 | }, | 354 | }, |
@@ -548,7 +560,7 @@ | @@ -548,7 +560,7 @@ | ||
548 | this.objData[_index]._isExpanded = status; | 560 | this.objData[_index]._isExpanded = status; |
549 | this.$emit('on-expand', JSON.parse(JSON.stringify(this.cloneData[_index])), status); | 561 | this.$emit('on-expand', JSON.parse(JSON.stringify(this.cloneData[_index])), status); |
550 | 562 | ||
551 | - if(this.height){ | 563 | + if(this.height || this.maxHeight){ |
552 | this.$nextTick(()=>this.fixedBody()); | 564 | this.$nextTick(()=>this.fixedBody()); |
553 | } | 565 | } |
554 | }, | 566 | }, |
@@ -578,12 +590,16 @@ | @@ -578,12 +590,16 @@ | ||
578 | }, | 590 | }, |
579 | 591 | ||
580 | fixedHeader () { | 592 | fixedHeader () { |
581 | - if (this.height) { | 593 | + if (this.height || this.maxHeight) { |
582 | this.$nextTick(() => { | 594 | this.$nextTick(() => { |
583 | const titleHeight = parseInt(getStyle(this.$refs.title, 'height')) || 0; | 595 | const titleHeight = parseInt(getStyle(this.$refs.title, 'height')) || 0; |
584 | const headerHeight = parseInt(getStyle(this.$refs.header, 'height')) || 0; | 596 | const headerHeight = parseInt(getStyle(this.$refs.header, 'height')) || 0; |
585 | const footerHeight = parseInt(getStyle(this.$refs.footer, 'height')) || 0; | 597 | const footerHeight = parseInt(getStyle(this.$refs.footer, 'height')) || 0; |
586 | - this.bodyHeight = this.height - titleHeight - headerHeight - footerHeight; | 598 | + if (this.height) { |
599 | + this.bodyHeight = this.height - titleHeight - headerHeight - footerHeight; | ||
600 | + } else if (this.maxHeight) { | ||
601 | + this.bodyHeight = this.maxHeight - titleHeight - headerHeight - footerHeight; | ||
602 | + } | ||
587 | this.$nextTick(()=>this.fixedBody()); | 603 | this.$nextTick(()=>this.fixedBody()); |
588 | }); | 604 | }); |
589 | } else { | 605 | } else { |
@@ -986,6 +1002,9 @@ | @@ -986,6 +1002,9 @@ | ||
986 | height () { | 1002 | height () { |
987 | this.handleResize(); | 1003 | this.handleResize(); |
988 | }, | 1004 | }, |
1005 | + maxHeight () { | ||
1006 | + this.handleResize(); | ||
1007 | + }, | ||
989 | showHorizontalScrollBar () { | 1008 | showHorizontalScrollBar () { |
990 | this.handleResize(); | 1009 | this.handleResize(); |
991 | }, | 1010 | }, |
src/styles/components/table.less
@@ -7,6 +7,7 @@ | @@ -7,6 +7,7 @@ | ||
7 | border: 1px solid @border-color-base; | 7 | border: 1px solid @border-color-base; |
8 | border-bottom: 0; | 8 | border-bottom: 0; |
9 | border-right: 0; | 9 | border-right: 0; |
10 | + overflow: hidden; // 开启 max-height 时,没有 overflow: hidden,则底部多出 1px,早期没有 overflow 是因为有些控件没有加 transfer | ||
10 | } | 11 | } |
11 | width: inherit; | 12 | width: inherit; |
12 | height: 100%; | 13 | height: 100%; |