orderDetail.js 29 KB

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