HistoryDrawer.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. import React, { useEffect, useState, useRef, useMemo } from 'react';
  2. import { UserOutlined } from '@ant-design/icons';
  3. import { Form } from '@ant-design/compatible';
  4. import '@ant-design/compatible/assets/index.css';
  5. import { Drawer, Descriptions, Card, Table, Timeline, Button, Space } from 'antd';
  6. import moment from 'moment';
  7. import { connect } from 'dva';
  8. import TimelineItem from 'antd/lib/timeline/TimelineItem';
  9. // 评论
  10. function HistoryDrawer(props) {
  11. const {
  12. flowDetail,
  13. visible,
  14. onClose,
  15. version,
  16. loading,
  17. dispatch,
  18. versionTree,
  19. onChangeVersion,
  20. } = props;
  21. const columns = useMemo(() => {
  22. return [
  23. {
  24. title: '名称',
  25. render: item => (
  26. <div style={{ color: '#9b9b9b' }}>
  27. {item.version_no ? `${item.version_name}.${item.version_no}` : item.version_name}
  28. </div>
  29. ),
  30. },
  31. {
  32. title: '业务节点',
  33. width: '20%',
  34. render: item => {
  35. let node = flowDetail.Nodes.find(cur => cur.Id == item.template_node_id);
  36. return <span style={{ color: '#9b9b9b' }}>{node?.label ? node.label : '-'}</span>;
  37. },
  38. },
  39. {
  40. title: '提交人',
  41. width: '20%',
  42. render: item => {
  43. return (
  44. <span style={{ color: '#9b9b9b' }}>
  45. {item.AuthorInfo?.UserName ? item.AuthorInfo?.UserName : '-'}
  46. </span>
  47. );
  48. },
  49. },
  50. {
  51. title: '操作',
  52. width: '20%',
  53. render: item =>
  54. item.id != version.id && (
  55. <a
  56. onClick={() => {
  57. onChangeVersion(item);
  58. onClose();
  59. }}
  60. >
  61. 加载
  62. </a>
  63. ),
  64. },
  65. ];
  66. }, [version]);
  67. const TimeLineItemRender = item => {
  68. let time = item.c_time ? item.c_time.split('T')[0] : '-';
  69. let node = flowDetail.Nodes.find(cur => cur.Id == item.template_node_id);
  70. return (
  71. <TimelineItem>
  72. <Space>
  73. <a
  74. onClick={() => {
  75. onChangeVersion(item);
  76. onClose();
  77. }}
  78. >
  79. {item.version_no ? `${item.version_name}.${item.version_no}` : item.version_name}
  80. </a>
  81. <span>{node?.label ? node.label : '-'}</span>
  82. <span>提交人: {item.AuthorInfo?.UserName ? item.AuthorInfo?.UserName : '-'}</span>
  83. <span>时间: {time}</span>
  84. </Space>
  85. </TimelineItem>
  86. );
  87. };
  88. return (
  89. <Drawer
  90. width={600}
  91. title="历史版本"
  92. mask={false}
  93. placement="right"
  94. onClose={onClose}
  95. visible={visible}
  96. >
  97. {/* <Table columns={columns} dataSource={versionTree} bordered={false} /> */}
  98. <Timeline>{versionTree.map(item => TimeLineItemRender(item))}</Timeline>
  99. </Drawer>
  100. );
  101. }
  102. export default connect(({ detail, xflow, user, loading }) => ({
  103. comment: detail.comment,
  104. userList: user.list,
  105. bomComment: detail.bomComment,
  106. flowDetail: xflow.flowDetail,
  107. loading: loading,
  108. }))(HistoryDrawer);