applyPaymentModal.js 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. import React,{Component} from 'react';
  2. import {Button, Form, Input, message, Modal, Spin} from "antd";
  3. import propType from 'prop-types';
  4. import $ from "jquery";
  5. const layout = {
  6. labelCol: {
  7. span: 8,
  8. },
  9. wrapperCol: {
  10. span: 16,
  11. },
  12. };
  13. const formItemLayout = {
  14. labelCol: { span: 8 },
  15. wrapperCol: { span: 14 },
  16. };
  17. class ApplyPaymentModal extends Component{
  18. // static propTypes = {
  19. // visible: PropTypes.bool.isRequired,
  20. // changeVisible: PropTypes.func.isRequired,
  21. // }
  22. //
  23. // static defaultProps = {
  24. // visible: false,
  25. // changeVisible: ()=>{},
  26. // }
  27. constructor(props) {
  28. super(props);
  29. this.state={
  30. loading: false
  31. }
  32. }
  33. //申请付款
  34. handleSubmit(e){
  35. e.preventDefault();
  36. console.log(this.props.previewPayInfor)
  37. this.props.form.validateFieldsAndScroll((err, values) => {
  38. if (err) {
  39. return;
  40. }
  41. this.setState({
  42. loading: true
  43. })
  44. values.tid = this.props.tid;
  45. if(this.props.nodeId){ //催款
  46. values.nodeId = this.props.nodeId;
  47. values.chooseType = 1; //支付选择 0第三方 1催款
  48. }else{
  49. values.chooseType = 0 //支付选择 0第三方 1催款
  50. }
  51. values.paymentType = 0; //支付类型 0第三方 1官费(用来做判断发起区别)
  52. $.ajax({
  53. method: 'POST',
  54. dataType: 'json',
  55. crossDomain: false,
  56. url: globalConfig.context + '/api/admin/company/addOrderPayment',
  57. data: values,
  58. }).done(
  59. function (data) {
  60. this.setState({
  61. loading: false,
  62. })
  63. if (!data.error.length) {
  64. this.props.changeVisible();
  65. this.props.onRefresh();
  66. message.success('申请成功!')
  67. } else {
  68. message.warning(data.error[0].message)
  69. }
  70. }.bind(this)
  71. )
  72. })
  73. }
  74. render() {
  75. const { getFieldDecorator } = this.props.form;
  76. const { previewPayInfor } = this.props;
  77. if(!previewPayInfor){
  78. return;
  79. }
  80. return(
  81. <Modal
  82. maskClosable={false}
  83. footer={null}
  84. visible={this.props.visible}
  85. onCancel={() => {
  86. this.props.changeVisible();
  87. }}
  88. >
  89. <Spin spinning={this.state.loading}>
  90. <div>
  91. <div>支付供应商费用</div>
  92. <Form
  93. {...layout}
  94. name="basic"
  95. initialValues={{
  96. remember: true,
  97. }}
  98. onSubmit={(e)=>{
  99. this.handleSubmit(e)
  100. }}
  101. >
  102. <Form.Item
  103. {...formItemLayout}
  104. style={{
  105. display:'flex'
  106. }}
  107. label="付款单位/个人:"
  108. >
  109. {getFieldDecorator('companyName', {
  110. initialValue: previewPayInfor.companyName,
  111. rules: [{
  112. required: false,
  113. message: '请输入付款单位/个人!',
  114. }],
  115. })(
  116. <Input
  117. style={{ width: '200px' }}
  118. placeholder="请输入付款单位/个人"
  119. />
  120. )}
  121. </Form.Item>
  122. {/*<Form.Item*/}
  123. {/* {...formItemLayout}*/}
  124. {/* style={{*/}
  125. {/* display:'flex'*/}
  126. {/* }}*/}
  127. {/* label="单价(万元):"*/}
  128. {/*>*/}
  129. {/* {getFieldDecorator('unitPrice', {*/}
  130. {/* rules: [{ required: true, message: '请输入单价!' }],*/}
  131. {/* })(*/}
  132. {/* <Input style={{ width: '200px' }} placeholder="请输入单价" type={'number'}/>*/}
  133. {/* )}*/}
  134. {/*</Form.Item>*/}
  135. <Form.Item
  136. {...formItemLayout}
  137. style={{
  138. display:'flex'
  139. }}
  140. label="数量:"
  141. >
  142. {getFieldDecorator('quantity', {
  143. initialValue: parseInt(previewPayInfor.quantity),
  144. rules: [{ required: false, message: '请输入數量!' }],
  145. })(
  146. <Input disabled={previewPayInfor.quantity <= 1} style={{ width: '200px' }} placeholder="请输入數量" type={'number'}/>
  147. )}
  148. </Form.Item>
  149. {/*<Form.Item*/}
  150. {/* {...formItemLayout}*/}
  151. {/* style={{*/}
  152. {/* display:'flex'*/}
  153. {/* }}*/}
  154. {/* label="总价(万元):"*/}
  155. {/*>*/}
  156. {/* {getFieldDecorator('totalPrice', {*/}
  157. {/* rules: [{ required: false, message: '请输入总价!' }],*/}
  158. {/* })(*/}
  159. {/* <Input style={{ width: '200px' }} placeholder="请输入总价" type={'number'}/>*/}
  160. {/* )}*/}
  161. {/*</Form.Item>*/}
  162. <Form.Item
  163. {...formItemLayout}
  164. style={{
  165. display:'flex'
  166. }}
  167. label="已付(万元):"
  168. >
  169. {getFieldDecorator('totalPrice', {
  170. initialValue: previewPayInfor.partyAmount ? parseFloat(previewPayInfor.partyAmount) : 0,
  171. rules: [{ required: false, message: '请输入已付金额!' }],
  172. })(
  173. <Input disabled={true} style={{ width: '200px' }} placeholder="请输入已付金额" type={'number'}/>
  174. )}
  175. </Form.Item>
  176. <Form.Item
  177. {...formItemLayout}
  178. style={{
  179. display:'flex'
  180. }}
  181. label="本次申请支付金额(万元):"
  182. >
  183. {getFieldDecorator('applicationAmount', {
  184. initialValue:
  185. previewPayInfor.partyAmount ?
  186. parseFloat(previewPayInfor.totalAmount) - parseFloat(previewPayInfor.partyAmount) :
  187. parseFloat(previewPayInfor.totalAmount),
  188. rules: [{ required: true, message: '请输入本次申请支付金额!' }],
  189. })(
  190. <Input style={{ width: '200px' }} placeholder="请输入本次申请支付金额" type={'number'}/>
  191. )}
  192. </Form.Item>
  193. <Form.Item
  194. {...formItemLayout}
  195. style={{
  196. display:'flex'
  197. }}
  198. label="备注:"
  199. >
  200. {getFieldDecorator('remarks', {
  201. rules: [{ required: true, message: '请输入备注!' }],
  202. })(
  203. <Input style={{ width: '200px' }} placeholder="请输入备注" type={'textarea'}/>
  204. )}
  205. </Form.Item>
  206. <Form.Item>
  207. <Button type="primary" htmlType="submit">
  208. 确定申请支付
  209. </Button>
  210. </Form.Item>
  211. </Form>
  212. </div>
  213. </Spin>
  214. </Modal>
  215. )
  216. }
  217. }
  218. const WrappedNormalLoginForm = Form.create()(ApplyPaymentModal);
  219. export default WrappedNormalLoginForm