diff --git a/src/control/grid/grid/grid-control.util.ts b/src/control/grid/grid/grid-control.util.ts index e4510e013e83c5211fad14026dd7ee64a1420936..2d033f5efc42fa5be87f6838b08b6f796ca9845e 100644 --- a/src/control/grid/grid/grid-control.util.ts +++ b/src/control/grid/grid/grid-control.util.ts @@ -738,22 +738,20 @@ export function useGridDraggable( ): { cleanup?: () => void; } { - // 表格不启用次序调整、无实体排序属性时不开启拖拽 - if (!c.enableRowEditOrder || !c.model.orderValueAppDEFieldId) { + // 表格不启用次序调整 + if (!c.enableRowEditOrder) { return {}; } - // 拖拽元素 - let draggingDom: HTMLElement | null = null; // 拖拽下标 let dragIndex = 0; - // 拖拽数据key - let draggingKey: string = ''; - // 拖拽数据 let draggingData: IGridRowState | null = null; + // 目标数据 + let dropData: IGridRowState | null = null; + // eslint-disable-next-line @typescript-eslint/ban-types const cleanups: Function[] = []; @@ -774,9 +772,9 @@ export function useGridDraggable( 'dragstart', (event: DragEvent) => { if (event.target) { - draggingDom = event.target as HTMLElement; + const draggingDom = event.target as HTMLElement; event.dataTransfer!.effectAllowed = 'move'; - draggingKey = calcSrfKeyByClass(draggingDom.classList); + const draggingKey = calcSrfKeyByClass(draggingDom.classList); dragIndex = c.state.rows.findIndex( row => row.data.srfkey === draggingKey, ); @@ -794,9 +792,10 @@ export function useGridDraggable( const targetIndex = c.state.rows.findIndex( row => row.data.srfkey === targetKey, ); - if (draggingKey === targetKey || targetIndex === -1) { + if (draggingData?.data.srfkey === targetKey || targetIndex === -1) { return; } + dropData = c.state.rows[targetIndex]; c.state.rows.splice(dragIndex, 1); c.state.rows.splice(targetIndex, 0, draggingData!); // 更新节点位置 @@ -812,7 +811,9 @@ export function useGridDraggable( ); const cleanDragEnd = listenJSEvent(item, 'dragend', (event: DragEvent) => { event.preventDefault(); - c.onDragChange(); + if (draggingData && dropData) { + c.onDragChange(draggingData, dropData); + } }); cleanups.push(cleanDragStart); cleanups.push(cleanDragEnter); diff --git a/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.scss b/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.scss index 79d6b49253ab503025f4c8e81310c33af03ff9a2..fb23a6e2d2ac5dcb67760b96efcef606e0accff7 100644 --- a/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.scss +++ b/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.scss @@ -21,8 +21,9 @@ } @include e('buns-position') { + right: 26px; + cursor: pointer; position: relative; - right: 11px; display: inline-block; } diff --git a/src/editor/dropdown-list/dropdown-list-editor.controller.ts b/src/editor/dropdown-list/dropdown-list-editor.controller.ts index 67a55be992788a6f10a16ee580e34936c6ff93e2..23bc77207b2761093abf89a6ef194efa2b43ece2 100644 --- a/src/editor/dropdown-list/dropdown-list-editor.controller.ts +++ b/src/editor/dropdown-list/dropdown-list-editor.controller.ts @@ -24,6 +24,13 @@ export class DropDownListEditorController extends CodeListEditorController { super.onInit(); if (this.model.editorType === 'MDROPDOWNLIST') { @@ -33,5 +40,9 @@ export class DropDownListEditorController extends CodeListEditorController | undefined) { + set(_select: string | Array | undefined) { + let select = _select; + // 如果配置有空白项,清空时置为undefined + if (c.blankItemName && !_select) { + select = undefined; + } if (Array.isArray(select)) { let selectArr = null; if (select.length === 0) { @@ -425,7 +440,7 @@ export const IBizDropdown = defineComponent({ return (