QueryForm.tsx 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import React, { useState } from 'react';
  2. import { Button, Form, Input, Modal } from 'antd';
  3. import service from '../service';
  4. const { TextArea } = Input;
  5. // 表单特殊字段
  6. export interface FormValueType {
  7. modelName?: string;
  8. queryStr?: string;
  9. }
  10. export interface FormProps {
  11. onCancel: (flag?: boolean) => void;
  12. // onSubmit: (values: FormValueType) => void;
  13. modalVisible: boolean;
  14. values: FormValueType;
  15. }
  16. const FormItem = Form.Item;
  17. const formLayout = {
  18. labelCol: { span: 7 },
  19. wrapperCol: { span: 13 },
  20. };
  21. const QueryForm: React.FC<FormProps> = (props) => {
  22. const [resultStr, setResultStr] = useState('');
  23. const [form] = Form.useForm();
  24. const query = async () => {
  25. const fields = await form.validateFields();
  26. const result = await service.query(fields);
  27. setResultStr(result);
  28. };
  29. const {
  30. // onSubmit: handleUpdate,
  31. onCancel: cancelModalVisible,
  32. modalVisible,
  33. values,
  34. } = props;
  35. const renderFooter = () => {
  36. return (
  37. <>
  38. <Button onClick={() => cancelModalVisible()}>取消</Button>
  39. <Button type="primary" onClick={() => query()}>
  40. 查询
  41. </Button>
  42. </>
  43. );
  44. };
  45. return (
  46. <Modal
  47. width={640}
  48. bodyStyle={{ padding: '32px 40px 48px' }}
  49. destroyOnClose
  50. title="相似度查询"
  51. visible={modalVisible}
  52. footer={renderFooter()}
  53. onCancel={() => cancelModalVisible()}
  54. >
  55. <Form {...formLayout} form={form} initialValues={values}>
  56. <FormItem
  57. name="modelName"
  58. label="模型名称"
  59. rules={[{ required: true, message: '请输入规则名称!' }]}
  60. >
  61. <Input placeholder="请输入" readOnly />
  62. </FormItem>
  63. <FormItem
  64. name="queryStr"
  65. label="查询文字"
  66. rules={[{ required: true, message: '请输入规则名称!' }]}
  67. >
  68. <Input placeholder="请输入" />
  69. </FormItem>
  70. <FormItem label="查询结果">
  71. <TextArea value={resultStr} rows={4} readOnly />
  72. </FormItem>
  73. </Form>
  74. </Modal>
  75. );
  76. };
  77. export default QueryForm;