/* eslint-disable no-console,func-names,react/no-multi-comp */ import Table from '../index'; import '../assets/index.less'; import BaseMixin from '../../_util/BaseMixin'; const ResizeableTitle = (h, props, children) => { console.log(props); const { width, ...restProps } = props; if (!width) { return {children}; } return ( {children} ); }; export default { mixins: [BaseMixin], data() { return { columns: [ { title: 'title1', dataIndex: 'a', key: 'a', width: 100 }, { id: '123', title: 'title2', dataIndex: 'b', key: 'b', width: 100 }, { title: 'title3', dataIndex: 'c', key: 'c', width: 200 }, { title: 'Operations', dataIndex: '', key: 'd', customRender: () => { return Operations; }, }, ], data: [ { a: '123', key: '1' }, { a: 'cdd', b: 'edd', key: '2' }, { a: '1333', c: 'eee', d: 2, key: '3' }, ], components: { header: { cell: ResizeableTitle, }, }, }; }, methods: { handleResize(index) { return (e, { size }) => { this.setState(({ columns }) => { const nextColumns = [...columns]; nextColumns[index] = { ...nextColumns[index], width: size.width, }; return { columns: nextColumns }; }); }; }, }, render() { const columns = this.columns.map((col, index) => ({ ...col, customHeaderCell: column => ({ props: { width: column.width, }, on: { resize: this.handleResize(index), }, }), })); return (

Integrate with react-resizable

); }, };