From 946fdbbe55edf5a885abacce84fc3a8e8f8b8b9d Mon Sep 17 00:00:00 2001 From: smail Date: Sun, 13 Sep 2026 08:21:49 +0800 Subject: [PATCH] =?UTF-8?q?feat(filter):=20=E5=B0=86=E5=8F=91=E4=BB=B6?= =?UTF-8?q?=E4=BA=BA=E9=BB=91=E7=99=BD=E5=90=8D=E5=8D=95=E6=8B=86=E5=88=86?= =?UTF-8?q?=E4=B8=BA=E7=8B=AC=E7=AB=8B=E8=AE=BE=E7=BD=AE=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E5=B9=B6=E8=A7=A3=E8=80=A6=E6=97=A5=E5=BF=97=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/components/HomeHeader/HomeHeader.js | 9 +- .../components/LogSettings/LogSettings.vue | 6 +- .../SenderFilterManagement.css | 78 +++++++++------- .../SenderFilterManagement.vue | 93 ++++++++++--------- 4 files changed, 102 insertions(+), 84 deletions(-) diff --git a/frontend/src/views/components/HomeHeader/HomeHeader.js b/frontend/src/views/components/HomeHeader/HomeHeader.js index 87e6523..1930807 100644 --- a/frontend/src/views/components/HomeHeader/HomeHeader.js +++ b/frontend/src/views/components/HomeHeader/HomeHeader.js @@ -1,5 +1,5 @@ -import {EpMenu} from "vue-icons-plus/ep"; -import { Lock, Connection, Setting, FolderOpened, Filter, User, Grid, Document } from '@element-plus/icons-vue'; +import {EpMenu} from "vue-icons-plus/ep"; +import { Lock, Connection, Setting, FolderOpened, Filter, User, Grid, Document, Checked } from '@element-plus/icons-vue'; import {computed, ref, onMounted, onUnmounted, defineAsyncComponent} from 'vue' import SettingsPageStatus from '../SettingsPageStatus/SettingsPageStatus.vue' @@ -25,6 +25,7 @@ const GroupSettings = lazySettings(() => import('../GroupSettings/GroupSettings. const RuleSettings = lazySettings(() => import('../RuleSettings/RuleSettings.vue')) const UserManagement = lazySettings(() => import('../UserManagement/UserManagement.vue')) const PluginSettings = lazySettings(() => import('../PluginSettings/PluginSettings.vue')) +const SenderFilterManagement = lazySettings(() => import('../SenderFilterManagement/SenderFilterManagement.vue')) const LogSettings = lazySettings(() => import('../LogSettings/LogSettings.vue')) export function usePage() { @@ -54,6 +55,7 @@ export function usePage() { { key: 'rule', label: lang.rule_setting, hint: '邮件处理规则', icon: Filter, component: RuleSettings, capability: 'user.read' }, { key: 'users', label: lang.user_management, hint: '账号与权限管理', icon: User, component: UserManagement, capability: 'user.manage' }, { key: 'plugins', label: lang.plugin_settings, hint: '扩展功能管理', icon: Grid, component: PluginSettings, capability: 'plugin.read' }, + { key: 'sender-filter', label: '黑白名单', hint: '发件人信任与拦截', icon: Checked, component: SenderFilterManagement, capability: 'user.read' }, { key: 'logs', label: '日志', hint: '操作、收发信与运行记录', icon: Document, component: LogSettings, capability: 'audit.read' }, ].filter(item => { // 日志数据范围由服务端强制过滤;菜单只决定入口是否可见。 @@ -117,5 +119,6 @@ export { GroupSettings, RuleSettings, UserManagement, - PluginSettings + PluginSettings, + SenderFilterManagement } diff --git a/frontend/src/views/components/LogSettings/LogSettings.vue b/frontend/src/views/components/LogSettings/LogSettings.vue index 8260f2e..0d76921 100644 --- a/frontend/src/views/components/LogSettings/LogSettings.vue +++ b/frontend/src/views/components/LogSettings/LogSettings.vue @@ -1,8 +1,5 @@ -