refactor: use patch api to refactor menu drag-and-drop sorting feature (#6462)

#### What type of PR is this?

/area ui
/kind improvement
/milestone 2.19.x

#### What this PR does / why we need it:

使用 patch 接口重构菜单项拖动排序等功能。

#### Which issue(s) this PR fixes:

None

#### Special notes for your reviewer:

需要测试菜单项的拖动排序功能是否符合预期。

#### Does this PR introduce a user-facing change?

```release-note
使用 patch 接口重构菜单项拖动排序功能。
```
This commit is contained in:
Ryan Wang
2024-08-16 22:42:33 +08:00
committed by GitHub
parent 10e3f57ca0
commit 7774eb1a3a
2 changed files with 60 additions and 39 deletions

View File

@@ -12,7 +12,7 @@ import { useI18n } from "vue-i18n";
const props = withDefaults(
defineProps<{
menu: Menu;
parentMenuItem: MenuItem;
parentMenuItem?: MenuItem;
menuItem?: MenuItem;
}>(),
{
@@ -100,19 +100,23 @@ const handleSaveMenuItem = async () => {
// if parent menu item is selected, add the new menu item to the parent menu item
if (selectedParentMenuItem.value) {
const { data: menuItemToUpdate } =
const { data: parentMenuItem } =
await coreApiClient.menuItem.getMenuItem({
name: selectedParentMenuItem.value,
});
menuItemToUpdate.spec.children = [
...(menuItemToUpdate.spec.children || []),
data.metadata.name,
];
await coreApiClient.menuItem.updateMenuItem({
name: menuItemToUpdate.metadata.name,
menuItem: menuItemToUpdate,
await coreApiClient.menuItem.patchMenuItem({
name: selectedParentMenuItem.value,
jsonPatchInner: [
{
op: "add",
path: "/spec/children",
value: [
...(parentMenuItem.spec.children || []),
data.metadata.name,
],
},
],
});
}
@@ -218,7 +222,7 @@ onMounted(() => {
}
}
selectedParentMenuItem.value = props.parentMenuItem?.metadata.name;
selectedParentMenuItem.value = props.parentMenuItem?.metadata.name || "";
setFocus("displayNameInput");
});