Skip to content

Commit d2ee4b5

Browse files
committed
refactor: 增加重置逻辑
1 parent 88ed8e9 commit d2ee4b5

File tree

2 files changed

+44
-19
lines changed

2 files changed

+44
-19
lines changed

src/BootstrapBlazor/Components/DateTimeRange/DateTimeRange.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
@namespace BootstrapBlazor.Components
22
@inherits PopoverDropdownBase<DateTimeRangeValue>
3-
@attribute [BootstrapModuleAutoLoader("DateTimePicker/DateTimePicker.razor.js")]
3+
@attribute [BootstrapModuleAutoLoader("DateTimePicker/DateTimePicker.razor.js", JSObjectReference = true)]
44

55
@if (IsShowLabel)
66
{

src/BootstrapBlazor/Components/DateTimeRange/DateTimeRange.razor.cs

Lines changed: 43 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -311,24 +311,7 @@ protected override void OnParametersSet()
311311
new() { Text = Localizer["LastMonth"], StartDateTime = DateTime.Today.AddDays(1- DateTime.Today.Day).AddMonths(-1), EndDateTime = DateTime.Today.AddDays(1- DateTime.Today.Day).AddSeconds(-1) },
312312
];
313313

314-
Value ??= new DateTimeRangeValue();
315-
EndValue = Value.End == DateTime.MinValue ? GetEndDateTime(DateTime.Today) : Value.End;
316-
317-
if (ViewMode == DatePickerViewMode.Year)
318-
{
319-
var d = DateTime.Today.AddYears(-1);
320-
StartValue = Value.Start == DateTime.MinValue ? new DateTime(d.Year, 1, 1) : Value.Start;
321-
}
322-
else if (ViewMode == DatePickerViewMode.Month)
323-
{
324-
var d = DateTime.Today.AddMonths(-1);
325-
StartValue = Value.Start == DateTime.MinValue ? new DateTime(d.Year, d.Month, 1) : Value.Start;
326-
}
327-
else
328-
{
329-
StartValue = EndValue.AddMonths(-1).Date;
330-
}
331-
314+
ResetBodyValue();
332315
SelectedValue.Start = Value.Start;
333316
SelectedValue.End = Value.End;
334317

@@ -342,6 +325,15 @@ void CheckValid()
342325
}
343326
}
344327

328+
/// <summary>
329+
/// <inheritdoc/>
330+
/// </summary>
331+
/// <returns></returns>
332+
protected override Task InvokeInitAsync() => InvokeVoidAsync("init", Id, Interop, new
333+
{
334+
TriggerHideCallback = nameof(TriggerHideCallback)
335+
});
336+
345337
private async Task OnClickSidebarItem(DateTimeRangeSidebarItem item)
346338
{
347339
SelectedValue.Start = item.StartDateTime;
@@ -505,4 +497,37 @@ private void UpdateValue(DateTime d)
505497
public override bool IsComplexValue(object? propertyValue) => false;
506498

507499
private static DateTime GetEndDateTime(DateTime dt) => dt.Date.AddHours(23).AddMinutes(59).AddSeconds(59);
500+
501+
private void ResetBodyValue()
502+
{
503+
Value ??= new DateTimeRangeValue();
504+
EndValue = Value.End == DateTime.MinValue ? GetEndDateTime(DateTime.Today) : Value.End;
505+
506+
if (ViewMode == DatePickerViewMode.Year)
507+
{
508+
var d = DateTime.Today.AddYears(-1);
509+
StartValue = Value.Start == DateTime.MinValue ? new DateTime(d.Year, 1, 1) : Value.Start;
510+
}
511+
else if (ViewMode == DatePickerViewMode.Month)
512+
{
513+
var d = DateTime.Today.AddMonths(-1);
514+
StartValue = Value.Start == DateTime.MinValue ? new DateTime(d.Year, d.Month, 1) : Value.Start;
515+
}
516+
else
517+
{
518+
StartValue = EndValue.AddMonths(-1).Date;
519+
}
520+
}
521+
522+
/// <summary>
523+
/// 客户端弹窗关闭后由 Javascript 调用此方法
524+
/// </summary>
525+
/// <returns></returns>
526+
[JSInvokable]
527+
public Task TriggerHideCallback()
528+
{
529+
ResetBodyValue();
530+
StateHasChanged();
531+
return Task.CompletedTask;
532+
}
508533
}

0 commit comments

Comments
 (0)