You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.tsx 2.2 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import KFIcon from '@/components/KFIcon';
  2. import { ExperimentStatusValues, experimentStatusInfo } from '@/pages/Experiment/status';
  3. import { ExperimentInstance } from '@/types';
  4. import { elapsedTime, formatDate } from '@/utils/date';
  5. import { useNavigate } from '@umijs/max';
  6. import { Button } from 'antd';
  7. import styles from './index.less';
  8. type ExperimentTableProps = {
  9. tableData: ExperimentInstance[];
  10. style?: React.CSSProperties;
  11. };
  12. function ExperimentTable({ tableData = [], style }: ExperimentTableProps) {
  13. const navgite = useNavigate();
  14. const gotoExperiment = (record: ExperimentInstance) => {
  15. navgite(`/pipeline/experiment/${record.workflow_id}/${record.id}`);
  16. };
  17. return (
  18. <div className={styles['experiment-table']} style={style}>
  19. <div className={styles['experiment-table__header']}>
  20. <div className={styles['experiment-table__status']}>状态</div>
  21. <div className={styles['experiment-table__duration']}>运行时长</div>
  22. <div className={styles['experiment-table__date']}>开始时间</div>
  23. <div className={styles['experiment-table__operation']}>操作</div>
  24. </div>
  25. {tableData?.map((item) => (
  26. <div className={styles['experiment-table__content']} key={item.id}>
  27. <div className={styles['experiment-table__status']} style={{ paddingLeft: '6.5px' }}>
  28. <img
  29. src={experimentStatusInfo[item.status as ExperimentStatusValues]?.icon}
  30. width={17}
  31. height={17}
  32. />
  33. </div>
  34. <div className={styles['experiment-table__duration']}>
  35. {elapsedTime(item.create_time, item.finish_time)}
  36. </div>
  37. <div className={styles['experiment-table__date']}>{formatDate(item.create_time)}</div>
  38. <div className={styles['experiment-table__operation']}>
  39. <Button
  40. size="small"
  41. type="link"
  42. icon={<KFIcon type="icon-xiangqing2" font={14} />}
  43. onClick={() => gotoExperiment(item)}
  44. >
  45. 详情
  46. </Button>
  47. </div>
  48. </div>
  49. ))}
  50. </div>
  51. );
  52. }
  53. export default ExperimentTable;