diff --git a/src/blazor/admin/BootstrapAdmin.DataAccess.Models/AppInfo.cs b/src/blazor/admin/BootstrapAdmin.DataAccess.Models/AppInfo.cs
new file mode 100644
index 00000000..cffc8eaa
--- /dev/null
+++ b/src/blazor/admin/BootstrapAdmin.DataAccess.Models/AppInfo.cs
@@ -0,0 +1,42 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace BootstrapAdmin.DataAccess.Models;
+
+public class AppInfo
+{
+ ///
+ ///
+ ///
+ [Display(Name = "系统名称")]
+ [Required(ErrorMessage = "{0}不可为空")]
+ public string? Title { get; set; }
+
+ ///
+ ///
+ ///
+ [Display(Name = "网站页脚")]
+ [Required(ErrorMessage = "{0}不可为空")]
+ public string? Footer { get; set; }
+
+ ///
+ ///
+ ///
+ [Display(Name = "登录地址")]
+ public string? Login { get; set; }
+
+ ///
+ ///
+ ///
+ [Display(Name = "后台地址")]
+ public string? AuthUrl { get; set; }
+
+ ///
+ ///
+ ///
+ public string? Theme { get; set; }
+
+ ///
+ ///
+ ///
+ public bool IsDemo { get; set; }
+}
diff --git a/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Settings.razor b/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Settings.razor
index f803d914..edd69444 100644
--- a/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Settings.razor
+++ b/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Settings.razor
@@ -1 +1,93 @@
@page "/Admin/Settings"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 注意:本设置将覆盖 个人中心 中设置的网站样式覆盖本设置
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Settings.razor.cs b/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Settings.razor.cs
index d5379724..7443c926 100644
--- a/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Settings.razor.cs
+++ b/src/blazor/admin/BootstrapAdmin.Web/Pages/Admin/Settings.razor.cs
@@ -1,6 +1,72 @@
-namespace BootstrapAdmin.Web.Pages.Admin
+using BootstrapAdmin.DataAccess.Models;
+using BootstrapAdmin.Web.Core;
+using BootstrapAdmin.Web.Extensions;
+using Microsoft.AspNetCore.Components.Forms;
+
+namespace BootstrapAdmin.Web.Pages.Admin
{
public partial class Settings
{
+ private bool IsDemo { get; set; }
+
+ [NotNull]
+ private AppInfo? AppInfo { get; set; }
+
+ [NotNull]
+ private List? Logins { get; set; }
+
+ [NotNull]
+ private List? Themes { get; set; }
+
+ [Inject]
+ [NotNull]
+ private IDict? DictService { get; set; }
+
+ [Inject]
+ [NotNull]
+ private IUser? UserService { get; set; }
+
+ ///
+ ///
+ ///
+ protected override void OnInitialized()
+ {
+ base.OnInitialized();
+
+ IsDemo = DictService.IsDemo();
+ Logins = DictService.GetLogins().ToSelectedItemList();
+ Themes = DictService.GetThemes().ToSelectedItemList();
+ AppInfo = new();
+ }
+
+ private Task OnSaveTitle(EditContext context)
+ {
+ return Task.CompletedTask;
+ }
+
+ private Task OnSaveFooter(EditContext context)
+ {
+ return Task.CompletedTask;
+ }
+
+ private Task OnSaveLogin(EditContext context)
+ {
+ return Task.CompletedTask;
+ }
+
+ private Task OnSaveAuthUrl(EditContext context)
+ {
+ return Task.CompletedTask;
+ }
+
+ private Task OnSaveTheme(EditContext context)
+ {
+ return Task.CompletedTask;
+ }
+
+ private void OnSaveDemo()
+ {
+ IsDemo = AppInfo.IsDemo;
+ }
}
}