details.jsx 35 KB

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