infoEdit.tsx 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import { Col, Form, Input, Modal, Row } from 'antd';
  2. interface Props {
  3. data: any;
  4. save: Function;
  5. close: Function;
  6. }
  7. const InfoEdit = (props: Props) => {
  8. const [form] = Form.useForm();
  9. const { data } = props;
  10. const handleSave = async () => {
  11. const formData = await form.validateFields();
  12. console.log(formData);
  13. props.save({
  14. name: formData.name,
  15. email: formData.email || '',
  16. telephone: formData.telephone || '',
  17. });
  18. };
  19. return (
  20. <Modal
  21. title="编辑"
  22. visible
  23. width="40vw"
  24. destroyOnClose
  25. onOk={handleSave}
  26. onCancel={() => {
  27. props.close();
  28. }}
  29. >
  30. <Form
  31. form={form}
  32. layout="vertical"
  33. initialValues={{
  34. name: data.name,
  35. username: data.username,
  36. role: data?.roleList[0]?.name,
  37. org: data?.orgList[0]?.name,
  38. telephone: data.telephone,
  39. email: data.email,
  40. }}
  41. >
  42. <Row gutter={[24, 24]}>
  43. <Col span={12}>
  44. <Form.Item
  45. label="姓名"
  46. required
  47. name="name"
  48. rules={[
  49. { type: 'string', max: 64 },
  50. { required: true, message: '姓名必填' },
  51. ]}
  52. >
  53. <Input placeholder="请输入姓名" />
  54. </Form.Item>
  55. </Col>
  56. <Col span={12}>
  57. <Form.Item label="用户名" name="username">
  58. <Input placeholder="请输入用户名" disabled />
  59. </Form.Item>
  60. </Col>
  61. </Row>
  62. <Row gutter={[24, 24]}>
  63. <Col span={12}>
  64. <Form.Item label="角色" name="role">
  65. <Input placeholder="请输入角色" disabled />
  66. </Form.Item>
  67. </Col>
  68. <Col span={12}>
  69. <Form.Item label="组织" name="org">
  70. <Input placeholder="请输入组织" disabled />
  71. </Form.Item>
  72. </Col>
  73. </Row>
  74. <Row gutter={[24, 24]}>
  75. <Col span={12}>
  76. <Form.Item
  77. label="手机号"
  78. name="telephone"
  79. rules={[
  80. {
  81. pattern: /^1[3456789]\d{9}$/,
  82. message: '请输入正确手机号',
  83. },
  84. ]}
  85. >
  86. <Input placeholder="请输入手机号" />
  87. </Form.Item>
  88. </Col>
  89. <Col span={12}>
  90. <Form.Item
  91. label="邮箱"
  92. name="email"
  93. rules={[
  94. {
  95. type: 'email',
  96. },
  97. ]}
  98. >
  99. <Input placeholder="请输入邮箱" />
  100. </Form.Item>
  101. </Col>
  102. </Row>
  103. </Form>
  104. </Modal>
  105. );
  106. };
  107. export default InfoEdit;