index.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import React from 'react';
  2. import './index.less';
  3. function Table(props) {
  4. const { columns = [], data = [] } = props;
  5. return (
  6. <div className="table">
  7. <div className="th">
  8. {columns.map(column => {
  9. return (
  10. <div style={{ width: column.width, textAlign: column.align }} className={`td ${column.className}`}>
  11. {column.title}
  12. </div>
  13. );
  14. })}
  15. </div>
  16. {data.length === 0 && <div className="empty">暂无数据</div>}
  17. {data.map(row => {
  18. return (
  19. <div className="tr">
  20. {columns.map(column => {
  21. if (column.render) {
  22. return (
  23. <div style={{ width: column.width, textAlign: column.align }} className={`td ${column.className}`}>
  24. {column.render(row[column.key], row)}
  25. </div>
  26. );
  27. }
  28. return (
  29. <div style={{ width: column.width, textAlign: column.align }} className={`td ${column.className}`}>
  30. {row[column.key]}
  31. </div>
  32. );
  33. })}
  34. </div>
  35. );
  36. })}
  37. </div>
  38. );
  39. }
  40. Table.propTypes = {};
  41. export default Table;