addRegular.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import React, {
  2. useState, useEffect, useContext
  3. } from 'react';
  4. import { Form, Modal, Button, message, Space, Input } from 'antd';
  5. import apiObj from '@api/index';
  6. import RegularContext from './regular-context';
  7. import { getValueFromEvent } from '@utils/index'
  8. const { post, api, xPost } = apiObj;
  9. const { TextArea } = Input;
  10. function EditBlock(props) {
  11. useEffect(() => {
  12. }, []);
  13. const [form] = Form.useForm();
  14. const [visible, setVisible] = useState(false);
  15. const { regularDetail, type, flag } = useContext(RegularContext);
  16. const initialValues = regularDetail;
  17. const onFinish = values => {
  18. console.log(flag);
  19. if (flag == 1) {
  20. setVisible(true)
  21. } else {
  22. addRegular(values)
  23. }
  24. };
  25. //添加
  26. function addRegular(params) {
  27. let url
  28. if (type == 1) {
  29. url = api.addRegular
  30. } else {
  31. url = api.upRegularById
  32. params.id = regularDetail.id
  33. }
  34. post(url, params).then((res) => {
  35. if (res.data.code === 200) {
  36. props.userChange()
  37. message.success(res.data.message);
  38. form.resetFields();
  39. } else {
  40. message.error(res.data.message);
  41. }
  42. })
  43. }
  44. function cancel() {
  45. props.cancel()
  46. }
  47. return (
  48. <>
  49. <Form
  50. labelCol={{ span: 6 }}
  51. wrapperCol={{ span: 16 }}
  52. form={form}
  53. name="register"
  54. layout='horizontal'
  55. onFinish={onFinish}
  56. initialValues={initialValues}
  57. >
  58. <Form.Item label="正则式名称" name="name" getValueFromEvent={getValueFromEvent} rules={[{ required: true,message:'请输入正则式名称'},{ max: 30,message:'正则式名称不能超过30个字符' },{ pattern: /^[^\s]*$/,message: '请输入正则式名称',}]}>
  59. <Input placeholder="请输入" autoComplete='off'/>
  60. </Form.Item>
  61. <Form.Item label="正则式值" name="val" rules={[{ required: true,message:'请输入正则式值'},{ max: 512,message:'正则式值不能超过512个字符' },{ pattern: /^[^\s]*$/,message: '请输入正则式值',}]}>
  62. <TextArea
  63. autoSize={{ minRows: 5, maxRows: 5 }}
  64. placeholder="请输入"
  65. />
  66. </Form.Item>
  67. <Form.Item label="说明" name="description" getValueFromEvent={getValueFromEvent} rules={[{ max: 200,message:'说明不能超过200个字符' }]}>
  68. <TextArea
  69. autoSize={{ minRows: 5, maxRows: 5 }}
  70. placeholder="请输入"
  71. />
  72. </Form.Item>
  73. <Form.Item wrapperCol={{ offset: 8, span: 16 }} style={{ marginTop: 15 }}>
  74. <Space size="middle" >
  75. <Button htmlType="button" onClick={e => cancel()}>
  76. 取消
  77. </Button>
  78. <Button type="primary" htmlType="submit">
  79. 保存
  80. </Button>
  81. </Space>
  82. </Form.Item>
  83. </Form>
  84. <Modal
  85. title="提示"
  86. okText='确定'
  87. cancelText='取消'
  88. width={400}
  89. visible={visible}
  90. onOk={addRegular}
  91. /*confirmLoading={confirmLoading}*/
  92. onCancel={() => cancel()}
  93. maskClosable={false}
  94. >
  95. <p>该正则式关联字段校验规则,修改后将同步更新,确认修改?</p>
  96. </Modal>
  97. </>
  98. );
  99. }
  100. export default EditBlock;