agreeButton.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. import React, { Component } from "react";
  2. import { Modal, Button, Input, Form, message } from "antd";
  3. import $ from "jquery/src/ajax";
  4. class ReasonInput extends Component {
  5. constructor(props) {
  6. super(props);
  7. this.state = {
  8. visible: false,
  9. reason: this.props.reason,
  10. flag: false,
  11. flagS: false,
  12. };
  13. this.reset = this.reset.bind(this);
  14. this.judge = this.judge.bind(this);
  15. this.onOk = this.onOk.bind(this);
  16. this.sendRequest = this.sendRequest.bind(this);
  17. this.inputAjax = this.inputAjax.bind(this);
  18. }
  19. componentWillMount() {
  20. let reason = this.props.reason
  21. this.setState({
  22. reason
  23. })
  24. // const data = this.props.data;
  25. // const backData = this.props.backData;
  26. // const ajaxData = this.props.ajaxData;
  27. // Object.assign(backData, ajaxData);
  28. // // this.sendRequest()
  29. // this.onOk(data,backData)
  30. // console.log("222222",this.props);
  31. }
  32. // 理由请求
  33. sendRequest(data, backData) {
  34. if(this.state.flagS) return
  35. $.ajax({
  36. method: "post",
  37. dataType: "json",
  38. crossDomain: false,
  39. url: globalConfig.context + "/api/admin/orderChange/orderChangeAudit",
  40. data: {
  41. orderNo: backData.orderNo,
  42. remarks: this.props.reason,
  43. status: data.status,
  44. processState: this.props.processState,
  45. // 驳回位置
  46. rejectState: this.props.rejectState
  47. },
  48. success: function(data) {
  49. if (data.error.length || data.data.list == "") {
  50. if (data.error && data.error.length) {
  51. if (!this.state.flag) return;
  52. // message.warning(data.error[0].message);
  53. return
  54. }
  55. } else {
  56. this.setState({
  57. flagS: !this.state.flagS
  58. })
  59. message.success("操作成功!");
  60. this.props.visible();
  61. this.changeModal();
  62. this.props.onCancel();
  63. // window.location.reload()
  64. }
  65. }.bind(this)
  66. }).done(
  67. function() {
  68. if (this.props.loadData) {
  69. this.props.loadData("2");
  70. }
  71. }.bind(this)
  72. );
  73. }
  74. // 输入框请求
  75. inputAjax(_data, backData) {
  76. if (this.state.flag) return;
  77. $.ajax({
  78. method: "post",
  79. dataType: "json",
  80. crossDomain: false,
  81. url: globalConfig.context + "/api/admin/orderChange/updateOrderChange",
  82. data: backData,
  83. success: function(data) {
  84. if (data.error.length || data.data.list == "") {
  85. if (data.error && data.error.length) {
  86. if (!this.state.flag) return;
  87. message.warning(data.error[0].message);
  88. return
  89. }
  90. } else {
  91. this.setState({
  92. flag: !this.state.flag
  93. });
  94. }
  95. }.bind(this)
  96. }).done(
  97. function() {
  98. this.sendRequest(this.props.data, backData);
  99. }.bind(this)
  100. );
  101. }
  102. reset() {
  103. this.setState({
  104. reason: this.props.reason
  105. });
  106. }
  107. changeModal() {
  108. this.setState(
  109. {
  110. visible: !this.state.visible
  111. },
  112. () => {
  113. this.reset();
  114. }
  115. );
  116. const data = this.props.data;
  117. const backData = this.props.backData;
  118. backData.consultantExamine = []
  119. backData.managerExamine = []
  120. const ajaxData = this.props.ajaxData;
  121. if(ajaxData.ContactsLists) {
  122. ajaxData.ContactsLists = [];
  123. ajaxData.contactList = [];
  124. }
  125. Object.assign(backData, ajaxData);
  126. // this.sendRequest()
  127. this.onOk(data,backData)
  128. // this.setState({reason: this.props.reason})
  129. // console.log(this.props,this.state)
  130. }
  131. judge() {
  132. if (!this.props.reason) {
  133. message.error("理由不能为空!");
  134. return false;
  135. }
  136. }
  137. onOk(data, backData) {
  138. if (!this.props.reason) {
  139. message.error("理由不能为空!");
  140. return false;
  141. }
  142. // 判断权限是否大于营销管理员
  143. if (
  144. this.props.processState <= 1 ||
  145. this.props.processState == 4 ||
  146. this.props.processState >= 6
  147. ) {
  148. this.sendRequest(data, backData);
  149. } else {
  150. this.inputAjax(data, backData);
  151. }
  152. data.onChange(this.state.reason);
  153. }
  154. render() {
  155. const { visible } = this.state;
  156. const data = this.props.data;
  157. const backData = this.props.backData;
  158. const ajaxData = this.props.ajaxData;
  159. Object.assign(backData, ajaxData);
  160. return (
  161. <div style={{ display: "inline-block" }}>
  162. <Button
  163. type={data.type}
  164. onClick={() => {
  165. this.changeModal();
  166. }}
  167. >
  168. {data.name}
  169. </Button>
  170. <Modal
  171. maskClosable={false}
  172. title={data.title}
  173. visible={false}
  174. onCancel={() => {
  175. this.changeModal();
  176. }}
  177. onOk={_e => {
  178. this.onOk(data, backData);
  179. }}
  180. >
  181. <Form.Item>
  182. <Input.TextArea
  183. rows={4}
  184. placeholder={data.placeholder}
  185. value={this.state.reason}
  186. onChange={e => {
  187. // console.log(this.props);
  188. this.setState({
  189. reason: e.target.value
  190. });
  191. }}
  192. />
  193. </Form.Item>
  194. </Modal>
  195. </div>
  196. );
  197. }
  198. }
  199. const AgreeButton = Form.create()(ReasonInput);
  200. export default AgreeButton;