mySettlementDetaile.jsx 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863
  1. import React from 'react';
  2. import { Table, Modal, message, Spin, Input, Button, Form, Radio } from 'antd';
  3. import $ from 'jquery/src/ajax';
  4. import '../../userMangagement.less';
  5. import { getApprovedState, getPaymentState, getOrderState, getProjectState, getOrderChannel, getChangeState, getOrderType, getTransactionProject, getTransactionChannel } from '../../../../tools.js';
  6. const MySettlementDetaile = Form.create()(React.createClass({
  7. loadData(record) {
  8. this.state.data = [];
  9. this.setState({
  10. loading: true
  11. });
  12. $.ajax({
  13. method: "get",
  14. dataType: "json",
  15. crossDomain: false,
  16. url: globalConfig.context + '/api/admin/order/getOrderCommodity',
  17. data: {
  18. orderNo: record ? record.orderNo : this.props.datauser.orderNo
  19. },
  20. success: function (data) {
  21. let theArr = [];
  22. if (!data.data) {
  23. if (data.error && data.error.length) {
  24. message.warning(data.error[0].message);
  25. };
  26. } else {
  27. for (let i = 0; i < data.data.length; i++) {
  28. let thisdata = data.data[i];
  29. theArr.push({
  30. key: i,
  31. id: thisdata.id,
  32. orderNo: thisdata.orderNo,
  33. commodityName: thisdata.commodityName,
  34. commodityType: thisdata.commodityType,
  35. commodityMode: thisdata.commodityMode,
  36. commodityQuantity: thisdata.commodityQuantity,
  37. commodityPrice: thisdata.commodityPrice,
  38. discountPrice: thisdata.discountPrice,
  39. commodityFirstPayment: thisdata.commodityFirstPayment,
  40. createTimes: thisdata.createTimes,
  41. discountFirstPayment: thisdata.discountFirstPayment,
  42. remarks: thisdata.remarks,
  43. });
  44. };
  45. }
  46. this.setState({
  47. dataSource: theArr,
  48. });
  49. }.bind(this),
  50. }).always(function () {
  51. this.setState({
  52. loading: false
  53. });
  54. }.bind(this));
  55. },
  56. getInitialState() {
  57. return {
  58. loading: false,
  59. visible: false,
  60. contractState: false,
  61. orgCodeUrl: [],
  62. lookflowList: [],
  63. checkedKeys: [],
  64. columns: [
  65. {
  66. title: '业务项目名称',
  67. dataIndex: 'commodityName',
  68. key: 'commodityName',
  69. render: (text, record) => {
  70. return (
  71. <span>{text}<span style={{ color: "red" }}>{record.patentTypeName}</span></span>
  72. )
  73. }
  74. }, {
  75. title: '项目类别',
  76. dataIndex: 'commodityType',
  77. key: 'commodityType',
  78. render: (text) => {
  79. return (getOrderType(text))
  80. }
  81. }, {
  82. title: '项目数量',
  83. dataIndex: 'commodityQuantity',
  84. key: 'commodityQuantity'
  85. }, {
  86. title: '服务市价(万元)',
  87. dataIndex: 'commodityPrice',
  88. key: 'commodityPrice'
  89. }, {
  90. title: '实签价格(万元)',
  91. dataIndex: 'discountPrice',
  92. key: 'discountPrice'
  93. }, {
  94. title: '下单时间',
  95. dataIndex: 'createTimes',
  96. key: 'createTimes'
  97. }, {
  98. title: '项目说明',
  99. dataIndex: 'remarks',
  100. key: 'remarks',
  101. render: (text) => {
  102. return (text && text.length > 8 ? text.substr(0, 8) + '…' : text)
  103. }
  104. }
  105. ],
  106. flowList: [
  107. {
  108. title: '平台流水号',
  109. dataIndex: 'billNo',
  110. key: 'billNo',
  111. }, {
  112. title: '平台流水时间',
  113. dataIndex: 'createTime',
  114. key: 'createTime'
  115. }, {
  116. title: '流水金额(万元)',
  117. dataIndex: 'transactionAmount',
  118. key: 'transactionAmount'
  119. }, {
  120. title: '付款人名称',
  121. dataIndex: 'payerName',
  122. key: 'payerName'
  123. }, {
  124. title: '收款人名称',
  125. dataIndex: 'payeeName',
  126. key: 'payeeName'
  127. },
  128. {
  129. title: '流水科目',
  130. dataIndex: 'transactionSubject',
  131. key: 'transactionSubject',
  132. render: (text) => { return getTransactionProject(text) }
  133. }, {
  134. title: '流水外联',
  135. dataIndex: 'transactionChannel',
  136. key: 'transactionChannel',
  137. render: (text) => { return getTransactionChannel(text) }
  138. }, {
  139. title: '财务流水号',
  140. dataIndex: 'financialPayNo',
  141. key: 'financialPayNo',
  142. }, {
  143. title: '财务流水时间',
  144. dataIndex: 'financialPayTime',
  145. key: 'financialPayTime',
  146. }, {
  147. title: '流水确认',
  148. dataIndex: 'confirmSign',
  149. key: 'confirmSign',
  150. render: (text) => { return text ? '已确认' : '待确认' }
  151. }, {
  152. title: '确认时间',
  153. dataIndex: 'confirmTime',
  154. key: 'confirmTime',
  155. }
  156. ]
  157. };
  158. },
  159. //查看基本详情基本信息
  160. loaduser(record) {
  161. if (record) {
  162. this.state.orderList = []
  163. $.ajax({
  164. method: "get",
  165. dataType: "json",
  166. crossDomain: false,
  167. url: globalConfig.context + '/api/admin/order/getServiceOrderDetail',
  168. data: {
  169. orderNo: record.orderNo
  170. },
  171. success: function (data) {
  172. let thisData = data.data;
  173. if (!thisData) {
  174. if (data.error && data.error.length) {
  175. message.warning(data.error[0].message);
  176. };
  177. thisData = {};
  178. };
  179. this.setState({
  180. orderType: thisData.orderType,
  181. id: thisData.id,
  182. contractNo: thisData.contractNo,
  183. orderList: thisData,
  184. orderAmount: thisData.orderAmount,
  185. firstPayment: thisData.firstPayment,
  186. signTotalAmount: thisData.signTotalAmount,
  187. signFirstPayment: thisData.signFirstPayment,
  188. approval: thisData.approval == 0 ? thisData.approval.toString() : thisData.approval,
  189. orderRemarks: thisData.orderRemarks,
  190. orgCodeUrl: thisData.orgCodeUrl ? splitUrl(thisData.orgCodeUrl, ',', globalConfig.avatarHost + '/upload') : [],
  191. //签单
  192. orderNo: thisData.orderNo,//订单编号
  193. buyerName: thisData.buyerName,
  194. });
  195. }.bind(this),
  196. }).always(function () {
  197. this.setState({
  198. loading: false
  199. });
  200. }.bind(this));
  201. }
  202. },
  203. handleOk() {
  204. this.setState({
  205. visible: false,
  206. });
  207. this.props.closeDesc(false, true);
  208. },
  209. handleCancel() {
  210. this.setState({
  211. visible: false,
  212. });
  213. this.props.closeDesc(false);
  214. },
  215. componentWillMount() {
  216. },
  217. nextCancel() {
  218. this.setState({
  219. addnextVisible: false
  220. })
  221. },
  222. lookflow() {
  223. this.setState({
  224. loading: true,
  225. lookVisible: true,
  226. })
  227. this.state.lookSource = [];
  228. $.ajax({
  229. method: "get",
  230. dataType: "json",
  231. crossDomain: false,
  232. url: globalConfig.context + '/api/admin/order/getBillByOrderNo',
  233. data: {
  234. orderNo: this.props.datauser.orderNo,
  235. },
  236. success: function (data) {
  237. let theArr = [];
  238. if (!data.data) {
  239. if (data.error && data.error.length) {
  240. message.warning(data.error[0].message);
  241. };
  242. } else {
  243. for (let i = 0; i < data.data.length; i++) {
  244. let thisdata = data.data[i];
  245. theArr.push({
  246. key: i,
  247. billNo: thisdata.billNo,
  248. transactionAmount: thisdata.transactionAmount,
  249. createTime: thisdata.createTime,
  250. transactionAmount: thisdata.transactionAmount,
  251. payerName: thisdata.payerName,
  252. payeeName: thisdata.payeeName,
  253. transactionSubject: thisdata.transactionSubject,
  254. transactionChannel: thisdata.transactionChannel,
  255. financialPayNo: thisdata.financialPayNo,
  256. financialPayTime: thisdata.financialPayTime,
  257. orderNo: thisdata.orderNo,
  258. departmentName: thisdata.departmentName,
  259. salesmanName: thisdata.salesmanName,
  260. financeName: thisdata.financeName,
  261. confirmSign: thisdata.confirmSign,
  262. deleteSign: thisdata.deleteSign,
  263. confirmTime: thisdata.confirmTime
  264. });
  265. };
  266. };
  267. this.setState({
  268. lookflowList: theArr,
  269. });
  270. }.bind(this),
  271. }).always(function () {
  272. this.setState({
  273. loading: false
  274. });
  275. }.bind(this));
  276. },
  277. //保存合同编号
  278. subContract(e) {
  279. e.preventDefault();
  280. this.setState({
  281. loading: true
  282. });
  283. let api = '/api/admin/order/updateServiceOrder';
  284. $.ajax({
  285. method: "POST",
  286. dataType: "json",
  287. crossDomain: false,
  288. url: globalConfig.context + api,
  289. data: {
  290. orderNo: this.state.orderNo,
  291. contractNo: this.state.contractNo,
  292. signTotalAmount: this.state.signTotalAmount,
  293. signFirstPayment: this.state.signFirstPayment,
  294. }
  295. }).done(function (data) {
  296. this.setState({
  297. loading: false
  298. });
  299. if (!data.error.length) {
  300. message.success('保存成功!');
  301. this.handleOk()
  302. } else {
  303. message.warning(data.error[0].message);
  304. }
  305. }.bind(this));
  306. },
  307. lookCancel() {
  308. this.setState({
  309. lookVisible: false
  310. })
  311. },
  312. tableRowClick(record) {
  313. this.setState({
  314. editFw: record,
  315. addnextVisible: true,
  316. });
  317. },
  318. /* -----变更操作开始----- */
  319. //新建变更
  320. addChange() {
  321. this.setState({
  322. addChangeState: true,
  323. stateAdd: 1,
  324. changeRemarks: ''
  325. })
  326. },
  327. //产看变更记录
  328. lookChange() {
  329. this.setState({
  330. addChangeState: true,
  331. stateAdd: 0
  332. })
  333. this.lookChangeData()
  334. },
  335. //查看变更列表修改变更
  336. modifyChangeCancel() {
  337. this.setState({
  338. modifyChangeState: false
  339. })
  340. },
  341. //获取变更记录
  342. lookChangeData() {
  343. this.setState({
  344. loading: true
  345. });
  346. $.ajax({
  347. method: "get",
  348. dataType: "json",
  349. crossDomain: false,
  350. url: globalConfig.context + '/api/admin/order/viewOrderChange',
  351. data: {
  352. orderNo: this.props.datauser.orderNo,
  353. },
  354. success: function (data) {
  355. let theArr = [];
  356. if (!data.data) {
  357. if (data.error && data.error.length) {
  358. message.warning(data.error[0].message);
  359. };
  360. } else {
  361. for (let i = 0; i < data.data.length; i++) {
  362. theArr = data.data;
  363. };
  364. };
  365. this.setState({
  366. changeHtml: theArr,
  367. });
  368. }.bind(this),
  369. }).always(function () {
  370. this.setState({
  371. loading: false
  372. });
  373. }.bind(this));
  374. },
  375. //添加变更状态
  376. addChangeCancel() {
  377. this.setState({
  378. addChangeState: false
  379. })
  380. },
  381. //新建变更
  382. subChangeState(e) {
  383. e.preventDefault();
  384. this.setState({
  385. loading: true
  386. });
  387. $.ajax({
  388. method: "POST",
  389. dataType: "json",
  390. crossDomain: false,
  391. url: globalConfig.context + '/api/admin/order/addOrderChange',
  392. data: {
  393. orderNo: this.props.datauser.orderNo,
  394. changeComment: this.state.changeRemarks
  395. }
  396. }).done(function (data) {
  397. this.setState({
  398. loading: false
  399. });
  400. if (!data.error.length) {
  401. message.success('保存成功!');
  402. this.addChangeCancel();
  403. this.loaduser(this.props.datauser);
  404. } else {
  405. message.warning(data.error[0].message);
  406. }
  407. }.bind(this));
  408. },
  409. //查看修改变更
  410. modifyChange(item) {
  411. this.setState({
  412. modifyChangeState: true,
  413. changePromoter: item.creater,
  414. changeTime: item.createTime,
  415. changeState: item.changeStatus,
  416. changeRemarks: item.changeComment,
  417. idt: item.changeId,
  418. orderNot: item.orderNo
  419. })
  420. },
  421. //删除变更
  422. modifyDelete(item) {
  423. this.setState({
  424. loading: true
  425. });
  426. $.ajax({
  427. method: "get",
  428. dataType: "json",
  429. crossDomain: false,
  430. url: globalConfig.context + '/api/admin/order/deleteOrderChange',
  431. data: {
  432. changeId: item.changeId,
  433. }
  434. }).done(function (data) {
  435. this.setState({
  436. loading: false
  437. });
  438. if (!data.error.length) {
  439. message.success('删除成功!');
  440. this.lookChangeData();
  441. this.loaduser()
  442. } else {
  443. message.warning(data.error[0].message);
  444. }
  445. }.bind(this));
  446. },
  447. //修改变更保存
  448. changeModify(e) {
  449. e.preventDefault();
  450. this.setState({
  451. loading: true
  452. });
  453. $.ajax({
  454. method: "POST",
  455. dataType: "json",
  456. crossDomain: false,
  457. url: globalConfig.context + '/api/admin/order/updateOrderChange',
  458. data: {
  459. changeId: this.state.idt,
  460. changeStatus: this.state.changeState,
  461. changeComment: this.state.changeRemarks
  462. }
  463. }).done(function (data) {
  464. this.setState({
  465. loading: false
  466. });
  467. if (!data.error.length) {
  468. message.success('保存成功!');
  469. this.modifyChangeCancel();
  470. this.lookChangeData();
  471. this.loaduser(this.props.datauser)
  472. } else {
  473. message.warning(data.error[0].message);
  474. }
  475. }.bind(this));
  476. },
  477. /*-----变更操作结束----*/
  478. componentWillReceiveProps(nextProps) { //props改变时触发
  479. this.state.visible = nextProps.showDesc;
  480. if (nextProps.userDetaile && nextProps.showDesc) {
  481. this.loaduser(nextProps.datauser);
  482. this.loadData(nextProps.datauser);
  483. }
  484. },
  485. render() {
  486. const FormItem = Form.Item
  487. const formItemLayout = {
  488. labelCol: { span: 8 },
  489. wrapperCol: { span: 14 },
  490. };
  491. const changeHtml = this.state.changeHtml || [];
  492. const editFws = this.state.editFw || [];
  493. const orderDetaiel = this.state.orderList || [];
  494. return (
  495. <div>
  496. <Modal maskClosable={false} visible={this.state.visible}
  497. onOk={this.handleOk} onCancel={this.handleCancel}
  498. width='1200px'
  499. title='查看订单详情'
  500. footer=''
  501. className="admin-desc-content">
  502. <Form layout="horizontal" id="demand-form" style={{ paddingBottom: '40px' }} >
  503. <Spin spinning={this.state.loading}>
  504. <div className="clearfix">
  505. <div className="clearfix">
  506. <FormItem className="half-item"
  507. {...formItemLayout}
  508. label="订单编号" >
  509. <span>{orderDetaiel.orderNo}</span>
  510. </FormItem>
  511. <FormItem className="half-item"
  512. {...formItemLayout}
  513. label="下单时间" >
  514. <span>{orderDetaiel.createTime}</span>
  515. </FormItem>
  516. <FormItem className="half-item"
  517. {...formItemLayout}
  518. label="客户名称" >
  519. <span>{orderDetaiel.buyerName}</span>
  520. </FormItem>
  521. <FormItem className="half-item"
  522. {...formItemLayout}
  523. label="订单类型" >
  524. <span>{getOrderType(orderDetaiel.orderType)}</span>
  525. </FormItem>
  526. <FormItem className="half-item"
  527. {...formItemLayout}
  528. label="订单外联" >
  529. <span>{getOrderChannel(orderDetaiel.orderChannel)}</span>
  530. </FormItem>
  531. <FormItem className="half-item"
  532. {...formItemLayout}
  533. label="订单状态" >
  534. <span>{getOrderState(orderDetaiel.orderStatus)}</span>
  535. </FormItem>
  536. <FormItem className="half-item"
  537. {...formItemLayout}
  538. label="已收款项" >
  539. <span>{orderDetaiel.actuallyTotalAmount + "万元"}</span>
  540. </FormItem>
  541. <FormItem className="half-item"
  542. {...formItemLayout}
  543. label="结算状态" >
  544. <span>{getPaymentState(orderDetaiel.liquidationStatus)}</span>
  545. </FormItem>
  546. <FormItem className="half-item"
  547. {...formItemLayout}
  548. label="市价订单金额" >
  549. <span>{orderDetaiel.orderAmount + "万元"}</span>
  550. </FormItem>
  551. <FormItem className="half-item"
  552. {...formItemLayout}
  553. label="市价首款金额" >
  554. <span>{orderDetaiel.firstPayment + "万元"}</span>
  555. </FormItem>
  556. <div className='clearfix'>
  557. <FormItem className="half-item"
  558. {...formItemLayout}
  559. label="实签订单金额" >
  560. <span>{orderDetaiel.signTotalAmount + "万元"}</span>
  561. </FormItem>
  562. <FormItem className="half-item"
  563. {...formItemLayout}
  564. label="实签首款金额" >
  565. <span>{orderDetaiel.signFirstPayment + "万元"}</span>
  566. </FormItem>
  567. <FormItem className="half-item"
  568. {...formItemLayout}
  569. label="特批立项" >
  570. <span>{getApprovedState(orderDetaiel.approval)}</span>
  571. </FormItem>
  572. <FormItem className="half-item"
  573. {...formItemLayout}
  574. label="合同编号" >
  575. <Input placeholder="请输入合同编号" value={this.state.contractNo} onChange={(e) => { this.setState({ contractNo: e.target.value }) }} style={{ width: '240px' }} />
  576. </FormItem>
  577. <div className='clearfix'>
  578. <FormItem
  579. labelCol={{ span: 4 }}
  580. wrapperCol={{ span: 16 }}
  581. label="订单留言" >
  582. <span>{orderDetaiel.orderRemarks}</span>
  583. </FormItem>
  584. </div>
  585. <div className='clearfix'>
  586. <div className="changeStatusTxt">
  587. <FormItem className="half-item"
  588. {...formItemLayout}
  589. style={{ color: 'red' }}
  590. label="变更状态" >
  591. <span>{getChangeState(orderDetaiel.changeStatus)}</span>
  592. </FormItem>
  593. </div>
  594. <div className="clearfix">
  595. <FormItem className="half-item"
  596. {...formItemLayout}
  597. label="变更操作" >
  598. <Button onClick={this.addChange}>添加变更</Button>
  599. </FormItem>
  600. <FormItem className="half-item"
  601. {...formItemLayout}
  602. label="变更操作" >
  603. <Button onClick={this.lookChange}>查看变更纪录</Button>
  604. </FormItem>
  605. </div>
  606. </div>
  607. </div>
  608. </div>
  609. <div className='clearfix'>
  610. <FormItem className="half-item"
  611. {...formItemLayout}
  612. label="订单负责人" >
  613. <span>{orderDetaiel.salesmanName}</span>
  614. </FormItem>
  615. <FormItem className="half-item"
  616. {...formItemLayout}
  617. label="业务品类" >
  618. <span>{orderDetaiel.projectType}</span>
  619. </FormItem>
  620. </div>
  621. <div className='clearfix'>
  622. <FormItem className="half-item"
  623. {...formItemLayout}
  624. label="意向时间" >
  625. <span>{orderDetaiel.createTime}</span>
  626. </FormItem>
  627. <FormItem className="half-item"
  628. {...formItemLayout}
  629. label="签单时间" >
  630. <span>{orderDetaiel.signTime}</span>
  631. </FormItem>
  632. <FormItem className="half-item"
  633. {...formItemLayout}
  634. label="财务负责人" >
  635. <span>{orderDetaiel.financeName}</span>
  636. <Button onClick={this.lookflow} style={{ float: 'right' }}>查看流水</Button>
  637. </FormItem>
  638. <FormItem className="half-item"
  639. {...formItemLayout}
  640. label="项目负责人" >
  641. <span>{orderDetaiel.technicianName}</span>
  642. </FormItem>
  643. <FormItem className="half-item"
  644. {...formItemLayout}
  645. label="立项时间" >
  646. <span>{orderDetaiel.setUpTime}</span>
  647. </FormItem>
  648. <FormItem className="half-item"
  649. {...formItemLayout}
  650. label="项目状态" >
  651. <span>{getProjectState(orderDetaiel.projectStage)}</span>
  652. </FormItem>
  653. </div>
  654. <div>
  655. <span style={{ marginLeft: '50px', fontSize: '20px' }}>项目业务</span>
  656. </div>
  657. <div className="patent-table">
  658. <Spin spinning={this.state.loading}>
  659. <Table columns={this.state.columns}
  660. dataSource={this.state.dataSource}
  661. pagination={false}
  662. onRowClick={this.tableRowClick}
  663. />
  664. </Spin>
  665. </div>
  666. <div style={{ marginTop: '10px' }}>
  667. <Button type="primary" onClick={this.subContract} style={{ float: 'left', marginLeft: '200px' }}>保存</Button>
  668. <Button className="cancel" type="ghost" onClick={this.handleCancel} style={{ float: 'right', marginRight: '200px' }}>返回</Button>
  669. </div>
  670. </div>
  671. </Spin>
  672. </Form >
  673. </Modal>
  674. <Modal maskClosable={false} visible={this.state.addnextVisible}
  675. onOk={this.nextCancel} onCancel={this.nextCancel}
  676. width='550px'
  677. title='查看明细服务'
  678. footer=''
  679. className="admin-desc-content">
  680. <Form layout="horizontal" id="demand-form">
  681. <Spin spinning={this.state.loading}>
  682. <div className="clearfix">
  683. <FormItem className="half-item"
  684. {...formItemLayout}
  685. label="服务名称" >
  686. <span>{editFws.commodityName}</span>
  687. </FormItem>
  688. <FormItem className="half-item"
  689. {...formItemLayout}
  690. label="市场价格" >
  691. <span>{editFws.commodityPrice + "万元"}</span>
  692. </FormItem>
  693. <FormItem className="half-item"
  694. {...formItemLayout}
  695. label="实签价格" >
  696. <span>{editFws.discountPrice + "万元"}</span>
  697. </FormItem>
  698. <FormItem className="half-item"
  699. {...formItemLayout}
  700. label="服务数量" >
  701. <span>{editFws.commodityQuantity}</span>
  702. </FormItem>
  703. <FormItem className="half-item"
  704. {...formItemLayout}
  705. label="市场首付金额" >
  706. <span>{editFws.commodityFirstPayment + "万元"}</span>
  707. </FormItem>
  708. <FormItem className="half-item"
  709. {...formItemLayout}
  710. label="签单首付金额" >
  711. <span>{editFws.discountFirstPayment + "万元"}</span>
  712. </FormItem>
  713. <div className='clearfix'>
  714. <FormItem
  715. labelCol={{ span: 4 }}
  716. wrapperCol={{ span: 16 }}
  717. label="服务说明" >
  718. <span>{editFws.remarks}</span>
  719. </FormItem>
  720. </div>
  721. </div>
  722. </Spin>
  723. </Form >
  724. </Modal>
  725. <Modal maskClosable={false} visible={this.state.lookVisible}
  726. onOk={this.lookCancel} onCancel={this.lookCancel}
  727. width='1300px'
  728. title='查看流水'
  729. footer=''
  730. className="admin-desc-content">
  731. <Form layout="horizontal" id="demand-form">
  732. <Spin spinning={this.state.loading}>
  733. <div className="clearfix">
  734. <Table columns={this.state.flowList}
  735. dataSource={this.state.lookflowList}
  736. pagination={false}
  737. />
  738. </div>
  739. </Spin>
  740. </Form >
  741. </Modal>
  742. <Modal maskClosable={false} visible={this.state.addChangeState}
  743. onOk={this.addChangeCancel} onCancel={this.addChangeCancel}
  744. width='800px'
  745. title={this.state.stateAdd ? '添加变更' : '查看变更记录'}
  746. footer=''
  747. className="admin-desc-content">
  748. <Form layout="horizontal" id="demand-form">
  749. <Spin spinning={this.state.loading}>
  750. <div className="clearfix">
  751. {this.state.stateAdd ? <div className="clearfix">
  752. <FormItem
  753. labelCol={{ span: 4 }}
  754. wrapperCol={{ span: 16 }}
  755. label="变更说明" >
  756. <Input type="textarea" placeholder="请输入变更说明" rows={4} value={this.state.changeRemarks}
  757. onChange={(e) => { this.setState({ changeRemarks: e.target.value }) }} />
  758. </FormItem>
  759. <div className="clearfix">
  760. <Button type="primary" onClick={this.subChangeState} style={{ margin: "10px 50px 10px 128px" }}>保存</Button>
  761. <Button onClick={this.addChangeCancel}>取消</Button>
  762. </div>
  763. </div> :
  764. <div>
  765. {
  766. changeHtml.length ? changeHtml.map(function (item, index) {
  767. return (<div className="changeBorder" key={index}>
  768. <FormItem className="half-item"
  769. {...formItemLayout}
  770. label="变更发起人" >
  771. <span>{item.creater}</span>
  772. </FormItem>
  773. <FormItem className="half-item"
  774. {...formItemLayout}
  775. label="变更申请时间" >
  776. <span>{item.createTime}</span>
  777. </FormItem>
  778. <div className='clearfix'>
  779. <FormItem className="half-item"
  780. {...formItemLayout}
  781. label="变更状态" >
  782. <span>{getChangeState(item.changeStatus)}</span>
  783. </FormItem>
  784. <FormItem className="half-item"
  785. {...formItemLayout}
  786. label="变更操作" >
  787. <Button onClick={() => { this.modifyChange(item) }}>修改</Button>
  788. {/*<Button type="danger" onClick={(e)=>{this.modifyDelete(item)}}>删除</Button>*/}
  789. </FormItem>
  790. </div>
  791. <div className='clearfix changeRemark'>
  792. <FormItem
  793. labelCol={{ span: 4 }}
  794. wrapperCol={{ span: 16 }}
  795. label="变更说明" >
  796. <p>{item.changeComment}</p>
  797. </FormItem>
  798. </div>
  799. </div>)
  800. }, this) : <p style={{ textAlign: "center" }}>暂无变更记录</p>}
  801. </div>
  802. }
  803. </div>
  804. </Spin>
  805. </Form >
  806. </Modal>
  807. <Modal maskClosable={false} visible={this.state.modifyChangeState}
  808. onOk={this.modifyChangeCancel} onCancel={this.modifyChangeCancel}
  809. width='600px'
  810. title="修改变更 "
  811. footer=''
  812. className="admin-desc-content">
  813. <Form layout="horizontal" id="demand-form">
  814. <Spin spinning={this.state.loading}>
  815. <div className="clearfix">
  816. <div className="clearfix">
  817. <FormItem className="half-item"
  818. {...formItemLayout}
  819. label="变更发起人" >
  820. <span>{this.state.changePromoter}</span>
  821. </FormItem>
  822. <FormItem className="half-item"
  823. {...formItemLayout}
  824. label="变更申请时间" >
  825. <span>{this.state.changeTime}</span>
  826. </FormItem>
  827. <div className='clearfix'>
  828. <FormItem
  829. labelCol={{ span: 4 }}
  830. wrapperCol={{ span: 16 }}
  831. label="变更状态" >
  832. <Radio.Group onChange={(e) => { this.setState({ changeState: e.target.value }) }} value={this.state.changeState}>
  833. <Radio value={1}>变更中</Radio>
  834. <Radio value={2}>变更完成</Radio>
  835. </Radio.Group>
  836. </FormItem>
  837. </div>
  838. <div className='clearfix'>
  839. <FormItem
  840. labelCol={{ span: 4 }}
  841. wrapperCol={{ span: 16 }}
  842. label="变更说明" >
  843. <Input type="textarea" placeholder="请输入变更说明" rows={4} value={this.state.changeRemarks}
  844. onChange={(e) => { this.setState({ changeRemarks: e.target.value }) }} />
  845. </FormItem>
  846. </div>
  847. <div className="clearfix">
  848. <Button type="primary" onClick={this.changeModify} style={{ margin: "10px 95px" }}>保存</Button>
  849. <Button onClick={this.modifyChangeCancel}>取消</Button>
  850. </div>
  851. </div>
  852. </div>
  853. </Spin>
  854. </Form >
  855. </Modal>
  856. </div>
  857. )
  858. }
  859. }));
  860. export default MySettlementDetaile;