index.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import React from 'react';
  2. import './index.less';
  3. import Module from '../Module';
  4. import Table from '../Table';
  5. import Radio from '../RadioButton';
  6. import Select from '../Select';
  7. function getFilter(filter) {
  8. switch (filter.type) {
  9. case 'radio':
  10. return <Radio {...filter} />;
  11. case 'select':
  12. return <Select {...filter} />;
  13. default:
  14. return '';
  15. }
  16. }
  17. function ListTable(props) {
  18. const { style, position, title, rightAction, filters = [], columns = [], data = [] } = props;
  19. return (
  20. <Module style={style} className="list-table">
  21. {title && (
  22. <div className="header">
  23. <span className="title">{position}</span>
  24. <span className="sub-title">{title}</span>
  25. </div>
  26. )}
  27. {filters.length > 0 && (
  28. <div className="filter">
  29. <span className="text">筛选</span>
  30. <div className="filter-list">
  31. {filters.map(filter => {
  32. return <div className="filter-item">{getFilter(filter)}</div>;
  33. })}
  34. </div>
  35. <div className="right-action">{rightAction}</div>
  36. </div>
  37. )}
  38. {data && data.length > 0 && <Table columns={columns} data={data} />}
  39. </Module>
  40. );
  41. }
  42. ListTable.propTypes = {};
  43. export default ListTable;