diff --git a/db/SQLite/InitData.sql b/db/SQLite/InitData.sql index fef9954f..4745bef9 100644 --- a/db/SQLite/InitData.sql +++ b/db/SQLite/InitData.sql @@ -26,7 +26,7 @@ INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('头像地址 INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('网站样式', '蓝色样式', 'blue.css', 0); INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('网站样式', '黑色样式', 'black.css', 0); INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('网站样式', 'AdminLTE', 'lte.css', 0); -INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('当前样式', '使用样式', 'blue.css', 0); +INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('网站设置', '使用样式', 'blue.css', 0); INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('网站设置', '前台首页', '~/Home/Index', 0); -- 网站UI设置 diff --git a/src/admin/Bootstrap.Admin/BootstrapAdmin.db b/src/admin/Bootstrap.Admin/BootstrapAdmin.db index e8c0623b..fc871028 100644 Binary files a/src/admin/Bootstrap.Admin/BootstrapAdmin.db and b/src/admin/Bootstrap.Admin/BootstrapAdmin.db differ diff --git a/src/admin/Bootstrap.Admin/Controllers/Api/SettingsController.cs b/src/admin/Bootstrap.Admin/Controllers/Api/SettingsController.cs index 2628f8f7..9733fdd6 100644 --- a/src/admin/Bootstrap.Admin/Controllers/Api/SettingsController.cs +++ b/src/admin/Bootstrap.Admin/Controllers/Api/SettingsController.cs @@ -22,8 +22,8 @@ namespace Bootstrap.Admin.Controllers.Api /// /// [HttpPost] - [ButtonAuthorize(Url = "~/Admin/Settings", Auth = "saveTitle,saveFooter,saveTheme,saveUISettings,clearCache,clearAllCache,loginSettings,lockScreen,defaultApp,blazor")] - public bool Post([FromBody]IEnumerable values) => DictHelper.SaveSettings(values); + [ButtonAuthorize(Url = "~/Admin/Settings", Auth = "saveTitle,saveFooter,saveTheme,saveUISettings,loginSettings,lockScreen,defaultApp,blazor,iplocate")] + public bool Post([FromBody]IEnumerable values) => DictHelper.SaveUISettings(values); /// /// 获取网站缓存站点集合 diff --git a/src/admin/Bootstrap.Admin/Pages/Views/Components/SettingsBase.cs b/src/admin/Bootstrap.Admin/Pages/Views/Components/SettingsBase.cs index 686f30dd..2241829b 100644 --- a/src/admin/Bootstrap.Admin/Pages/Views/Components/SettingsBase.cs +++ b/src/admin/Bootstrap.Admin/Pages/Views/Components/SettingsBase.cs @@ -165,7 +165,13 @@ namespace Bootstrap.Admin.Pages.Views.Admin.Components /// protected void SaveWebTitle() { - var ret = DictHelper.SaveWebTitle(Model.Title); + var ret = DictHelper.SaveSettings(new BootstrapDict[]{ + new BootstrapDict() { + Category = "网站设置", + Name = "网站标题", + Code = Model.Title + } + }); RootLayout?.OnWebTitleChanged(Model.Title); ShowMessage("保存网站标题", ret); } @@ -175,7 +181,13 @@ namespace Bootstrap.Admin.Pages.Views.Admin.Components /// protected void SaveWebFooter() { - var ret = DictHelper.SaveWebFooter(Model.Footer); + var ret = DictHelper.SaveSettings(new BootstrapDict[]{ + new BootstrapDict() { + Category = "网站设置", + Name = "网站页脚", + Code = Model.Footer + } + }); RootLayout?.OnWebFooterChanged(Model.Footer); ShowMessage("保存网站页脚", ret); } diff --git a/src/admin/Bootstrap.Admin/wwwroot/js/settings.js b/src/admin/Bootstrap.Admin/wwwroot/js/settings.js index 0bf4f310..4c4820e6 100644 --- a/src/admin/Bootstrap.Admin/wwwroot/js/settings.js +++ b/src/admin/Bootstrap.Admin/wwwroot/js/settings.js @@ -11,7 +11,9 @@ $(function () { case 'footer': data = dataBinder.get(); $.bc({ - url: Settings.url, data: [{ name: '网站页脚', code: data.Footer, category: '网站设置' }], title: '保存网站页脚', method: "post", + url: Settings.url, data: [ + { name: 'SaveWebFooter', code: data.Footer } + ], title: '保存网站页脚', method: "post", callback: function (result) { if (result) $('#websiteFooter').text(data.Footer); } @@ -20,16 +22,20 @@ $(function () { case 'title': data = dataBinder.get(); $.bc({ - url: Settings.url, data: [{ name: '网站标题', code: data.Title, category: '网站设置' }], title: '保存网站标题', method: "post", + url: Settings.url, data: [ + { name: 'SaveWebTitle', code: data.Title } + ], title: '保存网站标题', method: "post", callback: function (result) { - if (result) $('#websiteTitle').text(data.Title); + if (result) $('#websiteTitle, aside .nav-brand a span').text(data.Title); } }); break; case 'css': var cssDefine = $css.val(); $.bc({ - url: Settings.url, data: [{ name: '使用样式', code: cssDefine, category: '当前样式' }], title: '保存网站样式', method: "post", + url: Settings.url, data: [ + { name: 'SaveTheme', code: cssDefine } + ], title: '保存网站样式', method: "post", callback: function (result) { if (result) { window.setTimeout(function () { window.location.reload(true); }, 1000); @@ -43,9 +49,9 @@ $(function () { var fixedTableHeader = $('#tableHeader').prop('checked') ? "1" : "0"; $.bc({ url: Settings.url, data: [ - { name: '卡片标题状态', code: cardTitle, category: '网站设置' }, - { name: '侧边栏状态', code: uiSettings, category: '网站设置' }, - { name: '固定表头', code: fixedTableHeader, category: '网站设置' } + { name: 'ShowCardTitle', code: cardTitle }, + { name: 'ShowSideBar', code: uiSettings }, + { name: 'FixedTableHeader', code: fixedTableHeader } ], title: '保存网站设置', method: "post", callback: function (result) { if (result) { @@ -58,13 +64,19 @@ $(function () { var mobile = $('#mobile').prop('checked') ? "1" : "0"; var oauth = $('#oauth').prop('checked') ? "1" : "0"; $.bc({ - url: Settings.url, data: [{ name: 'OAuth 认证登录', code: oauth, category: '网站设置' }, { name: '短信验证码登录', code: mobile, category: '网站设置' }], title: '登录设置', method: "post" + url: Settings.url, data: [ + { name: 'OAuth', code: oauth }, + { name: 'SMS', code: mobile } + ], title: '登录设置', method: "post" }); break; case 'saveAutoLock': var autoLock = $('#lockScreen').prop('checked') ? "1" : "0"; $.bc({ - url: Settings.url, data: [{ name: '自动锁屏', code: autoLock, category: '网站设置' }, { name: '自动锁屏时长', code: $('#lockPeriod').val(), category: '网站设置' }], title: '保存自动锁屏设置', method: "post", + url: Settings.url, data: [ + { name: 'AutoLock', code: autoLock }, + { name: 'AutoLockPeriod', code: $('#lockPeriod').val() } + ], title: '保存自动锁屏设置', method: "post", callback: function (result) { if (result) { window.setTimeout(function () { window.location.reload(true); }, 1000); @@ -75,13 +87,13 @@ $(function () { case 'saveDefaultApp': var defaultApp = $('#defaultApp').prop('checked') ? "1" : "0"; $.bc({ - url: Settings.url, data: [{ name: '默认应用程序', code: defaultApp, category: '网站设置' }], title: '保存默认应用程序设置', method: "post" + url: Settings.url, data: [{ name: 'DefaultApp', code: defaultApp }], title: '保存默认应用程序设置', method: "post" }); break; case 'saveBlazor': var blazor = $('#blazor').prop('checked') ? "1" : "0"; $.bc({ - url: Settings.url, data: [{ name: 'Blazor', code: blazor, category: '网站设置' }], title: 'Blazor 设置', method: "post", + url: Settings.url, data: [{ name: 'Blazor', code: blazor }], title: 'Blazor 设置', method: "post", callback: function (result) { if (result) { // 通过值设置是否显示 Blazor 挂件 @@ -95,7 +107,7 @@ $(function () { case 'saveIpLocator': var iplocator = $iplocator.val(); $.bc({ - url: Settings.url, data: [{ name: 'IP地理位置接口', code: iplocator, category: '网站设置' }], title: '保存地理位置服务设置', method: "post" + url: Settings.url, data: [{ name: 'IPLocator', code: iplocator }], title: '保存地理位置服务设置', method: "post" }); break; } diff --git a/src/admin/Bootstrap.DataAccess/Dict.cs b/src/admin/Bootstrap.DataAccess/Dict.cs index 1b734e1f..1cfdccc9 100644 --- a/src/admin/Bootstrap.DataAccess/Dict.cs +++ b/src/admin/Bootstrap.DataAccess/Dict.cs @@ -101,7 +101,7 @@ namespace Bootstrap.DataAccess /// public virtual string RetrieveActiveTheme() { - var theme = DictHelper.RetrieveDicts().FirstOrDefault(d => d.Name == "使用样式" && d.Category == "当前样式" && d.Define == 0); + var theme = DictHelper.RetrieveDicts().FirstOrDefault(d => d.Name == "使用样式" && d.Category == "网站设置" && d.Define == 0); return theme == null ? string.Empty : (theme.Code.Equals("site.css", StringComparison.OrdinalIgnoreCase) ? string.Empty : theme.Code); } diff --git a/src/admin/Bootstrap.DataAccess/Helper/DictHelper.cs b/src/admin/Bootstrap.DataAccess/Helper/DictHelper.cs index 1638534c..fd8a1c32 100644 --- a/src/admin/Bootstrap.DataAccess/Helper/DictHelper.cs +++ b/src/admin/Bootstrap.DataAccess/Helper/DictHelper.cs @@ -116,30 +116,34 @@ namespace Bootstrap.DataAccess } /// - /// 保存网站标题 + /// 保存网站UI设置 /// - /// + /// /// - public static bool SaveWebTitle(string code) + public static bool SaveUISettings(IEnumerable items) { - var ret = DictHelper.SaveSettings(new BootstrapDict[] + var cache = new Dictionary() { - new BootstrapDict() { Category = "网站设置", Name = "网站标题", Code = code } - }); - return ret; - } - - /// - /// 保存网站页脚 - /// - /// - /// - public static bool SaveWebFooter(string code) - { - var ret = DictHelper.SaveSettings(new BootstrapDict[] + ["SaveWebTitle"] = "网站标题", + ["SaveWebFooter"] = "网站页脚", + ["SaveTheme"] = "使用样式", + ["ShowCardTitle"] = "卡片标题状态", + ["ShowSideBar"] = "侧边栏状态", + ["FixedTableHeader"] = "固定表头", + ["OAuth"] = "OAuth 认证登录", + ["SMS"] = "短信验证码登录", + ["AutoLock"] = "自动锁屏", + ["AutoLockPeriod"] = "自动锁屏时长", + ["DefaultApp"] = "默认应用程序", + ["Blazor"] = "Blazor", + ["IPLocator"] = "IP地理位置接口" + }; + var ret = DictHelper.SaveSettings(items.Where(i => cache.Any(c => c.Key == i.Name)).Select(i => new BootstrapDict() { - new BootstrapDict() { Category = "网站设置", Name = "网站页脚", Code = code } - }); + Category = "网站设置", + Name = cache[i.Name], + Code = i.Code + })); return ret; }