Browse Source

add theme settings interface.

pull/599/head
cKey 4 years ago
parent
commit
1aded9c01f
  1. 16
      aspnet-core/LINGYUN.MicroService.All.sln
  2. 1
      aspnet-core/modules/platform/LINGYUN.Abp.UI.Navigation.VueVbenAdmin/LINGYUN.Abp.UI.Navigation.VueVbenAdmin.csproj
  3. 3
      aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/FodyWeavers.xml
  4. 30
      aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/FodyWeavers.xsd
  5. 27
      aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/LINGYUN.Platform.Settings.VueVbenAdmin.csproj
  6. 135
      aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/LINGYUN/Platform/Settings/VueVbenAdmin/Localization/Resources/en.json
  7. 135
      aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/LINGYUN/Platform/Settings/VueVbenAdmin/Localization/Resources/zh-Hans.json
  8. 26
      aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/LINGYUN/Platform/Settings/VueVbenAdmin/PlatformSettingsVueVbenAdminModule.cs
  9. 410
      aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/LINGYUN/Platform/Settings/VueVbenAdmin/VueVbenAdminSettingDefinitionProvider.cs
  10. 101
      aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/LINGYUN/Platform/Settings/VueVbenAdmin/VueVbenAdminSettingNames.cs
  11. 3
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/FodyWeavers.xml
  12. 30
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/FodyWeavers.xsd
  13. 23
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN.Platform.Theme.VueVbenAdmin.csproj
  14. 9
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/BeforeMiniStateDto.cs
  15. 14
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/HeaderSettingDto.cs
  16. 11
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/IThemeSettingAppService.cs
  17. 23
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/MenuSettingDto.cs
  18. 11
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/MultiTabsSettingDto.cs
  19. 22
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/PlatformThemeVueVbenAdminModule.cs
  20. 31
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/ProjectConfigDto.cs
  21. 265
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/ThemeSettingAppService.cs
  22. 34
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/ThemeSettingController.cs
  23. 9
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/ThemeSettingDto.cs
  24. 9
      aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/TransitionSettingDto.cs
  25. 1
      aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/LY.MicroService.PlatformManagement.HttpApi.Host.csproj
  26. 2
      aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs

16
aspnet-core/LINGYUN.MicroService.All.sln

@ -402,7 +402,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.PermissionManag
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Identity.OrganizaztionUnits", "modules\authorization\LINGYUN.Abp.Identity.OrganizaztionUnits\LINGYUN.Abp.Identity.OrganizaztionUnits.csproj", "{76A5564E-033B-4AA6-A22B-78B6EB134CC6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Notifications.Emailing", "modules\common\LINGYUN.Abp.Notifications.Emailing\LINGYUN.Abp.Notifications.Emailing.csproj", "{88502844-D83C-4541-96AC-A8291E261F63}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Notifications.Emailing", "modules\common\LINGYUN.Abp.Notifications.Emailing\LINGYUN.Abp.Notifications.Emailing.csproj", "{88502844-D83C-4541-96AC-A8291E261F63}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Platform.Theme.VueVbenAdmin", "modules\platform\LINGYUN.Platform.Theme.VueVbenAdmin\LINGYUN.Platform.Theme.VueVbenAdmin.csproj", "{67DC7FA0-506A-4977-95F6-BC739B2BC4BA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Platform.Settings.VueVbenAdmin", "modules\platform\LINGYUN.Platform.Settings.VueVbenAdmin\LINGYUN.Platform.Settings.VueVbenAdmin.csproj", "{8DF55DAB-4C1D-46F7-9324-0050F47B3BED}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -1042,6 +1046,14 @@ Global
{88502844-D83C-4541-96AC-A8291E261F63}.Debug|Any CPU.Build.0 = Debug|Any CPU
{88502844-D83C-4541-96AC-A8291E261F63}.Release|Any CPU.ActiveCfg = Release|Any CPU
{88502844-D83C-4541-96AC-A8291E261F63}.Release|Any CPU.Build.0 = Release|Any CPU
{67DC7FA0-506A-4977-95F6-BC739B2BC4BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{67DC7FA0-506A-4977-95F6-BC739B2BC4BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{67DC7FA0-506A-4977-95F6-BC739B2BC4BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{67DC7FA0-506A-4977-95F6-BC739B2BC4BA}.Release|Any CPU.Build.0 = Release|Any CPU
{8DF55DAB-4C1D-46F7-9324-0050F47B3BED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8DF55DAB-4C1D-46F7-9324-0050F47B3BED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8DF55DAB-4C1D-46F7-9324-0050F47B3BED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8DF55DAB-4C1D-46F7-9324-0050F47B3BED}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -1239,6 +1251,8 @@ Global
{46244C99-3A0D-4D88-9F24-2B7B586ADBA4} = {CC362C67-6FC1-42B3-A130-8120AA8D790C}
{76A5564E-033B-4AA6-A22B-78B6EB134CC6} = {9EC33D45-CCC7-41DF-829E-6B89A640FE35}
{88502844-D83C-4541-96AC-A8291E261F63} = {8AC72641-30D3-4ACF-89FA-808FADC55C2E}
{67DC7FA0-506A-4977-95F6-BC739B2BC4BA} = {F4923692-D343-4318-AECA-96F580B1A563}
{8DF55DAB-4C1D-46F7-9324-0050F47B3BED} = {F4923692-D343-4318-AECA-96F580B1A563}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C95FDF91-16F2-4A8B-A4BE-0E62D1B66718}

1
aspnet-core/modules/platform/LINGYUN.Abp.UI.Navigation.VueVbenAdmin/LINGYUN.Abp.UI.Navigation.VueVbenAdmin.csproj

@ -1,6 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\configureawait.props" />
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>

3
aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/FodyWeavers.xml

@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<ConfigureAwait ContinueOnCapturedContext="false" />
</Weavers>

30
aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/FodyWeavers.xsd

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" />
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GenerateXsd" type="xs:boolean">
<xs:annotation>
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

27
aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/LINGYUN.Platform.Settings.VueVbenAdmin.csproj

@ -0,0 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\configureawait.props" />
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<None Remove="LINGYUN\Platform\Settings\VueVbenAdmin\Localization\Resources\*.json" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LINGYUN\Platform\Settings\VueVbenAdmin\Localization\Resources\*.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.Settings" Version="$(VoloAbpPackageVersion)" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Platform.Domain.Shared\LINGYUN.Platform.Domain.Shared.csproj" />
</ItemGroup>
</Project>

135
aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/LINGYUN/Platform/Settings/VueVbenAdmin/Localization/Resources/en.json

@ -0,0 +1,135 @@
{
"culture": "en",
"texts": {
"DisplayName:DarkMode": "Dark Mode",
"Description:DarkMode": "Dark Mode",
"DisplayName:PageLoading": "Page Loading",
"Description:PageLoading": "Page Loading",
"DisplayName:PermissionCacheType": "Permission cache type",
"Description:PermissionCacheType": "Permission-related cache is stored in sessionStorage or localStorage",
"DisplayName:ShowSettingButton": "Show Setting Button",
"Description:ShowSettingButton": "Whether to show the configuration button",
"DisplayName:ShowDarkModeToggle": "Show Dark Mode Toggle",
"Description:ShowDarkModeToggle": "Whether to show the theme switch button",
"DisplayName:SettingButtonPosition": "Setting Button Position",
"Description:SettingButtonPosition": "`Settings` button position",
"DisplayName:PermissionMode": "Permission Mode",
"Description:PermissionMode": "Permission Mode, Options: ROLE、BACK、ROUTE_MAPPING",
"DisplayName:SessionTimeoutProcessing": "Session Timeout Processing",
"Description:SessionTimeoutProcessing": "Session timeout processing",
"DisplayName:GrayMode": "Gray Mode",
"Description:GrayMode": "Website gray mode, open for possible mourning dates",
"DisplayName:ColorWeak": "Color Weak",
"Description:ColorWeak": "Color Weakness Mode",
"DisplayName:ThemeColor": "Theme Color",
"Description:ThemeColor": "Theme Color",
"DisplayName:FullContent": "Full Content",
"Description:FullContent": "Whether to cancel the menu, the top, the multi-tab page display, for possible embedded in other systems",
"DisplayName:ContentMode": "Content Mode",
"Description:ContentMode": "Content Mode",
"DisplayName:ShowLogo": "Show Logo",
"Description:ShowLogo": "Whether to display the logo",
"DisplayName:ShowFooter": "Show Footer",
"Description:ShowFooter": "Whether to show footer",
"DisplayName:OpenKeepAlive": "Open Keep Alive",
"Description:OpenKeepAlive": "Whether to enable KeepAlive cache is best to close during development, otherwise the cache needs to be cleared every time",
"DisplayName:LockTime": "Lock Time",
"Description:LockTime": "Automatic screen lock time, 0 does not lock the screen. Unit minute default 0",
"DisplayName:ShowBreadCrumb": "Show Bread Crumb",
"Description:ShowBreadCrumb": "Whether to show breadcrumbs",
"DisplayName:ShowBreadCrumbIcon": "Show Bread Crumb Icon",
"Description:ShowBreadCrumbIcon": "Whether to show the breadcrumb icon",
"DisplayName:UseErrorHandle": "Use Error Handle",
"Description:UseErrorHandle": "Use error-handler-plugin",
"DisplayName:UseOpenBackTop": "Use Open Back Top",
"Description:UseOpenBackTop": "Whether to open back to top",
"DisplayName:CanEmbedIFramePage": "Can Embed IFrame Page",
"Description:CanEmbedIFramePage": "Is it possible to embed iframe pages",
"DisplayName:CloseMessageOnSwitch": "Close Message On Switch",
"Description:CloseMessageOnSwitch": "Whether to delete unclosed messages and notify when switching the interface",
"DisplayName:RemoveAllHttpPending": "Remove All Http Pending",
"Description:RemoveAllHttpPending": "Whether to cancel the http request that has been sent but not responded when switching the interface.",
"DisplayName:Header_BgColor": "Header Background Color",
"Description:Header_BgColor": "Header Background Color",
"DisplayName:Header_Fixed": "Fixed Header",
"Description:Header_Fixed": "Fixed at the top",
"DisplayName:Header_Show": "Show Header",
"Description:Header_Show": "Whether to show top",
"DisplayName:Header_Theme": "Header Theme",
"Description:Header_Theme": "Header Theme",
"DisplayName:Header_ShowFullScreen": "Show Full Screen",
"Description:Header_ShowFullScreen": "Whether to show the full screen button",
"DisplayName:Header_UseLockPage": "Use Lock Page",
"Description:Header_UseLockPage": "Whether to enable the lock screen function",
"DisplayName:Header_ShowDoc": "Show Document",
"Description:Header_ShowDoc": "Whether to show the document button",
"DisplayName:Header_ShowNotice": "Show Notice",
"Description:Header_ShowNotice": "Whether to show the notification button",
"DisplayName:Header_ShowSearch": "Show Search",
"Description:Header_ShowSearch": "Whether to display the menu search",
"DisplayName:Menu_BgColor": "Sidebar Background Color",
"Description:Menu_BgColor": "Sidebar menu bg color",
"DisplayName:Menu_Fixed": "Fixed Sidebar",
"Description:Menu_Fixed": "Whether to fix the left menu",
"DisplayName:Menu_Collapsed": "Collapsed Menu",
"Description:Menu_Collapsed": "Menu collapse",
"DisplayName:Menu_CanDrag": "Can Dragged",
"Description:Menu_CanDrag": "Whether it can be dragged",
"DisplayName:Menu_Show": "Show Menu",
"Description:Menu_Show": "Whether to show no dom",
"DisplayName:Menu_Hidden": "Hidden Menu",
"Description:Menu_Hidden": "Whether to show dom",
"DisplayName:Menu_Split": "Split Menu",
"Description:Menu_Split": "Split menu",
"DisplayName:Menu_MenuWidth": "Menu Width",
"Description:Menu_MenuWidth": "Menu width",
"DisplayName:Menu_Mode": "Menu Mode",
"Description:Menu_Mode": "Menu mode",
"DisplayName:Menu_Type": "Menu Type",
"Description:Menu_Type": "Menu type",
"DisplayName:Menu_Theme": "Menu Theme",
"Description:Menu_Theme": "Menu theme",
"DisplayName:Menu_TopMenuAlign": "Top Menu Align",
"Description:Menu_TopMenuAlign": "Top menu layout",
"DisplayName:Menu_Trigger": "Fold Trigger Position",
"Description:Menu_Trigger": "Fold Trigger Position",
"DisplayName:Menu_Accordion": "Accordion",
"Description:Menu_Accordion": "Turn on accordion mode, only show a menu",
"DisplayName:Menu_CloseMixSidebarOnChange": "Close Mix Sidebar On Change",
"Description:Menu_CloseMixSidebarOnChange": "Switch page to close menu",
"DisplayName:Menu_CollapsedShowTitle": "Collapsed Show Title",
"Description:Menu_CollapsedShowTitle": "Whether to display the menu name when folding the menu",
"DisplayName:Menu_MixSideTrigger": "Mix Side Trigger",
"Description:Menu_MixSideTrigger": "Module opening method ‘click’ |'hover'",
"DisplayName:Menu_MixSideFixed": "Fixed Expanded Menu",
"Description:Menu_MixSideFixed": "Fixed expanded menu",
"DisplayName:MultiTabs_Cache": "Multi Tabs Cache",
"Description:MultiTabs_Cache": "Multi Tabs Cache",
"DisplayName:MultiTabs_Show": "Show Tabs",
"Description:MultiTabs_Show": "Turn on",
"DisplayName:MultiTabs_ShowQuick": "Show Quick",
"Description:MultiTabs_ShowQuick": "Turn on quick actions",
"DisplayName:MultiTabs_CanDrag": "Can Dragged",
"Description:MultiTabs_CanDrag": "Is it possible to drag and drop sorting tabs",
"DisplayName:MultiTabs_ShowRedo": "Show Redo",
"Description:MultiTabs_ShowRedo": "Whether to show the refresh button",
"DisplayName:MultiTabs_ShowFold": "Show Fold",
"Description:MultiTabs_ShowFold": "Whether to show the collapse button",
"DisplayName:Transition_Enable": "Enable Transition",
"Description:Transition_Enable": "Enable Transition",
"DisplayName:Transition_BasicTransition": "Basic Transition",
"Description:Transition_BasicTransition": "Route basic switching animation",
"DisplayName:Transition_OpenPageLoading": "Open Page Loading",
"Description:Transition_OpenPageLoading": "Whether to open page switching loading",
"DisplayName:Transition_OpenNProgress": "Open Progress",
"Description:Transition_OpenNProgress": "Whether to open the top progress bar",
"DisplayName:BeforeMini_MenuCollapsed": "Menu Collapsed",
"Description:BeforeMini_MenuCollapsed": "Restores the shrunken menu when restoring the window",
"DisplayName:BeforeMini_MenuSplit": "Menu Split",
"Description:BeforeMini_MenuSplit": "Restore separated menus when restoring Windows",
"DisplayName:BeforeMini_MenuMode": "Menu Mode",
"Description:BeforeMini_MenuMode": "Restore menu mode when restore window",
"DisplayName:BeforeMini_MenuType": "Menu Type",
"Description:BeforeMini_MenuType": "Restore menu type when restore window"
}
}

135
aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/LINGYUN/Platform/Settings/VueVbenAdmin/Localization/Resources/zh-Hans.json

@ -0,0 +1,135 @@
{
"culture": "zh-Hans",
"texts": {
"DisplayName:DarkMode": "主题",
"Description:DarkMode": "应用程序主题",
"DisplayName:PageLoading": "页面加载状态",
"Description:PageLoading": "页面加载状态",
"DisplayName:PermissionCacheType": "权限缓存位置",
"Description:PermissionCacheType": "指定权限缓存存储在sessionStorage或localStorage中",
"DisplayName:ShowSettingButton": "显示配置按钮",
"Description:ShowSettingButton": "是否显示配置按钮",
"DisplayName:ShowDarkModeToggle": "显示主题切换按钮",
"Description:ShowDarkModeToggle": "是否显示主题切换按钮",
"DisplayName:SettingButtonPosition": "设置按钮位置",
"Description:SettingButtonPosition": "设置按钮展示位置",
"DisplayName:PermissionMode": "权限模式",
"Description:PermissionMode": "权限模式, 可选ROLE、BACK、ROUTE_MAPPING",
"DisplayName:SessionTimeoutProcessing": "会话超时处理",
"Description:SessionTimeoutProcessing": "会话超时处理",
"DisplayName:GrayMode": "灰色模式",
"Description:GrayMode": "网站灰色模式,开放可能的哀悼日期",
"DisplayName:ColorWeak": "色弱模式",
"Description:ColorWeak": "色弱模式",
"DisplayName:ThemeColor": "主题颜色",
"Description:ThemeColor": "主题颜色",
"DisplayName:FullContent": "仅显示内容",
"Description:FullContent": "是否取消菜单、上顶、多选项卡页面显示,以备可能嵌入其他系统",
"DisplayName:ContentMode": "内容模式",
"Description:ContentMode": "内容模式",
"DisplayName:ShowLogo": "显示Logo",
"Description:ShowLogo": "是否显示logo",
"DisplayName:ShowFooter": "显示页脚",
"Description:ShowFooter": "是否显示页脚",
"DisplayName:OpenKeepAlive": "是否启用KeepAlive缓存",
"Description:OpenKeepAlive": "是否启用KeepAlive缓存最好在开发过程中关闭,否则每次都需要清空缓存",
"DisplayName:LockTime": "自动锁屏时间",
"Description:LockTime": "自动锁屏时间,0不锁屏,单位分钟。默认0",
"DisplayName:ShowBreadCrumb": "显示面包屑",
"Description:ShowBreadCrumb": "是否显示面包屑",
"DisplayName:ShowBreadCrumbIcon": "显示面包屑图标",
"Description:ShowBreadCrumbIcon": "是否显示面包屑图标",
"DisplayName:UseErrorHandle": "启用错误处理插件",
"Description:UseErrorHandle": "是否使用错误处理插件",
"DisplayName:UseOpenBackTop": "启用返回顶部",
"Description:UseOpenBackTop": "是否启用返回顶部",
"DisplayName:CanEmbedIFramePage": "是否有可能嵌入iframe页面",
"Description:CanEmbedIFramePage": "是否有可能嵌入iframe页面",
"DisplayName:CloseMessageOnSwitch": "切换页面时关闭消息通知",
"Description:CloseMessageOnSwitch": "切换接口时是否删除未关闭消息和通知",
"DisplayName:RemoveAllHttpPending": "切换页面时取消网络请求",
"Description:RemoveAllHttpPending": "切换接口时,是否取消已经发送但没有响应的http请求。",
"DisplayName:Header_BgColor": "标题栏背景色",
"Description:Header_BgColor": "标题栏背景色",
"DisplayName:Header_Fixed": "固定标题栏",
"Description:Header_Fixed": "固定标题栏",
"DisplayName:Header_Show": "显示标题栏",
"Description:Header_Show": "显示标题栏",
"DisplayName:Header_Theme": "标题栏主题",
"Description:Header_Theme": "标题栏主题",
"DisplayName:Header_ShowFullScreen": "显示全屏按钮",
"Description:Header_ShowFullScreen": "显示全屏按钮",
"DisplayName:Header_UseLockPage": "是否开启锁屏功能",
"Description:Header_UseLockPage": "是否开启锁屏功能",
"DisplayName:Header_ShowDoc": "是否显示文档按钮",
"Description:Header_ShowDoc": "是否显示文档按钮",
"DisplayName:Header_ShowNotice": "是否显示通知按钮",
"Description:Header_ShowNotice": "是否显示通知按钮",
"DisplayName:Header_ShowSearch": "是否显示搜索按钮",
"Description:Header_ShowSearch": "是否显示搜索按钮",
"DisplayName:Menu_BgColor": "菜单栏背景色",
"Description:Menu_BgColor": "菜单栏背景色",
"DisplayName:Menu_Fixed": "固定菜单栏",
"Description:Menu_Fixed": "固定菜单栏",
"DisplayName:Menu_Collapsed": "收缩菜单栏",
"Description:Menu_Collapsed": "收缩菜单栏",
"DisplayName:Menu_CanDrag": "是否可以拖动",
"Description:Menu_CanDrag": "鼠标在菜单的右侧有一个拖拽条,仅局限于打开左侧菜单",
"DisplayName:Menu_Show": "显示菜单栏",
"Description:Menu_Show": "显示菜单栏",
"DisplayName:Menu_Hidden": "隐藏菜单栏",
"Description:Menu_Hidden": "隐藏菜单栏",
"DisplayName:Menu_Split": "分隔菜单",
"Description:Menu_Split": "分隔菜单",
"DisplayName:Menu_MenuWidth": "菜单展开宽度",
"Description:Menu_MenuWidth": "菜单展开宽度",
"DisplayName:Menu_Mode": "菜单模式",
"Description:Menu_Mode": "菜单模式",
"DisplayName:Menu_Type": "菜单类型",
"Description:Menu_Type": "菜单类型",
"DisplayName:Menu_Theme": "菜单主题",
"Description:Menu_Theme": "菜单主题",
"DisplayName:Menu_TopMenuAlign": "顶部菜单布局",
"Description:Menu_TopMenuAlign": "顶部菜单布局",
"DisplayName:Menu_Trigger": "混合菜单触发方式",
"Description:Menu_Trigger": "混合菜单触发方式",
"DisplayName:Menu_Accordion": "侧边菜单手风琴模式",
"Description:Menu_Accordion": "侧边菜单手风琴模式",
"DisplayName:Menu_CloseMixSidebarOnChange": "切换页面关闭菜单",
"Description:Menu_CloseMixSidebarOnChange": "切换页面关闭菜单",
"DisplayName:Menu_CollapsedShowTitle": "折叠菜单显示名称",
"Description:Menu_CollapsedShowTitle": "折叠菜单显示名称",
"DisplayName:Menu_MixSideTrigger": "模块打开方法",
"Description:Menu_MixSideTrigger": "模块打开方法",
"DisplayName:Menu_MixSideFixed": "固定侧边菜单",
"Description:Menu_MixSideFixed": "固定侧边菜单",
"DisplayName:MultiTabs_Cache": "缓存标签页",
"Description:MultiTabs_Cache": "缓存标签页",
"DisplayName:MultiTabs_Show": "显示标签页",
"Description:MultiTabs_Show": "显示标签页",
"DisplayName:MultiTabs_ShowQuick": "标签页快捷按钮",
"Description:MultiTabs_ShowQuick": "标签页快捷按钮",
"DisplayName:MultiTabs_CanDrag": "是否可以拖放排序",
"Description:MultiTabs_CanDrag": "是否可以拖放排序",
"DisplayName:MultiTabs_ShowRedo": "标签页刷新按钮",
"Description:MultiTabs_ShowRedo": "标签页刷新按钮",
"DisplayName:MultiTabs_ShowFold": "标签页折叠按钮",
"Description:MultiTabs_ShowFold": "标签页折叠按钮",
"DisplayName:Transition_Enable": "切换动画",
"Description:Transition_Enable": "切换动画",
"DisplayName:Transition_BasicTransition": "动画类型",
"Description:Transition_BasicTransition": "动画类型",
"DisplayName:Transition_OpenPageLoading": "切换loading",
"Description:Transition_OpenPageLoading": "切换loading",
"DisplayName:Transition_OpenNProgress": "顶部进度条",
"Description:Transition_OpenNProgress": "顶部进度条",
"DisplayName:BeforeMini_MenuCollapsed": "收缩的菜单",
"Description:BeforeMini_MenuCollapsed": "恢复窗口时恢复收缩的菜单",
"DisplayName:BeforeMini_MenuSplit": "分隔的菜单",
"Description:BeforeMini_MenuSplit": "恢复窗口时恢复分隔的菜单",
"DisplayName:BeforeMini_MenuMode": "菜单模式",
"Description:BeforeMini_MenuMode": "恢复窗口时恢复菜单模式",
"DisplayName:BeforeMini_MenuType": "菜单类型",
"Description:BeforeMini_MenuType": "恢复窗口时恢复菜单类型"
}
}

26
aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/LINGYUN/Platform/Settings/VueVbenAdmin/PlatformSettingsVueVbenAdminModule.cs

@ -0,0 +1,26 @@
using LINGYUN.Platform.Localization;
using Volo.Abp.Localization;
using Volo.Abp.Modularity;
using Volo.Abp.VirtualFileSystem;
namespace LINGYUN.Platform.Settings.VueVbenAdmin;
[DependsOn(
typeof(PlatformDomainSharedModule))]
public class PlatformSettingsVueVbenAdminModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<PlatformSettingsVueVbenAdminModule>();
});
Configure<AbpLocalizationOptions>(options =>
{
options.Resources
.Get<PlatformResource>()
.AddVirtualJson("/LINGYUN/Platform/Settings/VueVbenAdmin/Localization/Resources");
});
}
}

410
aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/LINGYUN/Platform/Settings/VueVbenAdmin/VueVbenAdminSettingDefinitionProvider.cs

@ -0,0 +1,410 @@
using LINGYUN.Platform.Localization;
using Volo.Abp.Localization;
using Volo.Abp.Settings;
namespace LINGYUN.Platform.Settings.VueVbenAdmin;
public class VueVbenAdminSettingDefinitionProvider : SettingDefinitionProvider
{
public override void Define(ISettingDefinitionContext context)
{
context.Add(CreateThemeBasicSettings());
context.Add(CreateProjectConfigSettings());
context.Add(CreateHeaderConfigSettings());
context.Add(CreateMenuConfigSettings());
context.Add(CreateMultiTabsConfigSettings());
context.Add(CreateTransitionConfigSettings());
context.Add(CreateBeforeMiniConfigSettings());
}
protected SettingDefinition[] CreateThemeBasicSettings()
{
return new SettingDefinition[]
{
CreateSetting(
name: VueVbenAdminSettingNames.DarkMode,
defaultValue: "light",
displayName: L("DisplayName:DarkMode"),
description: L("Description:DarkMode")),
};
}
protected SettingDefinition[] CreateProjectConfigSettings()
{
return new SettingDefinition[]
{
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.PermissionCacheType,
defaultValue: "1",
displayName: L("DisplayName:PermissionCacheType"),
description: L("Description:PermissionCacheType")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.ShowSettingButton,
defaultValue: "true",
displayName: L("DisplayName:ShowSettingButton"),
description: L("Description:ShowSettingButton")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.ShowDarkModeToggle,
defaultValue: "true",
displayName: L("DisplayName:ShowDarkModeToggle"),
description: L("Description:ShowDarkModeToggle")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.SettingButtonPosition,
defaultValue: "auto",
displayName: L("DisplayName:SettingButtonPosition"),
description: L("Description:SettingButtonPosition")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.PermissionMode,
defaultValue: "BACK",
displayName: L("DisplayName:PermissionMode"),
description: L("Description:PermissionMode")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.SessionTimeoutProcessing,
defaultValue: "0",
displayName: L("DisplayName:SessionTimeoutProcessing"),
description: L("Description:SessionTimeoutProcessing")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.GrayMode,
defaultValue: "false",
displayName: L("DisplayName:GrayMode"),
description: L("Description:GrayMode")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.ColorWeak,
defaultValue: "false",
displayName: L("DisplayName:ColorWeak"),
description: L("Description:ColorWeak")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.ThemeColor,
defaultValue: "#0960bd",
displayName: L("DisplayName:ThemeColor"),
description: L("Description:ThemeColor")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.FullContent,
defaultValue: "false",
displayName: L("DisplayName:FullContent"),
description: L("Description:FullContent")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.ContentMode,
defaultValue: "full",
displayName: L("DisplayName:ContentMode"),
description: L("Description:ContentMode")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.ShowLogo,
defaultValue: "true",
displayName: L("DisplayName:ShowLogo"),
description: L("Description:ShowLogo")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.ShowFooter,
defaultValue: "false",
displayName: L("DisplayName:ShowFooter"),
description: L("Description:ShowFooter")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.OpenKeepAlive,
defaultValue: "true",
displayName: L("DisplayName:OpenKeepAlive"),
description: L("Description:OpenKeepAlive")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.LockTime,
defaultValue: "0",
displayName: L("DisplayName:LockTime"),
description: L("Description:LockTime")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.ShowBreadCrumb,
defaultValue: "true",
displayName: L("DisplayName:ShowBreadCrumb"),
description: L("Description:ShowBreadCrumb")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.ShowBreadCrumbIcon,
defaultValue: "false",
displayName: L("DisplayName:ShowBreadCrumbIcon"),
description: L("Description:ShowBreadCrumbIcon")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.UseErrorHandle,
defaultValue: "false",
displayName: L("DisplayName:UseErrorHandle"),
description: L("Description:UseErrorHandle")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.UseOpenBackTop,
defaultValue: "true",
displayName: L("DisplayName:UseOpenBackTop"),
description: L("Description:UseOpenBackTop")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.CanEmbedIFramePage,
defaultValue: "true",
displayName: L("DisplayName:CanEmbedIFramePage"),
description: L("Description:CanEmbedIFramePage")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.CloseMessageOnSwitch,
defaultValue: "true",
displayName: L("DisplayName:CloseMessageOnSwitch"),
description: L("Description:CloseMessageOnSwitch")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.RemoveAllHttpPending,
defaultValue: "false",
displayName: L("DisplayName:RemoveAllHttpPending"),
description: L("Description:RemoveAllHttpPending")),
};
}
protected SettingDefinition[] CreateHeaderConfigSettings()
{
return new SettingDefinition[]
{
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.BgColor,
defaultValue: "#ffffff",
displayName: L("DisplayName:Header_BgColor"),
description: L("Description:Header_BgColor")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.Fixed,
defaultValue: "true",
displayName: L("DisplayName:Header_Fixed"),
description: L("Description:Header_Fixed")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.Show,
defaultValue: "true",
displayName: L("DisplayName:Header_Show"),
description: L("Description:Header_Show")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.Theme,
defaultValue: "light",
displayName: L("DisplayName:Header_Theme"),
description: L("Description:Header_Theme")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowFullScreen,
defaultValue: "true",
displayName: L("DisplayName:Header_ShowFullScreen"),
description: L("Description:Header_ShowFullScreen")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.UseLockPage,
defaultValue: "true",
displayName: L("DisplayName:Header_UseLockPage"),
description: L("Description:Header_UseLockPage")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowDoc,
defaultValue: "true",
displayName: L("DisplayName:Header_ShowDoc"),
description: L("Description:Header_ShowDoc")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowNotice,
defaultValue: "true",
displayName: L("DisplayName:Header_ShowNotice"),
description: L("Description:Header_ShowNotice")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowSearch,
defaultValue: "true",
displayName: L("DisplayName:Header_ShowSearch"),
description: L("Description:Header_ShowSearch")),
};
}
protected SettingDefinition[] CreateMenuConfigSettings()
{
return new SettingDefinition[]
{
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.BgColor,
defaultValue: "#001529",
displayName: L("DisplayName:Menu_BgColor"),
description: L("Description:Menu_BgColor")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Fixed,
defaultValue: "true",
displayName: L("DisplayName:Menu_Fixed"),
description: L("Description:Menu_Fixed")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Collapsed,
defaultValue: "false",
displayName: L("DisplayName:Menu_Collapsed"),
description: L("Description:Menu_Collapsed")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.CanDrag,
defaultValue: "false",
displayName: L("DisplayName:Menu_CanDrag"),
description: L("Description:Menu_CanDrag")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Show,
defaultValue: "true",
displayName: L("DisplayName:Menu_Show"),
description: L("Description:Menu_Show")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Hidden,
defaultValue: "false",
displayName: L("DisplayName:Menu_Hidden"),
description: L("Description:Menu_Hidden")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Split,
defaultValue: "false",
displayName: L("DisplayName:Menu_Split"),
description: L("Description:Menu_Split")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.MenuWidth,
defaultValue: "210",
displayName: L("DisplayName:Menu_MenuWidth"),
description: L("Description:Menu_MenuWidth")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Mode,
defaultValue: "inline",
displayName: L("DisplayName:Menu_Mode"),
description: L("Description:Menu_Mode")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Type,
defaultValue: "sidebar",
displayName: L("DisplayName:Menu_Type"),
description: L("Description:Menu_Type")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Theme,
defaultValue: "dark",
displayName: L("DisplayName:Menu_Theme"),
description: L("Description:Menu_Theme")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.TopMenuAlign,
defaultValue: "center",
displayName: L("DisplayName:Menu_TopMenuAlign"),
description: L("Description:Menu_TopMenuAlign")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Trigger,
defaultValue: "HEADER",
displayName: L("DisplayName:Menu_Trigger"),
description: L("Description:Menu_Trigger")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Accordion,
defaultValue: "true",
displayName: L("DisplayName:Menu_Accordion"),
description: L("Description:Menu_Accordion")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.CloseMixSidebarOnChange,
defaultValue: "false",
displayName: L("DisplayName:Menu_CloseMixSidebarOnChange"),
description: L("Description:Menu_CloseMixSidebarOnChange")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.CollapsedShowTitle,
defaultValue: "false",
displayName: L("DisplayName:Menu_CollapsedShowTitle"),
description: L("Description:Menu_CollapsedShowTitle")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.MixSideTrigger,
defaultValue: "click",
displayName: L("DisplayName:Menu_MixSideTrigger"),
description: L("Description:Menu_MixSideTrigger")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MenuSetting.MixSideFixed,
defaultValue: "false",
displayName: L("DisplayName:Menu_MixSideFixed"),
description: L("Description:Menu_MixSideFixed")),
};
}
protected SettingDefinition[] CreateMultiTabsConfigSettings()
{
return new SettingDefinition[]
{
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.Cache,
defaultValue: "false",
displayName: L("DisplayName:MultiTabs_Cache"),
description: L("Description:MultiTabs_Cache")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.Show,
defaultValue: "true",
displayName: L("DisplayName:MultiTabs_Show"),
description: L("Description:MultiTabs_Show")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.ShowQuick,
defaultValue: "true",
displayName: L("DisplayName:MultiTabs_ShowQuick"),
description: L("Description:MultiTabs_ShowQuick")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.CanDrag,
defaultValue: "true",
displayName: L("DisplayName:MultiTabs_CanDrag"),
description: L("Description:MultiTabs_CanDrag")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.ShowRedo,
defaultValue: "true",
displayName: L("DisplayName:MultiTabs_ShowRedo"),
description: L("Description:MultiTabs_ShowRedo")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.ShowFold,
defaultValue: "true",
displayName: L("DisplayName:MultiTabs_ShowFold"),
description: L("Description:MultiTabs_ShowFold")),
};
}
protected SettingDefinition[] CreateTransitionConfigSettings()
{
return new SettingDefinition[]
{
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.Enable,
defaultValue: "true",
displayName: L("DisplayName:Transition_Enable"),
description: L("Description:Transition_Enable")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.BasicTransition,
defaultValue: "fade-slide",
displayName: L("DisplayName:Transition_BasicTransition"),
description: L("Description:Transition_BasicTransition")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.OpenPageLoading,
defaultValue: "true",
displayName: L("DisplayName:Transition_OpenPageLoading"),
description: L("Description:Transition_OpenPageLoading")),
CreateSetting(
name: VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.OpenNProgress,
defaultValue: "false",
displayName: L("DisplayName:Transition_OpenNProgress"),
description: L("Description:Transition_OpenNProgress")),
};
}
protected SettingDefinition[] CreateBeforeMiniConfigSettings()
{
return new SettingDefinition[]
{
CreateSetting(
name: VueVbenAdminSettingNames.BeforeMiniInfo.MenuCollapsed,
defaultValue: null,
displayName: L("DisplayName:BeforeMini_MenuCollapsed"),
description: L("Description:BeforeMini_MenuCollapsed")),
CreateSetting(
name: VueVbenAdminSettingNames.BeforeMiniInfo.MenuSplit,
defaultValue: null,
displayName: L("DisplayName:BeforeMini_MenuSplit"),
description: L("Description:BeforeMini_MenuSplit")),
CreateSetting(
name: VueVbenAdminSettingNames.BeforeMiniInfo.MenuMode,
defaultValue: null,
displayName: L("DisplayName:BeforeMini_MenuMode"),
description: L("Description:BeforeMini_MenuMode")),
CreateSetting(
name: VueVbenAdminSettingNames.BeforeMiniInfo.MenuType,
defaultValue: null,
displayName: L("DisplayName:BeforeMini_MenuType"),
description: L("Description:BeforeMini_MenuType")),
};
}
protected SettingDefinition CreateSetting(
string name,
ILocalizableString displayName,
ILocalizableString description,
string defaultValue = null,
bool isVisibleToClients = false,
bool isInherited = true,
bool isEncrypted = false)
{
return new SettingDefinition(name, defaultValue, displayName, description, isVisibleToClients, isInherited, isEncrypted)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName,
UserSettingValueProvider.ProviderName);
}
protected LocalizableString L(string name)
{
return LocalizableString.Create<PlatformResource>(name);
}
}

101
aspnet-core/modules/platform/LINGYUN.Platform.Settings.VueVbenAdmin/LINGYUN/Platform/Settings/VueVbenAdmin/VueVbenAdminSettingNames.cs

@ -0,0 +1,101 @@
namespace LINGYUN.Platform.Settings.VueVbenAdmin;
public static class VueVbenAdminSettingNames
{
public const string GroupName = PlatformSettingNames.GroupName + ".Theme.VueVbenAdmin";
public const string DarkMode = GroupName + ".DarkMode";
public static class ProjectConfig
{
public const string Prefix = GroupName + ".ProjectConfig";
public const string PermissionCacheType = Prefix + ".PermissionCacheType";
public const string ShowSettingButton = Prefix + ".ShowSettingButton";
public const string ShowDarkModeToggle = Prefix + ".ShowDarkModeToggle";
public const string SettingButtonPosition = Prefix + ".SettingButtonPosition";
public const string PermissionMode = Prefix + ".PermissionMode";
public const string SessionTimeoutProcessing = Prefix + ".SessionTimeoutProcessing";
public const string GrayMode = Prefix + ".GrayMode";
public const string ColorWeak = Prefix + ".ColorWeak";
public const string ThemeColor = Prefix + ".ThemeColor";
public const string FullContent = Prefix + ".FullContent";
public const string ContentMode = Prefix + ".ContentMode";
public const string ShowLogo = Prefix + ".ShowLogo";
public const string ShowFooter = Prefix + ".ShowFooter";
public const string OpenKeepAlive = Prefix + ".OpenKeepAlive";
public const string LockTime = Prefix + ".LockTime";
public const string ShowBreadCrumb = Prefix + ".ShowBreadCrumb";
public const string ShowBreadCrumbIcon = Prefix + ".ShowBreadCrumbIcon";
public const string UseErrorHandle = Prefix + ".UseErrorHandle";
public const string UseOpenBackTop = Prefix + ".UseOpenBackTop";
public const string CanEmbedIFramePage = Prefix + ".CanEmbedIFramePage";
public const string CloseMessageOnSwitch = Prefix + ".CloseMessageOnSwitch";
public const string RemoveAllHttpPending = Prefix + ".RemoveAllHttpPending";
public static class HeaderSetting
{
public const string Prefix = ProjectConfig.Prefix + ".HeaderSetting";
public const string BgColor = Prefix + ".BgColor";
public const string Fixed = Prefix + ".Fixed";
public const string Show = Prefix + ".Show";
public const string Theme = Prefix + ".Theme";
public const string ShowFullScreen = Prefix + ".ShowFullScreen";
public const string UseLockPage = Prefix + ".UseLockPage";
public const string ShowDoc = Prefix + ".ShowDoc";
public const string ShowNotice = Prefix + ".ShowNotice";
public const string ShowSearch = Prefix + ".ShowSearch";
}
public static class MenuSetting
{
public const string Prefix = ProjectConfig.Prefix + ".MenuSetting";
public const string BgColor = Prefix + ".BgColor";
public const string Fixed = Prefix + ".Fixed";
public const string Collapsed = Prefix + ".Collapsed";
public const string CanDrag = Prefix + ".CanDrag";
public const string Show = Prefix + ".Show";
public const string Hidden = Prefix + ".Hidden";
public const string Split = Prefix + ".Split";
public const string MenuWidth = Prefix + ".MenuWidth";
public const string Mode = Prefix + ".Mode";
public const string Type = Prefix + ".Type";
public const string Theme = Prefix + ".Theme";
public const string TopMenuAlign = Prefix + ".TopMenuAlign";
public const string Trigger = Prefix + ".Trigger";
public const string Accordion = Prefix + ".Accordion";
public const string CloseMixSidebarOnChange = Prefix + ".CloseMixSidebarOnChange";
public const string CollapsedShowTitle = Prefix + ".CollapsedShowTitle";
public const string MixSideTrigger = Prefix + ".MixSideTrigger";
public const string MixSideFixed = Prefix + ".MixSideFixed";
}
public static class MultiTabsSetting
{
public const string Prefix = ProjectConfig.Prefix + ".MultiTabsSetting";
public const string Cache = Prefix + ".Cache";
public const string Show = Prefix + ".Show";
public const string ShowQuick = Prefix + ".ShowQuick";
public const string CanDrag = Prefix + ".CanDrag";
public const string ShowRedo = Prefix + ".ShowRedo";
public const string ShowFold = Prefix + ".ShowFold";
}
public static class TransitionSetting
{
public const string Prefix = ProjectConfig.Prefix + ".TransitionSetting";
public const string Enable = Prefix + ".Enable";
public const string BasicTransition = Prefix + ".BasicTransition";
public const string OpenPageLoading = Prefix + ".OpenPageLoading";
public const string OpenNProgress = Prefix + ".OpenNProgress";
}
}
public static class BeforeMiniInfo
{
public const string Prefix = GroupName + ".BeforeMiniInfo";
public const string MenuCollapsed = Prefix + ".MenuCollapsed";
public const string MenuSplit = Prefix + ".MenuSplit";
public const string MenuMode = Prefix + ".MenuMode";
public const string MenuType = Prefix + ".MenuType";
}
}

3
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/FodyWeavers.xml

@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<ConfigureAwait ContinueOnCapturedContext="false" />
</Weavers>

30
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/FodyWeavers.xsd

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" />
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GenerateXsd" type="xs:boolean">
<xs:annotation>
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

23
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN.Platform.Theme.VueVbenAdmin.csproj

@ -0,0 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\configureawait.props" />
<Import Project="..\..\..\common.props" />
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="$(VoloAbpPackageVersion)" />
<PackageReference Include="Volo.Abp.SettingManagement.Domain" Version="$(VoloAbpPackageVersion)" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LINGYUN.Platform.Application.Contracts\LINGYUN.Platform.Application.Contracts.csproj" />
<ProjectReference Include="..\LINGYUN.Platform.Domain\LINGYUN.Platform.Domain.csproj" />
<ProjectReference Include="..\LINGYUN.Platform.Settings.VueVbenAdmin\LINGYUN.Platform.Settings.VueVbenAdmin.csproj" />
</ItemGroup>
</Project>

9
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/BeforeMiniStateDto.cs

@ -0,0 +1,9 @@
namespace LINGYUN.Platform.Theme.VueVbenAdmin;
public class BeforeMiniStateDto
{
public bool? MenuCollapsed { get; set; }
public bool? MenuSplit { get; set; }
public string MenuMode { get; set; }
public string MenuType { get; set; }
}

14
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/HeaderSettingDto.cs

@ -0,0 +1,14 @@
namespace LINGYUN.Platform.Theme.VueVbenAdmin;
public class HeaderSettingDto
{
public string BgColor { get; set; } = "#ffffff";
public bool Fixed { get; set; } = true;
public bool Show { get; set; } = true;
public string Theme { get; set; } = "light";
public bool ShowFullScreen { get; set; } = true;
public bool UseLockPage { get; set; } = true;
public bool ShowDoc { get; set; } = true;
public bool ShowNotice { get; set; } = true;
public bool ShowSearch { get; set; } = true;
}

11
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/IThemeSettingAppService.cs

@ -0,0 +1,11 @@
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace LINGYUN.Platform.Theme.VueVbenAdmin;
public interface IThemeSettingAppService : IApplicationService
{
Task<ThemeSettingDto> GetAsync();
Task ChangeAsync(ThemeSettingDto input);
}

23
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/MenuSettingDto.cs

@ -0,0 +1,23 @@
namespace LINGYUN.Platform.Theme.VueVbenAdmin;
public class MenuSettingDto
{
public string BgColor { get; set; } = "#001529";
public bool Fixed { get; set; } = true;
public bool Collapsed { get; set; }
public bool CanDrag { get; set; }
public bool Show { get; set; } = true;
public bool Hidden { get; set; }
public bool Split { get; set; }
public int MenuWidth { get; set; } = 210;
public string Mode { get; set; } = "inline";
public string Type { get; set; } = "sidebar";
public string Theme { get; set; } = "dark";
public string TopMenuAlign { get; set; } = "center";
public string Trigger { get; set; } = "HEADER";
public bool Accordion { get; set; } = true;
public bool CloseMixSidebarOnChange { get; set; }
public bool CollapsedShowTitle { get; set; }
public string MixSideTrigger { get; set; } = "click";
public bool MixSideFixed { get; set; }
}

11
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/MultiTabsSettingDto.cs

@ -0,0 +1,11 @@
namespace LINGYUN.Platform.Theme.VueVbenAdmin;
public class MultiTabsSettingDto
{
public bool Cache { get; set; }
public bool Show { get; set; } = true;
public bool ShowQuick { get; set; } = true;
public bool CanDrag { get; set; } = true;
public bool ShowRedo { get; set; } = true;
public bool ShowFold { get; set; } = true;
}

22
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/PlatformThemeVueVbenAdminModule.cs

@ -0,0 +1,22 @@
using LINGYUN.Platform.Settings.VueVbenAdmin;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Modularity;
namespace LINGYUN.Platform.Theme.VueVbenAdmin;
[DependsOn(
typeof(PlatformDomainModule),
typeof(PlatformSettingsVueVbenAdminModule),
typeof(PlatformApplicationContractModule),
typeof(AbpAspNetCoreMvcModule))]
public class PlatformThemeVueVbenAdminModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
PreConfigure<IMvcBuilder>(mvcBuilder =>
{
mvcBuilder.AddApplicationPartIfNotExists(typeof(PlatformThemeVueVbenAdminModule).Assembly);
});
}
}

31
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/ProjectConfigDto.cs

@ -0,0 +1,31 @@
namespace LINGYUN.Platform.Theme.VueVbenAdmin;
public class ProjectConfigDto
{
public int PermissionCacheType { get; set; } = 1;
public bool ShowSettingButton { get; set; } = true;
public bool ShowDarkModeToggle { get; set; } = true;
public string SettingButtonPosition { get; set; } = "auto";
public string PermissionMode { get; set; } = "BACK";
public int SessionTimeoutProcessing { get; set; } = 0;
public bool GrayMode { get; set; }
public bool ColorWeak { get; set; }
public string ThemeColor { get; set; } = "#0960bd";
public bool FullContent { get; set; }
public string ContentMode { get; set; } = "full";
public bool ShowLogo { get; set; } = true;
public bool ShowFooter { get; set; }
public HeaderSettingDto HeaderSetting { get; set; } = new HeaderSettingDto();
public MenuSettingDto MenuSetting { get; set; } = new MenuSettingDto();
public MultiTabsSettingDto MultiTabsSetting { get; set; } = new MultiTabsSettingDto();
public TransitionSettingDto TransitionSetting { get; set; } = new TransitionSettingDto();
public bool OpenKeepAlive { get; set; } = true;
public int LockTime { get; set; } = 0;
public bool ShowBreadCrumb { get; set; } = true;
public bool ShowBreadCrumbIcon { get; set; }
public bool UseErrorHandle { get; set; }
public bool UseOpenBackTop { get; set; } = true;
public bool CanEmbedIFramePage { get; set; } = true;
public bool CloseMessageOnSwitch { get; set; } = true;
public bool RemoveAllHttpPending { get; set; }
}

265
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/ThemeSettingAppService.cs

@ -0,0 +1,265 @@
using LINGYUN.Platform.Localization;
using LINGYUN.Platform.Settings.VueVbenAdmin;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using Volo.Abp.Settings;
using Volo.Abp.SettingManagement;
using Microsoft.AspNetCore.Authorization;
namespace LINGYUN.Platform.Theme.VueVbenAdmin;
public class ThemeSettingAppService : ApplicationService, IThemeSettingAppService
{
protected ISettingManager SettingManager { get; }
public ThemeSettingAppService(
ISettingManager settingManager)
{
SettingManager = settingManager;
LocalizationResource = typeof(PlatformResource);
}
public async virtual Task<ThemeSettingDto> GetAsync()
{
var theme = new ThemeSettingDto();
var settings = await SettingProvider.GetAllAsync(GetAllSettingNames());
theme.DarkMode = GetSettingValue(settings, VueVbenAdminSettingNames.DarkMode);
theme.ProjectConfig.PermissionCacheType = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.PermissionCacheType, 1);
theme.ProjectConfig.ShowSettingButton = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.ShowSettingButton, true);
theme.ProjectConfig.ShowDarkModeToggle = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.ShowDarkModeToggle, true);
theme.ProjectConfig.SettingButtonPosition = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.SettingButtonPosition);
theme.ProjectConfig.PermissionMode = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.PermissionMode);
theme.ProjectConfig.SessionTimeoutProcessing = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.SessionTimeoutProcessing, 0);
theme.ProjectConfig.GrayMode = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.GrayMode, false);
theme.ProjectConfig.ColorWeak = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.ColorWeak, false);
theme.ProjectConfig.ThemeColor = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.ThemeColor);
theme.ProjectConfig.FullContent = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.FullContent, false);
theme.ProjectConfig.ContentMode = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.ContentMode);
theme.ProjectConfig.ShowLogo = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.ShowLogo, true);
theme.ProjectConfig.ShowFooter = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.ShowFooter, false);
theme.ProjectConfig.OpenKeepAlive = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.OpenKeepAlive, true);
theme.ProjectConfig.LockTime = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.LockTime, 0);
theme.ProjectConfig.ShowBreadCrumb = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.ShowBreadCrumb, true);
theme.ProjectConfig.ShowBreadCrumbIcon = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.ShowBreadCrumbIcon, false);
theme.ProjectConfig.UseErrorHandle = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.UseErrorHandle, false);
theme.ProjectConfig.UseOpenBackTop = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.UseOpenBackTop, true);
theme.ProjectConfig.CanEmbedIFramePage = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.CanEmbedIFramePage, true);
theme.ProjectConfig.CloseMessageOnSwitch = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.CloseMessageOnSwitch, true);
theme.ProjectConfig.RemoveAllHttpPending = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.RemoveAllHttpPending, false);
theme.ProjectConfig.HeaderSetting.BgColor = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.BgColor);
theme.ProjectConfig.HeaderSetting.Fixed = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.Fixed, true);
theme.ProjectConfig.HeaderSetting.Show = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.Show, true);
theme.ProjectConfig.HeaderSetting.Theme = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.Theme);
theme.ProjectConfig.HeaderSetting.ShowFullScreen = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowFullScreen, true);
theme.ProjectConfig.HeaderSetting.UseLockPage = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.UseLockPage, true);
theme.ProjectConfig.HeaderSetting.ShowDoc = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowDoc, true);
theme.ProjectConfig.HeaderSetting.ShowNotice = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowNotice, true);
theme.ProjectConfig.HeaderSetting.ShowSearch = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowSearch, false);
theme.ProjectConfig.MenuSetting.BgColor = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.BgColor);
theme.ProjectConfig.MenuSetting.Fixed = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Fixed, true);
theme.ProjectConfig.MenuSetting.Collapsed = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Collapsed, false);
theme.ProjectConfig.MenuSetting.CanDrag = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.CanDrag, false);
theme.ProjectConfig.MenuSetting.Show = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Show, true);
theme.ProjectConfig.MenuSetting.Hidden = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Hidden, false);
theme.ProjectConfig.MenuSetting.Split = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Split, false);
theme.ProjectConfig.MenuSetting.MenuWidth = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.MenuWidth, 210);
theme.ProjectConfig.MenuSetting.Mode = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Mode);
theme.ProjectConfig.MenuSetting.Type = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Type);
theme.ProjectConfig.MenuSetting.Theme = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Theme);
theme.ProjectConfig.MenuSetting.Show = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Show, true);
theme.ProjectConfig.MenuSetting.Theme = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Theme);
theme.ProjectConfig.MenuSetting.TopMenuAlign = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.TopMenuAlign);
theme.ProjectConfig.MenuSetting.Trigger = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Trigger);
theme.ProjectConfig.MenuSetting.Accordion = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Accordion, true);
theme.ProjectConfig.MenuSetting.CloseMixSidebarOnChange = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.CloseMixSidebarOnChange, false);
theme.ProjectConfig.MenuSetting.CollapsedShowTitle = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.CollapsedShowTitle, false);
theme.ProjectConfig.MenuSetting.MixSideTrigger = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.MixSideTrigger);
theme.ProjectConfig.MenuSetting.MixSideFixed = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MenuSetting.MixSideFixed, false);
theme.ProjectConfig.MultiTabsSetting.Cache = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.Cache, false);
theme.ProjectConfig.MultiTabsSetting.Show = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.Show, true);
theme.ProjectConfig.MultiTabsSetting.ShowQuick = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.ShowQuick, true);
theme.ProjectConfig.MultiTabsSetting.CanDrag = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.CanDrag, true);
theme.ProjectConfig.MultiTabsSetting.ShowRedo = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.ShowRedo, true);
theme.ProjectConfig.MultiTabsSetting.ShowFold = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.ShowFold, true);
theme.ProjectConfig.TransitionSetting.Enable = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.Enable, true);
theme.ProjectConfig.TransitionSetting.BasicTransition = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.BasicTransition);
theme.ProjectConfig.TransitionSetting.OpenPageLoading = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.OpenPageLoading, true);
theme.ProjectConfig.TransitionSetting.OpenNProgress = GetSettingValue(settings, VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.OpenNProgress, false);
// 忽略
//theme.BeforeMiniInfo.MenuCollapsed = GetSettingValue(settings, VueVbenAdminSettingNames.BeforeMiniInfo.MenuCollapsed)?.To<bool>();
//theme.BeforeMiniInfo.MenuSplit = GetSettingValue(settings, VueVbenAdminSettingNames.BeforeMiniInfo.MenuSplit)?.To<bool>();
//theme.BeforeMiniInfo.MenuMode = GetSettingValue(settings, VueVbenAdminSettingNames.BeforeMiniInfo.MenuMode);
//theme.BeforeMiniInfo.MenuType = GetSettingValue(settings, VueVbenAdminSettingNames.BeforeMiniInfo.MenuType);
return theme;
}
[Authorize]
public async virtual Task ChangeAsync(ThemeSettingDto input)
{
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.DarkMode, input.DarkMode);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.PermissionCacheType, input.ProjectConfig.PermissionCacheType.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.ShowSettingButton, input.ProjectConfig.ShowSettingButton.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.ShowDarkModeToggle, input.ProjectConfig.ShowDarkModeToggle.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.SettingButtonPosition, input.ProjectConfig.SettingButtonPosition);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.PermissionMode, input.ProjectConfig.PermissionMode);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.SessionTimeoutProcessing, input.ProjectConfig.SessionTimeoutProcessing.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.GrayMode, input.ProjectConfig.GrayMode.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.ColorWeak, input.ProjectConfig.ColorWeak.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.ThemeColor, input.ProjectConfig.ThemeColor);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.FullContent, input.ProjectConfig.FullContent.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.ContentMode, input.ProjectConfig.ContentMode);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.ShowLogo, input.ProjectConfig.ShowLogo.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.ShowFooter, input.ProjectConfig.ShowFooter.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.OpenKeepAlive, input.ProjectConfig.OpenKeepAlive.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.LockTime, input.ProjectConfig.LockTime.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.ShowBreadCrumb, input.ProjectConfig.ShowBreadCrumb.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.ShowBreadCrumbIcon, input.ProjectConfig.ShowBreadCrumbIcon.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.UseErrorHandle, input.ProjectConfig.UseErrorHandle.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.UseOpenBackTop, input.ProjectConfig.UseOpenBackTop.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.CanEmbedIFramePage, input.ProjectConfig.CanEmbedIFramePage.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.CloseMessageOnSwitch, input.ProjectConfig.CloseMessageOnSwitch.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.RemoveAllHttpPending, input.ProjectConfig.RemoveAllHttpPending.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.BgColor, input.ProjectConfig.HeaderSetting.BgColor);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.Fixed, input.ProjectConfig.HeaderSetting.Fixed.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.Show, input.ProjectConfig.HeaderSetting.Show.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.Theme, input.ProjectConfig.HeaderSetting.Theme);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowFullScreen, input.ProjectConfig.HeaderSetting.ShowFullScreen.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.UseLockPage, input.ProjectConfig.HeaderSetting.UseLockPage.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowDoc, input.ProjectConfig.HeaderSetting.ShowDoc.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowNotice, input.ProjectConfig.HeaderSetting.ShowNotice.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowSearch, input.ProjectConfig.HeaderSetting.ShowSearch.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.BgColor, input.ProjectConfig.MenuSetting.BgColor);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Fixed, input.ProjectConfig.MenuSetting.Fixed.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Collapsed, input.ProjectConfig.MenuSetting.Collapsed.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.CanDrag, input.ProjectConfig.MenuSetting.CanDrag.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Show, input.ProjectConfig.MenuSetting.Show.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Hidden, input.ProjectConfig.MenuSetting.Hidden.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Split, input.ProjectConfig.MenuSetting.Split.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.MenuWidth, input.ProjectConfig.MenuSetting.MenuWidth.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Mode, input.ProjectConfig.MenuSetting.Mode);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Type, input.ProjectConfig.MenuSetting.Type);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Theme, input.ProjectConfig.MenuSetting.Theme);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.TopMenuAlign, input.ProjectConfig.MenuSetting.TopMenuAlign);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Trigger, input.ProjectConfig.MenuSetting.Trigger);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Accordion, input.ProjectConfig.MenuSetting.Accordion.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.CloseMixSidebarOnChange, input.ProjectConfig.MenuSetting.CloseMixSidebarOnChange.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.CollapsedShowTitle, input.ProjectConfig.MenuSetting.CollapsedShowTitle.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.MixSideTrigger, input.ProjectConfig.MenuSetting.MixSideTrigger);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MenuSetting.MixSideFixed, input.ProjectConfig.MenuSetting.MixSideFixed.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.Cache, input.ProjectConfig.MultiTabsSetting.Cache.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.Show, input.ProjectConfig.MultiTabsSetting.Show.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.ShowQuick, input.ProjectConfig.MultiTabsSetting.ShowQuick.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.CanDrag, input.ProjectConfig.MultiTabsSetting.CanDrag.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.ShowRedo, input.ProjectConfig.MultiTabsSetting.ShowRedo.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.ShowFold, input.ProjectConfig.MultiTabsSetting.ShowFold.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.Enable, input.ProjectConfig.TransitionSetting.Enable.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.BasicTransition, input.ProjectConfig.TransitionSetting.BasicTransition);
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.OpenPageLoading, input.ProjectConfig.TransitionSetting.OpenPageLoading.ToString());
await SettingManager.SetForCurrentUserAsync(VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.OpenNProgress, input.ProjectConfig.TransitionSetting.OpenNProgress.ToString());
}
protected virtual string[] GetAllSettingNames()
{
return new string[]
{
VueVbenAdminSettingNames.DarkMode,
VueVbenAdminSettingNames.ProjectConfig.PermissionCacheType,
VueVbenAdminSettingNames.ProjectConfig.ShowSettingButton,
VueVbenAdminSettingNames.ProjectConfig.ShowDarkModeToggle,
VueVbenAdminSettingNames.ProjectConfig.SettingButtonPosition,
VueVbenAdminSettingNames.ProjectConfig.PermissionMode,
VueVbenAdminSettingNames.ProjectConfig.SessionTimeoutProcessing,
VueVbenAdminSettingNames.ProjectConfig.GrayMode,
VueVbenAdminSettingNames.ProjectConfig.ColorWeak,
VueVbenAdminSettingNames.ProjectConfig.ThemeColor,
VueVbenAdminSettingNames.ProjectConfig.FullContent,
VueVbenAdminSettingNames.ProjectConfig.ContentMode,
VueVbenAdminSettingNames.ProjectConfig.ShowLogo,
VueVbenAdminSettingNames.ProjectConfig.ShowFooter,
VueVbenAdminSettingNames.ProjectConfig.OpenKeepAlive,
VueVbenAdminSettingNames.ProjectConfig.LockTime,
VueVbenAdminSettingNames.ProjectConfig.ShowBreadCrumb,
VueVbenAdminSettingNames.ProjectConfig.ShowBreadCrumbIcon,
VueVbenAdminSettingNames.ProjectConfig.UseErrorHandle,
VueVbenAdminSettingNames.ProjectConfig.UseOpenBackTop,
VueVbenAdminSettingNames.ProjectConfig.CanEmbedIFramePage,
VueVbenAdminSettingNames.ProjectConfig.CloseMessageOnSwitch,
VueVbenAdminSettingNames.ProjectConfig.RemoveAllHttpPending,
VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.BgColor,
VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.Fixed,
VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.Show,
VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.Theme,
VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowFullScreen,
VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.UseLockPage,
VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowDoc,
VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowNotice,
VueVbenAdminSettingNames.ProjectConfig.HeaderSetting.ShowSearch,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.BgColor,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Fixed,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Collapsed,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.CanDrag,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Show,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Hidden,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Split,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.MenuWidth,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Mode,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Type,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Theme,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.TopMenuAlign,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Trigger,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.Accordion,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.CloseMixSidebarOnChange,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.CollapsedShowTitle,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.MixSideTrigger,
VueVbenAdminSettingNames.ProjectConfig.MenuSetting.MixSideFixed,
VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.Cache,
VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.Show,
VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.ShowQuick,
VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.CanDrag,
VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.ShowRedo,
VueVbenAdminSettingNames.ProjectConfig.MultiTabsSetting.ShowFold,
VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.Enable,
VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.BasicTransition,
VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.OpenPageLoading,
VueVbenAdminSettingNames.ProjectConfig.TransitionSetting.OpenNProgress,
};
}
protected virtual string GetSettingValue(IEnumerable<SettingValue> settings, string name, string defaultValue = null)
{
var settingValue = settings.FirstOrDefault(x => x.Name == name)?.Value;
return settingValue ?? defaultValue;
}
protected virtual T GetSettingValue<T>(IEnumerable<SettingValue> settings, string name, T defaultValue = default)
where T : struct
{
var settingValue = settings.FirstOrDefault(x => x.Name == name)?.Value;
return settingValue?.To<T>() ?? defaultValue;
}
}

34
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/ThemeSettingController.cs

@ -0,0 +1,34 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
namespace LINGYUN.Platform.Theme.VueVbenAdmin;
[Controller]
[RemoteService(Name = PlatformRemoteServiceConsts.RemoteServiceName)]
[Route("api/theme/vue-vben-admin")]
public class ThemeSettingController : AbpControllerBase, IThemeSettingAppService
{
protected IThemeSettingAppService ThemeSettingAppService { get; }
public ThemeSettingController(
IThemeSettingAppService themeSettingAppService)
{
ThemeSettingAppService = themeSettingAppService;
}
[HttpGet]
public Task<ThemeSettingDto> GetAsync()
{
return ThemeSettingAppService.GetAsync();
}
[HttpPut]
[Authorize]
public Task ChangeAsync(ThemeSettingDto input)
{
return ThemeSettingAppService.ChangeAsync(input);
}
}

9
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/ThemeSettingDto.cs

@ -0,0 +1,9 @@
namespace LINGYUN.Platform.Theme.VueVbenAdmin;
public class ThemeSettingDto
{
public string DarkMode { get; set; } = "light";
public bool PageLoading { get; set; }
public ProjectConfigDto ProjectConfig { get; set; } = new ProjectConfigDto();
public BeforeMiniStateDto BeforeMiniInfo { get; set; } = new BeforeMiniStateDto();
}

9
aspnet-core/modules/platform/LINGYUN.Platform.Theme.VueVbenAdmin/LINGYUN/Platform/Theme/VueVbenAdmin/TransitionSettingDto.cs

@ -0,0 +1,9 @@
namespace LINGYUN.Platform.Theme.VueVbenAdmin;
public class TransitionSettingDto
{
public bool Enable { get; set; } = true;
public string BasicTransition { get; set; } = "fade-slide";
public bool OpenPageLoading { get; set; } = true;
public bool OpenNProgress { get; set; }
}

1
aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/LY.MicroService.PlatformManagement.HttpApi.Host.csproj

@ -62,6 +62,7 @@
<ProjectReference Include="..\..\modules\platform\LINGYUN.Platform.Application\LINGYUN.Platform.Application.csproj" />
<ProjectReference Include="..\..\modules\platform\LINGYUN.Platform.EntityFrameworkCore\LINGYUN.Platform.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\..\modules\platform\LINGYUN.Platform.HttpApi\LINGYUN.Platform.HttpApi.csproj" />
<ProjectReference Include="..\..\modules\platform\LINGYUN.Platform.Theme.VueVbenAdmin\LINGYUN.Platform.Theme.VueVbenAdmin.csproj" />
<ProjectReference Include="..\..\modules\saas\LINGYUN.Abp.Saas.EntityFrameworkCore\LINGYUN.Abp.Saas.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\..\modules\tenants\LINGYUN.Abp.MultiTenancy\LINGYUN.Abp.MultiTenancy.csproj" />
</ItemGroup>

2
aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs

@ -20,6 +20,7 @@ using LINGYUN.Abp.UI.Navigation.VueVbenAdmin;
using LINGYUN.Platform;
using LINGYUN.Platform.EntityFrameworkCore;
using LINGYUN.Platform.HttpApi;
using LINGYUN.Platform.Theme.VueVbenAdmin;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
@ -47,6 +48,7 @@ namespace LY.MicroService.PlatformManagement;
typeof(AbpAuditLoggingElasticsearchModule),
typeof(AbpAspNetCoreMultiTenancyModule),
typeof(AbpUINavigationVueVbenAdminModule),
typeof(PlatformThemeVueVbenAdminModule),
// typeof(AbpOssManagementAliyunModule),
typeof(AbpOssManagementFileSystemModule), // 本地文件系统提供者模块
typeof(AbpOssManagementFileSystemImageSharpModule), // 本地文件系统图形处理模块

Loading…
Cancel
Save