diff --git a/mateclaw-ui/src/components/chat/ConversationSidebar.vue b/mateclaw-ui/src/components/chat/ConversationSidebar.vue index 8d74e213..50ab2a7d 100644 --- a/mateclaw-ui/src/components/chat/ConversationSidebar.vue +++ b/mateclaw-ui/src/components/chat/ConversationSidebar.vue @@ -58,81 +58,87 @@
@@ -181,6 +187,7 @@ import { useI18n } from 'vue-i18n' import { Plus } from '@element-plus/icons-vue' import AgentPickerDialog from '@/components/common/AgentPickerDialog.vue' import DropdownMenu, { type DropdownMenuItem } from '@/components/common/DropdownMenu.vue' +import McTooltip from '@/components/common/McTooltip.vue' import { conversationApi } from '@/api/index' import { channelIconUrl } from '@/utils/channelSource' import { mcToast } from '@/composables/useMcToast' diff --git a/mateclaw-ui/src/components/common/McTooltip.vue b/mateclaw-ui/src/components/common/McTooltip.vue new file mode 100644 index 00000000..7f317343 --- /dev/null +++ b/mateclaw-ui/src/components/common/McTooltip.vue @@ -0,0 +1,74 @@ + + + + + + diff --git a/mateclaw-ui/src/views/ChatConsole.vue b/mateclaw-ui/src/views/ChatConsole.vue index 3e8a39e1..df6cf904 100644 --- a/mateclaw-ui/src/views/ChatConsole.vue +++ b/mateclaw-ui/src/views/ChatConsole.vue @@ -1978,6 +1978,8 @@ function handleCodeCopy(e: MouseEvent) { } .agent-badge-icon { + display: flex; + align-items: center; font-size: 14px; } diff --git a/mateclaw-ui/src/views/layout/MainLayout.vue b/mateclaw-ui/src/views/layout/MainLayout.vue index dda9d257..05d1fc04 100644 --- a/mateclaw-ui/src/views/layout/MainLayout.vue +++ b/mateclaw-ui/src/views/layout/MainLayout.vue @@ -41,32 +41,38 @@ @@ -196,6 +202,7 @@ import OnboardingWizard from '@/views/Onboarding/OnboardingWizard.vue' import DoctorDrawer from '@/views/Doctor/DoctorDrawer.vue' import WorkspaceSwitcher from '@/components/workspace/WorkspaceSwitcher.vue' import NavBadge from '@/components/common/NavBadge.vue' +import McTooltip from '@/components/common/McTooltip.vue' import { useNotificationCenter } from '@/composables/useNotificationCenter' import { useWorkspaceStore } from '@/stores/useWorkspaceStore' import { applyLocale, currentLocale, type AppLocale } from '@/i18n' @@ -746,6 +753,14 @@ watch(() => workspaceStore.currentWorkspaceId, () => { /* Active indicator bar removed — active state uses bg color + font weight only */ +/* Collapsed rail: the label is hidden, so center the lone icon on the + sidebar's vertical axis instead of leaving it left-aligned by the + nav-item's horizontal padding. */ +.sidebar.collapsed .nav-item { + justify-content: center; + gap: 0; +} + .nav-icon { display: flex; align-items: center; flex-shrink: 0; } .nav-label { overflow: hidden; text-overflow: ellipsis; }