2
0

SentHistory.tsx 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import { ProList } from "@ant-design/pro-components";
  2. import { Typography } from "antd";
  3. import { get } from "../../request";
  4. import { IUser } from "../auth/UserName";
  5. import TimeShow from "../general/TimeShow";
  6. const { Text } = Typography;
  7. interface ISentHistoryData {
  8. content: string;
  9. editor: IUser;
  10. created_at: string;
  11. }
  12. interface ISentHistoryListResponse {
  13. ok: boolean;
  14. message: string;
  15. data: { rows: ISentHistoryData[]; count: number };
  16. }
  17. interface ISentHistory {
  18. content: string;
  19. editor: IUser;
  20. createdAt: string;
  21. }
  22. interface IWidget {
  23. sentId?: string;
  24. }
  25. const SentHistoryWidget = ({ sentId }: IWidget) => {
  26. return (
  27. <ProList<ISentHistory>
  28. rowKey="id"
  29. headerTitle={"time line"}
  30. showActions="hover"
  31. request={async (params = {}, sorter, filter) => {
  32. if (typeof sentId === "undefined") {
  33. return {
  34. total: 0,
  35. succcess: false,
  36. data: [],
  37. };
  38. }
  39. console.log(params, sorter, filter);
  40. let url = `/v2/sent_history?view=sentence&id=${sentId}`;
  41. const offset =
  42. ((params.current ? params.current : 1) - 1) *
  43. (params.pageSize ? params.pageSize : 20);
  44. url += `&limit=${params.pageSize}&offset=${offset}`;
  45. if (typeof params.keyword !== "undefined") {
  46. url += "&search=" + (params.keyword ? params.keyword : "");
  47. }
  48. const res = await get<ISentHistoryListResponse>(url);
  49. if (res.ok) {
  50. console.log(res.data);
  51. const items: ISentHistory[] = res.data.rows.map((item, id) => {
  52. return {
  53. content: item.content,
  54. editor: item.editor,
  55. createdAt: item.created_at,
  56. };
  57. });
  58. console.log(items);
  59. return {
  60. total: res.data.count,
  61. succcess: true,
  62. data: items,
  63. };
  64. } else {
  65. console.error(res.message);
  66. return {
  67. total: 0,
  68. succcess: false,
  69. data: [],
  70. };
  71. }
  72. }}
  73. pagination={{
  74. showQuickJumper: true,
  75. showSizeChanger: true,
  76. }}
  77. metas={{
  78. title: {
  79. dataIndex: "content",
  80. },
  81. avatar: {
  82. dataIndex: "image",
  83. editable: false,
  84. },
  85. description: {
  86. render: (text, row, index, action) => {
  87. return <TimeShow type="secondary" createdAt={row.createdAt} />;
  88. },
  89. },
  90. actions: {
  91. render: (text, row, index, action) => [<></>],
  92. },
  93. }}
  94. />
  95. );
  96. };
  97. export default SentHistoryWidget;