Ant Design Vue子表格展开只展开一行,其他行折叠

26 篇文章 7 订阅

背景

因为我的子列表数据都是用的一个变量,所以需要折叠其他的,要不然多个表格展开后,数据渲染都是一样的

下列列表是只可以展开一列的:

第一步:

 直接抄我箭头指的那三行即可

:row-key="(record) => record.id"       这个主要用于获取id

@expand="zi"    这个为了得到展开行的数据

:expandedRowKeys="expandedRowKeys"   这个是负责控制行的展开与关闭,(这个变量是以数组的形式展示,谁的id在数组里就显示谁)

第二步

const expandedRowKeys = ref([]);

const zi = (expanded, record) => {
      // 只展开一行
      if (expandedRowKeys.value.length > 0) { //进这个判断说明当前已经有展开的了
       //返回某个指定的字符串值在字符串中首次出现的位置,下标为0
        let index = expandedRowKeys.value.indexOf(record.id);
        if (index > -1) { //如果出现则截取这个id,1d到1相当于0,针对重复点击一个
          expandedRowKeys.value.splice(index, 1);
        } else {
        //如果没出现则截取所有id,添加点击id,0到1,针对已经有一个展开,点另一个会进入判断
          expandedRowKeys.value.splice(0, expandedRowKeys.value.length);
          expandedRowKeys.value.push(record.id);
        }
      } else {
     //数组长度小于0,说明都没展开,第一次点击,id添加到数组,数组有谁的id谁就展开
        expandedRowKeys.value.push(record.id);  
      }
}

 这样就完成了,你学费了嘛

最后

认识一下吧?你的关注是博主创作的最大动力,感谢!

  •  想跟博主交朋友的可以查找,公_号❤:前端老实人,跟博主一起探讨学习❤

  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
Ant Design Vue 的 Menu 组件中,如果你想要在刷新页面后保持菜单的折叠展开状态,可以通过以下步骤进操作: 1. 首先,你需要在组件中引入 `localStorage` 对象。 ```javascript import { localStorage } from 'window'; ``` 2. 然后,在你的菜单组件中,使用 `defaultOpenKeys` 和 `defaultSelectedKeys` 属性来设置默认的折叠和选中状态。 ```vue <template> <a-menu :default-open-keys="defaultOpenKeys" :default-selected-keys="defaultSelectedKeys"> <!-- 菜单项内容 --> </a-menu> </template> <script> export default { data() { return { defaultOpenKeys: [], defaultSelectedKeys: [], }; }, mounted() { this.restoreMenuState(); // 在组件挂载后恢复菜单状态 }, methods: { saveMenuState() { localStorage.setItem('menuState', JSON.stringify({ openKeys: this.$refs.menu.openKeys, selectedKeys: this.$refs.menu.selectedKeys, })); }, restoreMenuState() { const menuState = localStorage.getItem('menuState'); if (menuState) { const { openKeys, selectedKeys } = JSON.parse(menuState); this.defaultOpenKeys = openKeys; this.defaultSelectedKeys = selectedKeys; } }, }, }; </script> ``` 3. 在菜单组件中,使用 `@openChange` 事件监听菜单折叠状态的变化,并在变化时保存菜单状态。 ```vue <template> <a-menu :default-open-keys="defaultOpenKeys" :default-selected-keys="defaultSelectedKeys" @openChange="saveMenuState"> <!-- 菜单项内容 --> </a-menu> </template> <script> export default { // ... methods: { saveMenuState(openKeys) { this.defaultOpenKeys = openKeys; this.saveMenuState(); // 保存菜单状态 }, // ... }, }; </script> ``` 通过以上步骤,你可以在刷新页面后保持 Ant Design Vue 的 Menu 组件的折叠展开状态。请注意,这里使用了 `localStorage` 对象来存储菜单状态,所以请确保你的浏览器支持该特性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端老实人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值