From e581f7f7eb1e4322c27199b4c7aee68c49784c26 Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Fri, 28 Oct 2022 21:08:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E8=A1=A8=E5=8D=95=E3=80=8B?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=B1=9E=E6=80=A7=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=EF=BC=8C=E5=AF=B9=E5=AD=97=E6=AE=B5=E8=B7=A8=E5=A4=9A=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E8=BF=9B=E8=A1=8C=E6=8B=96=E6=8B=BD=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E6=97=A0=E6=B3=95=E6=88=90=E5=8A=9F=E3=80=82?= =?UTF-8?q?=20#191?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/JVxeTable/src/hooks/useDragSort.ts | 11 +++++++++++ .../jeecg/JVxeTable/src/hooks/useJVxeComponent.ts | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/components/jeecg/JVxeTable/src/hooks/useDragSort.ts b/src/components/jeecg/JVxeTable/src/hooks/useDragSort.ts index a697100..5d8dd63 100644 --- a/src/components/jeecg/JVxeTable/src/hooks/useDragSort.ts +++ b/src/components/jeecg/JVxeTable/src/hooks/useDragSort.ts @@ -39,6 +39,11 @@ export function useDragSort(props: JVxeTableProps, methods: JVxeTableMethods) { if (oldIndex === newIndex) { return; } + // 【VUEN-2505】获取当前行数据 + let rowNode = xTable.getRowNode(e.item); + if (!rowNode) { + return; + } let from = e.from; let element = startChildren[oldIndex]; let target = null; @@ -54,6 +59,12 @@ export function useDragSort(props: JVxeTableProps, methods: JVxeTableMethods) { from.removeChild(element); from.insertBefore(element, target); nextTick(() => { + // 【VUEN-2505】算出因虚拟滚动导致的偏移量 + let diffIndex = rowNode!.index - oldIndex; + if (diffIndex > 0) { + oldIndex = oldIndex + diffIndex; + newIndex = newIndex + diffIndex; + } methods.doSort(oldIndex, newIndex); methods.trigger('dragged', { oldIndex, newIndex }); }); diff --git a/src/components/jeecg/JVxeTable/src/hooks/useJVxeComponent.ts b/src/components/jeecg/JVxeTable/src/hooks/useJVxeComponent.ts index 7e69cf0..7bc5cbd 100644 --- a/src/components/jeecg/JVxeTable/src/hooks/useJVxeComponent.ts +++ b/src/components/jeecg/JVxeTable/src/hooks/useJVxeComponent.ts @@ -28,8 +28,8 @@ export function useJVxeComponent(props: JVxeComponent.Props) { const column = computed(() => props.params.column); // 用户配置的原始 column const originColumn = computed(() => column.value.params); - const rowIndex = computed(() => props.params.$rowIndex); - const columnIndex = computed(() => props.params.columnIndex); + const rowIndex = computed(() => props.params._rowIndex); + const columnIndex = computed(() => props.params._columnIndex); // 表格数据长度 const fullDataLength = computed(() => props.params.$table.internalData.tableFullData.length); // 是否正在滚动中