基本UI框架
<template>
<a-layout style="height: 100%;overflow: hidden;">
<a-layout-header style="background-color: #021629;" a-layout>
</a-layout-header>
<a-layout>
<a-layout-sider>
</a-layout-sider>
<a-layout-content>
</a-layout-content>
</a-layout>
</a-layout>
</template>
<script setup>
</script>
<style>
</style>
大致效果
创建一个vue.js项目
基本架构
<template>
<a-menu></a-menu>
</template>
<script setup>
</script>
<style></style>
添加a-menu菜单组件中的各个参数
<template>
<!-- 菜单组件 -->
<a-menu
style="height: 100%"
v-model:openKeys="openKeys"
v-model:selectedKeys="selectedKeys"
mode="inline"
:items="menuItem"
@select="selectItem"
>
</a-menu>
</template>
<script setup>
</script>
<style></style>
完善各个参数
<template>
<a-menu
style="height: 100%"
v-model:openKeys="openKeys"
v-model:selectedKeys="selectedKeys"
mode="inline"
:items="menuItem"
@select="selectItem"
>
</a-menu>
</template>
<script setup>
import { ref } from "vue";
import { useRouter, useRoute } from "vue-router";
const openKeys = ref(["1"]); // 菜单展开的keys
const selectedKeys = ref(["key1"]); // 当前选中的keys
const menuItem = [
{
key: "/home",
label: "首页",
title: "首页",
},
{
key: "",
label: "业务管理",
title: "业务管理",
children: [
],
},
{
key: "/content",
label: "基础配置",
title: "基础配置",
children: [
{ key: "/content/farm", label: "牧场管理"},
{ key: "/content/pens", label: "圈舍管理"},
{ key: "/content/data", label: "数据字典"},
],
},
{
key: "/user",
label: "系统管理",
title: "系统管理",
children: [
{ key: "/user/system", label: "人员管理" },
],
},
//自行添加其它菜单项
];
const router = useRouter(); // Vue Router 实例
const route = useRoute(); // 当前路由实例
const selectItem = ({ item, key, selectedKeys }) => {
router.push({ path: key }); // 点击菜单项时导航到相应路径
};
</script>
<style></style>
UI框架添加配置
<template>
<a-layout style="height: 100%;overflow: hidden;">
<a-layout-header style="background-color: #021629;" a-layout>
</a-layout-header>
<a-layout>
<a-layout-sider>
<MyMenu/><!--自定义别名-->
</a-layout-sider>
<a-layout-content>
<router-view></router-view><!--引入router-view-->
</a-layout-content>
</a-layout>
</a-layout>
</template>
<script setup>
import MyMenu from '../menu/menu.vue' //根据自己的项目实施进行修改
</script>
<style>
</style>
此时效果图:
路由配置
import {
createRouter,
createWebHistory,
createWebHashHistory,
} from "vue-router";
//懒加载的方式
//具体的导入路径根据实际的项目进行修改
const UserLogin = () => import("../page/login/userlogin.vue");
const routerInstance = createRouter({
history: createWebHistory(),
routes: [
{path:"/user",component:UserContent},
{
path: "/userlogin",
component: UserLogin,
meta: {
title: "用户登录",
},
},
{
path: "/",
component: HomePage,
children: [
{
path: "home",
component:Home,
name:"userlogin"
},
{
path: "user",
children: [
{
path: "system",
meta: { title: "人员管理" },
component: UserContent,
},
],
},
{
path: "content",
children: [
{
path: "farm",
meta: { title: "牧场管理" },
name:"ranch",
component: Farm,
},
{
path: "pens",
meta: { title: "圈舍管理" },
component: Pens,
},
{
path: "data",
meta: { title: "数据字典" },
component: DataDictionary,
},
],
},
],
},
],
});
export default routerInstance;
注意:具体的需自己配置,菜单的内容根据实际情况实现即可!
大致效果
以下是启动我的前后端项目的情况(简版):