orderDetail.js 26 KB

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