details.jsx 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919
  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. processStatus: thisdata.processStatus, //流程状态
  295. liquidationStatus: thisdata.liquidationStatus, //结算状态
  296. contacts: thisdata.contacts, //企业联系人
  297. contactMobile: thisdata.contactMobile, //联系人电话
  298. legalPerson: thisdata.legalPerson, //法人
  299. legalPersonTel: thisdata.legalPersonTel, //法人电话
  300. firstAmount: thisdata.firstAmount, //签单金额
  301. totalAmount: thisdata.totalAmount, //首付金额
  302. approval: thisdata.approval, //特批状态
  303. settlementAmount: thisdata.settlementAmount, //已收款项
  304. orderRemarks: thisdata.orderRemarks, //订单留言
  305. orgCodeUrl: thisdata.contractPictureUrl
  306. ? splitUrl(
  307. thisdata.contractPictureUrl,
  308. ",",
  309. globalConfig.avatarHost + "/upload"
  310. )
  311. : [], //图片地址
  312. replenishUrl: thisdata.agreementUrl
  313. ? splitUrl(
  314. thisdata.agreementUrl,
  315. ",",
  316. globalConfig.avatarHost + "/upload"
  317. )
  318. : [], //图片地址
  319. contentUrl: thisdata.serviceContent
  320. ? splitUrl(
  321. thisdata.serviceContent,
  322. ",",
  323. globalConfig.avatarHost + "/upload"
  324. )
  325. : [], //图片地址
  326. salesmanName: thisdata.salesmanName, //营销员名称
  327. salesmanMobile: thisdata.salesmanMobile, //营销员电话
  328. oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
  329. oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
  330. financeName: thisdata.financeName, //财务名称
  331. financeMobile: thisdata.financeMobile, //财务电话
  332. nowFinance: thisdata.nowFinance, //财务名称
  333. nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
  334. depName: thisdata.depName,
  335. outsource: thisdata.outsource == 0 ? "否" : "是",
  336. deleteSign: thisdata.deleteSign,
  337. });
  338. }
  339. }.bind(this),
  340. }).always(
  341. function () {
  342. this.setState({
  343. loading: false,
  344. });
  345. }.bind(this)
  346. );
  347. }
  348. //项目列表
  349. xiangmu() {
  350. this.setState({
  351. xiangmuLoading: true,
  352. });
  353. $.ajax({
  354. method: "get",
  355. dataType: "json",
  356. crossDomain: false,
  357. url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
  358. data: {
  359. orderNo: this.props.orderNo,
  360. },
  361. success: function (data) {
  362. let theArr = [];
  363. if (data.error.length || data.data.list == "") {
  364. if (data.error && data.error.length) {
  365. message.warning(data.error[0].message);
  366. }
  367. } else {
  368. for (let i = 0; i < data.data.length; i++) {
  369. let thisdata = data.data[i];
  370. thisdata.key = i;
  371. thisdata.sort = thisdata.cSort;
  372. theArr.push(thisdata);
  373. }
  374. }
  375. this.setState({
  376. dataSourceX: theArr,
  377. });
  378. }.bind(this),
  379. }).always(
  380. function () {
  381. this.setState({
  382. xiangmuLoading: false,
  383. });
  384. }.bind(this)
  385. );
  386. }
  387. //点击打卡项目详情
  388. tableRowClickX(record) {
  389. this.setState({
  390. addnextVisible: true,
  391. dataInfor: record,
  392. });
  393. }
  394. //项目详情关闭
  395. nextCancel() {
  396. this.setState({
  397. addnextVisible: false,
  398. dataInfor: {},
  399. });
  400. }
  401. //节点列表
  402. jiedian() {
  403. this.setState({
  404. jiedianLoading: true,
  405. });
  406. $.ajax({
  407. method: "get",
  408. dataType: "json",
  409. crossDomain: false,
  410. url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
  411. data: {
  412. orderNo: this.props.orderNo,
  413. },
  414. success: function (data) {
  415. let theArr = [];
  416. let thisData = [];
  417. if (data.error.length || data.data.list == "") {
  418. if (data.error && data.error.length) {
  419. message.warning(data.error[0].message);
  420. }
  421. } else {
  422. for (let i = 0; i < data.data.length; i++) {
  423. thisData = data.data[i];
  424. theArr.push({
  425. key: i,
  426. dunSubject: thisData.dunSubject
  427. ? thisData.dunSubject.toString()
  428. : "", //催款科目
  429. id: thisData.id, //节点Id
  430. money: thisData.money, //催款金额
  431. dunStatus: thisData.dunStatus, //催款状态
  432. });
  433. }
  434. this.setState({
  435. contactList: theArr,
  436. });
  437. }
  438. }.bind(this),
  439. }).always(
  440. function () {
  441. this.setState({
  442. jiedianLoading: false,
  443. });
  444. }.bind(this)
  445. );
  446. }
  447. //查看催款节点
  448. jiedianNew() {
  449. this.setState({
  450. jiedianNewLoading: true,
  451. });
  452. $.ajax({
  453. method: "get",
  454. dataType: "json",
  455. crossDomain: false,
  456. url:
  457. globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun",
  458. data: {
  459. orderNo: this.props.orderNo,
  460. },
  461. success: function (data) {
  462. if (data.error && data.error.length) {
  463. message.warning(data.error[0].message);
  464. } else {
  465. let theArr = [];
  466. let thisData = [];
  467. let arr = data.data || [];
  468. let totalCui = 0;
  469. for (let i = 0; i < arr.length; i++) {
  470. thisData = arr[i];
  471. totalCui += +thisData.money;
  472. theArr.push({
  473. key: i,
  474. dunSubject: thisData.dunSubject
  475. ? thisData.dunSubject.toString()
  476. : "", //催款科目
  477. id: thisData.id, //节点Id
  478. money: thisData.money, //催款金额
  479. // orderNo: record ? record.orderNo : this.props.datauser.orderNo,
  480. commodityName: thisData.commodityName,
  481. projectType: thisData.projectType,
  482. dunTypeName: thisData.dunTypeName,
  483. status: thisData.status,
  484. waitDay: thisData.waitDay,
  485. effectiveCount: thisData.effectiveCount,
  486. startDate: thisData.startDate,
  487. dunType: thisData.dunType,
  488. appropriationRatio: thisData.appropriationRatio,
  489. customizeName: thisData.customizeName,
  490. customizeTimes: thisData.customizeTimes,
  491. tid: thisData.tid,
  492. });
  493. }
  494. if (!totalCui) {
  495. totalCui = 0;
  496. }
  497. totalCui = (Math.round(totalCui * 1000000) / 1000000).toFixed(6);
  498. this.setState({
  499. contactListNew: theArr,
  500. totalCui,
  501. });
  502. }
  503. }.bind(this),
  504. }).always(
  505. function () {
  506. this.setState({
  507. jiedianNewLoading: false,
  508. });
  509. }.bind(this)
  510. );
  511. }
  512. //查看订单日志
  513. getOrderLog() {
  514. this.setState({
  515. rizhivisible: true,
  516. });
  517. this.rizhi();
  518. }
  519. closeOrderLog() {
  520. this.setState({
  521. rizhivisible: false,
  522. dataSourcerizhi: []
  523. });
  524. }
  525. rizhi() {
  526. this.setState({
  527. rizhiLoading: true,
  528. });
  529. $.ajax({
  530. method: "get",
  531. dataType: "json",
  532. crossDomain: false,
  533. url: "/api/admin/newOrder/selectOrderLog",
  534. data: {
  535. orderNo: this.props.orderNo,
  536. },
  537. success: function (data) {
  538. let theArr = [];
  539. let thisData = data.data;
  540. if (!thisData.length) {
  541. if (data.error && data.error.length) {
  542. message.warning(data.error[0].message);
  543. }
  544. } else {
  545. for (let i = 0; i < data.data.length; i++) {
  546. let thisdata = data.data[i];
  547. theArr.push({
  548. processName: thisdata.processName,
  549. adminName: thisdata.adminName,
  550. createDate: thisdata.createDate,
  551. remarks: thisdata.remarks,
  552. });
  553. }
  554. }
  555. this.setState({
  556. dataSourcerizhi: theArr,
  557. });
  558. }.bind(this),
  559. }).always(
  560. function () {
  561. this.setState({
  562. rizhiLoading: false,
  563. });
  564. }.bind(this)
  565. );
  566. }
  567. render() {
  568. return (
  569. <Modal
  570. className="customeDetails"
  571. footer=""
  572. title="订单详情"
  573. width="1200px"
  574. visible={this.props.visible}
  575. onOk={this.props.onCancel}
  576. onCancel={this.props.onCancel}
  577. >
  578. <Form layout="horizontal" id="demand-form" style={{ paddingBottom: "40px" }}>
  579. <Spin spinning={this.state.loading}>
  580. <div className="clearfix">
  581. <div style={{ position: "absolute", top: '-52px', left: '81px', zIndex: 10000 }}>
  582. <OrderItemStatus deleteSign={this.state.deleteSign} />
  583. </div>
  584. <FormItem
  585. className="half-item"
  586. {...formItemLayout}
  587. label="订单编号"
  588. >
  589. <span>{this.state.orderNo}</span>
  590. </FormItem>
  591. <FormItem
  592. className="half-item"
  593. {...formItemLayout}
  594. label="合同编号"
  595. >
  596. <span>{this.state.contractNo}</span>
  597. </FormItem>
  598. <FormItem
  599. className="half-item"
  600. {...formItemLayout}
  601. label="客户名称"
  602. >
  603. <span>{this.state.userName}</span>
  604. <EnterpriseNameChange
  605. type='journal'
  606. style={{ marginLeft: 10 }}
  607. enterpriseId={this.state.orderUid} />
  608. </FormItem>
  609. <FormItem
  610. className="half-item"
  611. {...formItemLayout}
  612. label="合同签订时间"
  613. >
  614. <span>{this.state.signDate}</span>
  615. </FormItem>
  616. <FormItem
  617. className="half-item"
  618. {...formItemLayout}
  619. label="流程状态"
  620. >
  621. <span>{getProcessStatus(this.state.processStatus)}</span>
  622. </FormItem>
  623. <FormItem
  624. className="half-item"
  625. {...formItemLayout}
  626. label="结算状态"
  627. >
  628. <span>
  629. {getLiquidationStatus(this.state.liquidationStatus)}
  630. </span>
  631. </FormItem>
  632. <FormItem
  633. className="half-item"
  634. {...formItemLayout}
  635. label="企业联系人"
  636. >
  637. <span>{this.state.contacts}</span>
  638. </FormItem>
  639. <FormItem
  640. className="half-item"
  641. {...formItemLayout}
  642. label="联系人电话"
  643. >
  644. <span>{this.state.contactMobile}</span>
  645. </FormItem>
  646. <FormItem
  647. className="half-item"
  648. {...formItemLayout}
  649. label="企业法人"
  650. >
  651. <span>{this.state.legalPerson}</span>
  652. </FormItem>
  653. <FormItem
  654. className="half-item"
  655. {...formItemLayout}
  656. label="法人电话"
  657. >
  658. <span>{this.state.legalPersonTel}</span>
  659. </FormItem>
  660. <FormItem
  661. className="half-item"
  662. {...formItemLayout}
  663. label="签单金额(万元)"
  664. >
  665. <span>{this.state.totalAmount}</span>
  666. </FormItem>
  667. <FormItem
  668. className="half-item"
  669. {...formItemLayout}
  670. label="首付金额(万元)"
  671. >
  672. <span>{this.state.firstAmount}</span>
  673. </FormItem>
  674. <FormItem
  675. className="half-item"
  676. {...formItemLayout}
  677. label="特批立项"
  678. >
  679. <span>{getApprovedState(this.state.approval)}</span>
  680. </FormItem>
  681. <FormItem
  682. className="half-item"
  683. {...formItemLayout}
  684. label="已收款项(万元)"
  685. >
  686. <span>{this.state.settlementAmount}</span>
  687. </FormItem>
  688. <FormItem
  689. className="half-item"
  690. {...formItemLayout}
  691. label="订单部门"
  692. >
  693. <span>{this.state.depName}</span>
  694. </FormItem>
  695. <FormItem
  696. className="half-item"
  697. {...formItemLayout}
  698. label="是否外包"
  699. >
  700. {this.state.outsource}
  701. </FormItem>
  702. <div className="clearfix">
  703. <FormItem
  704. labelCol={{ span: 4 }}
  705. wrapperCol={{ span: 16 }}
  706. label="订单留言"
  707. >
  708. <span>{this.state.orderRemarks}</span>
  709. </FormItem>
  710. </div>
  711. <div className="clearfix">
  712. <FormItem
  713. labelCol={{ span: 4 }}
  714. wrapperCol={{ span: 18 }}
  715. label={"合同扫描件"}
  716. >
  717. <div style={{ paddingTop: '10px', paddingBottom: '10px' }}>
  718. {this.props.visible && this.state.orgCodeUrl ? <ImgList fileList={this.state.orgCodeUrl} ItemWidth={'96px'} /> : <div />}
  719. </div>
  720. <Button
  721. style={{
  722. float: "right",
  723. marginRight: "140px",
  724. marginTop: "20px",
  725. }}
  726. onClick={this.getOrderLog}
  727. >
  728. 查看订单 日志
  729. </Button>
  730. </FormItem>
  731. <FormItem
  732. labelCol={{ span: 4 }}
  733. wrapperCol={{ span: 18 }}
  734. label="补充协议"
  735. >
  736. <div style={{ paddingTop: '10px', paddingBottom: '10px' }}>
  737. {this.props.visible && this.state.replenishUrl ? <ImgList domId={'inquiry1'} fileList={this.state.replenishUrl} ItemWidth={'96px'} /> : <div />}
  738. </div>
  739. </FormItem>
  740. </div>
  741. <ContentUrl
  742. processStatus={1}
  743. domId={"detailContent"}
  744. contentUrl={this.state.contentUrl}
  745. imgId={"detailContentImg"}
  746. />
  747. <div className="clearfix">
  748. <FormItem
  749. className="half-item"
  750. {...formItemLayout}
  751. label="订单负责人"
  752. >
  753. <span>{this.state.salesmanName}</span>
  754. </FormItem>
  755. <FormItem
  756. className="half-item"
  757. {...formItemLayout}
  758. label="订单负责人电话"
  759. >
  760. <span>{this.state.salesmanMobile}</span>
  761. </FormItem>
  762. </div>
  763. <div className="clearfix">
  764. <FormItem
  765. className="half-item"
  766. {...formItemLayout}
  767. label="当前财务负责人"
  768. >
  769. <span>{this.state.nowFinance}</span>
  770. </FormItem>
  771. <FormItem
  772. className="half-item"
  773. {...formItemLayout}
  774. label="当前财务负责人电话"
  775. >
  776. <span>{this.state.nowFinanceMobile}</span>
  777. </FormItem>
  778. </div>
  779. <div className="clearfix">
  780. <FormItem
  781. className="half-item"
  782. {...formItemLayout}
  783. style={{ opacity: ".5" }}
  784. label="原订单负责人"
  785. >
  786. <span>{this.state.oldSalesmanName}</span>
  787. </FormItem>
  788. <FormItem
  789. className="half-item"
  790. {...formItemLayout}
  791. style={{ opacity: ".5" }}
  792. label="原订单负责人电话"
  793. >
  794. <span>{this.state.oldSalesmanMobile}</span>
  795. </FormItem>
  796. </div>
  797. <div className="clearfix">
  798. <FormItem
  799. className="half-item"
  800. style={{ opacity: ".5" }}
  801. {...formItemLayout}
  802. label="实际财务操作人"
  803. >
  804. <span>{this.state.financeName}</span>
  805. </FormItem>
  806. <FormItem
  807. className="half-item"
  808. {...formItemLayout}
  809. style={{ opacity: ".5" }}
  810. label="实际财务操作人电话"
  811. >
  812. <span>{this.state.financeMobile}</span>
  813. </FormItem>
  814. </div>
  815. {/* */}
  816. <OrderCoor orderNo={this.props.orderNo} />
  817. <div>
  818. <span style={{ marginLeft: "50px", fontSize: "20px" }}>
  819. 项目业务
  820. </span>
  821. </div>
  822. <div className="patent-table">
  823. <Spin spinning={this.state.xiangmuLoading}>
  824. <Table
  825. columns={this.state.columnsX}
  826. dataSource={this.state.dataSourceX}
  827. pagination={false}
  828. onRowClick={this.tableRowClickX}
  829. bordered
  830. size="small"
  831. />
  832. </Spin>
  833. </div>
  834. <div>
  835. <span style={{ marginLeft: "50px", fontSize: "20px" }}>
  836. 催款节点
  837. </span>
  838. <span
  839. style={{
  840. display: this.state.contactList.length ? "none" : "inline-block",
  841. marginLeft: 10,
  842. color: "red",
  843. }}
  844. >
  845. 金额总计(万元): {this.state.totalCui}
  846. </span>
  847. </div>
  848. <div className="clearfix">
  849. <Spin spinning={
  850. this.state.contactList.length ?
  851. this.state.jiedianLoading :
  852. this.state.jiedianNewLoading
  853. }>
  854. <Form layout="horizontal" id="demand-form">
  855. <Table
  856. pagination={false}
  857. bordered
  858. size="small"
  859. columns={
  860. this.state.contactList.length
  861. ? this.state.ContactsLists
  862. : this.state.ContactsListsNew
  863. }
  864. dataSource={
  865. this.state.contactList.length
  866. ? this.state.contactList
  867. : this.state.contactListNew
  868. }
  869. />
  870. </Form>
  871. </Spin>
  872. </div>
  873. </div>
  874. </Spin>
  875. </Form>
  876. <OrderRiZi
  877. dataSourcerizhi={this.state.dataSourcerizhi}
  878. closeOrderLog={this.closeOrderLog}
  879. visible={this.state.rizhivisible}
  880. loading={this.state.rizhiLoading}
  881. />
  882. {/* {this.state.addnextVisible && <ProjectDetailsReadOnly
  883. infor={this.state.dataInfor}
  884. visible={this.state.addnextVisible}
  885. onCancel={this.nextCancel}
  886. />} */}
  887. {
  888. // 项目业务详情
  889. this.state.addnextVisible &&
  890. <NewEditProject
  891. readOnly={true}
  892. visible={this.state.addnextVisible}
  893. dataInfor={this.state.dataInfor}
  894. onCancel={this.nextCancel}
  895. />
  896. }
  897. </Modal>
  898. )
  899. }
  900. }
  901. export default Details;