From d46ef2b89c3339816a1ad28c96643c87c2c64827 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 25 Mar 2025 09:25:44 +0800 Subject: [PATCH 01/12] =?UTF-8?q?refactor:=20=E4=B8=BB=E9=A2=98=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E6=94=B9=E4=B8=BA=20JS=20=E6=A1=86=E6=9E=B6=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Components/Pre.razor.cs | 22 ------------------- .../Components/Components/Pre.razor.js | 22 +++++++++++++++---- .../wwwroot/modules/utility.js | 6 ++++- 3 files changed, 23 insertions(+), 27 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Components/Pre.razor.cs b/src/BootstrapBlazor.Server/Components/Components/Pre.razor.cs index 90133402d80..7077a5f9adc 100644 --- a/src/BootstrapBlazor.Server/Components/Components/Pre.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Components/Pre.razor.cs @@ -29,10 +29,6 @@ public partial class Pre [NotNull] private CodeSnippetService? CodeSnippetService { get; set; } - [Inject] - [NotNull] - private IThemeProvider? ThemeProviderService { get; set; } - /// /// 获得/设置 子组件 CodeFile 为空时生效 /// @@ -71,16 +67,6 @@ public partial class Pre private string? CopiedText { get; set; } - /// - /// - /// - protected override void OnInitialized() - { - base.OnInitialized(); - - ThemeProviderService.ThemeChangedAsync += OnThemeChanged; - } - /// /// /// @@ -203,12 +189,4 @@ private string FindCodeSnippetByName(string code) [GeneratedRegex(@"[\s\S]*?")] private static partial Regex TipsRegex(); - - private async Task OnThemeChanged(string themeName) - { - if (themeName == "light" || themeName == "dark") - { - await InvokeVoidAsync("switchTheme", themeName); - } - } } diff --git a/src/BootstrapBlazor.Server/Components/Components/Pre.razor.js b/src/BootstrapBlazor.Server/Components/Components/Pre.razor.js index 54d82b2be68..8c412668f0b 100644 --- a/src/BootstrapBlazor.Server/Components/Components/Pre.razor.js +++ b/src/BootstrapBlazor.Server/Components/Components/Pre.razor.js @@ -1,4 +1,4 @@ -import { copy, getDescribedElement, addLink, removeLink, addScript, getHeight, getPreferredTheme } from "../../_content/BootstrapBlazor/modules/utility.js" +import { copy, getDescribedElement, addLink, removeLink, addScript, getHeight, getPreferredTheme, registerBootstrapBlazorModule } from "../../_content/BootstrapBlazor/modules/utility.js" import EventHandler from "../../_content/BootstrapBlazor/modules/event-handler.js" export async function init(id, title, assetRoot) { @@ -48,6 +48,15 @@ export async function init(id, title, assetRoot) { preElement.style.maxHeight = `${preHeight}px` }) } + + registerBootstrapBlazorModule('Pre', id, () => { + EventHandler.on(document, 'changed.bb.theme', updateTheme); + }); +} + +const updateTheme = e => { + const theme = e.theme; + switchTheme(theme); } export async function highlight(id) { @@ -96,7 +105,12 @@ export function dispose(id) { return } - EventHandler.off(el, 'click', '.btn-copy') - EventHandler.off(el, 'click', '.btn-plus') - EventHandler.off(el, 'click', '.btn-minus') + EventHandler.off(el, 'click', '.btn-copy'); + EventHandler.off(el, 'click', '.btn-plus'); + EventHandler.off(el, 'click', '.btn-minus'); + + const { Pre } = window.BootstrapBlazor; + Pre.dispose(id, () => { + EventHandler.off(document, 'changed.bb.theme', updateTheme); + }); } diff --git a/src/BootstrapBlazor/wwwroot/modules/utility.js b/src/BootstrapBlazor/wwwroot/modules/utility.js index a8cf06a0271..5930a97baae 100644 --- a/src/BootstrapBlazor/wwwroot/modules/utility.js +++ b/src/BootstrapBlazor/wwwroot/modules/utility.js @@ -1,4 +1,6 @@ -const vibrate = () => { +import EventHandler from "./event-handler.js" + +const vibrate = () => { if ('vibrate' in window.navigator) { window.navigator.vibrate([200, 100, 200]) const handler = window.setTimeout(function () { @@ -788,6 +790,8 @@ export function switchTheme(theme, x = 0, y = 0, sync = true) { else { setTheme(theme, sync); } + + EventHandler.trigger(document, 'changed.bb.theme', { theme: theme }); } const deepMerge = (obj1, obj2, skipNull = true) => { From db89a658e33669452633bf917f63a0e559b8ec83 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 25 Mar 2025 10:00:39 +0800 Subject: [PATCH 02/12] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/DockViews2/BaseDockView.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs index ca40bad886f..46305516ddf 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs @@ -162,7 +162,7 @@ public class TreeFoo : Foo /// GenerateFoos /// /// - public static List GenerateFoos(IStringLocalizer localizer, int count = 80, int parentId = 0, int id = 0) => Enumerable.Range(1, count).Select(i => new TreeFoo() + public static List GenerateFoos(IStringLocalizer localizer, int count = 80, int parentId = 0, int id = 0) => [.. Enumerable.Range(1, count).Select(i => new TreeFoo() { Id = id + i, ParentId = parentId, @@ -172,6 +172,6 @@ public class TreeFoo : Foo Count = Random.Shared.Next(1, 100), Complete = Random.Shared.Next(1, 100) > 50, Education = Random.Shared.Next(1, 100) > 50 ? EnumEducation.Primary : EnumEducation.Middle - }).ToList(); + })]; } } From 11c3cd9f424a7e277a45faa7faa7f94739a66c74 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 25 Mar 2025 10:01:03 +0800 Subject: [PATCH 03/12] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=E4=B8=BB?= =?UTF-8?q?=E9=A2=98=E5=90=8C=E6=AD=A5=E4=BB=A3=E7=A0=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/DockViews2/BaseDockView.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs index 46305516ddf..d519361d5bf 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs @@ -88,7 +88,6 @@ private Task OnThemeChanged(string themeName) { Theme = DockViewTheme.Light; } - StateHasChanged(); return Task.CompletedTask; } From e22a543f4a25ed107c0556a83fa4929ac1db5f46 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 25 Mar 2025 10:01:26 +0800 Subject: [PATCH 04/12] =?UTF-8?q?refactor:=20=E5=BC=82=E6=AD=A5=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/wwwroot/modules/utility.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/wwwroot/modules/utility.js b/src/BootstrapBlazor/wwwroot/modules/utility.js index 5930a97baae..2b539fb5264 100644 --- a/src/BootstrapBlazor/wwwroot/modules/utility.js +++ b/src/BootstrapBlazor/wwwroot/modules/utility.js @@ -785,13 +785,13 @@ export function switchTheme(theme, x = 0, y = 0, sync = true) { document.documentElement.style.setProperty('--bb-theme-y', `${y}px`); document.startViewTransition(() => { setTheme(theme, sync); + EventHandler.trigger(document, 'changed.bb.theme', { theme: theme }); }); } else { setTheme(theme, sync); + EventHandler.trigger(document, 'changed.bb.theme', { theme: theme }); } - - EventHandler.trigger(document, 'changed.bb.theme', { theme: theme }); } const deepMerge = (obj1, obj2, skipNull = true) => { From bbf0e8a34366b4c98ae3563ee198bda31be9486a Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 25 Mar 2025 10:08:56 +0800 Subject: [PATCH 05/12] =?UTF-8?q?refactor:=20=E7=B2=BE=E7=AE=80=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=8F=90=E9=AB=98=E5=8F=AF=E8=AF=BB=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/wwwroot/modules/utility.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/wwwroot/modules/utility.js b/src/BootstrapBlazor/wwwroot/modules/utility.js index 2b539fb5264..f8e6f86aeab 100644 --- a/src/BootstrapBlazor/wwwroot/modules/utility.js +++ b/src/BootstrapBlazor/wwwroot/modules/utility.js @@ -756,6 +756,7 @@ export function setTheme(theme, sync) { }) saveTheme(theme); } + EventHandler.trigger(document, 'changed.bb.theme', { theme: theme }); } export function setActiveTheme(el, activeItem) { @@ -785,12 +786,10 @@ export function switchTheme(theme, x = 0, y = 0, sync = true) { document.documentElement.style.setProperty('--bb-theme-y', `${y}px`); document.startViewTransition(() => { setTheme(theme, sync); - EventHandler.trigger(document, 'changed.bb.theme', { theme: theme }); }); } else { setTheme(theme, sync); - EventHandler.trigger(document, 'changed.bb.theme', { theme: theme }); } } From 24bdb75ff67fb2a09bceed179dfb425cb50e3b11 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 25 Mar 2025 11:53:45 +0800 Subject: [PATCH 06/12] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=99=8D=E4=BD=8E=E7=89=88=E6=9C=AC=E8=A6=81=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/wwwroot/modules/base-popover.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/wwwroot/modules/base-popover.js b/src/BootstrapBlazor/wwwroot/modules/base-popover.js index eb56a9ef373..d062b18140c 100644 --- a/src/BootstrapBlazor/wwwroot/modules/base-popover.js +++ b/src/BootstrapBlazor/wwwroot/modules/base-popover.js @@ -17,7 +17,7 @@ const Popover = { initCallback: null, hideCallback: null }, - ...(config ?? {}) + ...(config || {}) } const createPopover = () => { if (!popover.isDisabled()) { From 138d0d7491f7683e9ae65c9f63a696829c0b6d04 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 25 Mar 2025 11:55:31 +0800 Subject: [PATCH 07/12] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=20TriggerT?= =?UTF-8?q?hemeChanged=20=E4=BA=8B=E4=BB=B6=E5=93=8D=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/ThemeProvider/ThemeProvider.razor.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/ThemeProvider/ThemeProvider.razor.cs b/src/BootstrapBlazor/Components/ThemeProvider/ThemeProvider.razor.cs index 01a0592f605..02bee1c5961 100644 --- a/src/BootstrapBlazor/Components/ThemeProvider/ThemeProvider.razor.cs +++ b/src/BootstrapBlazor/Components/ThemeProvider/ThemeProvider.razor.cs @@ -143,6 +143,7 @@ public async Task OnThemeChanged(ThemeValue name) { await OnThemeChangedAsync(name); } - await ThemeProviderService.SetThemeAsync(name.ToDescriptionString()); + + ThemeProviderService.TriggerThemeChanged(name.ToDescriptionString()); } } From f133e9c803e92a4204ce5c0a945a76d0974c4054 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 25 Mar 2025 11:56:31 +0800 Subject: [PATCH 08/12] =?UTF-8?q?revert:=20=E6=92=A4=E9=94=80=20ThemeMode?= =?UTF-8?q?=20=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Components/ThemeMode.razor | 2 +- .../Components/Components/ThemeMode.razor.cs | 19 ------------------- .../Components/Components/ThemeMode.razor.js | 3 +-- 3 files changed, 2 insertions(+), 22 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor b/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor index 3021f368488..a1b658e6549 100644 --- a/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor +++ b/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor @@ -1,5 +1,5 @@ @inherits WebSiteModuleComponentBase -@attribute [JSModuleAutoLoader("Components/ThemeMode.razor.js", JSObjectReference = true)] +@attribute [JSModuleAutoLoader("Components/ThemeMode.razor.js")]
diff --git a/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.cs b/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.cs index 783caf74ba2..f996d2122dd 100644 --- a/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.cs @@ -3,8 +3,6 @@ // See the LICENSE file in the project root for more information. // Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone -using Microsoft.JSInterop; - namespace BootstrapBlazor.Server.Components.Components; /// @@ -15,10 +13,6 @@ public partial class ThemeMode [Inject, NotNull] private IIconTheme? IconTheme { get; set; } - [Inject] - [NotNull] - private IThemeProvider? ThemeProvider { get; set; } - private string? GetLightIconClassString => CssBuilder.Default("icon-light") .AddClass(_lightModeIcon) .Build(); @@ -41,17 +35,4 @@ protected override void OnInitialized() _darkModeIcon ??= IconTheme.GetIconByKey(ComponentIcons.ThemeProviderDarkModeIcon); _lightModeIcon ??= IconTheme.GetIconByKey(ComponentIcons.ThemeProviderLightModeIcon); } - - /// - /// - /// - protected override Task InvokeInitAsync() => InvokeVoidAsync("init", Id, Interop, nameof(OnThemeChanged)); - - /// - /// The callback when theme changed - /// - /// - /// - [JSInvokable] - public ValueTask OnThemeChanged(string themeName) => ThemeProvider.SetThemeAsync(themeName); } diff --git a/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.js b/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.js index ce6ed515de3..f0a7962ba3b 100644 --- a/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.js +++ b/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.js @@ -1,7 +1,7 @@ import { getTheme, switchTheme, calcCenterPosition } from "../../_content/BootstrapBlazor/modules/utility.js" import EventHandler from "../../_content/BootstrapBlazor/modules/event-handler.js" -export function init(id, invoke, method) { +export function init(id) { const el = document.getElementById(id); if (el) { EventHandler.on(el, 'click', e => { @@ -15,7 +15,6 @@ export function init(id, invoke, method) { const rect = calcCenterPosition(el); switchTheme(theme, rect.x, rect.y); - invoke.invokeMethodAsync(method, theme); }); } } From 48c5b3a507b3b98b25cdb3087c189755d65290ec Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 25 Mar 2025 12:29:27 +0800 Subject: [PATCH 09/12] =?UTF-8?q?style:=20=E6=9B=B4=E6=96=B0=20Dropdown=20?= =?UTF-8?q?=E6=9A=97=E9=BB=91=E4=B8=BB=E9=A2=98=E8=83=8C=E6=99=AF=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Dropdown/Dropdown.razor.scss | 3 +++ src/BootstrapBlazor/wwwroot/scss/bootstrapblazor-dark.scss | 3 +++ src/BootstrapBlazor/wwwroot/scss/components.scss | 1 + 3 files changed, 7 insertions(+) create mode 100644 src/BootstrapBlazor/Components/Dropdown/Dropdown.razor.scss diff --git a/src/BootstrapBlazor/Components/Dropdown/Dropdown.razor.scss b/src/BootstrapBlazor/Components/Dropdown/Dropdown.razor.scss new file mode 100644 index 00000000000..20a30229440 --- /dev/null +++ b/src/BootstrapBlazor/Components/Dropdown/Dropdown.razor.scss @@ -0,0 +1,3 @@ +[data-bs-theme='dark'] .dropdown-menu { + --bs-dropdown-bg: #{$bs-dropdown-bg-dark}; +} diff --git a/src/BootstrapBlazor/wwwroot/scss/bootstrapblazor-dark.scss b/src/BootstrapBlazor/wwwroot/scss/bootstrapblazor-dark.scss index 0954652b63f..42c56c60287 100644 --- a/src/BootstrapBlazor/wwwroot/scss/bootstrapblazor-dark.scss +++ b/src/BootstrapBlazor/wwwroot/scss/bootstrapblazor-dark.scss @@ -10,6 +10,9 @@ $bb-layout-menu-user-border-color-dark: #2c3034; $bb-layout-logo-border-color-dark: var(--bs-border-color); $bb-layout-logo-bg-dark: #606266; +// Dropdown +$bs-dropdown-bg-dark: #343a40; + // Dial-Button $bb-dial-item-hover-bg-dark: #313131; diff --git a/src/BootstrapBlazor/wwwroot/scss/components.scss b/src/BootstrapBlazor/wwwroot/scss/components.scss index ffd1e88b3fa..6da3b716f25 100644 --- a/src/BootstrapBlazor/wwwroot/scss/components.scss +++ b/src/BootstrapBlazor/wwwroot/scss/components.scss @@ -34,6 +34,7 @@ @import "../../Components/Divider/Divider.razor.scss"; @import "../../Components/DragDrap/DragDrop.razor.scss"; @import "../../Components/Drawer/Drawer.razor.scss"; +@import "../../Components/Dropdown/Dropdown.razor.scss"; @import "../../Components/DropdownWidget/DropdownWidget.razor.scss"; @import "../../Components/EditorForm/EditorForm.razor.scss"; @import "../../Components/Empty/Empty.razor.scss"; From 0eca6eb59c53a7268c8270d4baa2bd1352171a59 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 25 Mar 2025 12:37:28 +0800 Subject: [PATCH 10/12] =?UTF-8?q?revert:=20=E6=92=A4=E9=94=80=20Theme=20?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Samples/DockViews2/BaseDockView.cs | 49 ++++++------------- .../Samples/DockViews2/DockViewCol.razor | 2 +- .../Samples/DockViews2/DockViewComplex.razor | 2 +- .../Samples/DockViews2/DockViewGroup.razor | 2 +- .../Samples/DockViews2/DockViewLayout.razor | 2 +- .../Samples/DockViews2/DockViewLock.razor | 2 +- .../Samples/DockViews2/DockViewNest.razor | 2 +- .../Samples/DockViews2/DockViewNest.razor.cs | 2 + .../Samples/DockViews2/DockViewRow.razor | 2 +- .../Samples/DockViews2/DockViewTitle.razor | 2 +- .../Samples/DockViews2/DockViewVisible.razor | 2 +- 11 files changed, 26 insertions(+), 43 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs index d519361d5bf..af6d117dd8f 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs @@ -22,10 +22,6 @@ public abstract class BaseDockView : ComponentBase [NotNull] private MockDataTableDynamicService? DataTableDynamicService { get; set; } - [Inject] - [NotNull] - private IThemeProvider? ThemeProviderService { get; set; } - /// /// 获得/设置 数据集合 /// @@ -74,21 +70,6 @@ protected override void OnInitialized() TreeItems.AddRange(TreeFoo.GenerateFoos(LocalizerFoo, 3, 101, 1010)); DataTableDynamicContext = DataTableDynamicService.CreateContext(); - - ThemeProviderService.ThemeChangedAsync += OnThemeChanged; - } - - private Task OnThemeChanged(string themeName) - { - if (themeName == "dark") - { - Theme = DockViewTheme.Dark; - } - else - { - Theme = DockViewTheme.Light; - } - return Task.CompletedTask; } /// @@ -115,23 +96,23 @@ private int GenerateId() protected static Task>> TreeNodeConverter(IEnumerable items) { // 构造树状数据结构 - var ret = BuildTreeNodes(items, 0); - return Task.FromResult(ret); + var ret = BuildTreeNodes(items.ToList(), 0); + return Task.FromResult(ret.AsEnumerable()); + } - IEnumerable> BuildTreeNodes(IEnumerable items, int parentId) + private static List> BuildTreeNodes(List items, int parentId) + { + var ret = new List>(); + ret.AddRange(items.Where(i => i.ParentId == parentId).Select((foo, index) => new TableTreeNode(foo) { - var ret = new List>(); - ret.AddRange(items.Where(i => i.ParentId == parentId).Select((foo, index) => new TableTreeNode(foo) - { - // 此处为示例,假设偶行数据都有子数据 - HasChildren = index % 2 == 0, - // 如果子项集合有值 则默认展开此节点 - IsExpand = items.Any(i => i.ParentId == foo.Id), - // 获得子项集合 - Items = BuildTreeNodes(items.Where(i => i.ParentId == foo.Id), foo.Id) - })); - return ret; - } + // 此处为示例,假设偶行数据都有子数据 + HasChildren = index % 2 == 0, + // 如果子项集合有值 则默认展开此节点 + IsExpand = items.Any(i => i.ParentId == foo.Id), + // 获得子项集合 + Items = BuildTreeNodes(items.Where(i => i.ParentId == foo.Id).ToList(), foo.Id) + })); + return ret; } /// diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewCol.razor b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewCol.razor index 38632f3419e..422522d84ad 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewCol.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewCol.razor @@ -5,7 +5,7 @@

@((MarkupString)Localizer["DockViewColIntro"].Value)

- + @((MarkupString)Localizer["DockViewComplexIntro"].Value) - + diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewGroup.razor b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewGroup.razor index 3e5e85ad94b..891e1af7d83 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewGroup.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewGroup.razor @@ -5,7 +5,7 @@

@((MarkupString)Localizer["DockViewGroupIntro"].Value)

- + diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLayout.razor b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLayout.razor index 8d469704886..08fffe29a95 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLayout.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLayout.razor @@ -12,7 +12,7 @@ - +
- +
- +
? Localizer { get; set; } + + private DockViewTheme _theme; } diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewRow.razor b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewRow.razor index e53c5225a57..e5bb196c9e9 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewRow.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewRow.razor @@ -5,7 +5,7 @@

@((MarkupString)Localizer["DockViewRowIntro"].Value)

- +
@((MarkupString)Localizer["DockViewTitleIntro"].Value) - +
- +
Date: Tue, 25 Mar 2025 13:12:24 +0800 Subject: [PATCH 11/12] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E4=BE=9D?= =?UTF-8?q?=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj b/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj index fb6f05ea55d..cf06face498 100644 --- a/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj +++ b/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj @@ -31,7 +31,7 @@ - + @@ -48,7 +48,7 @@ - + From 136841b16e4b54f795c6abba49303f95340e19aa Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 25 Mar 2025 13:23:26 +0800 Subject: [PATCH 12/12] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/DockViews2/BaseDockView.cs | 5 ----- .../Samples/DockViews2/DockViewLayout.razor | 2 +- .../Samples/DockViews2/DockViewLayout.razor.cs | 12 ++++++------ .../Components/Samples/DockViews2/DockViewNest.razor | 4 ++-- 4 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs index af6d117dd8f..9fd84cc3e72 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs @@ -39,11 +39,6 @@ public abstract class BaseDockView : ComponentBase /// protected DataTableDynamicContext? DataTableDynamicContext { get; set; } - /// - /// Gets or sets the theme - /// - protected DockViewTheme Theme { get; set; } = DockViewTheme.Light; - /// /// 获得 实例方法 /// diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLayout.razor b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLayout.razor index 08fffe29a95..77f434cb1b7 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLayout.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLayout.razor @@ -12,7 +12,7 @@ - +
? Localizer { get; set; } [NotNull] - private DockViewV2? DockView { get; set; } + private DockViewV2? _dockView = null; - private Task Reset() => DockView.Reset(LayoutConfig); + private Task Reset() => _dockView.Reset(_layoutConfig); private void OnToggleLayout1() { - LayoutConfig = LayoutConfig1; + _layoutConfig = LayoutConfig1; } private void OnToggleLayout2() { - LayoutConfig = LayoutConfig2; + _layoutConfig = LayoutConfig2; } private void OnToggleLayout3() { - LayoutConfig = LayoutConfig3; + _layoutConfig = LayoutConfig3; } - private string LayoutConfig = LayoutConfig1; + private string _layoutConfig = LayoutConfig1; const string LayoutConfig1 = """{"grid":{"root":{"type":"branch","data":[{"type":"branch","data":[{"type":"leaf","data":{"views":["bb_5893789"],"activeView":"bb_5893789","id":"0"},"size":364},{"type":"leaf","data":{"views":["bb_11251481"],"activeView":"bb_11251481","id":"1"},"size":364},{"type":"leaf","data":{"views":["bb_39754773"],"activeView":"bb_39754773","id":"2"},"size":364}],"size":601}],"size":1092},"width":1092,"height":601,"orientation":"VERTICAL"},"panels":{"bb_5893789":{"id":"bb_5893789","contentComponent":"component","tabComponent":"component","params":{"componentName":"component","title":"标签一","titleWidth":null,"titleClass":null,"class":null,"visible":true,"showClose":true,"width":null,"height":null,"key":null,"isLock":false,"type":"component","id":"bb_5893789","additionalAttributes":null},"title":"标签一"},"bb_11251481":{"id":"bb_11251481","contentComponent":"component","tabComponent":"component","params":{"componentName":"component","title":"标签二","titleWidth":null,"titleClass":null,"class":null,"visible":true,"showClose":true,"width":null,"height":null,"key":null,"isLock":false,"type":"component","id":"bb_11251481","additionalAttributes":null},"title":"标签二"},"bb_39754773":{"id":"bb_39754773","contentComponent":"component","tabComponent":"component","params":{"componentName":"component","title":"标签三","titleWidth":null,"titleClass":null,"class":null,"visible":true,"showClose":true,"width":null,"height":null,"key":null,"isLock":false,"type":"component","id":"bb_39754773","additionalAttributes":null},"title":"标签三"}},"activeGroup":"1"}"""; diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewNest.razor b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewNest.razor index 4e52837b685..f65613b5ee7 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewNest.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewNest.razor @@ -5,7 +5,7 @@

@((MarkupString)Localizer["DockViewNestIntro"].Value)

- + @@ -40,7 +40,7 @@
- +