orderDetail.js 29 KB

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