From 8aa2a84a394903132a1bf6d5b063cb8dfbd579d6 Mon Sep 17 00:00:00 2001 From: wangdan-fit2cloud Date: Mon, 21 Sep 2026 19:42:10 +0800 Subject: [PATCH] feat: siderbar --- ui/src/layout/sidebar/ResourceDetailMenu.vue | 69 +++++-------------- ui/src/router/ROUTE_README.md | 11 +++ ui/src/router/admin/types.ts | 2 + ui/src/router/admin/utils.ts | 9 +-- .../admin/workspace/modules/application.ts | 37 ++++++++++ ui/src/styles/STYLE_README.md | 6 +- ui/src/views/VIEW_README.md | 7 ++ .../chat-user/ChatUserListView.vue | 7 ++ .../integration/IntegrationView.vue | 7 ++ .../operation-log/OperationLogView.vue | 7 ++ .../WorkspaceKnowledgeDetailView.vue | 2 +- .../KeywordIndexKnowledgeAction.vue | 3 +- 12 files changed, 106 insertions(+), 61 deletions(-) create mode 100644 ui/src/views/application-detail/chat-user/ChatUserListView.vue create mode 100644 ui/src/views/application-detail/integration/IntegrationView.vue create mode 100644 ui/src/views/application-detail/operation-log/OperationLogView.vue diff --git a/ui/src/layout/sidebar/ResourceDetailMenu.vue b/ui/src/layout/sidebar/ResourceDetailMenu.vue index a2c6e420530..822627e95a7 100644 --- a/ui/src/layout/sidebar/ResourceDetailMenu.vue +++ b/ui/src/layout/sidebar/ResourceDetailMenu.vue @@ -8,85 +8,52 @@ const props = defineProps<{ menuItems: LayoutMenuItem[]; activeName: string }>() const emit = defineEmits<{ select: [menuItem: LayoutMenuItem] }>() /* 初始展开分组;导航时展开当前页所属分组,保留用户对其他分组的选择。 */ -const expandedGroups = ref(props.menuItems.filter((menuItem) => menuItem.children?.length).map((menuItem) => menuItem.name)) +const expandedGroups = ref>( + Object.fromEntries(props.menuItems.filter((menuItem) => menuItem.children?.length).map((menuItem) => [menuItem.name, true])), +) watch( () => props.activeName, (activeName) => { const activeGroup = props.menuItems.find((menuItem) => menuItem.children?.some((child) => child.name === activeName)) - if (activeGroup && !expandedGroups.value.includes(activeGroup.name)) expandedGroups.value.push(activeGroup.name) + if (activeGroup) expandedGroups.value[activeGroup.name] = true }, { immediate: true }, )