vue antd table嵌套表格 左侧展开图标动态控制显示隐藏

本文主要是介绍vue antd table嵌套表格 左侧展开图标动态控制显示隐藏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

antd a-table想要实现如以下效果,有子级就显示展开图标,没有就不显示图标:

话不多说,直接上代码:

<template><a-table :columns="columns" :data-source="dataSource"><template #bodyCell="{ column }"><template v-if="column.key === 'operation'"><a>Publish</a></template></template><template #expandIcon="{ expanded, onExpand, record }"><button @click="(e) => onExpand(record, e)" v-if="record && record.more.length":class="`ant-table-row-expand-icon ${expanded ? 'ant-table-row-expand-icon-expanded' : 'ant-table-row-expand-icon-collapsed'}`"></button></template><template #expandedRowRender="{ record }"><a-table :columns="innerColumns" :data-source="record.more" :pagination="false"><template #bodyCell="{ column }"><template v-if="column.key === 'state'"><span><a-badge status="success" />Finished</span></template></template></a-table></template></a-table>
</template>
<script setup>const columns = [{ title: 'Name', dataIndex: 'name', key: 'name' },{ title: 'Version', dataIndex: 'version', key: 'version' },{ title: 'Upgraded', dataIndex: 'upgradeNum', key: 'upgradeNum' },{ title: 'Date', dataIndex: 'createdAt', key: 'createdAt' },{ title: 'Action', key: 'operation' },
];const dataSource = [{key: 0,name: "Screem 1",version: "10.3.4.5654",upgradeNum: 500,createdAt: "2014-12-24 23:12:00",more: [{key: 6,date: "2014-12-24 23:12:00",name: "This is production name 1",upgradeNum: "Upgraded: 56"}, {key: 7,date: "2014-12-24 23:12:00",name: "This is production name 2",upgradeNum: "Upgraded: 56"}, {key: 8,date: "2014-12-24 23:12:00",name: "This is production name 3",upgradeNum: "Upgraded: 56"}]
}, {key: 1,name: "Screem 2",version: "10.3.4.5654",upgradeNum: 700,createdAt: "2014-12-24 23:12:00",more: []
}, {key: 2,name: "Screem 3",version: "10.3.4.5654",upgradeNum: 300,createdAt: "2014-12-24 23:12:00",more: [{key: 9,date: "2014-12-24 23:12:00",name: "This is production name 1",upgradeNum: "Upgraded: 56"}]
}];const innerColumns = [{ title: 'Date', dataIndex: 'date', key: 'date' },{ title: 'Name', dataIndex: 'name', key: 'name' },{ title: 'Upgrade Status', dataIndex: 'upgradeNum', key: 'upgradeNum' },
];</script>

关键在于#expandIcon设置自定义图标,效果跟默认的效果一毛一样。

要注意:

我使用的是antd4,所以图标的类名是

ant-table-row-expand-icon-expanded、ant-table-row-expand-icon-collapsed。

大家如果用的版本不一样,可以控制台看下它默认渲染的图标类名是什么,直接复制过来替换掉就可以了,完美!

    <template #expandIcon="{ expanded, onExpand, record }"><button @click="(e) => onExpand(record, e)" v-if="record && record.more.length":class="`ant-table-row-expand-icon ${expanded ? 'ant-table-row-expand-icon-expanded' : 'ant-table-row-expand-icon-collapsed'}`"></button></template>

这篇关于vue antd table嵌套表格 左侧展开图标动态控制显示隐藏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/810056

相关文章

关于C++中的虚拟继承的一些总结(虚拟继承,覆盖,派生,隐藏)

1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class A class B1:public virtual A; class B2:pu

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

公共筛选组件(二次封装antd)支持代码提示

如果项目是基于antd组件库为基础搭建,可使用此公共筛选组件 使用到的库 npm i antdnpm i lodash-esnpm i @types/lodash-es -D /components/CommonSearch index.tsx import React from 'react';import { Button, Card, Form } from 'antd'

vue, 左右布局宽,可拖动改变

1:建立一个draggableMixin.js  混入的方式使用 2:代码如下draggableMixin.js  export default {data() {return {leftWidth: 330,isDragging: false,startX: 0,startWidth: 0,};},methods: {startDragging(e) {this.isDragging = tr

据阿谱尔APO Research调研显示,2023年全球髓内钉市场销售额约为4.7亿美元

根据阿谱尔 (APO Research)的统计及预测,2023年全球髓内钉市场销售额约为4.7亿美元,预计在2024-2030年预测期内将以超过3.82%的CAGR(年复合增长率)增长。 髓内钉市场是指涉及髓内钉制造、分销和销售的行业。髓内钉是一种用于整形外科手术的医疗器械,用于稳定长骨骨折,特别是股骨、胫骨和肱骨。髓内钉通常由不銹钢或钛等材料制成,并插入骨的髓管中,以在愈合过程中提供结构支

vue项目集成CanvasEditor实现Word在线编辑器

CanvasEditor实现Word在线编辑器 官网文档:https://hufe.club/canvas-editor-docs/guide/schema.html 源码地址:https://github.com/Hufe921/canvas-editor 前提声明: 由于CanvasEditor目前不支持vue、react 等框架开箱即用版,所以需要我们去Git下载源码,拿到其中两个主

React+TS前台项目实战(十七)-- 全局常用组件Dropdown封装

文章目录 前言Dropdown组件1. 功能分析2. 代码+详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲全局Dropdown组件封装,可根据UI设计师要求自定义修改。 Dropdown组件 1. 功能分析 (1)通过position属性,可以控制下拉选项的位置 (2)通过传入width属性, 可以自定义下拉选项的宽度 (3)通过传入classN

js+css二级导航

效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Con

基于Springboot + vue 的抗疫物质管理系统的设计与实现

目录 📚 前言 📑摘要 📑系统流程 📚 系统架构设计 📚 数据库设计 📚 系统功能的具体实现    💬 系统登录注册 系统登录 登录界面   用户添加  💬 抗疫列表展示模块     区域信息管理 添加物资详情 抗疫物资列表展示 抗疫物资申请 抗疫物资审核 ✒️ 源码实现 💖 源码获取 😁 联系方式 📚 前言 📑博客主页:

vue+el国际化-东抄西鉴组合拳

vue-i18n 国际化参考 https://blog.csdn.net/zuorishu/article/details/81708585 说得比较详细。 另外做点补充,比如这里cn下的可以以项目模块加公共模块来细分。 import zhLocale from 'element-ui/lib/locale/lang/zh-CN' //引入element语言包const cn = {mess