Skip to content

Commit 237eb21

Browse files
committed
revert: 重构 Row 对拖动支持
1 parent 1140b5b commit 237eb21

File tree

2 files changed

+5
-130
lines changed

2 files changed

+5
-130
lines changed

src/BootstrapBlazor/Components/TreeView/TreeViewRow.razor

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818
</Checkbox>
1919
}
2020
<DynamicElement class="@NodeClassString" TriggerClick="!ItemDisabledState" OnClick="ClickRow"
21-
draggable="@DraggableString"
22-
@ondragstart="DragStart" @ondragend="DragEnd">
21+
draggable="@DraggableString">
2322
@if (ShowIcon)
2423
{
2524
<i class="@IconClassString"></i>

src/BootstrapBlazor/Components/TreeView/TreeViewRow.razor.cs

Lines changed: 4 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,6 @@ public partial class TreeViewRow<TItem>
154154

155155
private string? ContentClassString => CssBuilder.Default("tree-content")
156156
.AddClass("active", IsActive)
157-
.AddClass("tree-drop-pass", PreviewDrop)
158157
.Build();
159158

160159
private string? CaretClassString => CssBuilder.Default("node-icon")
@@ -181,11 +180,15 @@ public partial class TreeViewRow<TItem>
181180
.AddClass(Item.ExpandIcon, Item.IsExpand && !string.IsNullOrEmpty(Item.ExpandIcon))
182181
.Build();
183182

183+
private string? DraggableString => AllowDrag ? "true" : null;
184+
184185
private bool IsPreventDefault => ContextMenuZone != null;
186+
185187
private bool _touchStart = false;
186188
private bool _isBusy = false;
187189
private bool _showToolbar = false;
188190

191+
189192
/// <summary>
190193
/// <inheritdoc/>
191194
/// </summary>
@@ -295,131 +298,4 @@ private async Task ClickRow()
295298
await OnClick(Item);
296299
}
297300
}
298-
299-
/// <summary>
300-
/// Gets or sets whether to preview the drop target when dragging. Default is false.
301-
/// </summary>
302-
[Parameter]
303-
public bool PreviewDrop { get; set; }
304-
305-
private bool _draggingItem;
306-
private bool _expandAfterDrop;
307-
308-
/// <summary>
309-
/// Triggered when the item is dragged
310-
/// </summary>
311-
[Parameter]
312-
public Action<TreeViewItem<TItem>>? OnItemDragStart { get; set; }
313-
314-
/// <summary>
315-
/// Triggered when the item drag ends
316-
/// </summary>
317-
[Parameter]
318-
public Action? OnItemDragEnd { get; set; }
319-
320-
/// <summary>
321-
/// Triggered when an item is dropped
322-
/// </summary>
323-
[Parameter]
324-
[Required]
325-
public Func<TreeDropEventArgs<TItem>, Task> OnItemDrop { get; set; } = null!;
326-
327-
private async Task DragStart(DragEventArgs e)
328-
{
329-
_draggingItem = true;
330-
if (Item.IsExpand)
331-
{
332-
_expandAfterDrop = true;
333-
await ToggleNodeAsync();
334-
}
335-
else
336-
{
337-
_expandAfterDrop = false;
338-
}
339-
OnItemDragStart?.Invoke(Item);
340-
}
341-
342-
private void DragEnd(DragEventArgs e)
343-
{
344-
_draggingItem = false;
345-
_previewChildLast = false;
346-
_previewChildFirst = false;
347-
_previewBelow = false;
348-
OnItemDragEnd?.Invoke();
349-
}
350-
351-
private string? DraggableString => AllowDrag ? "true" : null;
352-
353-
private bool _previewChildLast;
354-
private bool _previewChildFirst;
355-
private bool _previewBelow;
356-
357-
private void DragEnterChildInside(DragEventArgs e)
358-
{
359-
_previewChildLast = true;
360-
}
361-
362-
private void DragLeaveChildInside(DragEventArgs e)
363-
{
364-
_previewChildLast = false;
365-
}
366-
367-
private void DragEnterChildBelow(DragEventArgs e)
368-
{
369-
if ((Item.HasChildren || Item.Items.Any()) && Item.IsExpand)
370-
{
371-
_previewChildFirst = true;
372-
_previewBelow = false;
373-
}
374-
else
375-
{
376-
_previewChildFirst = false;
377-
_previewBelow = true;
378-
}
379-
}
380-
381-
private void DragLeaveChildBelow(DragEventArgs e)
382-
{
383-
_previewChildFirst = false;
384-
_previewBelow = false;
385-
}
386-
387-
private async Task DropChildInside(DragEventArgs e)
388-
{
389-
_previewChildFirst = false;
390-
_previewChildLast = false;
391-
_previewBelow = false;
392-
// 拖放到内部,作为最后一个子节点
393-
var args = new TreeDropEventArgs<TItem>
394-
{
395-
Target = Item,
396-
DropType = TreeDropType.AsLastChild,
397-
ExpandAfterDrop = _expandAfterDrop
398-
};
399-
var dropTask = OnItemDrop.Invoke(args);
400-
await dropTask;
401-
}
402-
403-
private async Task DropChildBelow(DragEventArgs e)
404-
{
405-
_previewChildFirst = false;
406-
_previewChildLast = false;
407-
_previewBelow = false;
408-
var args = new TreeDropEventArgs<TItem>
409-
{
410-
Target = Item,
411-
ExpandAfterDrop = _expandAfterDrop,
412-
};
413-
// 对象展开状态,则作为第一个子节点
414-
if ((Item.HasChildren || Item.Items.Any()) && Item.IsExpand)
415-
{
416-
args.DropType = TreeDropType.AsFirstChild;
417-
}
418-
else
419-
{
420-
args.DropType = TreeDropType.AsSiblingBelow;
421-
}
422-
var dropTask = OnItemDrop.Invoke(args);
423-
await dropTask;
424-
}
425301
}

0 commit comments

Comments
 (0)