orderDetail.js 29 KB

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