diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index a43fdab5c9f9eb75f24f4dd8ec7face212fa5bfd..e4aac4cc3f2db1af58b48ebcbe1c22da3967758e 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@ - 6.4.6 + 6.4.7-beta01 diff --git a/src/BootstrapBlazor/Extensions/DialogServiceExtensions.cs b/src/BootstrapBlazor/Extensions/DialogServiceExtensions.cs index 8c20442122ba26aac7f85eceb38b7e5ade688ff2..a35e4383297222306302669795ffd9b60e8d7deb 100644 --- a/src/BootstrapBlazor/Extensions/DialogServiceExtensions.cs +++ b/src/BootstrapBlazor/Extensions/DialogServiceExtensions.cs @@ -206,4 +206,27 @@ public static class DialogServiceExtensions configureOption?.Invoke(option); await service.Show(option, dialog); } + + /// + /// 弹出表单对话窗方法 + /// + /// + /// DialogService 服务实例 + /// 弹窗标题 + /// TComponent 组件所需参数 + /// 实例配置回调方法 + /// + /// + public static async Task ShowValidateFormDialog(this DialogService service, string title, Func>? parametersFactory = null, Action? configureOption = null, Dialog? dialog = null) where TComponent : ComponentBase + { + var option = new DialogOption() + { + Title = title, + ShowFooter = false, + }; + var parameters = parametersFactory?.Invoke(option); + option.Component = BootstrapDynamicComponent.CreateComponent(parameters); + configureOption?.Invoke(option); + await service.Show(option, dialog); + } } diff --git a/test/UnitTest/Components/DialogTest.cs b/test/UnitTest/Components/DialogTest.cs index ffbcb2cc5b6e3a952eb0a5602973b25f214bd6f2..07030b915009178aa48a1e811397c2366bcbcab9 100644 --- a/test/UnitTest/Components/DialogTest.cs +++ b/test/UnitTest/Components/DialogTest.cs @@ -395,6 +395,23 @@ public class DialogTest : BootstrapBlazorTestBase cut.InvokeAsync(() => dialog.ShowSaveDialog("Title", () => Task.FromResult(true), configureOption: op => op.Class = "test")); modal.FindAll("button")[modal.FindAll("button").Count - 1].Click(); #endregion + + #region ShowValidateFormDialog + cut.InvokeAsync(() => dialog.ShowValidateFormDialog("ValidateFormDialog")); + var btn = cut.Find(".btn-close"); + cut.InvokeAsync(() => btn.Click()); + + Func> parameterFactory = op => new Dictionary(); + Action configureOption = op => op.Class = "ValidateFormDialog-Class"; + cut.InvokeAsync(() => dialog.ShowValidateFormDialog("ValidateFormDialog", parameterFactory, configureOption)); + btn = cut.Find(".btn-close"); + cut.InvokeAsync(() => btn.Click()); + #endregion + } + + private class MockValidateFormDialog : ComponentBase + { + } private class MockDialogTest : ComponentBase