UpdateForm.tsx 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. import React, {useEffect} from 'react';
  2. import {Button, message, Modal} from 'antd';
  3. import {TableListItem} from '../../MemoryList/data.d';
  4. import Quill from "@/pages/Memory/components/Quill";
  5. import service from "@/pages/Memory/service";
  6. import {useSingleState} from "nice-hooks";
  7. import {getTextFromHtml} from "@/utils/utils";
  8. // 表单特殊字段
  9. export interface FormValueType extends Partial<TableListItem> {
  10. }
  11. export interface UpdateFormProps {
  12. onCancel: (fresh?:boolean) => void;
  13. modalVisible: boolean;
  14. values: Partial<TableListItem>;
  15. }
  16. const UpdateForm: React.FC<UpdateFormProps> = (props) => {
  17. const [formValues, setFormValues] = useSingleState<TableListItem>({
  18. back: "",
  19. front: "",
  20. id: undefined,
  21. period: 0,
  22. remindTime: new Date(),
  23. tag: "",
  24. updateTime: "",
  25. userId: 0,...props.values});
  26. const {
  27. onCancel: hideModal,
  28. modalVisible,
  29. } = props;
  30. useEffect(()=>{
  31. console.log(props);
  32. },[])
  33. return (
  34. <Modal
  35. width={640}
  36. bodyStyle={{padding: '15px 15px 15px'}}
  37. destroyOnClose
  38. title="配置模型"
  39. visible={modalVisible}
  40. onCancel={() => hideModal(false)}
  41. footer={null}
  42. >
  43. <div>
  44. <h4>正面</h4>
  45. <Quill
  46. readonly={false}
  47. onChange={(value) => {
  48. setFormValues({front: value});
  49. }}
  50. value={formValues.front}/>
  51. <p/>
  52. <h4>反面</h4>
  53. <Quill
  54. readonly={false}
  55. onChange={(value) => {
  56. setFormValues({back: value});
  57. }}
  58. value={formValues.back}
  59. />
  60. <p/>
  61. <Button
  62. type="primary"
  63. onClick={async () => {
  64. if (getTextFromHtml(formValues.front + formValues.back).length <= 1) {
  65. message.info("你是不是没有输入文字?");
  66. return;
  67. }
  68. if (formValues.front.length >= 3000 || formValues.back.length >= 3000) {
  69. message.info("文字太长了,减少一些吧!");
  70. return;
  71. }
  72. let res;
  73. if (formValues.id != undefined) {
  74. res = await service.update(formValues);
  75. } else {
  76. res = await service.insert(formValues);
  77. }
  78. if (res.success) {
  79. message.info('操作成功');
  80. if (formValues.id != undefined) {
  81. hideModal(true);
  82. } else {
  83. setFormValues({front:'',back:''})
  84. }
  85. } else {
  86. message.info(`操作失败: ${res.message}`);
  87. }
  88. }}
  89. >
  90. 确定
  91. </Button>
  92. <span> </span>
  93. <Button
  94. type="primary"
  95. onClick={() => {
  96. hideModal(false)
  97. }}
  98. >关闭</Button>
  99. </div>
  100. </Modal>
  101. );
  102. };
  103. export default UpdateForm;