@@ -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