details.jsx 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920
  1. import React, { Component } from "react";
  2. import { Button, Form, message, Modal, Spin, Table, TagmTooltip } from "antd";
  3. import OrderItemStatus from "../../../../common/orderItemStatus";
  4. import EnterpriseNameChange from "../../../../common/enterpriseNameChange";
  5. import {
  6. getApprovedState,
  7. getCuikuan,
  8. getjiedian,
  9. getLiquidationStatus,
  10. getProcessStatus,
  11. splitUrl
  12. } from "../../../../tools";
  13. import ImgList from "../../../../common/imgList";
  14. import $ from "jquery/src/ajax";
  15. import ProjectDetailsReadOnly from "../../../../common/projectDetailsReadOnly";
  16. import NewEditProject from "../../../../common/projectOperation/newEditProject";
  17. import OrderRiZi from "@/orderRiZi.jsx";
  18. import OrderCoor from "../../../order/orderNew/changeComponent/orderCoor";
  19. import ContentUrl from "../../../order/orderNew/contentUrl";
  20. const FormItem = Form.Item;
  21. const formItemLayout = {
  22. labelCol: { span: 8 },
  23. wrapperCol: { span: 14 },
  24. };
  25. class Details extends Component {
  26. constructor(props) {
  27. super(props);
  28. this.state = {
  29. loading: false,
  30. columnsX: [
  31. {
  32. title: "业务项目名称",
  33. dataIndex: "commodityName",
  34. key: "commodityName",
  35. render: (text, record) => {
  36. return <span>{text}<span style={{ color: "red" }}>{record.patentTypeName}</span>{"-" + record.id}</span>
  37. }
  38. },
  39. {
  40. title: "项目类别",
  41. dataIndex: "cname",
  42. key: "cname",
  43. },
  44. {
  45. title: "项目数量",
  46. dataIndex: "commodityQuantity",
  47. key: "commodityQuantity",
  48. render: (text, record) => {
  49. if (record.splitStatus == 1) {
  50. return (
  51. <span>
  52. {text}{" "}
  53. <Tag
  54. color="#108ee9"
  55. onClick={(e) => {
  56. e.stopPropagation();
  57. this.showRes(record);
  58. }}
  59. >
  60. 已拆
  61. </Tag>
  62. </span>
  63. );
  64. } else {
  65. return text;
  66. }
  67. },
  68. },
  69. {
  70. title: "金额(万元)",
  71. dataIndex: "commodityPrice",
  72. key: "commodityPrice",
  73. },
  74. {
  75. title: "负责人",
  76. dataIndex: "contacts",
  77. key: "contacts",
  78. },
  79. {
  80. title: "负责人电话",
  81. dataIndex: "contactsMobile",
  82. key: "contactsMobile",
  83. },
  84. {
  85. title: "主要项目",
  86. dataIndex: "main",
  87. key: "main",
  88. render: (text) => {
  89. return text ? "是" : "否";
  90. },
  91. },
  92. {
  93. title: "总年限",
  94. dataIndex: "yearSum",
  95. key: "yearSum",
  96. render: (text, record) => {
  97. return (
  98. <div>{["", "一年", "二年", "三年", "四年", "五年"][text]}</div>
  99. );
  100. }
  101. },
  102. {
  103. title: "年限",
  104. dataIndex: "serviceLife",
  105. key: "serviceLife",
  106. render: (text, record) => {
  107. return (
  108. <div>{!!text && JSON.parse(text).toString()}</div>
  109. );
  110. }
  111. },
  112. {
  113. title: "本次派单",
  114. dataIndex: "serviceYear",
  115. key: "serviceYear",
  116. render: (text, record) => {
  117. return (
  118. <div>{!text ? "" : text}</div>
  119. );
  120. }
  121. },
  122. {
  123. title: "项目说明",
  124. dataIndex: "taskComment",
  125. key: "taskComment",
  126. render: (text) => {
  127. return (
  128. <Tooltip title={text}>
  129. <div
  130. style={{
  131. width: 100,
  132. overflow: "hidden",
  133. whiteSpace: "nowrap",
  134. textOverflow: "ellipsis",
  135. }}
  136. >{text}</div>
  137. </Tooltip>
  138. )
  139. },
  140. },
  141. ],
  142. ContactsListsNew: [
  143. {
  144. title: "项目名称",
  145. dataIndex: "commodityName",
  146. key: "commodityName",
  147. render: (text, record) => {
  148. return <span>{text + "-" + record.tid}</span>;
  149. },
  150. },
  151. {
  152. title: "项目分类",
  153. dataIndex: "projectType",
  154. key: "projectType",
  155. render: (text) => {
  156. let arr = this.state.dataSourceX || [];
  157. let str = "";
  158. for (let i = 0; i < arr.length; i++) {
  159. if (this.state.dataSourceX[i].sort == text) {
  160. str = this.state.dataSourceX[i].cname;
  161. return <span>{str}</span>;
  162. }
  163. }
  164. },
  165. },
  166. {
  167. title: "催款科目",
  168. dataIndex: "dunTypeName",
  169. key: "dunTypeName",
  170. render: (text, record) => {
  171. if (record.customizeName) {
  172. return text + record.customizeName;
  173. }
  174. return <span>{text}</span>;
  175. },
  176. },
  177. {
  178. title: "时间(天)",
  179. dataIndex: "waitDay",
  180. key: "waitDay",
  181. render: (text, record) => {
  182. if (record.dunTypeName) {
  183. if (record.customizeTimes) {
  184. return record.customizeTimes;
  185. }
  186. return <span>{text}</span>;
  187. }
  188. },
  189. },
  190. {
  191. title: "金额(万元)",
  192. dataIndex: "money",
  193. key: "money",
  194. render: (text, record) => {
  195. if (record.dunTypeName) {
  196. if (record.appropriationRatio) {
  197. let percent = Number(record.appropriationRatio * 100).toFixed(2);
  198. percent += "%";
  199. return <span>{percent}(拨款比例)</span>;
  200. } else {
  201. return <span>{text}</span>;
  202. }
  203. }
  204. },
  205. },
  206. {
  207. title: "服务年限",
  208. dataIndex: "startDate",
  209. key: "startDate",
  210. render: (text, record) => {
  211. if (record.dunTypeName) {
  212. return <span>{text}</span>;
  213. }
  214. },
  215. },
  216. {
  217. title: "催款状态",
  218. dataIndex: "status",
  219. key: "status",
  220. render: (text) => {
  221. return <span>{text == 1 ? "已启动" : "未启动"}</span>;
  222. },
  223. },
  224. ],
  225. ContactsLists: [
  226. {
  227. title: "催款科目",
  228. dataIndex: "dunSubject",
  229. key: "dunSubject",
  230. render: (text) => {
  231. return getjiedian(text);
  232. },
  233. },
  234. {
  235. title: "金额(万元)",
  236. dataIndex: "money",
  237. key: "money",
  238. },
  239. {
  240. title: "催款状态",
  241. dataIndex: "dunStatus",
  242. key: "dunStatus",
  243. render: (text) => {
  244. return getCuikuan(text);
  245. },
  246. },
  247. ],
  248. dataSourceX: [],
  249. contactList: [],
  250. dataInfor: {},
  251. totalCui: '',
  252. dataSourcerizhi: []
  253. }
  254. this.xiangqing = this.xiangqing.bind(this);
  255. this.xiangmu = this.xiangmu.bind(this);
  256. this.nextCancel = this.nextCancel.bind(this);
  257. this.jiedianNew = this.jiedianNew.bind(this);
  258. this.jiedian = this.jiedian.bind(this);
  259. this.tableRowClickX = this.tableRowClickX.bind(this);
  260. this.getOrderLog = this.getOrderLog.bind(this);
  261. this.closeOrderLog = this.closeOrderLog.bind(this);
  262. this.rizhi = this.rizhi.bind(this);
  263. }
  264. componentDidMount() {
  265. this.xiangqing();
  266. this.xiangmu();
  267. this.jiedian();
  268. this.jiedianNew();
  269. }
  270. //订单详情
  271. xiangqing() {
  272. this.setState({
  273. loading: true,
  274. });
  275. $.ajax({
  276. method: "get",
  277. dataType: "json",
  278. crossDomain: false,
  279. url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
  280. data: {
  281. orderNo: this.props.orderNo,
  282. },
  283. success: function (data) {
  284. if (data.error.length) {
  285. message.warning(data.error[0].message);
  286. } else {
  287. let thisdata = data.data;
  288. this.setState({
  289. orderUid: thisdata.uid,
  290. orderNo: thisdata.orderNo, //订单编号
  291. contractNo: thisdata.contractNo, //合同编号
  292. userName: thisdata.userName, //客户名称
  293. signDate: thisdata.signDate, //签单时间
  294. examineName: thisdata.examineName,
  295. processStatus: thisdata.processStatus, //流程状态
  296. liquidationStatus: thisdata.liquidationStatus, //结算状态
  297. contacts: thisdata.contacts, //企业联系人
  298. contactMobile: thisdata.contactMobile, //联系人电话
  299. legalPerson: thisdata.legalPerson, //法人
  300. legalPersonTel: thisdata.legalPersonTel, //法人电话
  301. firstAmount: thisdata.firstAmount, //签单金额
  302. totalAmount: thisdata.totalAmount, //首付金额
  303. approval: thisdata.approval, //特批状态
  304. settlementAmount: thisdata.settlementAmount, //已收款项
  305. orderRemarks: thisdata.orderRemarks, //订单留言
  306. orgCodeUrl: thisdata.contractPictureUrl
  307. ? splitUrl(
  308. thisdata.contractPictureUrl,
  309. ",",
  310. globalConfig.avatarHost + "/upload"
  311. )
  312. : [], //图片地址
  313. replenishUrl: thisdata.agreementUrl
  314. ? splitUrl(
  315. thisdata.agreementUrl,
  316. ",",
  317. globalConfig.avatarHost + "/upload"
  318. )
  319. : [], //图片地址
  320. contentUrl: thisdata.serviceContent
  321. ? splitUrl(
  322. thisdata.serviceContent,
  323. ",",
  324. globalConfig.avatarHost + "/upload"
  325. )
  326. : [], //图片地址
  327. salesmanName: thisdata.salesmanName, //营销员名称
  328. salesmanMobile: thisdata.salesmanMobile, //营销员电话
  329. oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
  330. oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
  331. financeName: thisdata.financeName, //财务名称
  332. financeMobile: thisdata.financeMobile, //财务电话
  333. nowFinance: thisdata.nowFinance, //财务名称
  334. nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
  335. depName: thisdata.depName,
  336. outsource: thisdata.outsource == 0 ? "否" : "是",
  337. deleteSign: thisdata.deleteSign,
  338. });
  339. }
  340. }.bind(this),
  341. }).always(
  342. function () {
  343. this.setState({
  344. loading: false,
  345. });
  346. }.bind(this)
  347. );
  348. }
  349. //项目列表
  350. xiangmu() {
  351. this.setState({
  352. xiangmuLoading: true,
  353. });
  354. $.ajax({
  355. method: "get",
  356. dataType: "json",
  357. crossDomain: false,
  358. url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
  359. data: {
  360. orderNo: this.props.orderNo,
  361. },
  362. success: function (data) {
  363. let theArr = [];
  364. if (data.error.length || data.data.list == "") {
  365. if (data.error && data.error.length) {
  366. message.warning(data.error[0].message);
  367. }
  368. } else {
  369. for (let i = 0; i < data.data.length; i++) {
  370. let thisdata = data.data[i];
  371. thisdata.key = i;
  372. thisdata.sort = thisdata.cSort;
  373. theArr.push(thisdata);
  374. }
  375. }
  376. this.setState({
  377. dataSourceX: theArr,
  378. });
  379. }.bind(this),
  380. }).always(
  381. function () {
  382. this.setState({
  383. xiangmuLoading: false,
  384. });
  385. }.bind(this)
  386. );
  387. }
  388. //点击打卡项目详情
  389. tableRowClickX(record) {
  390. this.setState({
  391. addnextVisible: true,
  392. dataInfor: record,
  393. });
  394. }
  395. //项目详情关闭
  396. nextCancel() {
  397. this.setState({
  398. addnextVisible: false,
  399. dataInfor: {},
  400. });
  401. }
  402. //节点列表
  403. jiedian() {
  404. this.setState({
  405. jiedianLoading: true,
  406. });
  407. $.ajax({
  408. method: "get",
  409. dataType: "json",
  410. crossDomain: false,
  411. url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
  412. data: {
  413. orderNo: this.props.orderNo,
  414. },
  415. success: function (data) {
  416. let theArr = [];
  417. let thisData = [];
  418. if (data.error.length || data.data.list == "") {
  419. if (data.error && data.error.length) {
  420. message.warning(data.error[0].message);
  421. }
  422. } else {
  423. for (let i = 0; i < data.data.length; i++) {
  424. thisData = data.data[i];
  425. theArr.push({
  426. key: i,
  427. dunSubject: thisData.dunSubject
  428. ? thisData.dunSubject.toString()
  429. : "", //催款科目
  430. id: thisData.id, //节点Id
  431. money: thisData.money, //催款金额
  432. dunStatus: thisData.dunStatus, //催款状态
  433. });
  434. }
  435. this.setState({
  436. contactList: theArr,
  437. });
  438. }
  439. }.bind(this),
  440. }).always(
  441. function () {
  442. this.setState({
  443. jiedianLoading: false,
  444. });
  445. }.bind(this)
  446. );
  447. }
  448. //查看催款节点
  449. jiedianNew() {
  450. this.setState({
  451. jiedianNewLoading: true,
  452. });
  453. $.ajax({
  454. method: "get",
  455. dataType: "json",
  456. crossDomain: false,
  457. url:
  458. globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun",
  459. data: {
  460. orderNo: this.props.orderNo,
  461. },
  462. success: function (data) {
  463. if (data.error && data.error.length) {
  464. message.warning(data.error[0].message);
  465. } else {
  466. let theArr = [];
  467. let thisData = [];
  468. let arr = data.data || [];
  469. let totalCui = 0;
  470. for (let i = 0; i < arr.length; i++) {
  471. thisData = arr[i];
  472. totalCui += +thisData.money;
  473. theArr.push({
  474. key: i,
  475. dunSubject: thisData.dunSubject
  476. ? thisData.dunSubject.toString()
  477. : "", //催款科目
  478. id: thisData.id, //节点Id
  479. money: thisData.money, //催款金额
  480. // orderNo: record ? record.orderNo : this.props.datauser.orderNo,
  481. commodityName: thisData.commodityName,
  482. projectType: thisData.projectType,
  483. dunTypeName: thisData.dunTypeName,
  484. status: thisData.status,
  485. waitDay: thisData.waitDay,
  486. effectiveCount: thisData.effectiveCount,
  487. startDate: thisData.startDate,
  488. dunType: thisData.dunType,
  489. appropriationRatio: thisData.appropriationRatio,
  490. customizeName: thisData.customizeName,
  491. customizeTimes: thisData.customizeTimes,
  492. tid: thisData.tid,
  493. });
  494. }
  495. if (!totalCui) {
  496. totalCui = 0;
  497. }
  498. totalCui = (Math.round(totalCui * 1000000) / 1000000).toFixed(6);
  499. this.setState({
  500. contactListNew: theArr,
  501. totalCui,
  502. });
  503. }
  504. }.bind(this),
  505. }).always(
  506. function () {
  507. this.setState({
  508. jiedianNewLoading: false,
  509. });
  510. }.bind(this)
  511. );
  512. }
  513. //查看订单日志
  514. getOrderLog() {
  515. this.setState({
  516. rizhivisible: true,
  517. });
  518. this.rizhi();
  519. }
  520. closeOrderLog() {
  521. this.setState({
  522. rizhivisible: false,
  523. dataSourcerizhi: []
  524. });
  525. }
  526. rizhi() {
  527. this.setState({
  528. rizhiLoading: true,
  529. });
  530. $.ajax({
  531. method: "get",
  532. dataType: "json",
  533. crossDomain: false,
  534. url: "/api/admin/newOrder/selectOrderLog",
  535. data: {
  536. orderNo: this.props.orderNo,
  537. },
  538. success: function (data) {
  539. let theArr = [];
  540. let thisData = data.data;
  541. if (!thisData.length) {
  542. if (data.error && data.error.length) {
  543. message.warning(data.error[0].message);
  544. }
  545. } else {
  546. for (let i = 0; i < data.data.length; i++) {
  547. let thisdata = data.data[i];
  548. theArr.push({
  549. processName: thisdata.processName,
  550. adminName: thisdata.adminName,
  551. createDate: thisdata.createDate,
  552. remarks: thisdata.remarks,
  553. });
  554. }
  555. }
  556. this.setState({
  557. dataSourcerizhi: theArr,
  558. });
  559. }.bind(this),
  560. }).always(
  561. function () {
  562. this.setState({
  563. rizhiLoading: false,
  564. });
  565. }.bind(this)
  566. );
  567. }
  568. render() {
  569. return (
  570. <Modal
  571. className="customeDetails"
  572. footer=""
  573. title="订单详情"
  574. width="1200px"
  575. visible={this.props.visible}
  576. onOk={this.props.onCancel}
  577. onCancel={this.props.onCancel}
  578. >
  579. <Form layout="horizontal" id="demand-form" style={{ paddingBottom: "40px" }}>
  580. <Spin spinning={this.state.loading}>
  581. <div className="clearfix">
  582. <div style={{ position: "absolute", top: '-52px', left: '81px', zIndex: 10000 }}>
  583. <OrderItemStatus deleteSign={this.state.deleteSign} />
  584. </div>
  585. <FormItem
  586. className="half-item"
  587. {...formItemLayout}
  588. label="订单编号"
  589. >
  590. <span>{this.state.orderNo}</span>
  591. </FormItem>
  592. <FormItem
  593. className="half-item"
  594. {...formItemLayout}
  595. label="合同编号"
  596. >
  597. <span>{this.state.contractNo}</span>
  598. </FormItem>
  599. <FormItem
  600. className="half-item"
  601. {...formItemLayout}
  602. label="客户名称"
  603. >
  604. <span>{this.state.userName}</span>
  605. <EnterpriseNameChange
  606. type='journal'
  607. style={{ marginLeft: 10 }}
  608. enterpriseId={this.state.orderUid} />
  609. </FormItem>
  610. <FormItem
  611. className="half-item"
  612. {...formItemLayout}
  613. label="合同签订时间"
  614. >
  615. <span>{this.state.signDate}</span>
  616. </FormItem>
  617. <FormItem
  618. className="half-item"
  619. {...formItemLayout}
  620. label="流程状态"
  621. >
  622. <span>{getProcessStatus(this.state.processStatus, this.state.examineName, this.state.approval)}</span>
  623. </FormItem>
  624. <FormItem
  625. className="half-item"
  626. {...formItemLayout}
  627. label="结算状态"
  628. >
  629. <span>
  630. {getLiquidationStatus(this.state.liquidationStatus)}
  631. </span>
  632. </FormItem>
  633. <FormItem
  634. className="half-item"
  635. {...formItemLayout}
  636. label="企业联系人"
  637. >
  638. <span>{this.state.contacts}</span>
  639. </FormItem>
  640. <FormItem
  641. className="half-item"
  642. {...formItemLayout}
  643. label="联系人电话"
  644. >
  645. <span>{this.state.contactMobile}</span>
  646. </FormItem>
  647. <FormItem
  648. className="half-item"
  649. {...formItemLayout}
  650. label="企业法人"
  651. >
  652. <span>{this.state.legalPerson}</span>
  653. </FormItem>
  654. <FormItem
  655. className="half-item"
  656. {...formItemLayout}
  657. label="法人电话"
  658. >
  659. <span>{this.state.legalPersonTel}</span>
  660. </FormItem>
  661. <FormItem
  662. className="half-item"
  663. {...formItemLayout}
  664. label="签单金额(万元)"
  665. >
  666. <span>{this.state.totalAmount}</span>
  667. </FormItem>
  668. <FormItem
  669. className="half-item"
  670. {...formItemLayout}
  671. label="首付金额(万元)"
  672. >
  673. <span>{this.state.firstAmount}</span>
  674. </FormItem>
  675. <FormItem
  676. className="half-item"
  677. {...formItemLayout}
  678. label="特批立项"
  679. >
  680. <span>{getApprovedState(this.state.approval)}</span>
  681. </FormItem>
  682. <FormItem
  683. className="half-item"
  684. {...formItemLayout}
  685. label="已收款项(万元)"
  686. >
  687. <span>{this.state.settlementAmount}</span>
  688. </FormItem>
  689. <FormItem
  690. className="half-item"
  691. {...formItemLayout}
  692. label="订单部门"
  693. >
  694. <span>{this.state.depName}</span>
  695. </FormItem>
  696. <FormItem
  697. className="half-item"
  698. {...formItemLayout}
  699. label="是否外包"
  700. >
  701. {this.state.outsource}
  702. </FormItem>
  703. <div className="clearfix">
  704. <FormItem
  705. labelCol={{ span: 4 }}
  706. wrapperCol={{ span: 16 }}
  707. label="订单留言"
  708. >
  709. <span>{this.state.orderRemarks}</span>
  710. </FormItem>
  711. </div>
  712. <div className="clearfix">
  713. <FormItem
  714. labelCol={{ span: 4 }}
  715. wrapperCol={{ span: 18 }}
  716. label={"合同扫描件"}
  717. >
  718. <div style={{ paddingTop: '10px', paddingBottom: '10px' }}>
  719. {this.props.visible && this.state.orgCodeUrl ? <ImgList fileList={this.state.orgCodeUrl} ItemWidth={'96px'} /> : <div />}
  720. </div>
  721. <Button
  722. style={{
  723. float: "right",
  724. marginRight: "140px",
  725. marginTop: "20px",
  726. }}
  727. onClick={this.getOrderLog}
  728. >
  729. 查看订单 日志
  730. </Button>
  731. </FormItem>
  732. <FormItem
  733. labelCol={{ span: 4 }}
  734. wrapperCol={{ span: 18 }}
  735. label="补充协议"
  736. >
  737. <div style={{ paddingTop: '10px', paddingBottom: '10px' }}>
  738. {this.props.visible && this.state.replenishUrl ? <ImgList domId={'inquiry1'} fileList={this.state.replenishUrl} ItemWidth={'96px'} /> : <div />}
  739. </div>
  740. </FormItem>
  741. </div>
  742. <ContentUrl
  743. processStatus={2}
  744. domId={"detailContent"}
  745. contentUrl={this.state.contentUrl}
  746. imgId={"detailContentImg"}
  747. />
  748. <div className="clearfix">
  749. <FormItem
  750. className="half-item"
  751. {...formItemLayout}
  752. label="订单负责人"
  753. >
  754. <span>{this.state.salesmanName}</span>
  755. </FormItem>
  756. <FormItem
  757. className="half-item"
  758. {...formItemLayout}
  759. label="订单负责人电话"
  760. >
  761. <span>{this.state.salesmanMobile}</span>
  762. </FormItem>
  763. </div>
  764. <div className="clearfix">
  765. <FormItem
  766. className="half-item"
  767. {...formItemLayout}
  768. label="当前财务负责人"
  769. >
  770. <span>{this.state.nowFinance}</span>
  771. </FormItem>
  772. <FormItem
  773. className="half-item"
  774. {...formItemLayout}
  775. label="当前财务负责人电话"
  776. >
  777. <span>{this.state.nowFinanceMobile}</span>
  778. </FormItem>
  779. </div>
  780. <div className="clearfix">
  781. <FormItem
  782. className="half-item"
  783. {...formItemLayout}
  784. style={{ opacity: ".5" }}
  785. label="原订单负责人"
  786. >
  787. <span>{this.state.oldSalesmanName}</span>
  788. </FormItem>
  789. <FormItem
  790. className="half-item"
  791. {...formItemLayout}
  792. style={{ opacity: ".5" }}
  793. label="原订单负责人电话"
  794. >
  795. <span>{this.state.oldSalesmanMobile}</span>
  796. </FormItem>
  797. </div>
  798. <div className="clearfix">
  799. <FormItem
  800. className="half-item"
  801. style={{ opacity: ".5" }}
  802. {...formItemLayout}
  803. label="实际财务操作人"
  804. >
  805. <span>{this.state.financeName}</span>
  806. </FormItem>
  807. <FormItem
  808. className="half-item"
  809. {...formItemLayout}
  810. style={{ opacity: ".5" }}
  811. label="实际财务操作人电话"
  812. >
  813. <span>{this.state.financeMobile}</span>
  814. </FormItem>
  815. </div>
  816. {/* */}
  817. <OrderCoor orderNo={this.props.orderNo} />
  818. <div>
  819. <span style={{ marginLeft: "50px", fontSize: "20px" }}>
  820. 项目业务
  821. </span>
  822. </div>
  823. <div className="patent-table">
  824. <Spin spinning={this.state.xiangmuLoading}>
  825. <Table
  826. columns={this.state.columnsX}
  827. dataSource={this.state.dataSourceX}
  828. pagination={false}
  829. onRowClick={this.tableRowClickX}
  830. bordered
  831. size="small"
  832. />
  833. </Spin>
  834. </div>
  835. <div>
  836. <span style={{ marginLeft: "50px", fontSize: "20px" }}>
  837. 催款节点
  838. </span>
  839. <span
  840. style={{
  841. display: this.state.contactList.length ? "none" : "inline-block",
  842. marginLeft: 10,
  843. color: "red",
  844. }}
  845. >
  846. 金额总计(万元): {this.state.totalCui}
  847. </span>
  848. </div>
  849. <div className="clearfix">
  850. <Spin spinning={
  851. this.state.contactList.length ?
  852. this.state.jiedianLoading :
  853. this.state.jiedianNewLoading
  854. }>
  855. <Form layout="horizontal" id="demand-form">
  856. <Table
  857. pagination={false}
  858. bordered
  859. size="small"
  860. columns={
  861. this.state.contactList.length
  862. ? this.state.ContactsLists
  863. : this.state.ContactsListsNew
  864. }
  865. dataSource={
  866. this.state.contactList.length
  867. ? this.state.contactList
  868. : this.state.contactListNew
  869. }
  870. />
  871. </Form>
  872. </Spin>
  873. </div>
  874. </div>
  875. </Spin>
  876. </Form>
  877. <OrderRiZi
  878. dataSourcerizhi={this.state.dataSourcerizhi}
  879. closeOrderLog={this.closeOrderLog}
  880. visible={this.state.rizhivisible}
  881. loading={this.state.rizhiLoading}
  882. />
  883. {/* {this.state.addnextVisible && <ProjectDetailsReadOnly
  884. infor={this.state.dataInfor}
  885. visible={this.state.addnextVisible}
  886. onCancel={this.nextCancel}
  887. />} */}
  888. {
  889. // 项目业务详情
  890. this.state.addnextVisible &&
  891. <NewEditProject
  892. readOnly={true}
  893. visible={this.state.addnextVisible}
  894. dataInfor={this.state.dataInfor}
  895. onCancel={this.nextCancel}
  896. />
  897. }
  898. </Modal>
  899. )
  900. }
  901. }
  902. export default Details;