Skip to content

Commit 3d976bd

Browse files
committed
fix: 策略详情缺少“事件调查报告”内容每一项可以单独保存与加载动画 --bug=132037874
1 parent fba2dea commit 3d976bd

File tree

12 files changed

+253
-57
lines changed

12 files changed

+253
-57
lines changed

src/frontend/src/views/strategy-manage/language/en.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,8 @@ export default {
367367
'调用鉴权接口进行该系统的鉴权。': ' to be able to call the authentication interface to authenticate the system',
368368
请输入资源回调url: 'Please enter the resource callback url',
369369
提交并下一步: 'Submit and proceed next',
370+
保存当前步骤: 'Save Current Step',
371+
'正在保存,请稍候...': 'Saving, please wait...',
370372
当前系统未完成配置: 'The current system has not been fully configured',
371373
系统信息: 'System information',
372374
日志上报: 'Log reporting',

src/frontend/src/views/strategy-manage/language/zh.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,8 @@ export default {
373373
'调用鉴权接口进行该系统的鉴权。': '调用鉴权接口进行该系统的鉴权。',
374374
请输入资源回调url: '请输入资源回调url',
375375
提交并下一步: '提交并下一步',
376+
保存当前步骤: '保存当前步骤',
377+
'正在保存,请稍候...': '正在保存,请稍候...',
376378
当前系统未完成配置: '当前系统未完成配置',
377379
系统信息: '系统信息',
378380
日志上报: '日志上报',

src/frontend/src/views/strategy-manage/strategy-create/components/event-report/index.vue

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,13 @@
131131
@click="handleNext">
132132
{{ t(isEnvent ? '下一步' : '跳过') }}
133133
</bk-button>
134+
<bk-button
135+
v-if="isEditMode"
136+
class="ml8"
137+
theme="primary"
138+
@click="handleSaveCurrentStep">
139+
{{ t('保存当前步骤') }}
140+
</bk-button>
134141
<bk-button
135142
class="ml8"
136143
@click="handleCancel">
@@ -162,8 +169,8 @@
162169
import { formatDate } from '@/utils/assist/timestamp-conversion';
163170
164171
interface IFormData {
165-
processor_groups: Array<number>,
166-
notice_groups: Array<number>,
172+
processor_groups: Array<any>,
173+
notice_groups: Array<any>,
167174
report_enabled: boolean,
168175
report_config: Record<string, any>,
169176
report_auto_render: boolean,
@@ -188,6 +195,7 @@
188195
interface Emits {
189196
(e: 'previousStep', step: number): void;
190197
(e: 'nextStep', step: number, params: IFormData): void;
198+
(e: 'saveCurrentStep', params: Partial<IFormData>): void;
191199
(e: 'submitData'): void;
192200
}
193201
@@ -390,6 +398,27 @@
390398
report_auto_render: isAutoGetReports.value,
391399
});
392400
};
401+
402+
// 保存当前步骤(编辑态):效果与「其他配置」的提交一致
403+
const handleSaveCurrentStep = () => {
404+
if (isEnvent.value && aiEditorRef.value && !aiEditorRef.value.hasContent()) {
405+
editorError.value = true;
406+
return;
407+
}
408+
if (isEnvent.value) {
409+
reportInfo.value.enabled = true;
410+
reportInfo.value.config = buildReportConfig();
411+
} else {
412+
reportInfo.value.enabled = false;
413+
reportInfo.value.config = buildReportConfig();
414+
}
415+
emits('saveCurrentStep', {
416+
report_enabled: reportInfo.value.enabled,
417+
report_config: reportInfo.value.config,
418+
report_auto_render: isAutoGetReports.value,
419+
});
420+
};
421+
393422
const handleCancel = () => {
394423
router.push({
395424
name: 'strategyList',

src/frontend/src/views/strategy-manage/strategy-create/components/preview/components/base-info.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@
8282
event_basic_field_configs: StrategyFieldEvent['event_basic_field_configs'],
8383
event_evidence_field_configs: StrategyFieldEvent['event_evidence_field_configs'],
8484
risk_meta_field_config: StrategyFieldEvent['risk_meta_field_config'],
85-
processor_groups: [],
86-
notice_groups: []
85+
processor_groups: Array<any>,
86+
notice_groups: Array<any>
8787
}
8888
8989
interface Props{

src/frontend/src/views/strategy-manage/strategy-create/components/preview/components/link-event.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,8 @@
141141
event_data_field_configs: StrategyFieldEvent['event_data_field_configs'],
142142
event_basic_field_configs: StrategyFieldEvent['event_basic_field_configs'],
143143
event_evidence_field_configs: StrategyFieldEvent['event_evidence_field_configs'],
144-
processor_groups: [],
145-
notice_groups: []
144+
processor_groups: Array<any>,
145+
notice_groups: Array<any>
146146
}
147147
148148
interface Props{

src/frontend/src/views/strategy-manage/strategy-create/components/preview/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@
5959
event_basic_field_configs: StrategyFieldEvent['event_basic_field_configs'],
6060
event_evidence_field_configs: StrategyFieldEvent['event_evidence_field_configs'],
6161
risk_meta_field_config: StrategyFieldEvent['risk_meta_field_config'],
62-
processor_groups: [],
63-
notice_groups: []
62+
processor_groups: Array<any>,
63+
notice_groups: Array<any>
6464
}
6565
6666
interface Props {

src/frontend/src/views/strategy-manage/strategy-create/components/step1/components/customize/index.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1058,6 +1058,7 @@
10581058
.flex-center {
10591059
display: flex;
10601060
align-items: center;
1061+
justify-content: left;
10611062
}
10621063
10631064
.circle {

src/frontend/src/views/strategy-manage/strategy-create/components/step1/components/reference-model/components/aiops/index.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,7 @@
415415
.flex-center {
416416
display: flex;
417417
align-items: center;
418+
justify-content: left;
418419
}
419420
}
420421
}

src/frontend/src/views/strategy-manage/strategy-create/components/step1/index.vue

Lines changed: 46 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,13 @@
217217
@click="handleNext">
218218
{{ t('下一步') }}
219219
</bk-button>
220+
<bk-button
221+
v-if="isEditMode"
222+
class="ml8"
223+
theme="primary"
224+
@click="handleSaveCurrentStep">
225+
{{ t('保存当前步骤') }}
226+
</bk-button>
220227
<bk-button
221228
class="ml8"
222229
@click="handleCancel">
@@ -282,6 +289,7 @@
282289
283290
interface Emits {
284291
(e: 'nextStep', step: number, params: IFormData): void;
292+
(e: 'saveCurrentStep', params: Record<string, any>): void;
285293
}
286294
interface Props {
287295
editData: StrategyModel
@@ -636,32 +644,48 @@
636644
tastQueue.push(comRef.value.getValue?.());
637645
}
638646
Promise.all(tastQueue).then(() => {
639-
if (!isEditMode) {
640-
delete formData.value.strategy_id;
641-
}
642-
const baseParams = { ...formData.value };
643-
if (baseParams.tags) {
644-
baseParams.tags = baseParams.tags.map(item => (strategyTagMap.value[item] ? strategyTagMap.value[item] : item));
645-
}
646-
// 获取审计参数(自定义规则审计、引入模型审计)
647-
const fields = comRef.value.getFields();
648-
// 非联表不需要link_table参数
649-
if (fields.configs.config_type !== 'LinkTable' && fields.configs.data_source) {
650-
fields.configs.data_source.link_table = null;
651-
}
652-
// 非周期不需要schedule_config
653-
if (fields.configs.data_source && fields.configs.data_source.source_type !== 'batch_join_source') {
654-
fields.configs.schedule_config = undefined;
655-
}
656-
// 合并参数
657-
const params = {
658-
...baseParams,
659-
...fields,
660-
};
647+
const params = buildStepParams();
661648
emits('nextStep', 2, params);
662649
});
663650
};
664651
652+
// 构建当前步骤提交参数(与下一步一致)
653+
const buildStepParams = () => {
654+
if (!isEditMode) {
655+
delete formData.value.strategy_id;
656+
}
657+
const baseParams = { ...formData.value };
658+
if (baseParams.tags) {
659+
baseParams.tags = baseParams.tags.map(item => (strategyTagMap.value[item] ? strategyTagMap.value[item] : item));
660+
}
661+
// 获取审计参数(自定义规则审计、引入模型审计)
662+
const fields = comRef.value.getFields();
663+
// 非联表不需要link_table参数
664+
if (fields.configs.config_type !== 'LinkTable' && fields.configs.data_source) {
665+
fields.configs.data_source.link_table = null;
666+
}
667+
// 非周期不需要schedule_config
668+
if (fields.configs.data_source && fields.configs.data_source.source_type !== 'batch_join_source') {
669+
fields.configs.schedule_config = undefined;
670+
}
671+
return {
672+
...baseParams,
673+
...fields,
674+
};
675+
};
676+
677+
// 保存当前步骤(编辑态):校验后提交,效果与「其他配置」的提交一致
678+
const handleSaveCurrentStep = () => {
679+
const tastQueue = [formRef.value.validate()];
680+
if (formData.value.strategy_type) {
681+
tastQueue.push(comRef.value.getValue?.());
682+
}
683+
Promise.all(tastQueue).then(() => {
684+
const params = buildStepParams();
685+
emits('saveCurrentStep', params);
686+
});
687+
};
688+
665689
watch(() => props.editData, (data) => {
666690
if (isEditMode || isCloneMode) {
667691
setFormData(data);

src/frontend/src/views/strategy-manage/strategy-create/components/step2/index.vue

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,13 @@
121121
@click="handleNext">
122122
{{ t('下一步') }}
123123
</bk-button>
124+
<bk-button
125+
v-if="isEditMode"
126+
class="ml8"
127+
theme="primary"
128+
@click="handleSaveCurrentStep">
129+
{{ t('保存当前步骤') }}
130+
</bk-button>
124131
<bk-button
125132
class="ml8"
126133
@click="handleCancel">
@@ -162,6 +169,7 @@
162169
interface Emits {
163170
(e: 'previousStep', step: number): void;
164171
(e: 'nextStep', step: number, params: IFormData): void;
172+
(e: 'saveCurrentStep', params: IFormData): void;
165173
(e: 'showPreview'): void;
166174
}
167175
interface Props {
@@ -257,29 +265,37 @@
257265
});
258266
};
259267
268+
const buildStepParams = (): IFormData => {
269+
const params: IFormData = _.cloneDeep(Object.assign(
270+
{},
271+
formData.value, eventRef.value.getData(),
272+
strategyTableRef.value.getData(),
273+
));
274+
params.event_basic_field_configs = params.event_basic_field_configs.map((item) => {
275+
cleanMapConfig(item);
276+
cleanDrillConfig(item);
277+
return item;
278+
});
279+
params.risk_meta_field_config = params.risk_meta_field_config.map((item) => {
280+
cleanMapConfig(item);
281+
cleanDrillConfig(item);
282+
return item;
283+
});
284+
params.event_data_field_configs = params.event_data_field_configs.map(cleanDrillConfig);
285+
params.event_evidence_field_configs = params.event_evidence_field_configs.map(cleanDrillConfig);
286+
return params;
287+
};
288+
260289
const handleNext = () => {
261290
Promise.all([formRef.value.validate(), eventRef.value.getValue()]).then(() => {
262-
const params: IFormData = _.cloneDeep(Object.assign(
263-
{},
264-
formData.value, eventRef.value.getData(),
265-
strategyTableRef.value.getData(),
266-
));
267-
// 统一处理配置字段
268-
params.event_basic_field_configs = params.event_basic_field_configs.map((item) => {
269-
cleanMapConfig(item);
270-
cleanDrillConfig(item);
271-
return item;
272-
});
273-
params.risk_meta_field_config = params.risk_meta_field_config.map((item) => {
274-
cleanMapConfig(item);
275-
cleanDrillConfig(item);
276-
return item;
277-
});
278-
279-
params.event_data_field_configs = params.event_data_field_configs.map(cleanDrillConfig);
280-
params.event_evidence_field_configs = params.event_evidence_field_configs.map(cleanDrillConfig);
291+
emits('nextStep', 3, buildStepParams());
292+
});
293+
};
281294
282-
emits('nextStep', 3, params);
295+
// 保存当前步骤(编辑态):效果与「其他配置」的提交一致
296+
const handleSaveCurrentStep = () => {
297+
Promise.all([formRef.value.validate(), eventRef.value.getValue()]).then(() => {
298+
emits('saveCurrentStep', buildStepParams());
283299
});
284300
};
285301

0 commit comments

Comments
 (0)