From a9381ab9142d6f8dcf90f4f04b49647ca4408a51 Mon Sep 17 00:00:00 2001 From: wangdan-fit2cloud Date: Wed, 11 Jun 2025 17:41:53 +0800 Subject: [PATCH] feat: system-setting --- .../auth-setting.ts | 0 .../email-setting.ts | 0 .../platform-source.ts | 0 .../theme.ts | 0 .../layout/components/sidebar/SidebarItem.vue | 2 +- ui/src/router/modules/system.ts | 32 +- ui/src/stores/modules/theme.ts | 2 +- ui/src/stores/modules/user.ts | 4 +- ui/src/styles/app.scss | 4 + ui/src/styles/component.scss | 23 + ui/src/views/authentication/component/CAS.vue | 2 +- .../authentication/component/EditModal.vue | 2 +- .../views/authentication/component/LDAP.vue | 2 +- .../views/authentication/component/OAuth2.vue | 2 +- .../views/authentication/component/OIDC.vue | 2 +- .../views/authentication/component/SCAN.vue | 2 +- ui/src/views/authentication/index.vue | 15 +- ui/src/views/email/index.vue | 155 +++--- ui/src/views/login/index.vue | 2 +- ui/src/views/theme/LoginPreview.vue | 2 +- ui/src/views/theme/index.vue | 510 +++++++++--------- 21 files changed, 393 insertions(+), 370 deletions(-) rename ui/src/api/{systemSettings => system-settings}/auth-setting.ts (100%) rename ui/src/api/{systemSettings => system-settings}/email-setting.ts (100%) rename ui/src/api/{systemSettings => system-settings}/platform-source.ts (100%) rename ui/src/api/{systemSettings => system-settings}/theme.ts (100%) diff --git a/ui/src/api/systemSettings/auth-setting.ts b/ui/src/api/system-settings/auth-setting.ts similarity index 100% rename from ui/src/api/systemSettings/auth-setting.ts rename to ui/src/api/system-settings/auth-setting.ts diff --git a/ui/src/api/systemSettings/email-setting.ts b/ui/src/api/system-settings/email-setting.ts similarity index 100% rename from ui/src/api/systemSettings/email-setting.ts rename to ui/src/api/system-settings/email-setting.ts diff --git a/ui/src/api/systemSettings/platform-source.ts b/ui/src/api/system-settings/platform-source.ts similarity index 100% rename from ui/src/api/systemSettings/platform-source.ts rename to ui/src/api/system-settings/platform-source.ts diff --git a/ui/src/api/systemSettings/theme.ts b/ui/src/api/system-settings/theme.ts similarity index 100% rename from ui/src/api/systemSettings/theme.ts rename to ui/src/api/system-settings/theme.ts diff --git a/ui/src/layout/components/sidebar/SidebarItem.vue b/ui/src/layout/components/sidebar/SidebarItem.vue index 7632de1b3..04ca08a7f 100644 --- a/ui/src/layout/components/sidebar/SidebarItem.vue +++ b/ui/src/layout/components/sidebar/SidebarItem.vue @@ -88,7 +88,7 @@ const menuIcon = computed(() => { } } :deep(.el-sub-menu__title) { - padding: 13px 12px 13px 16px !important; + padding: 13px 12px 13px 10px !important; &:hover { background: none; color: var(--el-color-primary); diff --git a/ui/src/router/modules/system.ts b/ui/src/router/modules/system.ts index 1e6bd7858..d3917f93f 100644 --- a/ui/src/router/modules/system.ts +++ b/ui/src/router/modules/system.ts @@ -46,7 +46,7 @@ const systemRouter = { component: () => import('@/views/role/index.vue'), }, { - path:'/system/setting', + path: '/system/setting', name: 'setting', meta: { icon: 'app-setting', @@ -58,13 +58,13 @@ const systemRouter = { }, children: [ { - path: '/system/theme', + path: '/system/setting/theme', name: 'theme', meta: { title: 'views.system.theme.title', - activeMenu: '/setting', - parentPath: '/setting', - parentName: 'setting', + activeMenu: '/system', + parentPath: '/system', + parentName: 'system', //permission: new ComplexPermission(['ADMIN'], ['x-pack'], 'AND') }, component: () => import('@/views/theme/index.vue'), @@ -74,27 +74,27 @@ const systemRouter = { name: 'authentication', meta: { title: 'views.system.authentication.title', - activeMenu: '/setting', - parentPath: '/setting', - parentName: 'setting', + activeMenu: '/system', + parentPath: '/system', + parentName: 'system', //permission: new ComplexPermission(['ADMIN'], ['x-pack'], 'AND') }, - component: () => import('@/views/authentication/index.vue') + component: () => import('@/views/authentication/index.vue'), }, { path: '/system/email', name: 'email', meta: { title: 'views.system.email.title', - activeMenu: '/setting', - parentPath: '/setting', - parentName: 'setting', + activeMenu: '/system', + parentPath: '/system', + parentName: 'system', //permission: new Role('ADMIN') }, - component: () => import('@/views/email/index.vue') - } - ] - } + component: () => import('@/views/email/index.vue'), + }, + ], + }, ], } diff --git a/ui/src/stores/modules/theme.ts b/ui/src/stores/modules/theme.ts index 82a444aa7..b3158205a 100644 --- a/ui/src/stores/modules/theme.ts +++ b/ui/src/stores/modules/theme.ts @@ -1,7 +1,7 @@ import { defineStore } from 'pinia' import { cloneDeep } from 'lodash' import { useElementPlusTheme } from 'use-element-plus-theme' -import ThemeApi from '@/api/systemSettings/theme' +import ThemeApi from '@/api/system-settings/theme' import type {Ref} from "vue"; export interface themeStateTypes { themeInfo: any diff --git a/ui/src/stores/modules/user.ts b/ui/src/stores/modules/user.ts index a1e27a27a..871c4a50d 100644 --- a/ui/src/stores/modules/user.ts +++ b/ui/src/stores/modules/user.ts @@ -3,8 +3,8 @@ import { type Ref } from 'vue' import type { User } from '@/api/type/user' import UserApi from '@/api/user/user' import LoginApi from '@/api/user/login' -import { cloneDeep } from 'lodash' -import ThemeApi from '@/api/systemSettings/theme' +import {cloneDeep} from 'lodash' +import ThemeApi from '@/api/system-settings/theme' // import { defaultPlatformSetting } from '@/utils/theme' import { useLocalStorage } from '@vueuse/core' import { localeConfigKey, getBrowserLang } from '@/locales/index' diff --git a/ui/src/styles/app.scss b/ui/src/styles/app.scss index c7e2a684e..935fceaae 100644 --- a/ui/src/styles/app.scss +++ b/ui/src/styles/app.scss @@ -395,6 +395,10 @@ h5 { background: var(--el-color-success); } +.layout-bg { + background: var(--app-layout-bg-color); +} + /* 标题前带竖线样式 */ diff --git a/ui/src/styles/component.scss b/ui/src/styles/component.scss index 03e0a0bbe..cc3d8343a 100644 --- a/ui/src/styles/component.scss +++ b/ui/src/styles/component.scss @@ -150,3 +150,26 @@ padding: calc(var(--app-base-px) + 4px) calc(var(--app-base-px) * 2); } } + +// radio-button-group +.app-radio-button-group { + border: 1px solid var(--app-border-color-dark); + border-radius: var(--el-border-radius-base); + .el-radio-button { + padding: 3px; + } + .el-radio-button__inner { + border: none !important; + border-radius: var(--el-border-radius-base) !important; + padding: 5px 8px; + font-weight: 400; + } + .el-radio-button__original-radio:checked + .el-radio-button__inner { + color: var(--el-color-primary) !important; + background: var(--el-color-primary-light-9) !important; + border: none !important; + box-shadow: none !important; + font-weight: 500; + } +} + diff --git a/ui/src/views/authentication/component/CAS.vue b/ui/src/views/authentication/component/CAS.vue index 3a0381b84..f870b9138 100644 --- a/ui/src/views/authentication/component/CAS.vue +++ b/ui/src/views/authentication/component/CAS.vue @@ -54,7 +54,7 @@