Skip to content

Commit 71fd123

Browse files
authored
fix: Fix snapshot application checkbox abnormality issue (#11404)
1 parent d4d66ca commit 71fd123

File tree

2 files changed

+48
-19
lines changed

2 files changed

+48
-19
lines changed

agent/app/service/snapshot.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ func loadPanelFile(fileOp fileUtils.FileOp) ([]dto.DataTree, error) {
343343
itemData.Children, _ = loadFile(panelPath, 3, fileOp)
344344
case "agent":
345345
panelPath := path.Join(global.Dir.DataDir, itemData.Label)
346-
itemData.Children, _ = loadFile(panelPath, 3, fileOp)
346+
itemData.Children, _ = loadFile(panelPath, 2, fileOp)
347347
itemData.IsCheck = false
348348
for i := 0; i < len(itemData.Children); i++ {
349349
if itemData.Children[i].Label != "package" {

frontend/src/views/setting/snapshot/create/index.vue

Lines changed: 47 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
node-key="id"
7272
:data="form.appData"
7373
:props="defaultProps"
74-
@check-change="onChangeAppData"
74+
@check="onChangeAppData"
7575
show-checkbox
7676
>
7777
<template #default="{ data }">
@@ -92,6 +92,7 @@
9292
node-key="id"
9393
:data="form.panelData"
9494
:props="defaultProps"
95+
@check="onChangePanelData"
9596
show-checkbox
9697
>
9798
<template #default="{ data }">
@@ -485,39 +486,67 @@ const search = async () => {
485486
});
486487
};
487488
488-
function onChangeAppData(data: any, isCheck: boolean) {
489-
if (data.label !== 'appData' || !data.relationItemID) {
490-
return;
491-
}
492-
data.isCheck = isCheck;
493-
let isDisable = false;
494-
for (const item of form.appData) {
495-
if (!item.children) {
496-
return;
489+
function onChangeAppData(data: any, checked: any) {
490+
let isChecked = false;
491+
let keys = checked.checkedKeys || [];
492+
for (const item of keys) {
493+
if (data.id === item) {
494+
isChecked = true;
497495
}
498-
for (const itemData of item.children) {
499-
if (itemData.label === 'appData' && itemData.relationItemID === data.relationItemID && itemData.isCheck) {
500-
isDisable = true;
496+
}
497+
let relationID = data.relationItemID;
498+
if (!relationID) {
499+
let list = data.children || [];
500+
for (const item of list) {
501+
if (item.label === 'appData' && item.relationItemID && !item.isDisable) {
502+
relationID = item.relationItemID;
501503
break;
502504
}
503505
}
504506
}
507+
if (!relationID) {
508+
return;
509+
}
510+
changeRelation(relationID, isChecked);
511+
}
512+
const changeRelation = (relationID: string, isChecked: boolean) => {
505513
for (const item of form.appData) {
506514
if (!item.children) {
507515
return;
508516
}
509517
for (const relationItem of item.children) {
510-
if (relationItem.id !== data.relationItemID) {
518+
if (relationItem.id !== relationID) {
511519
continue;
512520
}
513-
relationItem.isDisable = isDisable;
514-
if (isDisable) {
515-
appRef.value.setChecked(relationItem.id, isDisable, isDisable);
521+
relationItem.isDisable = isChecked;
522+
if (isChecked) {
523+
appRef.value.setChecked(relationItem.id, isChecked, isChecked);
524+
}
525+
if (relationItem.relationID) {
526+
changeRelation(relationItem.relationID, isChecked);
516527
}
517528
break;
518529
}
519530
}
520-
}
531+
};
532+
533+
const onChangePanelData = (data: any, checked: any) => {
534+
let isChecked = false;
535+
let keys = checked.checkedKeys || [];
536+
for (const item of keys) {
537+
if (data.id === item) {
538+
isChecked = true;
539+
}
540+
}
541+
if (!isChecked && data.label === 'agent' && data.path.indexOf('1panel/agent') !== -1) {
542+
for (const item of data.children) {
543+
if (item.label !== 'package') {
544+
item.isCheck = true;
545+
panelRef.value.setChecked(item.id, true, true);
546+
}
547+
}
548+
}
549+
};
521550
const setAppDefaultCheck = async (list: any) => {
522551
for (const item of list) {
523552
if (item.isCheck) {

0 commit comments

Comments
 (0)