Recharge.jsx 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import React, { useState, useEffect } from 'react';
  2. import { Form, Modal, Button, Table, message, Input, Icon, Pagination } from 'antd';
  3. import XForm, { FieldTypes } from '../../../components/XForm';
  4. import request from '../../../utils/request';
  5. import apis from '../../../services/apis';
  6. import router from 'umi/router';
  7. import Upload from '../../../components/uploadImage/Upload'
  8. const { Column, ColumnGroup } = Table;
  9. const formItemLayout = {
  10. labelCol: {
  11. xs: { span: 6 },
  12. sm: { span: 6 },
  13. },
  14. wrapperCol: {
  15. xs: { span: 18 },
  16. sm: { span: 18 },
  17. },
  18. };
  19. const SelectContact = props => {
  20. const [data, setData] = useState([]);
  21. const [visible, setVisible] = useState(false);
  22. const [group, setGroup] = useState({ groupId: undefined, groupName: '充值' })
  23. useEffect(() => {
  24. }, [props.value])
  25. const handleOk = (e) => {
  26. props.form.validateFieldsAndScroll((err, values) => {
  27. console.log(values, "valuesvaluesvaluesvaluesvaluesvaluesvalues")
  28. if (!err) {
  29. request({ ...apis.fund.recharge, urlData: { id: props.accountId || '' }, data: { ...values, orgId: props.orgId } }).then((data) => {
  30. message.info("操作成功")
  31. setVisible(false)
  32. props.onClick()
  33. })
  34. }
  35. });
  36. }
  37. const { getFieldDecorator } = props.form;
  38. const regMoney = /^(\d+|\d+\.\d{1,2})$/;
  39. return (
  40. <div>
  41. <span onClick={() => setVisible(true)}>{group.groupName}</span>
  42. <Modal
  43. visible={visible}
  44. title="确认充值"
  45. onOk={() => handleOk()}
  46. onCancel={() => setVisible(false)}
  47. footer={[
  48. <Button key="back" size="large" onClick={() => setVisible(false)}>取消</Button>,
  49. <Button key="submit" type="primary" size="large" onClick={() => handleOk()}>确认</Button>,
  50. ]}
  51. >
  52. <div>
  53. <p style={{ color: 'red' }}>请先进行线下实际充值操作后再执行线上充值存档</p>
  54. <Form {...formItemLayout} >
  55. <Form.Item label="充值金额" >
  56. {getFieldDecorator('rechargeAmount', {
  57. rules: [
  58. { required: true, message: '充值金额不能为空' },
  59. {
  60. validator: (rule, value, callback) => {
  61. callback(value < 0.01 || value > 99999.99 ? '金额最多5位整数 2位小数' : !regMoney.test(value) ? '金额最多两位小数' : undefined)
  62. }
  63. }
  64. ],
  65. })(<Input type='number' placeholder="支持2位小数" addonAfter="元" />)}
  66. </Form.Item>
  67. <Form.Item label="充值凭证" help="可上传银行转账截图等作为查账线索">
  68. {getFieldDecorator('certificateList', {
  69. rules: [{ required: true }],
  70. })(
  71. <Upload />,
  72. )}
  73. </Form.Item>
  74. </Form>
  75. </div>
  76. </Modal>
  77. </div>
  78. )
  79. }
  80. const WrappedRegistrationForm = Form.create()(SelectContact);
  81. export default WrappedRegistrationForm;