vxe-table
vxe-table copied to clipboard
sortablejs与开启虚拟滚动的表格结合 在滚动后拖动行之后index返回不对
可复现的链接:
https://jsrun.net/wKzKp/edit
问题描述与截图:
sortablejs与开启虚拟滚动的表格结合 在滚动后拖动行之后index返回不对
期望的结果:
返回正确的行号
操作系统:
window10
浏览器版本:
chrome 101.0.4951.54(正式版本) (64 位)
vue 版本:
2.6.11
vxe-table 版本:
3.4.0
我是通过操作原始数据解决的,在onStart的时候记录拖拽的数据项oldData,在结束拖拽的时候用 let { fullData } = this.$refs.xxx.getTableData(),遍历fullData找到olddata的oldIndex和newData的newIndex,再把这两个下标抛出去。这样还需要在onEnd的时候利用ghostClass的能力把拖拽的dom元素隐藏一下,不然会多出一个元素,会影响一点交互。
2L + 1 通过 ghostClass 隐藏拖拽的 dom
- sortablejs,在 onEnd 时恢复现场(dom复原);
- 再通过拓展的 clone 对象获取到 rowId + 当前位置的 rowId
- 通过上面两个 rowId 再调整数组位置,然后 reloadData
缺点:
- 有固定列时不能联动
2L + 1 通过 ghostClass 隐藏拖拽的 dom
- sortablejs,在 onEnd 时恢复现场(dom复原);
- 再通过拓展的 clone 对象获取到 rowId + 当前位置的 rowId
- 通过上面两个 rowId 再调整数组位置,然后 reloadData
缺点:
- 有固定列时不能联动
+1
olddata和newdata怎么拿到啊。返回的对象里面没有这两个值啊
你好,你的来件我已经收到,谢谢,打扰啦。
2L + 1 通过 ghostClass 隐藏拖拽的 dom
- sortablejs,在 onEnd 时恢复现场(dom复原);
- 再通过拓展的 clone 对象获取到 rowId + 当前位置的 rowId
- 通过上面两个 rowId 再调整数组位置,然后 reloadData
缺点:
- 有固定列时不能联动 请教下具体怎么拿到这两个id呢?
你好,你的来件我已经收到,谢谢,打扰啦。