需求:
- 用户拖动表格的表头可以拖动宽度,并且记住拖动的宽度。
- 逻辑思路 基本这种功能都是前端进行实现的,那么就需要利用localStroage的功能进行存储到本地,然后页面进行刷新的时候渲染表格的时候使用localStroage存储的数据,并设置上宽度就可以。
方法
@header-dragend="headerDragend(newWidth: number, oldWidth: number, column: any, event: MouseEvent) => {}
headerDragend方法中默认的是有四个参数:newWidth 拖拽之后的宽度、oldWidth 拖拽之前的宽度、column 拖拽的那一列、event拖拽之后的事件、
实现
- 先在data函数里面定义一个枚举值,有多少列就对应多少条,prop跟 el-table-column里面设置prop的值一样,这里设枚举值的原因是,跟拖动的函数做匹配,并存储宽度。
根据自己的业务key来。
拖拽之后计时保存到localstorage中。
当你拖动的时候就会存储到本地,这时候已经看到了width里面存储的对应列的宽度。
当刷新页面的时候,或者页面切换的时候就会重新调用生命周期的函数,在渲染的时候记得设置宽度即可:
第一种:把在data里面设置的枚举值的list多加上label和prop的属性
利用v-for循环出来,这种方式也可以
第二种代码比较的冗余
还是按照之前的写法,每一个都单独处理,在里面进行code的处理,但是width的设置是利用tableColumnWidth[0].width的方式进行设置的,这样的就可以解决这个问题了
但是,请注意,按照以上的写法没有作用的话,那么请看看代码,多打印log,比如宽度有没有设置上,本地有没有存储上。
根据各自的业务进行具体化的逻辑更改。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。