import { computed, defineComponent, ref } from 'vue'; import { useRouter, useRoute, RouterView } from 'vue-router'; import { Layout, Menu } from 'ant-design-vue'; import type { MenuProps } from 'ant-design-vue'; import { DashboardOutlined, InfoCircleOutlined, MenuFoldOutlined, MenuUnfoldOutlined, } from '@ant-design/icons-vue'; import styles from './BasicLayout.module.less'; const { Header, Sider, Content, Footer } = Layout; /** * 基础布局:左侧导航 + 顶部栏 + 内容区 + 页脚 */ export default defineComponent({ name: 'BasicLayout', setup() { const route = useRoute(); const router = useRouter(); const collapsed = ref(false); const selectedKeys = computed(() => [route.path]); const menuItems: MenuProps['items'] = [ { key: '/dashboard', icon: () => , label: '工作台' }, { key: '/about', icon: () => , label: '关于' }, ]; const handleMenuClick: MenuProps['onClick'] = ({ key }) => { router.push(key as string); }; const toggleCollapsed = () => { collapsed.value = !collapsed.value; }; return () => (
{collapsed.value ? 'CPMS' : 'CPMS 运营平台'}
{collapsed.value ? : }
); }, });