欢迎光临Jacob·雅各布的博客 !|

Jacob·雅各布

园龄:13年5个月粉丝:5关注:16

Antd VUE中table子表同时只展开一个子信息的说明

前言

在网上搜索了很久,很多方法都不太好用,不过经过整理发现,有一个方式是最简单的,比网路上那些copy粘贴的千篇一律的错来说,其实真正的使用方式很简单

image

想必大家要实现的效果都是上图这样的

<template>
<a-table :columns="columns" :data-source="data" class="components-table-demo-nested">
<a slot="operation" slot-scope="text">Publish</a>
<a-table
slot="expandedRowRender"
slot-scope="text"
:columns="innerColumns"
:data-source="innerData"
:pagination="false"
>
<span slot="status" slot-scope="text"> <a-badge status="success" />Finished </span>
<span slot="operation" slot-scope="text" class="table-operation">
<a>Pause</a>
<a>Stop</a>
<a-dropdown>
<a-menu slot="overlay">
<a-menu-item>
Action 1
</a-menu-item>
<a-menu-item>
Action 2
</a-menu-item>
</a-menu>
<a> More <a-icon type="down" /> </a>
</a-dropdown>
</span>
</a-table>
</a-table>
</template>
<script>
const columns = [
{ title: 'Name', dataIndex: 'name', key: 'name' },
{ title: 'Platform', dataIndex: 'platform', key: 'platform' },
{ title: 'Version', dataIndex: 'version', key: 'version' },
{ title: 'Upgraded', dataIndex: 'upgradeNum', key: 'upgradeNum' },
{ title: 'Creator', dataIndex: 'creator', key: 'creator' },
{ title: 'Date', dataIndex: 'createdAt', key: 'createdAt' },
{ title: 'Action', key: 'operation', scopedSlots: { customRender: 'operation' } },
];
const data = [];
for (let i = 0; i < 3; ++i) {
data.push({
key: i,
name: 'Screem',
platform: 'iOS',
version: '10.3.4.5654',
upgradeNum: 500,
creator: 'Jack',
createdAt: '2014-12-24 23:12:00',
});
}
const innerColumns = [
{ title: 'Date', dataIndex: 'date', key: 'date' },
{ title: 'Name', dataIndex: 'name', key: 'name' },
{ title: 'Status', key: 'state', scopedSlots: { customRender: 'status' } },
{ title: 'Upgrade Status', dataIndex: 'upgradeNum', key: 'upgradeNum' },
{
title: 'Action',
dataIndex: 'operation',
key: 'operation',
scopedSlots: { customRender: 'operation' },
},
];
const innerData = [];
for (let i = 0; i < 3; ++i) {
innerData.push({
key: i,
date: '2014-12-24 23:12:00',
name: 'This is production name',
upgradeNum: 'Upgraded: 56',
});
}
export default {
data() {
return {
data,
columns,
innerColumns,
innerData,
};
},
};
</script>

@expand 事件中可以监听到当前子项展开事件
回调参数 Function(expanded, record)
当expanded为true时表示展开了,并且能通过record获取ID等信息

:expandedRowKeys="expandedRowKeys"

可以在return data中定义 expandedRowKeys=[]

在每次展开时将record.id放入其中,如果想关闭其他展开的子项,那么只需要在放record.id前初始化一下expandedRowKeys的值即可

大致方式如下
this.expandedRowKeys=[] this.expandedRowKeys.push(record.id)

真的就是这么简单

posted @   Jacob·雅各布  阅读(777)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 青鸟-ブルーバード いきものがかり
青鸟-ブルーバード - いきものがかり
00:00 / 00:00
An audio error has occurred.

unravel - TK from 凛冽时雨 (TK from 凛として時雨)

词:TK

曲:TK

教えて 教えてよ その仕組みを

僕の中に誰がいるの?

壊れた 壊れたよ この世界で

君が笑う 何も見えずに

壊れた僕なんてさ 息を止めて

ほどけない もう ほどけないよ

真実さえ freeze

壊せる 壊せない 狂える 狂えない

あなたを見つけて 揺れた

歪んだ世界にだんだん僕は

透き通って見えなくなって

見つけないで 僕のことを

見つめないで

誰かが描いた世界の中で

あなたを傷つけたくはないよ

覚えていて 僕のことを

鮮やかなまま

無限に広がる孤独が絡まる

無邪気に笑った記憶が刺さって

動けない 動けない 動けない

動けない 動けない 動けないよ

unravelling the world

変わってしまった

変えられなかった

2つが絡まる 2人が滅びる

壊せる 壊せない 狂える 狂えない

あなたを汚せないよ 揺れた

歪んだ世界にだんだん僕は

透き通って見えなくなって

見つけないで 僕のことを

見つめないで

誰かが仕組んだ孤独な罠に

未来がほどけてしまう前に

思い出して 僕のことを

鮮やかなまま

忘れないで 忘れないで

忘れないで 忘れないで

変わってしまったことにparalyze

変えられないことだらけのparadise

覚えていて 僕のことを

教えて 教えて

僕の中に誰がいるの?