HistoryDrawer.js 3.1 KB

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