From a38e8dd5bee852c56f1bce300cd8bb478baa5094 Mon Sep 17 00:00:00 2001 From: ShineKOT <1917095344@qq.com> Date: Wed, 13 Aug 2025 20:27:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E5=99=A8-=E8=A1=A8=E6=A0=BC=E6=8B=96?= =?UTF-8?q?=E6=8B=BD=E6=8E=92=E5=BA=8F=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + .../repeater-grid/repeater-grid.tsx | 16 ++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15bb1d9be..d1ad7e994 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ - 修复日历部件设置selectedDate为不是标准时间值时,组件监听selectedDate值改变后会重复加载数据 - 修复计数器数据大于99后样式显示异常 - 修复树表格增强操作列未对齐异常 +- 修复表单重复器-表格拖拽排序异常 ### Changed diff --git a/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.tsx b/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.tsx index bfe82179d..d27682662 100644 --- a/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.tsx +++ b/src/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.tsx @@ -4,8 +4,7 @@ import { toRaw, watch, reactive, - nextTick, - onMounted, + onUnmounted, defineComponent, resolveComponent, } from 'vue'; @@ -123,12 +122,14 @@ export const RepeaterGrid: ReturnType = defineComponent( { immediate: true, deep: true }, ); + let sortable: Sortable | undefined; + const rowDrop = () => { const wrapper = tableRef.value?.$el?.querySelector( '.el-table__body-wrapper tbody', ); if (!wrapper || !props.controller.enableSort) return; - Sortable.create(wrapper, { + sortable = Sortable.create(wrapper, { animation: 150, handle: `.${ns.e('drag-icon')}`, ghostClass: `${ns.e('sortable-ghost')}`, @@ -139,9 +140,12 @@ export const RepeaterGrid: ReturnType = defineComponent( }); }; - onMounted(() => { - nextTick(() => rowDrop()); - }); + watch(()=> tableRef.value, () => { + if (!props.controller.enableSort) return; + tableRef.value ? rowDrop() : sortable?.destroy(); + }) + + onUnmounted(() => sortable?.destroy()); const renderRemoveBtn = (index: number) => { if (!props.controller.enableDelete) { -- Gitee