diff --git a/src/BootstrapBlazor.Server/Components/Samples/DateTimePickers.razor b/src/BootstrapBlazor.Server/Components/Samples/DateTimePickers.razor index d515b753b46..2f92e5742a4 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DateTimePickers.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/DateTimePickers.razor @@ -5,7 +5,7 @@

@Localizer["Description"]

- diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index 1eb7e4c700e..a11bab70aa0 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@  - 9.9.3 + 9.10.0-beta01 diff --git a/src/BootstrapBlazor/Components/DateTimePicker/DatePickerBody.razor b/src/BootstrapBlazor/Components/DateTimePicker/DatePickerBody.razor index 4c373fdc0a1..8db866aa238 100644 --- a/src/BootstrapBlazor/Components/DateTimePicker/DatePickerBody.razor +++ b/src/BootstrapBlazor/Components/DateTimePicker/DatePickerBody.razor @@ -40,7 +40,7 @@
@YearString @MonthString - @if (IsDateTimeMode) + @if (IsDateTimeMode && PickTimeMode == PickTimeMode.Clock) { @CurrentTime.ToString(TimeFormat) } @@ -80,12 +80,12 @@ else if (IsDisabled(day)) { - @if(ShowLunar) + @if (ShowLunar) { @text @GetLunarText(day) } - else if(DayDisabledTemplate != null) + else if (DayDisabledTemplate != null) { @DayDisabledTemplate(day) } @@ -155,7 +155,8 @@ @ChildContent - @@ -164,6 +165,18 @@
+ @if (IsDateTimeMode && PickTimeMode == PickTimeMode.Dropdown) + { +
+ @TimePlaceHolder + + +
+ } @if (ShowFooter) { - -@code { - -} diff --git a/test/UnitTest/Components/DateTimePickerTest.cs b/test/UnitTest/Components/DateTimePickerTest.cs index 8cb7b56ba3f..1cd102d62d8 100644 --- a/test/UnitTest/Components/DateTimePickerTest.cs +++ b/test/UnitTest/Components/DateTimePickerTest.cs @@ -322,6 +322,7 @@ public void SwitchTimeView_Ok() { builder.Add(a => a.Value, new DateTime(2023, 10, 1, 1, 0, 0)); builder.Add(a => a.ViewMode, DatePickerViewMode.DateTime); + builder.Add(a => a.PickTimeMode, PickTimeMode.Clock); }); var labels = cut.FindAll(".picker-panel-header-label"); @@ -354,6 +355,39 @@ public void NotDateTime_Error() Context.RenderComponent>(); }); } + + [Fact] + public async Task PickTimeMode_Ok() + { + var cut = Context.RenderComponent(builder => + { + builder.Add(a => a.ViewMode, DatePickerViewMode.DateTime); + builder.Add(a => a.PickTimeMode, PickTimeMode.Dropdown); + builder.Add(a => a.ShowFooter, true); + builder.Add(a => a.Value, DateTime.Today.AddDays(-1)); + builder.Add(a => a.TimeFormat, "hh\\:mm"); + }); + + cut.Contains("picker-panel-time"); + + // 点击时间选择器 + var input = cut.Find(".picker-panel-time .form-control"); + await cut.InvokeAsync(() => input.Click()); + cut.Contains("picker-panel-time show"); + + // 点击时间选择器下拉框中的确定按钮 + var picker = cut.FindComponent(); + await cut.InvokeAsync(() => picker.Instance.OnClose!()); + + var ts = DateTime.Now.TimeOfDay; + await cut.InvokeAsync(() => picker.Instance.OnConfirm!(ts)); + Assert.Contains(ts.ToString("hh\\:mm"), cut.Markup); + + cut.SetParametersAndRender(pb => + { + pb.Add(a => a.TimeFormat, null); + }); + } #endregion #region DatePicker