DraftModal.jsx 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import { Modal, Table, Space, Divider, message } from 'antd';
  2. import { useRequest, useModel } from '@umijs/max';
  3. import { queryContractDraft } from '@/services/contract';
  4. import { queryDelDraft } from '../../../services/contract';
  5. import { useEffect } from 'react';
  6. import { ExclamationCircleOutlined } from '@ant-design/icons';
  7. const DraftModal = ({ open, onCancel, onOk }) => {
  8. const [modal, contextHolder] = Modal.useModal();
  9. const columns = [
  10. {
  11. title: '合同名称',
  12. dataIndex: 'name',
  13. key: 'name',
  14. width: 100,
  15. },
  16. {
  17. title: '操作',
  18. width: '40%',
  19. align: 'center',
  20. render: (record) => {
  21. return (
  22. <Space>
  23. <a onClick={() => handlerOk(record)}>打开</a>
  24. <a onClick={() => handleDel(record.id)}>删除</a>
  25. </Space>
  26. );
  27. },
  28. },
  29. ];
  30. const handleDel = (id) => {
  31. modal.confirm({
  32. icon: <ExclamationCircleOutlined />,
  33. title: '提示:',
  34. content: <div>确定删除草稿!</div>,
  35. onOk: () => runDel({ id }),
  36. });
  37. };
  38. useEffect(() => {
  39. if (open) runList();
  40. }, [open]);
  41. const {
  42. data,
  43. loading,
  44. run: runList,
  45. } = useRequest(queryContractDraft, {
  46. formatResult: (res) => {
  47. if (res?.data) {
  48. return res.data?.list;
  49. }
  50. },
  51. });
  52. const { run: runDel } = useRequest(queryDelDraft, {
  53. manual: true,
  54. onSuccess: (res) => {
  55. message.success('删除成功');
  56. runList();
  57. },
  58. });
  59. const handlerOk = (record) => {
  60. const data = JSON.parse(record.content);
  61. onOk(data);
  62. };
  63. return (
  64. <Modal
  65. title="草稿箱"
  66. open={open}
  67. footer={null}
  68. onCancel={onCancel}
  69. onOk={onOk}
  70. width={700}
  71. >
  72. <Table
  73. dataSource={data}
  74. columns={columns}
  75. loading={loading}
  76. pagination={false}
  77. />
  78. {contextHolder}
  79. </Modal>
  80. );
  81. };
  82. export default DraftModal;