antd自定义表头,自定义表单元格
主要是在定义table的插槽的时候,添加bodyCell和headerCell
render() { const columns = [ { title: '序号', key: 'sort', dataIndex: 'sort', render: (_, record, idx) => idx + 1 }, { customTitle: () => <antRow justify="end"> <img src={expand} style={{ width: '20px', cursor: 'pointer' }} onClick={() => this.isExpand = !this.isExpand} /> </antRow>, key: 'isExpand', dataIndex: 'isExpand', children: [ { customTitle: () => <antRadio>测试1</antRadio>, key: 'staticPrice', dataIndex: 'staticPrice' }, { customTitle: () => <antRadio>测试2</antRadio>, key: 'enquiryPrice', dataIndex: 'enquiryPrice' }, ] }, { title: '备注', key: 'partRemark', dataIndex: 'partRemark', render: (val)=> <antInput value={val} maxLength={50}/> }, ]; const expandColumns = [ { title: '序号', key: 'sort', dataIndex: 'sort', render: (_, record, idx) => idx + 1 }, { customTitle: () => <antRow justify="end"> <img src={expand} style={{ width: '20px', cursor: 'pointer' }} onClick={() => this.isExpand = !this.isExpand} /> </antRow>, key: 'isExpand', dataIndex: 'isExpand', children: [ { customTitle: () => <antRadio>测试1</antRadio>, key: 'staticPrice', dataIndex: 'staticPrice' }, { customTitle: () => <antRadio>测试2</antRadio>, key: 'enquiryPrice', dataIndex: 'enquiryPrice' }, { customTitle: () => <antRadio>测试3</antRadio>, key: 'sort', dataIndex: 'sort' }, ] }, { title: '备注', key: 'partRemark', dataIndex: 'partRemark', render: (val)=> <antInput value={val} maxLength={50}/> }, ]; return (<> <antRow> <antTable columns={this.isExpand ? expandColumns : columns} dataSource={this.partList} bordered={true} size="small" style={{ width: '100%' }} pagination={false} rowSelection={{ type: 'checkbox', selectedRowKeys: this.selectedRowKeys, onChange: (keys) => { this.selectedRowKeys = keys; } }} v-slots={{ bodyCell: (column) => { // bodyCell 固定写法 if (column.column.render) { const cellRender = column.column.render.bind(this); return cellRender(column.value, column.record, column.index); } }, headerCell: (column) => { if (column.column.customTitle) { const cellRender = column.column.customTitle.bind(this); return cellRender(); } } }} /> </antRow> </>) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix