From 71928cf56b128e3a60d557da223d0b58522c9c93 Mon Sep 17 00:00:00 2001 From: nanasikeai Date: Wed, 15 Jan 2025 16:47:07 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E7=AD=96=E7=95=A5=E8=AF=A6?= =?UTF-8?q?=E6=83=85=20--story=3D120594135?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/domain/model/strategy/strategy.ts | 4 +- .../list/components/risk-detection.vue | 209 +++++++++++++++++- .../list/components/risk-display.vue | 16 +- .../list/components/valueItem.vue | 42 +++- .../src/views/strategy-manage/list/index.vue | 22 +- 5 files changed, 276 insertions(+), 17 deletions(-) diff --git a/src/frontend/src/domain/model/strategy/strategy.ts b/src/frontend/src/domain/model/strategy/strategy.ts index 1796538b..3b21e24b 100644 --- a/src/frontend/src/domain/model/strategy/strategy.ts +++ b/src/frontend/src/domain/model/strategy/strategy.ts @@ -64,9 +64,9 @@ export default class Strategy { }; select: Array, where: { - operator: 'and' | 'or' ; + connector: 'and' | 'or' ; conditions: Array<{ - operator: 'and' | 'or'; + connector: 'and' | 'or'; conditions: Array<{ field: DatabaseTableFieldModel | ''; filter: string; diff --git a/src/frontend/src/views/strategy-manage/list/components/risk-detection.vue b/src/frontend/src/views/strategy-manage/list/components/risk-detection.vue index 9f022175..04eedf51 100644 --- a/src/frontend/src/views/strategy-manage/list/components/risk-detection.vue +++ b/src/frontend/src/views/strategy-manage/list/components/risk-detection.vue @@ -74,15 +74,106 @@ class="collapse-card-title" :label="t('方案')" style="margin-top: 24px;"> + + + + {{ strategyTypeTextMap[data.strategy_type] }} + + + {{ currentControl?.control_name || '--' }} - V{{ data.control_version }} + + @@ -97,6 +188,9 @@ import StrategyManageService from '@service/strategy-manage'; + import CommonDataModel from '@model/strategy/common-data'; + import type DatabaseTableField from '@model/strategy/database-table-field'; + import DatabaseTableFieldModel from '@model/strategy/database-table-field'; import type StrategyModel from '@model/strategy/strategy'; import useRequest from '@hooks/use-request'; @@ -139,6 +233,23 @@ }, }; + const strategyTypeTextMap = { + rule: t('自定义规则审计'), + model: t('引入模型审计'), + } as Record; + + const { + data: commonData, + } = useRequest(StrategyManageService.fetchStrategyCommon, { + defaultValue: new CommonDataModel(), + manual: true, + }); + + const getMetricName = (element: DatabaseTableFieldModel) => { + const item = commonData.value.rule_audit_aggregate_type.find(item => item.value === element.aggregate); + return t(`[${item?.label}] ${element.display_name}`); + }; + // 获取方案列表 const { data: controlList, @@ -149,3 +260,99 @@ }); + diff --git a/src/frontend/src/views/strategy-manage/list/components/risk-display.vue b/src/frontend/src/views/strategy-manage/list/components/risk-display.vue index c73f9531..3bd97b7e 100644 --- a/src/frontend/src/views/strategy-manage/list/components/risk-display.vue +++ b/src/frontend/src/views/strategy-manage/list/components/risk-display.vue @@ -55,7 +55,9 @@ {{ groupMap[key] }}
- +
@@ -84,7 +86,11 @@ const props = defineProps(); const { t, locale } = useI18n(); - const column = [t('事件分组'), t('字段名称'), t('字段显示名'), t('重点展示'), t('字段说明')]; + const column = computed(() => { + const initColumn = [t('事件分组'), t('字段名称'), t('字段显示名'), t('重点展示'), t('字段映射'), t('字段说明')]; + props.data.strategy_type === 'rule' ? initColumn : initColumn.splice(4, 1); + return initColumn; + }); const groupMap = { event_basic_field_configs: t('基本信息'), @@ -128,13 +134,17 @@ &:nth-child(2), &:nth-child(3) { - width: 180px; + width: 150px; } &:nth-child(4) { width: 100px; } + &:nth-child(5) { + width: 150px; + } + &:last-child { flex: 1; } diff --git a/src/frontend/src/views/strategy-manage/list/components/valueItem.vue b/src/frontend/src/views/strategy-manage/list/components/valueItem.vue index c5541a8b..9bce601d 100644 --- a/src/frontend/src/views/strategy-manage/list/components/valueItem.vue +++ b/src/frontend/src/views/strategy-manage/list/components/valueItem.vue @@ -8,18 +8,23 @@ v-for="(value, valueKey) in config" :key="valueKey">
{{ value ? t('是') : t('否') }}
-
- {{ value }} +
+ + +
+
+
@@ -37,18 +42,31 @@