diff --git a/src/BootstrapBlazor/Components/Layout/Layout.razor b/src/BootstrapBlazor/Components/Layout/Layout.razor index 2b1826f1725..c3593ca37ea 100644 --- a/src/BootstrapBlazor/Components/Layout/Layout.razor +++ b/src/BootstrapBlazor/Components/Layout/Layout.razor @@ -126,7 +126,7 @@ } else { - @HandlerMain() @@ -147,7 +147,9 @@ RefreshToolbarButtonIcon="@RefreshToolbarButtonIcon" FullscreenToolbarButtonIcon="@FullscreenToolbarButtonIcon" RefreshToolbarTooltipText="@RefreshToolbarTooltipText" FullscreenToolbarTooltipText="@FullscreenToolbarTooltipText" OnToolbarRefreshCallback="OnToolbarRefreshCallback" TabHeader="TabHeader" - Body="@Main" NotAuthorized="NotAuthorized!" NotFound="NotFound!" NotFoundTabText="@NotFoundTabText"> + Body="@Main" NotAuthorized="NotAuthorized!" NotFound="NotFound!" NotFoundTabText="@NotFoundTabText" + EnableErrorLogger="EnableErrorLogger" ShowErrorLoggerToast="ShowErrorLoggerToast" + ErrorLoggerToastTitle="@ErrorLoggerToastTitle"> ; RenderFragment RenderFooter => diff --git a/src/BootstrapBlazor/Components/Layout/Layout.razor.cs b/src/BootstrapBlazor/Components/Layout/Layout.razor.cs index fb28b9cd819..2b89bf792e3 100644 --- a/src/BootstrapBlazor/Components/Layout/Layout.razor.cs +++ b/src/BootstrapBlazor/Components/Layout/Layout.razor.cs @@ -490,11 +490,19 @@ public partial class Layout : IHandlerException, ITabHeader [NotNull] private IStringLocalizer? Localizer { get; set; } + [Inject] + [NotNull] + private IOptionsMonitor? Options { get; set; } + private bool _init; private LayoutHeader? _layoutHeader = null; private ITabHeader? TabHeader => ShowTabInHeader ? this : null; + private bool _enableErrorLogger => EnableErrorLogger ?? Options.CurrentValue.EnableErrorLogger; + + private bool _showToast => ShowErrorLoggerToast ?? Options.CurrentValue.ShowErrorLoggerToast; + /// /// /// diff --git a/src/BootstrapBlazor/Components/Tab/Tab.razor.cs b/src/BootstrapBlazor/Components/Tab/Tab.razor.cs index 03d691bb688..67976808355 100644 --- a/src/BootstrapBlazor/Components/Tab/Tab.razor.cs +++ b/src/BootstrapBlazor/Components/Tab/Tab.razor.cs @@ -431,6 +431,24 @@ public partial class Tab [Parameter] public ITabHeader? TabHeader { get; set; } + /// + /// 获得/设置 是否开启全局异常捕获 默认 null 读取配置文件 EnableErrorLogger 值 + /// + [Parameter] + public bool? EnableErrorLogger { get; set; } + + /// + /// 获得/设置 是否显示 Error 提示弹窗 默认 null 使用 设置值 + /// + [Parameter] + public bool? ShowErrorLoggerToast { get; set; } + + /// + /// 获得/设置 错误日志 弹窗标题 默认 null + /// + [Parameter] + public string? ErrorLoggerToastTitle { get; set; } + [CascadingParameter] private Layout? Layout { get; set; } diff --git a/src/BootstrapBlazor/Components/Tab/TabItemContent.cs b/src/BootstrapBlazor/Components/Tab/TabItemContent.cs index a9f1a9e9d47..a9e7662be0b 100644 --- a/src/BootstrapBlazor/Components/Tab/TabItemContent.cs +++ b/src/BootstrapBlazor/Components/Tab/TabItemContent.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Components; -internal class TabItemContent : IComponent +class TabItemContent : IComponent { /// /// Gets or sets the component content. Default is null @@ -15,8 +15,8 @@ internal class TabItemContent : IComponent [Parameter, NotNull] public TabItem? Item { get; set; } - [CascadingParameter] - private Layout? Layout { get; set; } + [CascadingParameter, NotNull] + private Tab? TabSet { get; set; } private RenderHandle _renderHandle; @@ -55,10 +55,11 @@ private RenderFragment RenderItemContent(RenderFragment? content) => builder => builder.OpenComponent(0); builder.AddAttribute(1, nameof(ErrorLogger.ChildContent), content); - var enableErrorLogger = Layout?.EnableErrorLogger; - var showToast = Layout?.ShowErrorLoggerToast; + var enableErrorLogger = TabSet.EnableErrorLogger; + var showToast = TabSet.ShowErrorLoggerToast; builder.AddAttribute(2, nameof(ErrorLogger.EnableErrorLogger), enableErrorLogger); builder.AddAttribute(3, nameof(ErrorLogger.ShowToast), showToast); + builder.AddAttribute(4, nameof(ErrorLogger.ToastTitle), TabSet.ErrorLoggerToastTitle); builder.CloseComponent(); };