[{"createTime":1735734952000,"id":1,"img":"hwy_ms_500_252.jpeg","link":"https://activity.huaweicloud.com/cps.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905","name":"华为云秒杀","status":9,"txt":"华为云38元秒杀","type":1,"updateTime":1735747411000,"userId":3},{"createTime":1736173885000,"id":2,"img":"txy_480_300.png","link":"https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=edb15096bfff75effaaa8c8bb66138bd&from=console","name":"腾讯云秒杀","status":9,"txt":"腾讯云限量秒杀","type":1,"updateTime":1736173885000,"userId":3},{"createTime":1736177492000,"id":3,"img":"aly_251_140.png","link":"https://www.aliyun.com/minisite/goods?userCode=pwp8kmv3","memo":"","name":"阿里云","status":9,"txt":"阿里云2折起","type":1,"updateTime":1736177492000,"userId":3},{"createTime":1735660800000,"id":4,"img":"vultr_560_300.png","link":"https://www.vultr.com/?ref=9603742-8H","name":"Vultr","status":9,"txt":"Vultr送$100","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":5,"img":"jdy_663_320.jpg","link":"https://3.cn/2ay1-e5t","name":"京东云","status":9,"txt":"京东云特惠专区","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":6,"img":"new_ads.png","link":"https://www.iodraw.com/ads","name":"发布广告","status":9,"txt":"发布广告","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":7,"img":"yun_910_50.png","link":"https://activity.huaweicloud.com/discount_area_v5/index.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=aXhpYW95YW5nOA===&utm_medium=cps&utm_campaign=201905","name":"底部","status":9,"txt":"高性能云服务器2折起","type":2,"updateTime":1735660800000,"userId":3}]
@效果图
<>导航菜单
<!--导航菜单--> <el-menu router :default-active="$route.path" v-show="!collapsed"
unique-opened> <!-- 左侧导航栏抽取循环部分 将路由列表传给子组件--> <asideBarItem
v-for="(router,index) in $router.options.routes" :router="router"
:index="index" :key="index" v-if="!router.hidden" > </asideBarItem> </el-menu>
<>asideBarItem组件封装
<template> <div class="asideBarItem-container"> <el-submenu :index="index+''"
v-if="!router.hidden&&router.children&&router.children.length>0"> <span
slot="title"><i :class="router.iconCls"></i>{{router.name}}</span>
<asideBarItem v-for="(child, childKey) in router.children" :key="child.path"
:router="child" :index="index+'-'+childKey"></asideBarItem> </el-submenu>
<el-menu-item
v-if="!router.hidden&&(!router.children||router.children.length==0)"
:key="router.path" :index="router.path"> <span slot="title"><i
:class="router.iconCls"></i>{{router.name}}</span> </el-menu-item> </div>
</template> <script> export default { name: 'asideBarItem', props: [ "router",
"index" ], components: {}, data() { return {} }, computed: {}, watch: {},
methods: {}, created() {}, mounted() {} } </script> <style lang="scss" scoped>
.asideBarItem-container { } </style>
<>路由
routes: [ { path: '/', component: List, name: '列表', //iconCls:
'el-icon-list',//图标样式class children: [ { path: '/room', component:Room, name:
'客房' ,children:[{ path: '/test', component:Test, name: '登录' }] }, { path:
'/spring', component: Spring, name: '温泉' }, { path: '/foodie', component:
Foodie, name: '餐饮' } ] }, { path: '/login', component: Login, name: 'Login',
hidden: true } ]