Arco Pro Vue项目实现左侧一级菜单栏

文章最终实现效果:
背景:

最近在用Arco Design Pro做前端项目,这套框架主要用vue3 + ES2015+ + TypeScript + Arco Design echarts 等技术实现。因为之前接触vue3+ts比较少,所以做起来磕磕绊绊。下面文章为“实现左侧菜单栏为一级菜单”的办法。要是大家有更好的解决办法,欢迎补充指正。谢谢。

  1. 原项目没有一级菜单的配置选项,看着像是一级菜单的两个列,实际为跳转外链菜单。不能满足目前需求

  1. 首先在页面文件添加后,前往路由配置文件:src\router\routes\modules\xxx.ts。(页面对应的路由文件,我这个是system.ts)

配置格式和官方示例一样,主要增加两个设置:

关键设置hideInMenu属性 (展示一级菜单,隐藏二级菜单)

activeMenu属性 (设置高亮为一级菜单,解决后面页面重定向时不高亮选中菜单的问题)

这样设置之后,就能在页面看到目前展示效果为一级菜单了。但是我们实际去点击菜单页面跳转后,发现页面是空白的,或者不是我们需要的。这是因为页面目前跳转的是父项路由,而实际跳转是需要到子项的。这时我们就需要用上重定向功能。

  1. 前往菜单配置文件:src\components\menu\index.vue

在goto方法中,添加对应的路由判断。如果item.name(即将跳转的路由名)是我们需要设置一级菜单的父路由,那么就让他重定向到对应的子路由中。如果不是则不做变化。

这样设置之后,一级菜单功能就完成了,页面跳转、高亮也都没有问题。其它样式等具体化设置就看你们自己的需求啦!

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
您好!感谢您的提问。如果您想在 Arco Design实现表格展开效果,可以参考以下步骤: 1. 在表格中添加一个“展开”按钮或者图标,点击该按钮可以展开或收起子表格。 2. 子表格可以使用 Arco Design 中的 `<a-table>` 组件来实现,可以在父组件中定义一个子组件,同时传递子表格需要的数据。 3. 当用户点击“展开”按钮时,可以通过父组件向子组件传递一个布尔值,用于控制子表格的显示和隐藏。 4. 在子组件中,可以使用 Arco Design 的 `<a-table>` 组件来展示子表格,并使用 v-if 或 v-show 指令来控制子表格的显示和隐藏。 下面是一个简单的示例代码,供您参考: ```html <template> <div> <a-table :columns="columns" :data-source="dataSource"> <template #expanded-row="{record}"> <a-table :columns="subColumns" :data-source="record.subData"></a-table> </template> </a-table> </div> </template> <script> export default { data() { return { dataSource: [ { name: '小明', age: 18, subData: [{ subject: '语文', score: 90 }, { subject: '数学', score: 80 }] }, { name: '小红', age: 19, subData: [{ subject: '语文', score: 85 }, { subject: '数学', score: 90 }] }, { name: '小刚', age: 20, subData: [{ subject: '语文', score: 95 }, { subject: '数学', score: 85 }] } ], columns: [ { title: '姓名', dataIndex: 'name' }, { title: '年龄', dataIndex: 'age' }, { title: '操作', customRender: ({ record }) => { return <a onClick={() => this.toggleSubTable(record)}>展开</a> } } ], subColumns: [ { title: '学科', dataIndex: 'subject' }, { title: '成绩', dataIndex: 'score' } ], expandedRowKeys: [] } }, methods: { toggleSubTable(record) { const { key } = record const expandedRowKeys = this.expandedRowKeys.includes(key) ? this.expandedRowKeys.filter(k => k !== key) : [...this.expandedRowKeys, key] this.expandedRowKeys = expandedRowKeys } } } </script> ``` 在上面的代码中,我们使用了 Arco Design 的 `<a-table>` 组件来实现表格,并在其中嵌套了一个 `<template #expanded-row>` 标签,用于展示子表格。当用户点击“展开”按钮时,我们会根据对应的行数据的 `key` 属性来判断该行是否已经展开,然后通过修改 `expandedRowKeys` 数组来控制子表格的显示和隐藏。在子表格的 `<a-table>` 组件中,我们使用了 `v-if` 指令来控制子表格的显示和隐藏。 希望这个示例能够对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值