Skip to content

Commit

Permalink
refactor: 增加重置逻辑
Browse files Browse the repository at this point in the history
  • Loading branch information
ArgoZhang committed Feb 21, 2025
1 parent 88ed8e9 commit d2ee4b5
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 19 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
@namespace BootstrapBlazor.Components
@inherits PopoverDropdownBase<DateTimeRangeValue>
@attribute [BootstrapModuleAutoLoader("DateTimePicker/DateTimePicker.razor.js")]
@attribute [BootstrapModuleAutoLoader("DateTimePicker/DateTimePicker.razor.js", JSObjectReference = true)]

@if (IsShowLabel)
{
Expand Down
61 changes: 43 additions & 18 deletions src/BootstrapBlazor/Components/DateTimeRange/DateTimeRange.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -311,24 +311,7 @@ protected override void OnParametersSet()
new() { Text = Localizer["LastMonth"], StartDateTime = DateTime.Today.AddDays(1- DateTime.Today.Day).AddMonths(-1), EndDateTime = DateTime.Today.AddDays(1- DateTime.Today.Day).AddSeconds(-1) },
];

Value ??= new DateTimeRangeValue();
EndValue = Value.End == DateTime.MinValue ? GetEndDateTime(DateTime.Today) : Value.End;

if (ViewMode == DatePickerViewMode.Year)
{
var d = DateTime.Today.AddYears(-1);
StartValue = Value.Start == DateTime.MinValue ? new DateTime(d.Year, 1, 1) : Value.Start;
}
else if (ViewMode == DatePickerViewMode.Month)
{
var d = DateTime.Today.AddMonths(-1);
StartValue = Value.Start == DateTime.MinValue ? new DateTime(d.Year, d.Month, 1) : Value.Start;
}
else
{
StartValue = EndValue.AddMonths(-1).Date;
}

ResetBodyValue();
SelectedValue.Start = Value.Start;
SelectedValue.End = Value.End;

Expand All @@ -342,6 +325,15 @@ void CheckValid()
}
}

/// <summary>
/// <inheritdoc/>
/// </summary>
/// <returns></returns>
protected override Task InvokeInitAsync() => InvokeVoidAsync("init", Id, Interop, new
{
TriggerHideCallback = nameof(TriggerHideCallback)
});

private async Task OnClickSidebarItem(DateTimeRangeSidebarItem item)
{
SelectedValue.Start = item.StartDateTime;
Expand Down Expand Up @@ -505,4 +497,37 @@ private void UpdateValue(DateTime d)
public override bool IsComplexValue(object? propertyValue) => false;

private static DateTime GetEndDateTime(DateTime dt) => dt.Date.AddHours(23).AddMinutes(59).AddSeconds(59);

private void ResetBodyValue()
{
Value ??= new DateTimeRangeValue();
EndValue = Value.End == DateTime.MinValue ? GetEndDateTime(DateTime.Today) : Value.End;

if (ViewMode == DatePickerViewMode.Year)
{
var d = DateTime.Today.AddYears(-1);
StartValue = Value.Start == DateTime.MinValue ? new DateTime(d.Year, 1, 1) : Value.Start;
}
else if (ViewMode == DatePickerViewMode.Month)
{
var d = DateTime.Today.AddMonths(-1);
StartValue = Value.Start == DateTime.MinValue ? new DateTime(d.Year, d.Month, 1) : Value.Start;
}
else
{
StartValue = EndValue.AddMonths(-1).Date;
}
}

/// <summary>
/// 客户端弹窗关闭后由 Javascript 调用此方法
/// </summary>
/// <returns></returns>
[JSInvokable]
public Task TriggerHideCallback()
{
ResetBodyValue();
StateHasChanged();
return Task.CompletedTask;
}

Check warning on line 532 in src/BootstrapBlazor/Components/DateTimeRange/DateTimeRange.razor.cs

View check run for this annotation

Codecov / codecov/patch

src/BootstrapBlazor/Components/DateTimeRange/DateTimeRange.razor.cs#L528-L532

Added lines #L528 - L532 were not covered by tests
}

0 comments on commit d2ee4b5

Please sign in to comment.