orderDetail.jsx 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985
  1. import React from 'react';
  2. import $ from 'jquery/src/ajax';
  3. import {
  4. Modal,
  5. message,
  6. Spin,
  7. Upload,
  8. Button,
  9. Form,
  10. Table,
  11. Col
  12. } from 'antd';
  13. import {
  14. getjiedian,
  15. splitUrl,
  16. getNewOrderType,
  17. getProcessStatus,
  18. getApproval,
  19. getLiquidationStatus,
  20. getProjectStatus,
  21. getCuikuan
  22. } from "@/tools";
  23. import OrderRiZi from "@/orderRiZi.jsx";
  24. const OrderDetail = Form.create()(
  25. React.createClass({
  26. loadXmu(record) {
  27. this.state.data = [];
  28. this.setState({
  29. loading: true
  30. });
  31. $.ajax({
  32. method: "get",
  33. dataType: "json",
  34. crossDomain: false,
  35. url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
  36. data: {
  37. orderNo: record ? record.orderNo : this.props.data.orderNo
  38. },
  39. success: function(data) {
  40. let theArr = [];
  41. if (!data.data) {
  42. if (data.error && data.error.length) {
  43. message.warning(data.error[0].message);
  44. }
  45. } else {
  46. for (let i = 0; i < data.data.length; i++) {
  47. let thisdata = data.data[i];
  48. theArr.push({
  49. key: i,
  50. id: thisdata.id,
  51. orderNo: thisdata.orderNo,
  52. commodityName: thisdata.commodityName,
  53. commodityPrice: thisdata.commodityPrice,
  54. commodityQuantity: thisdata.commodityQuantity,
  55. taskStatus: thisdata.taskStatus,
  56. taskComment: thisdata.taskComment,
  57. main: thisdata.main,
  58. contacts: thisdata.contacts,
  59. contactsMobile: thisdata.contactsMobile,
  60. cname: thisdata.cname,
  61. certificateNumber: thisdata.certificateNumber,
  62. projectStatus: thisdata.projectStatus,
  63. sort: thisdata.cSort
  64. });
  65. }
  66. }
  67. this.setState({
  68. dataSource: theArr,
  69. pagination: false
  70. });
  71. }.bind(this)
  72. }).always(
  73. function() {
  74. this.setState({
  75. loading: false
  76. });
  77. }.bind(this)
  78. );
  79. },
  80. getInitialState() {
  81. return {
  82. rotateDeg: 0,
  83. visible: false,
  84. avisible: false,
  85. loading: false,
  86. jsDate: [],
  87. auditStatus: 0,
  88. textFileList: [],
  89. videoFileList: [],
  90. pictureUrl: [],
  91. pictureUrlMin: [],
  92. columns: [
  93. {
  94. title: "业务项目名称",
  95. dataIndex: "commodityName",
  96. key: "commodityName",
  97. render: text => {
  98. return text && text.length > 6 ? (
  99. <span title={text}>{text.substr(0, 8)}...</span>
  100. ) : (
  101. text
  102. );
  103. }
  104. },
  105. {
  106. title: "项目类别",
  107. dataIndex: "cname",
  108. key: "cname"
  109. },
  110. {
  111. title: "项目数量(个)",
  112. dataIndex: "commodityQuantity",
  113. key: "commodityQuantity"
  114. },
  115. {
  116. title: "服务市价(万元)",
  117. dataIndex: "commodityPrice",
  118. key: "commodityPrice"
  119. },
  120. {
  121. title: "项目状态",
  122. dataIndex: "projectStatus",
  123. key: "projectStatus",
  124. render: text => {
  125. return getProjectStatus(text);
  126. }
  127. },
  128. {
  129. title: "证书编号",
  130. dataIndex: "certificateNumber",
  131. key: "certificateNumber"
  132. },
  133. {
  134. title: "是否主要项目",
  135. dataIndex: "main",
  136. key: "main",
  137. render: text => {
  138. return text ? "是" : "否";
  139. }
  140. },
  141. {
  142. title: "项目说明",
  143. dataIndex: "taskComment",
  144. key: "taskComment",
  145. render: text => {
  146. return text && text.length > 8 ? (
  147. <span title={text}>{text.substr(0, 8)}...</span>
  148. ) : (
  149. text
  150. );
  151. }
  152. }
  153. ],
  154. columnsX: [
  155. {
  156. title: "流程",
  157. dataIndex: "processName",
  158. key: "processName"
  159. },
  160. {
  161. title: "操作人",
  162. dataIndex: "adminName",
  163. key: "adminName"
  164. },
  165. {
  166. title: "时间",
  167. dataIndex: "createDate",
  168. key: "createDate"
  169. }
  170. ],
  171. ContactsListsNew: [
  172. {
  173. title: "项目名称",
  174. dataIndex: "commodityName",
  175. key: "commodityName",
  176. render: text => {
  177. return <span>{text}</span>;
  178. }
  179. },
  180. {
  181. title: "项目分类",
  182. dataIndex: "projectType",
  183. key: "projectType",
  184. render: text => {
  185. let arr = this.state.dataSource || [];
  186. let str = "";
  187. for (let i = 0; i < arr.length; i++) {
  188. if (this.state.dataSource[i].sort == text) {
  189. str = this.state.dataSource[i].cname;
  190. return <span>{str}</span>;
  191. }
  192. }
  193. }
  194. },
  195. {
  196. title: "催款科目",
  197. dataIndex: "dunTypeName",
  198. key: "dunTypeName",
  199. render: text => {
  200. return <span>{text}</span>;
  201. }
  202. },
  203. {
  204. title: "时间",
  205. dataIndex: "waitDay",
  206. key: "waitDay",
  207. render: (text, record) => {
  208. if (record.dunTypeName) {
  209. return <span>{text}</span>;
  210. }
  211. }
  212. },
  213. {
  214. title: "金额(万)",
  215. dataIndex: "money",
  216. key: "money",
  217. render: (text, record) => {
  218. if (record.dunTypeName) {
  219. return <span>{text}</span>;
  220. }
  221. }
  222. },
  223. {
  224. title: "服务年限",
  225. dataIndex: "startDate",
  226. key: "startDate",
  227. render: (text, record) => {
  228. if (record.dunTypeName) {
  229. return <span>{text}</span>;
  230. }
  231. }
  232. },
  233. {
  234. title: "催款状态",
  235. dataIndex: "status",
  236. key: "status",
  237. render: text => {
  238. return <span>{text == 1 ? "已启动" : "未启动"}</span>;
  239. }
  240. }
  241. ],
  242. ContactsLists: [
  243. {
  244. title: "催款科目",
  245. dataIndex: "dunSubject",
  246. key: "dunSubject",
  247. render: text => {
  248. return getjiedian(text);
  249. }
  250. },
  251. {
  252. title: "金额(万)",
  253. dataIndex: "money",
  254. key: "money"
  255. },
  256. {
  257. title: "催款状态",
  258. dataIndex: "dunStatus",
  259. key: "dunStatus",
  260. render: text => {
  261. return getCuikuan(text);
  262. }
  263. }
  264. ]
  265. };
  266. },
  267. loadData(record) {
  268. this.state.orderList = [];
  269. $.ajax({
  270. method: "get",
  271. dataType: "json",
  272. crossDomain: false,
  273. url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
  274. data: {
  275. orderNo: record ? record.orderNo : this.props.data.orderNo
  276. },
  277. success: function(data) {
  278. let thisData = data.data;
  279. if (!thisData) {
  280. if (data.error && data.error.length) {
  281. message.warning(data.error[0].message);
  282. }
  283. thisData = {};
  284. }
  285. this.setState({
  286. id: thisData.id,
  287. orderList: thisData,
  288. approval:
  289. thisData.approval == 0
  290. ? thisData.approval.toString()
  291. : thisData.approval,
  292. orderRemarks: thisData.orderRemarks,
  293. orgCodeUrl: thisData.contractPictureUrl
  294. ? splitUrl(
  295. thisData.contractPictureUrl,
  296. ",",
  297. globalConfig.avatarHost + "/upload"
  298. )
  299. : [],
  300. orderNo: thisData.orderNo, //订单编号
  301. buyerId: thisData.buyerId,
  302. depName: thisData.depName,
  303. outsource: thisData.outsource == 0 ? "否" : "是"
  304. });
  305. }.bind(this)
  306. }).always(
  307. function() {
  308. this.setState({
  309. loading: false
  310. });
  311. }.bind(this)
  312. );
  313. },
  314. jdDate(record) {
  315. $.ajax({
  316. method: "get",
  317. dataType: "json",
  318. crossDomain: false,
  319. url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
  320. data: {
  321. orderNo: record ? record.orderNo : this.props.data.orderNo
  322. },
  323. success: function(data) {
  324. let thisData = data.data;
  325. if (!thisData.length) {
  326. if (data.error && data.error.length) {
  327. message.warning(data.error[0].message);
  328. }
  329. thisData = {};
  330. } else {
  331. this.setState({
  332. jsDate: thisData
  333. });
  334. }
  335. }.bind(this)
  336. }).always(
  337. function() {
  338. this.setState({
  339. loading: false
  340. });
  341. }.bind(this)
  342. );
  343. },
  344. rizhi() {
  345. this.setState({
  346. loading: true
  347. });
  348. $.ajax({
  349. method: "get",
  350. dataType: "json",
  351. crossDomain: false,
  352. url: "/api/admin/newOrder/selectOrderLog",
  353. data: {
  354. orderNo: this.props.data.orderNo
  355. },
  356. success: function(data) {
  357. let theArr = [];
  358. let thisData = data.data;
  359. if (!thisData.length) {
  360. if (data.error && data.error.length) {
  361. message.warning(data.error[0].message);
  362. }
  363. thisData = {};
  364. } else {
  365. for (let i = 0; i < data.data.length; i++) {
  366. let thisdata = data.data[i];
  367. theArr.push({
  368. processName: thisdata.processName,
  369. adminName: thisdata.adminName,
  370. createDate: thisdata.createDate,
  371. remarks: thisdata.remarks
  372. });
  373. }
  374. }
  375. this.setState({
  376. dataSourceX: theArr
  377. });
  378. }.bind(this)
  379. }).always(
  380. function() {
  381. this.setState({
  382. loading: false
  383. });
  384. }.bind(this)
  385. );
  386. },
  387. getOrderLog() {
  388. this.setState({
  389. avisible: true
  390. });
  391. this.rizhi();
  392. },
  393. closeOrderLog() {
  394. this.setState({
  395. avisible: false
  396. });
  397. },
  398. getPictureUrl(e) {
  399. this.setState({ pictureUrl: e });
  400. },
  401. componentWillMount() {
  402. if (this.props.data.orderNo) {
  403. this.loadData();
  404. this.loadXmu();
  405. this.jdDate();
  406. this.jiedian(this.props.data.orderNo);
  407. this.jiedianNew(this.props.data.orderNo);
  408. } else {
  409. this.state.data = {};
  410. }
  411. },
  412. componentWillReceiveProps(nextProps) {
  413. if (!this.props.visible && nextProps.visible) {
  414. this.state.textFileList = [];
  415. this.state.videoFileList = [];
  416. if (nextProps.data.orderNo) {
  417. this.loadData(nextProps.data);
  418. this.loadXmu(nextProps.data);
  419. this.jdDate(nextProps.data);
  420. this.jiedian(nextProps.data.orderNo);
  421. this.jiedianNew(nextProps.data.orderNo);
  422. } else {
  423. this.state.data = {};
  424. this.state.pictureUrl = [];
  425. this.state.pictureUrlMin = [];
  426. }
  427. this.props.form.resetFields();
  428. }
  429. },
  430. downImg() {
  431. let num = 0;
  432. for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
  433. if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
  434. num = i;
  435. }
  436. }
  437. if (num == this.state.orgCodeUrl.length - 1) {
  438. return message.warning("已经是最后一张了哦");
  439. }
  440. this.state.previewImage = this.state.orgCodeUrl[num + 1].url;
  441. this.setState({
  442. previewImage: this.state.previewImage,
  443. rotateDeg: 0
  444. });
  445. },
  446. upImg() {
  447. let num = 0;
  448. for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
  449. if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
  450. num = i;
  451. }
  452. }
  453. if (num == 0) {
  454. return message.warning("已经是第一张了哦");
  455. }
  456. this.state.previewImage = this.state.orgCodeUrl[num - 1].url;
  457. this.setState({
  458. previewImage: this.state.previewImage,
  459. rotateDeg: 0
  460. });
  461. },
  462. rotate() {
  463. let rotateDeg = this.state.rotateDeg + 90;
  464. this.setState({
  465. rotateDeg
  466. });
  467. },
  468. //节点列表
  469. jiedian(orderNos) {
  470. $.ajax({
  471. method: "get",
  472. dataType: "json",
  473. crossDomain: false,
  474. url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
  475. data: {
  476. orderNo: orderNos
  477. },
  478. success: function(data) {
  479. let theArr = [];
  480. let thisData = [];
  481. if (data.error.length || data.data.list == "") {
  482. if (data.error && data.error.length) {
  483. message.warning(data.error[0].message);
  484. }
  485. } else {
  486. for (let i = 0; i < data.data.length; i++) {
  487. thisData = data.data[i];
  488. theArr.push({
  489. key: i,
  490. dunSubject: thisData.dunSubject
  491. ? thisData.dunSubject.toString()
  492. : "", //催款科目
  493. id: thisData.id, //节点Id
  494. money: thisData.money, //催款金额
  495. dunStatus: thisData.dunStatus, //催款状态
  496. orderNo: thisData.orderNo
  497. });
  498. }
  499. this.setState({
  500. contactList: theArr
  501. });
  502. }
  503. }.bind(this)
  504. }).always(
  505. function() {
  506. this.setState({
  507. loading: false
  508. });
  509. }.bind(this)
  510. );
  511. },
  512. //查看催款节点
  513. jiedianNew(orderNos) {
  514. $.ajax({
  515. method: "get",
  516. dataType: "json",
  517. crossDomain: false,
  518. url:
  519. globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun",
  520. data: {
  521. orderNo: orderNos
  522. },
  523. success: function(data) {
  524. let theArr = [];
  525. let thisData = [];
  526. if (!thisData) {
  527. if (data.error && data.error.length) {
  528. message.warning(data.error[0].message);
  529. }
  530. thisData = {};
  531. } else {
  532. for (let i = 0; i < data.data.length; i++) {
  533. thisData = data.data[i];
  534. theArr.push({
  535. key: i,
  536. dunSubject: thisData.dunSubject
  537. ? thisData.dunSubject.toString()
  538. : "", //催款科目
  539. id: thisData.id, //节点Id
  540. money: thisData.money, //催款金额
  541. // orderNo: record ? record.orderNo : this.props.datauser.orderNo,
  542. commodityName: thisData.commodityName,
  543. projectType: thisData.projectType,
  544. dunTypeName: thisData.dunTypeName,
  545. status: thisData.status,
  546. waitDay: thisData.waitDay,
  547. effectiveCount: thisData.effectiveCount,
  548. startDate: thisData.startDate
  549. });
  550. }
  551. this.setState({
  552. contactListNew: theArr
  553. });
  554. }
  555. }.bind(this)
  556. }).always(
  557. function() {
  558. this.setState({
  559. loading: false
  560. });
  561. }.bind(this)
  562. );
  563. },
  564. render() {
  565. const theData = this.state.orderList || {};
  566. const FormItem = Form.Item;
  567. const formItemLayout = {
  568. labelCol: { span: 10 },
  569. wrapperCol: { span: 12 }
  570. };
  571. const jsDate = this.state.jsDate || [];
  572. const cuiDataList = this.state.contactList || [];
  573. return (
  574. <div className="login">
  575. <Form layout="horizontal" id="demand-form">
  576. <Spin spinning={this.state.loading}>
  577. <div className="clearfix">
  578. <FormItem
  579. className="half-item"
  580. {...formItemLayout}
  581. label="订单编号"
  582. >
  583. <span>{theData.orderNo}</span>
  584. </FormItem>
  585. <FormItem
  586. className="half-item"
  587. {...formItemLayout}
  588. label="签单时间"
  589. >
  590. <span>{theData.signDate}</span>
  591. </FormItem>
  592. <FormItem
  593. className="half-item"
  594. {...formItemLayout}
  595. label="客户名称"
  596. >
  597. <span>{theData.userName}</span>
  598. </FormItem>
  599. <FormItem
  600. className="half-item"
  601. {...formItemLayout}
  602. label="流转状态"
  603. >
  604. <span>{getProcessStatus(theData.processStatus)}</span>
  605. </FormItem>
  606. <FormItem
  607. className="half-item"
  608. {...formItemLayout}
  609. label="订单类型"
  610. >
  611. <span>{getNewOrderType(theData.orderType)}</span>
  612. </FormItem>
  613. <FormItem
  614. className="half-item"
  615. {...formItemLayout}
  616. label="结算状态"
  617. >
  618. <span>{getLiquidationStatus(theData.liquidationStatus)}</span>
  619. </FormItem>
  620. <FormItem
  621. className="half-item"
  622. {...formItemLayout}
  623. label="签单总金额(万元)"
  624. >
  625. <span>{theData.totalAmount}</span>
  626. </FormItem>
  627. <FormItem
  628. className="half-item"
  629. {...formItemLayout}
  630. label="首付款(万元)"
  631. >
  632. <span>{theData.firstAmount}</span>
  633. </FormItem>
  634. <FormItem
  635. className="half-item"
  636. {...formItemLayout}
  637. label="已收款(万元)"
  638. >
  639. <span>{theData.settlementAmount}</span>
  640. </FormItem>
  641. <FormItem
  642. className="half-item"
  643. {...formItemLayout}
  644. label="是否特批"
  645. >
  646. <span>{getApproval(theData.approval)}</span>
  647. </FormItem>
  648. <FormItem
  649. className="half-item"
  650. {...formItemLayout}
  651. label="是否外包"
  652. >
  653. <span>{this.state.outsource}</span>
  654. </FormItem>
  655. {this.props.data.orderStatus == "6" && (
  656. <FormItem
  657. className="half-item"
  658. {...formItemLayout}
  659. label="已退(万元)"
  660. >
  661. <span>{this.props.data.refundAmount}</span>
  662. </FormItem>
  663. )}
  664. </div>
  665. <div className="clearfix">
  666. <FormItem
  667. labelCol={{ span: 5 }}
  668. wrapperCol={{ span: 18 }}
  669. label="合同扫描件"
  670. >
  671. <Upload
  672. className="demandDetailShow-upload"
  673. listType="picture-card"
  674. fileList={this.state.orgCodeUrl}
  675. onPreview={file => {
  676. this.setState({
  677. previewImage: file.url || file.thumbUrl,
  678. previewVisible: true
  679. });
  680. }}
  681. ></Upload>
  682. <Modal
  683. maskClosable={false}
  684. footer={null}
  685. visible={this.state.previewVisible}
  686. onCancel={() => {
  687. this.setState({ previewVisible: false, rotateDeg: 0 });
  688. }}
  689. >
  690. <div
  691. onClick={this.upImg}
  692. className="up-btn"
  693. style={{
  694. cursor: "pointer",
  695. transition: "all .5s",
  696. opacity: ".2",
  697. width: "41px",
  698. height: "69px",
  699. backgroundColor: "rgba(0,0,0,.5)",
  700. position: "absolute",
  701. top: "50%",
  702. left: 16,
  703. transform: "translateY(-50%)",
  704. zIndex: 1
  705. }}
  706. >
  707. <span
  708. style={{
  709. position: "absolute",
  710. border: "1px solid #fff",
  711. width: "20px",
  712. height: "20px",
  713. left: "60%",
  714. top: "50%",
  715. transform: "translate(-50%, -50%) rotate(45deg)",
  716. borderTop: "none",
  717. borderRight: "none"
  718. }}
  719. ></span>
  720. </div>
  721. <div
  722. onClick={this.rotate}
  723. style={{
  724. textAlign: "center",
  725. lineHeight: "30px",
  726. color: "#000",
  727. cursor: "pointer",
  728. transition: "all .5s",
  729. width: "50px",
  730. height: "30px",
  731. backgroundColor: "white",
  732. position: "absolute",
  733. bottom: "-30",
  734. left: "50%",
  735. transform: "translateX(-50%)",
  736. zIndex: 1,
  737. borderRadius: "5px",
  738. border: "1px solid #ccc"
  739. }}
  740. >
  741. 旋转
  742. </div>
  743. <div
  744. onClick={this.downImg}
  745. className="up-btn"
  746. style={{
  747. cursor: "pointer",
  748. transition: "all .5s",
  749. opacity: ".2",
  750. width: "41px",
  751. height: "69px",
  752. backgroundColor: "rgba(0,0,0,.5)",
  753. position: "absolute",
  754. top: "50%",
  755. right: 16,
  756. transform: "translateY(-50%)",
  757. zIndex: 1
  758. }}
  759. >
  760. <span
  761. style={{
  762. position: "absolute",
  763. border: "1px solid #fff",
  764. width: "20px",
  765. height: "20px",
  766. left: "40%",
  767. top: "50%",
  768. transform: "translate(-50%, -50%) rotate(225deg)",
  769. borderTop: "none",
  770. borderRight: "none"
  771. }}
  772. ></span>
  773. </div>
  774. <img
  775. alt=""
  776. style={{
  777. width: "100%",
  778. transform: `rotate(${this.state.rotateDeg}deg)`
  779. }}
  780. src={this.state.previewImage || ""}
  781. />
  782. </Modal>
  783. <Button
  784. style={{
  785. float: "right",
  786. marginRight: "140px",
  787. marginTop: "20px"
  788. }}
  789. onClick={this.getOrderLog}
  790. >
  791. 查看订单日志
  792. </Button>
  793. </FormItem>
  794. </div>
  795. <div className="clearfix">
  796. <FormItem
  797. className="half-item"
  798. {...formItemLayout}
  799. label="合同编号"
  800. >
  801. <span>{theData.contractNo}</span>
  802. </FormItem>
  803. <FormItem
  804. className="half-item"
  805. {...formItemLayout}
  806. label="订单部门"
  807. >
  808. <span>{theData.depName}</span>
  809. </FormItem>
  810. </div>
  811. <div className="clearfix">
  812. <FormItem
  813. labelCol={{ span: 5 }}
  814. wrapperCol={{ span: 18 }}
  815. label="订单留言"
  816. >
  817. <p style={{ maxWidth: 500, wordWrap: "break-word" }}>
  818. {this.state.orderRemarks}
  819. </p>
  820. </FormItem>
  821. </div>
  822. {/* <div className="clearfix">
  823. <FormItem
  824. labelCol={{ span: 5 }}
  825. wrapperCol={{ span: 18 }}
  826. label="收款节点"
  827. >
  828. {jsDate.map(item => {
  829. return (
  830. <p>
  831. {getjiedian(item.dunSubject)} -- {item.money} 万元
  832. </p>
  833. );
  834. })}
  835. </FormItem>
  836. </div> */}
  837. <div className="clearfix">
  838. <FormItem
  839. className="half-item"
  840. {...formItemLayout}
  841. label="订单负责人"
  842. >
  843. <span>{theData.salesmanName}</span>
  844. </FormItem>
  845. <FormItem
  846. className="half-item"
  847. {...formItemLayout}
  848. label="订单负责人电话"
  849. >
  850. <span>{theData.salesmanMobile}</span>
  851. </FormItem>
  852. <FormItem
  853. className="half-item"
  854. {...formItemLayout}
  855. label="当前财务负责人"
  856. >
  857. <span>{theData.nowFinance}</span>
  858. </FormItem>
  859. <FormItem
  860. className="half-item"
  861. {...formItemLayout}
  862. label="当前财务负责人电话"
  863. >
  864. <span>{theData.nowFinanceMobile}</span>
  865. </FormItem>
  866. <FormItem
  867. className="half-item"
  868. {...formItemLayout}
  869. style={{ opacity: ".5" }}
  870. label="原订单负责人"
  871. >
  872. <span>{theData.oldSalesmanName}</span>
  873. </FormItem>
  874. <FormItem
  875. className="half-item"
  876. {...formItemLayout}
  877. style={{ opacity: ".5" }}
  878. label="原订单负责人电话"
  879. >
  880. <span>{theData.oldSalesmanMobile}</span>
  881. </FormItem>
  882. <FormItem
  883. className="half-item"
  884. {...formItemLayout}
  885. style={{ opacity: ".5" }}
  886. label="实际财务操作人"
  887. >
  888. <span>{theData.financeName}</span>
  889. </FormItem>
  890. <FormItem
  891. className="half-item"
  892. {...formItemLayout}
  893. style={{ opacity: ".5" }}
  894. label="实际财务操作人电话"
  895. >
  896. <span>{theData.financeMobile}</span>
  897. </FormItem>
  898. </div>
  899. {/* <Modal
  900. visible={this.state.avisible}
  901. className="admin-desc-content"
  902. width="800px"
  903. maskClosable={false}
  904. title="订单日志"
  905. footer={null}
  906. onCancel={this.closeOrderLog}
  907. >
  908. <div className="patent-table">
  909. <Spin spinning={this.state.loading}>
  910. <Table
  911. columns={this.state.columnsX}
  912. dataSource={this.state.dataSourceX}
  913. pagination={false}
  914. />
  915. </Spin>
  916. </div>
  917. </Modal> */}
  918. <OrderRiZi
  919. dataSourcerizhi={this.state.dataSourceX}
  920. closeOrderLog={this.closeOrderLog}
  921. visible={this.state.avisible}
  922. loading={this.state.loading}
  923. />
  924. <div className="clearfix" style={{ marginBottom: 10 }}>
  925. <p style={{ fontSize: 18, marginLeft: 20 }}>项目业务</p>
  926. <div className="patent-table">
  927. <Spin spinning={this.state.loading}>
  928. <Table
  929. columns={this.state.columns}
  930. dataSource={this.state.dataSource}
  931. pagination={this.state.pagination}
  932. onRowClick={this.tableRowClick}
  933. bordered
  934. size="small"
  935. />
  936. </Spin>
  937. </div>
  938. </div>
  939. <div>
  940. <span style={{ marginLeft: 20, fontSize: "18px", }}>
  941. 催款节点
  942. </span>
  943. </div>
  944. <div className="clearfix">
  945. <Spin spinning={this.state.loading}>
  946. <Form layout="horizontal" id="demand-form">
  947. <Table
  948. pagination={false}
  949. bordered
  950. size="small"
  951. columns={
  952. cuiDataList.length
  953. ? this.state.ContactsLists
  954. : this.state.ContactsListsNew
  955. }
  956. dataSource={
  957. cuiDataList.length
  958. ? this.state.contactList
  959. : this.state.contactListNew
  960. }
  961. />
  962. <Col
  963. span={24}
  964. offset={9}
  965. style={{ marginTop: "15px" }}
  966. ></Col>
  967. </Form>
  968. </Spin>
  969. </div>
  970. </Spin>
  971. </Form>
  972. </div>
  973. );
  974. }
  975. })
  976. );
  977. export default OrderDetail;