index.jsx 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851
  1. import React, { Component } from "react";
  2. import TabelContent from "../../../common/tabelContent";
  3. import {
  4. Button,
  5. Modal,
  6. Tag,
  7. Form,
  8. DatePicker,
  9. Input,
  10. message,
  11. Upload,
  12. Icon,
  13. Radio,
  14. Popconfirm,
  15. } from "antd";
  16. import $ from "jquery/src/ajax";
  17. import DunningRecord from "./dunningRecord";
  18. import ImgList from "../../../common/imgList";
  19. import { splitUrl } from "../../../tools.js";
  20. import download from "downloadjs";
  21. import LegalRecd from "../../legalAffairs/collectioning/legalRecd";
  22. import TablePopup from "../../legalAffairs/collectioning/tablePopup";
  23. const confirm = Modal.confirm;
  24. const { TextArea } = Input;
  25. const RadioGroup = Radio.Group;
  26. class PressMoney extends Component {
  27. constructor(props) {
  28. super(props);
  29. this.state = {
  30. columns: [
  31. {
  32. title: "序号",
  33. dataIndex: "key",
  34. key: "key",
  35. width: 35,
  36. },
  37. {
  38. title: "合同编号",
  39. dataIndex: "contractNo",
  40. key: "contractNo",
  41. width: 90,
  42. },
  43. {
  44. title: "客户名称",
  45. dataIndex: "buyerName",
  46. key: "buyerName",
  47. width: 150,
  48. },
  49. {
  50. title: "订单负责人",
  51. dataIndex: "salesmanName",
  52. key: "salesmanName",
  53. width: 100,
  54. },
  55. {
  56. title: "订单部门",
  57. dataIndex: "depName",
  58. key: "depName",
  59. width: 120,
  60. },
  61. {
  62. title: "签单金额(万元)",
  63. dataIndex: "totalAmount",
  64. key: "totalAmount",
  65. width: 80,
  66. },
  67. {
  68. title: "已收款(万元)",
  69. dataIndex: "settlementAmount",
  70. key: "settlementAmount",
  71. width: 80,
  72. },
  73. {
  74. title: "应收款(万元)",
  75. dataIndex: "orderReceivables",
  76. key: "orderReceivables",
  77. width: 80,
  78. },
  79. {
  80. title: "欠款(万元)",
  81. dataIndex: "orderArrears",
  82. key: "orderArrears",
  83. width: 80,
  84. },
  85. {
  86. title: "催款启动日期",
  87. dataIndex: "dunStartTimes",
  88. key: "dunStartTimes",
  89. width: 100,
  90. },
  91. {
  92. title: "自动移交法务(天)",
  93. dataIndex: "daysRemaining",
  94. key: "daysRemaining",
  95. width: 90,
  96. render: (text) => {
  97. return text === 0 ? "已移交法务" : text + "天";
  98. },
  99. },
  100. {
  101. title: "操作",
  102. dataIndex: "id",
  103. key: "id",
  104. width: 250,
  105. render: (text, record, index) => {
  106. let _this = this;
  107. return (
  108. <div style={{ display: "flex", alignItems: "center" }}>
  109. <Button
  110. disabled={record.daysRemaining === 0}
  111. type="primary"
  112. style={{ marginRight: "10px" }}
  113. onClick={(e) => {
  114. this.setState({
  115. visibleTransfer: true,
  116. orderNoTransfer: record.orderNo,
  117. });
  118. // e.stopPropagation();
  119. // confirm({
  120. // title: "提醒",
  121. // content: "你确定移交法务吗?",
  122. // okText: "转交",
  123. // cancelText: "取消",
  124. // onOk() {
  125. // _this.transfer(record.orderNo);
  126. // },
  127. // });
  128. }}
  129. >
  130. 移交法务
  131. </Button>
  132. <Button
  133. type="primary"
  134. style={{ marginRight: "10px" }}
  135. onClick={(e) => {
  136. e.stopPropagation();
  137. this.setState({
  138. visible: true,
  139. dataInfor: record,
  140. });
  141. // console.log(record);
  142. }}
  143. >
  144. 催款记录
  145. </Button>
  146. <Button
  147. type="primary"
  148. style={{ marginRight: "10px" }}
  149. onClick={(e) => {
  150. this.setState({
  151. visibleTwo: true,
  152. dataInfor: record,
  153. });
  154. e.stopPropagation();
  155. }}
  156. >
  157. 法务记录
  158. </Button>
  159. </div>
  160. );
  161. },
  162. },
  163. ],
  164. searchList: [
  165. {
  166. type: "text",
  167. dataKey: "contractNo",
  168. placeholder: "请输入合同编号",
  169. },
  170. {
  171. type: "text",
  172. dataKey: "userName",
  173. placeholder: "请输入客户名称",
  174. },
  175. {
  176. type: "autoComplete",
  177. dataKey: "aid",
  178. api: "/api/admin/customer/listAdminByName",
  179. search: "adminName",
  180. placeholder: "请输入营销人名称",
  181. },
  182. // {
  183. // type: "departmentSelect",
  184. // dataKey: "depId",
  185. // placeholder: "请选择订单部门",
  186. // },
  187. {
  188. type: "newDepartmentSelect",
  189. dataKey: "deps",
  190. placeholder: "请选择订单部门",
  191. },
  192. {
  193. type: "select",
  194. dataKey: "legalAffairs",
  195. placeholder: "请选择是否移交法务",
  196. selectList: [
  197. {
  198. value: "1",
  199. label: "已移交法务",
  200. },
  201. {
  202. value: "0",
  203. label: "未移交法务",
  204. },
  205. ],
  206. },
  207. {
  208. type: "times",
  209. title: "催款启动",
  210. dataKey: ["startTime", "endTime"],
  211. },
  212. ],
  213. columnsTwo: [
  214. {
  215. title: "序号",
  216. dataIndex: "key",
  217. key: "key",
  218. width: 45,
  219. },
  220. {
  221. title: "操作人名称",
  222. dataIndex: "adminName",
  223. key: "adminName",
  224. width: 140,
  225. },
  226. {
  227. title: "客户名称",
  228. dataIndex: "userName",
  229. key: "userName",
  230. width: 140,
  231. },
  232. {
  233. title: "法务时间",
  234. dataIndex: "operationDate",
  235. key: "operationDate",
  236. width: 140,
  237. },
  238. {
  239. title: "详细",
  240. dataIndex: "remarks",
  241. key: "remarks",
  242. width: 140,
  243. },
  244. {
  245. title: "法务类型",
  246. dataIndex: "type",
  247. key: "type",
  248. width: 140,
  249. },
  250. {
  251. title: "操作时间",
  252. dataIndex: "createDate",
  253. key: "createDate",
  254. width: 140,
  255. },
  256. {
  257. title: "操作",
  258. dataIndex: "attachmentUrl",
  259. key: "attachmentUrl",
  260. width: 100,
  261. render: (text, record) => {
  262. return (
  263. <Button
  264. type="primary"
  265. disabled={record.name === 0}
  266. onClick={(attachmentUrl) => {
  267. // alert(1)
  268. let data = JSON.parse(text);
  269. this.setState({
  270. visibleTree: true,
  271. downloadList: data,
  272. });
  273. // console.log(data);
  274. }}
  275. >
  276. 下载凭证
  277. </Button>
  278. );
  279. },
  280. },
  281. ],
  282. visible: false,
  283. visibleRest: false,
  284. date: "",
  285. remarks: "",
  286. mainModalKeys: 0,
  287. voucher: "下载凭证",
  288. loading: false,
  289. downloadList: [],
  290. visibleLegal: false,
  291. LegalKeys: 10,
  292. visibleTwo: false,
  293. visibleTree: false,
  294. visibleTransfer: false,
  295. orderNoTransfer: "",
  296. transferKey: 0,
  297. };
  298. // this.tabelContentRef = null;
  299. this.transfer = this.transfer.bind(this);
  300. this.formRef = {};
  301. this.downloadAll = this.downloadAll.bind(this);
  302. // this.tabelContentRef = null;
  303. this.addLegal = this.addLegal.bind(this);
  304. }
  305. transfer(orderNo) {
  306. this.setState({
  307. transferLoading: true,
  308. });
  309. if (this.state.remarks == "") {
  310. message.warning("请填写原因");
  311. }
  312. $.ajax({
  313. method: "post",
  314. dataType: "json",
  315. crossDomain: false,
  316. url: globalConfig.context + "/api/admin/lagalAffairs/transfer",
  317. data: {
  318. orderNo,
  319. remarks: this.state.remarks,
  320. },
  321. success: function (data) {
  322. if (data.error.length) {
  323. message.warning(data.error[0].message);
  324. } else {
  325. message.success("移交成功");
  326. this.setState({
  327. visibleTransfer: false,
  328. transferKey: this.state.transferKey + 13
  329. });
  330. this.tabelContentRef && this.tabelContentRef.onRefresh();
  331. }
  332. }.bind(this),
  333. }).done(
  334. function () {
  335. this.setState({
  336. transferLoading: false,
  337. });
  338. }.bind(this)
  339. );
  340. }
  341. downloadAll() {
  342. let list = this.state.downloadList;
  343. list.forEach((element, key) => {
  344. // console.log(element);
  345. setTimeout(() => {
  346. const a = document.createElement("a");
  347. a.style.display = "none";
  348. a.href = `${window.window.globalConfig.context}/open/download?fileName=${element.url}&delete=false&attName=${element.name}`;
  349. // console.log(a.href);
  350. document.body.appendChild(a);
  351. a.click(); // 自动触发点击a标签的click事件
  352. document.body.removeChild(a);
  353. }, key * 100);
  354. });
  355. }
  356. // getUrl(e, n) {
  357. // let url = splitUrl(e, ",", globalConfig.avatarHost + "/upload");
  358. // url.forEach((element) => {
  359. // download(element.url, n);
  360. // console.log(element.url, n);
  361. // });
  362. // }
  363. addLegal() {
  364. let theorgCodeUrl = [];
  365. if (!this.state.fileList) {
  366. message.warning("请上传凭证");
  367. return;
  368. } else {
  369. let picArr = [];
  370. this.state.fileList.map(function (item) {
  371. if (item.response && item.response.data && item.response.data.length) {
  372. picArr.push({ name: item.name, url: item.response.data });
  373. }
  374. });
  375. theorgCodeUrl = JSON.stringify(picArr);
  376. // console.log(theorgCodeUrl);
  377. }
  378. if (!this.state.date) {
  379. message.warning("请选择时间");
  380. return;
  381. }
  382. this.setState({
  383. addDunOrderLoading: true,
  384. loading: true,
  385. });
  386. $.ajax({
  387. method: "post",
  388. dataType: "json",
  389. crossDomain: false,
  390. url: globalConfig.context + "/api/admin/lagalAffairs/addLagalAffairsLog",
  391. data: {
  392. orderNo: this.state.dataInfor.orderNo,
  393. type: this.state.type,
  394. status: this.state.status ? this.state.status : 0,
  395. date: this.state.date,
  396. remarks: this.state.remarks,
  397. attachmentUrl: theorgCodeUrl.length ? theorgCodeUrl : "",
  398. },
  399. success: function (data) {
  400. if (data.error.length) {
  401. this.setState({
  402. loading: false,
  403. });
  404. message.warning(data.error[0].message);
  405. } else {
  406. this.setState({
  407. loading: false,
  408. visibleLegal: false,
  409. LegalKeys: this.state.LegalKeys + 10,
  410. fileList: undefined,
  411. });
  412. // this.props.visible = false
  413. message.success("添加成功");
  414. this.tabelContentRef && this.tabelContentRef.onRefresh();
  415. // console.log(this.tabelContentRef);
  416. }
  417. }.bind(this),
  418. }).done(
  419. function () {
  420. this.setState({
  421. addDunOrderLoading: false,
  422. });
  423. }.bind(this)
  424. );
  425. }
  426. render() {
  427. let downloadList = this.state.downloadList;
  428. const formItemLayout = {
  429. labelCol: { span: 10 },
  430. wrapperCol: { span: 12 },
  431. };
  432. // console.log(this.props.visibleRest);
  433. // console.log(this.props.infor);
  434. return (
  435. <div className="user-content signatureStatistics">
  436. <div className="content-title" style={{ marginBottom: 10 }}>
  437. <span style={{ fontWeight: 900, fontSize: 16 }}>催款记录</span>
  438. </div>
  439. <TabelContent
  440. ref={(ref) => (this.tabelContentRef = ref)}
  441. scroll={{ x: 0, y: 1000 }}
  442. changeFn={this.state.columns}
  443. searchList={this.state.searchList}
  444. columns={this.state.columns}
  445. tabelApi={"/api/admin/lagalAffairs/orderList"}
  446. exportApi={"/api/admin/lagalAffairs/orderList/Exprot"}
  447. query={{ type: 0 }}
  448. exportExecProcessing={(data) => {
  449. data.type = 0;
  450. return data;
  451. }}
  452. dataProcessing={(data) => {
  453. let theArr = [];
  454. for (let i = 0; i < data.data.list.length; i++) {
  455. let thisdata = data.data.list[i];
  456. thisdata.key = i + 1;
  457. theArr.push(thisdata);
  458. }
  459. return theArr;
  460. }}
  461. />
  462. {this.state.visibleTwo ? (
  463. <Modal
  464. visible={this.state.visibleTwo}
  465. onOk={() => {
  466. this.setState({
  467. visibleTwo: false,
  468. });
  469. }}
  470. onCancel={() => {
  471. this.setState({
  472. visibleTwo: false,
  473. });
  474. }}
  475. width="1100px"
  476. title={
  477. <span
  478. style={{
  479. display: "flex",
  480. alignItems: "center",
  481. justifyContent: "space-between",
  482. paddingRight: "10px",
  483. }}
  484. >
  485. <span>
  486. <span style={{ marginRight: "5px" }}>法务记录列表</span>
  487. <Tag color="pink">
  488. 客户名称:{this.state.dataInfor.buyerName}
  489. </Tag>
  490. </span>
  491. {/* <Button
  492. type="primary"
  493. onClick={(e) => {
  494. e.stopPropagation();
  495. this.setState({
  496. visibleLegal: true,
  497. });
  498. }}
  499. >
  500. 添加法务记录
  501. </Button> */}
  502. </span>
  503. }
  504. footer=""
  505. className="admin-desc-content"
  506. >
  507. <TablePopup
  508. ref={(ref) => (this.tabelContentRef = ref)}
  509. columns={this.state.columnsTwo}
  510. tabelApi={"/api/admin/lagalAffairs/lagalAffairsLogList"}
  511. query={{ orderNo: this.state.dataInfor.orderNo }}
  512. dataProcessing={(data) => {
  513. // console.log(this.state);
  514. // console.log(data.data);
  515. let theArr = [];
  516. for (let i = 0; i < data.data.length; i++) {
  517. let thisdata = data.data[i];
  518. thisdata.key = i + 1;
  519. // console.log(thisdata.attachmentUrl);
  520. // console.log(this.state.voucher);
  521. if (!thisdata.attachmentUrl) {
  522. thisdata.name = 0;
  523. }
  524. let status;
  525. if (thisdata.status == 0) {
  526. status = "否";
  527. } else if (thisdata.status == 1) {
  528. status = "已回款";
  529. } else if (thisdata.status == 2) {
  530. status = "已诉讼";
  531. } else if (thisdata.status == 3) {
  532. status = "已坏账处理";
  533. }
  534. if (thisdata.type == 0) {
  535. thisdata.type = "法务催收中";
  536. } else if (thisdata.type == 1) {
  537. thisdata.type = "延期法务";
  538. } else if (thisdata.type == 2) {
  539. thisdata.type = `已完成法务/${status}`;
  540. } else if (thisdata.type == 3) {
  541. thisdata.type = "自动转交";
  542. } else if (thisdata.type == 4) {
  543. thisdata.type = "营销转交";
  544. }
  545. // console.log(thisdata);
  546. theArr.push(thisdata);
  547. }
  548. return theArr;
  549. }}
  550. />
  551. {/* */}
  552. <div>
  553. <Modal
  554. maskClosable={false}
  555. visible={this.state.visibleLegal}
  556. key={this.state.LegalKeys + 10}
  557. onCancel={() => {
  558. this.setState({
  559. visibleLegal: false,
  560. LegalKeys: this.state.LegalKeys + 10,
  561. });
  562. }}
  563. width="1200px"
  564. title="新增法务数据"
  565. footer=""
  566. className="admin-desc-content"
  567. >
  568. <Form
  569. onSubmit={this.handleSubmit}
  570. ref={this.formRef}
  571. style={{ marginRight: "100px" }}
  572. >
  573. <Form.Item
  574. {...formItemLayout}
  575. label="法务类型"
  576. name="type"
  577. hasFeedback
  578. >
  579. <RadioGroup
  580. onChange={(e) => {
  581. this.setState({
  582. type: e.target.value,
  583. });
  584. }}
  585. >
  586. <Radio value="0">法务催收中</Radio>
  587. <Radio value="1">延期法务</Radio>
  588. <Radio value="2">法务已完成</Radio>
  589. </RadioGroup>
  590. </Form.Item>
  591. {this.state.type == 2 ? (
  592. <Form.Item
  593. {...formItemLayout}
  594. label="完成状态"
  595. name="status"
  596. hasFeedback
  597. >
  598. <RadioGroup
  599. onChange={(e) => {
  600. this.setState({
  601. status: e.target.value,
  602. });
  603. }}
  604. >
  605. <Radio value="1">已回款</Radio>
  606. <Radio value="2">以诉讼</Radio>
  607. <Radio value="3">以坏账处理</Radio>
  608. </RadioGroup>
  609. </Form.Item>
  610. ) : (
  611. ""
  612. )}
  613. <Form.Item
  614. name="date"
  615. {...formItemLayout}
  616. label="延期时间"
  617. hasFeedback
  618. >
  619. <DatePicker
  620. onChange={(date, dateString) => {
  621. this.setState({
  622. date: dateString,
  623. });
  624. }}
  625. />
  626. </Form.Item>
  627. <Form.Item
  628. name="remarks"
  629. {...formItemLayout}
  630. label="法务情况"
  631. hasFeedback
  632. >
  633. <TextArea
  634. rows={4}
  635. onChange={(e) => {
  636. this.setState({
  637. remarks: e.target.value,
  638. });
  639. }}
  640. />
  641. </Form.Item>
  642. <Form.Item
  643. name="fileList"
  644. {...formItemLayout}
  645. label="附件"
  646. hasFeedback
  647. >
  648. <ImgList
  649. accept="application/pdf,image/png,application/msword"
  650. domId="nowProjectStatus"
  651. uploadConfig={{
  652. action:
  653. globalConfig.context +
  654. "/api/admin/newOrder/uploadDunLogFile",
  655. data: { sign: "dun_log_attachment" },
  656. multiple: true,
  657. listType: "text",
  658. }}
  659. onChange={(info) => {
  660. let fileList = info.fileList;
  661. this.setState({ fileList });
  662. }}
  663. fileList={this.state.fileList}
  664. />
  665. </Form.Item>
  666. </Form>
  667. <div style={{ display: "flex", justifyContent: "center" }}>
  668. <Button type="primary" loading={this.state.loading}>
  669. <Popconfirm
  670. title="您确定此订单提交法务数据?"
  671. onConfirm={this.addLegal}
  672. onCancel={() => {
  673. this.setState({
  674. loading: false,
  675. });
  676. }}
  677. okText="确定"
  678. cancelText="取消"
  679. loading={this.state.loading}
  680. >
  681. <a href="#">提交</a>
  682. </Popconfirm>
  683. </Button>
  684. <Button
  685. type="dashed"
  686. style={{ marginLeft: "15px" }}
  687. onClick={() => {
  688. this.setState({
  689. visibleLegal: false,
  690. LegalKeys: this.state.LegalKeys + 10,
  691. });
  692. }}
  693. >
  694. 取消
  695. </Button>
  696. </div>
  697. </Modal>
  698. </div>
  699. <Modal
  700. visible={this.state.visibleTree}
  701. onCancel={(e) =>
  702. this.setState({
  703. visibleTree: false,
  704. mainModalKeys: this.state.mainModalKeys + 10,
  705. })
  706. }
  707. width="1200px"
  708. title="下载凭证"
  709. footer=""
  710. className="admin-desc-content"
  711. >
  712. <ul style={{ margin: "0 0 10px 0" }}>
  713. {downloadList.map((item, key) => (
  714. <li key={key}>
  715. <span style={{ fontSize: "18px" }}>{item.name}</span>
  716. <div
  717. style={{
  718. marginLeft: "10px",
  719. color: "#333",
  720. display: "inline-block",
  721. cursor: "pointer",
  722. fontSize: "18px",
  723. }}
  724. // onClick={() => this.getUrl(item.url, item.name)}
  725. >
  726. <a href={`${window.window.globalConfig.context}/open/download?fileName=${item.url}&delete=false&attName=${item.name}`}>下载附件</a>
  727. </div>
  728. </li>
  729. ))}
  730. </ul>
  731. <div style={{ display: "flex", justifyContent: "right" }}>
  732. <Button
  733. type="primary"
  734. onClick={this.downloadAll}
  735. loading={this.state.loading}
  736. >
  737. 下载全部
  738. </Button>
  739. <Button
  740. type="dashed"
  741. style={{ marginLeft: "15px" }}
  742. onClick={(e) => {
  743. this.setState({
  744. visibleTree: false,
  745. mainModalKeys: this.state.mainModalKeys + 10,
  746. });
  747. }}
  748. >
  749. 取消
  750. </Button>
  751. </div>
  752. </Modal>
  753. </Modal>
  754. ) : (
  755. ""
  756. )}
  757. {this.state.visible ? (
  758. <DunningRecord
  759. dataInfor={this.state.dataInfor}
  760. visible={this.state.visible}
  761. onCancel={() => {
  762. this.setState({
  763. visible: false,
  764. dataInfor: {},
  765. });
  766. }}
  767. />
  768. ) : (
  769. ""
  770. )}
  771. <Modal
  772. visible={this.state.visibleTransfer}
  773. key={this.state.transferKey + 13}
  774. onCancel={() => {
  775. this.setState({
  776. visibleTransfer: false,
  777. transferKey: this.state.transferKey + 13
  778. });
  779. }}
  780. width="500px"
  781. style={{ color: "red" }}
  782. footer=""
  783. className="admin-desc-content"
  784. >
  785. <div>
  786. {" "}
  787. <Icon
  788. type="exclamation-circle-o"
  789. style={{ color: "red", fontSize: "16px" }}
  790. />
  791. <span
  792. style={{
  793. color: "red",
  794. fontSize: "16px",
  795. display: "inline-block",
  796. marginLeft: "10px",
  797. }}
  798. >
  799. 您确定移交法务?
  800. </span>
  801. </div>
  802. <div style={{ margin: "30px 0" }}>
  803. <Form onSubmit={this.handleSubmit} ref={this.formRef}>
  804. <Form.Item
  805. {...formItemLayout}
  806. label="请填写移交法务的原因"
  807. name="type"
  808. hasFeedback
  809. >
  810. <TextArea
  811. rows={4}
  812. onChange={(e) => {
  813. this.setState({
  814. remarks: e.target.value,
  815. });
  816. }}
  817. />
  818. </Form.Item>
  819. </Form>
  820. </div>
  821. <div style={{ display: "flex", justifyContent: "right" }}>
  822. <Button
  823. type="primary"
  824. loading={this.state.loading}
  825. onClick={() => this.transfer(this.state.orderNoTransfer)}
  826. >
  827. 提交
  828. </Button>
  829. <Button
  830. type="dashed"
  831. style={{ marginLeft: "15px" }}
  832. onClick={() => {
  833. this.setState({
  834. visibleTransfer: false,
  835. transferKey: this.state.transferKey + 13
  836. });
  837. }}
  838. >
  839. 取消
  840. </Button>
  841. </div>
  842. </Modal>
  843. </div>
  844. );
  845. }
  846. }
  847. export default PressMoney;