File tree Expand file tree Collapse file tree 2 files changed +56
-0
lines changed Expand file tree Collapse file tree 2 files changed +56
-0
lines changed Original file line number Diff line number Diff line change 1+
2+ import { addResizeListener , removeResizeListener } from 'element-ui/src/utils/resize-event'
3+
4+ /**
5+ * How to use
6+ * <el-table height="100px" v-el-height-adaptive-table="{bottomOffset: 30}">...</el-table>
7+ * el-table height is must be set
8+ * bottomOffset: 30(default) // The height of the table from the bottom of the page.
9+ */
10+
11+ const doResize = ( el , binding , vnode ) => {
12+ const { componentInstance : $table } = vnode
13+
14+ const { value } = binding
15+
16+ if ( ! $table . height ) {
17+ throw new Error ( `el-$table must set the height. Such as height='100px'` )
18+ }
19+ const bottomOffset = ( value && value . bottomOffset ) || 30
20+
21+ if ( ! $table ) return
22+
23+ const height = window . innerHeight - el . getBoundingClientRect ( ) . top - bottomOffset
24+ $table . layout . setHeight ( height )
25+ $table . doLayout ( )
26+ }
27+
28+ export default {
29+ bind ( el , binding , vnode ) {
30+ el . resizeListener = ( ) => {
31+ doResize ( el , binding , vnode )
32+ }
33+
34+ addResizeListener ( el , el . resizeListener )
35+ } ,
36+ inserted ( el , binding , vnode ) {
37+ doResize ( el , binding , vnode )
38+ } ,
39+ unbind ( el ) {
40+ removeResizeListener ( el , el . resizeListener )
41+ }
42+ }
Original file line number Diff line number Diff line change 1+
2+ import adaptive from './adaptive'
3+
4+ const install = function ( Vue ) {
5+ Vue . directive ( 'el-height-adaptive-table' , adaptive )
6+ }
7+
8+ if ( window . Vue ) {
9+ window [ 'el-height-adaptive-table' ] = adaptive
10+ Vue . use ( install ) ; // eslint-disable-line
11+ }
12+
13+ adaptive . install = install
14+ export default adaptive
You can’t perform that action at this time.
0 commit comments