/* eslint-disable no-console,func-names,react/no-multi-comp */ import Table from '../index'; import '../assets/index.less'; var data = [{ a: '13812340987', b: '0571-12345678', c: '张三', d: '文一西路', e: 'Male', key: '1' }, { a: '13812340986', b: '0571-98787658', c: '张夫人', d: '文一西路', e: 'Female', key: '2' }, { a: '13812988888', b: '0571-099877', c: '李四', d: '文二西路', e: 'Male', key: '3' }, { a: '1381200008888', b: '0571-099877', c: '王五', d: '文二西路', e: 'Male', key: '4' }, { a: '0571-88888110', c: '李警官', d: '武林门', e: 'Male', key: '5' }, { a: '资料统计完毕于xxxx年xxx月xxx日', key: '6' }]; export default { data: function data() { var h = this.$createElement; this.columns = [{ title: '手机号', dataIndex: 'a', colSpan: 2, width: 100, key: 'a', customRender: function customRender(o, row, index) { var obj = { children: o, attrs: {} }; // 设置第一行为链接 if (index === 0) { obj.children = h( 'a', { attrs: { href: '#' } }, [o] ); } // 第5行合并两列 if (index === 4) { obj.attrs.colSpan = 2; } if (index === 5) { obj.attrs.colSpan = 6; } return obj; } }, { title: '电话', dataIndex: 'b', colSpan: 0, width: 100, key: 'b', customRender: function customRender(o, row, index) { var obj = { children: o, attrs: {} }; // 列合并掉的表格设置colSpan=0,不会去渲染 if (index === 4 || index === 5) { obj.attrs.colSpan = 0; } return obj; } }, { title: 'Name', dataIndex: 'c', width: 100, key: 'c', customRender: function customRender(o, row, index) { var obj = { children: o, attrs: {} }; if (index === 5) { obj.attrs.colSpan = 0; } return obj; } }, { title: 'Address', dataIndex: 'd', width: 200, key: 'd', customRender: function customRender(o, row, index) { var obj = { children: o, attrs: {} }; if (index === 0) { obj.attrs.rowSpan = 2; } if (index === 1 || index === 5) { obj.attrs.rowSpan = 0; } return obj; } }, { title: 'Gender', dataIndex: 'e', width: 200, key: 'e', customRender: function customRender(o, row, index) { var obj = { children: o, attrs: {} }; if (index === 5) { obj.attrs.colSpan = 0; } return obj; } }, { title: 'Operations', dataIndex: '', key: 'f', customRender: function customRender(o, row, index) { if (index === 5) { return { attrs: { colSpan: 0 } }; } return h( 'a', { attrs: { href: '#' } }, ['Operations'] ); } }]; return {}; }, render: function render() { var h = arguments[0]; return h('div', [h('h2', ['colSpan & rowSpan']), h(Table, { attrs: { columns: this.columns, data: data }, 'class': 'table' })]); } };