projectOrderDetaile.jsx 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791
  1. import React from 'react';
  2. import { Icon, Table, Modal, message, Spin, Input, Select, Button, Form, Upload, Popconfirm, AutoComplete } from 'antd';
  3. import ajax from 'jquery/src/ajax/xhr.js';
  4. import $ from 'jquery/src/ajax';
  5. import '../userMangagement.less';
  6. import { getApprovedState, getPaymentState, getOrderState, getProjectState, getOrderChannel, getOrderType, getTransactionProject, getTransactionChannel } from '../../../../tools.js';
  7. import ProjectOperation from "../../../../common/projectOperation";
  8. const MySettlementDetaile = Form.create()(React.createClass({
  9. loadData(record) {
  10. this.state.data = [];
  11. this.setState({
  12. loading: true
  13. });
  14. $.ajax({
  15. method: "get",
  16. dataType: "json",
  17. crossDomain: false,
  18. url: globalConfig.context + '/api/admin/order/getOrderCommodity',
  19. data: {
  20. orderNo: record ? record.orderNo : this.props.datauser.orderNo
  21. },
  22. success: function (data) {
  23. let theArr = [];
  24. if (!data.data) {
  25. if (data.error && data.error.length) {
  26. message.warning(data.error[0].message);
  27. };
  28. } else {
  29. for (let i = 0; i < data.data.length; i++) {
  30. let thisdata = data.data[i];
  31. theArr.push({
  32. key: i,
  33. id: thisdata.id,
  34. orderNo: thisdata.orderNo,
  35. commodityName: thisdata.commodityName,
  36. commodityType: thisdata.commodityType,
  37. commodityMode: thisdata.commodityMode,
  38. commodityQuantity: thisdata.commodityQuantity,
  39. commodityPrice: thisdata.commodityPrice,
  40. discountPrice: thisdata.discountPrice,
  41. commodityFirstPayment: thisdata.commodityFirstPayment,
  42. createTimes: thisdata.createTimes,
  43. discountFirstPayment: thisdata.discountFirstPayment,
  44. remarks: thisdata.remarks,
  45. });
  46. };
  47. }
  48. this.setState({
  49. dataSource: theArr,
  50. });
  51. }.bind(this),
  52. }).always(function () {
  53. this.setState({
  54. loading: false
  55. });
  56. }.bind(this));
  57. },
  58. getInitialState() {
  59. return {
  60. loading: false,
  61. visible: false,
  62. lookState: true,
  63. orgCodeUrl: [],
  64. lookflowList: [],
  65. checkedKeys: [],
  66. columns: [
  67. {
  68. title: '业务项目名称',
  69. dataIndex: 'commodityName',
  70. key: 'commodityName',
  71. render: (text, record) => {
  72. return <span>
  73. {text}<span style={{ color: "red" }}>{record.patentTypeName}</span>{"-" + record.id}
  74. <div>
  75. {record.cSort == 6 && record.projectType == 1 && <span>(含{record.htMember == 1 ? '高新会员&' : ''}{record.additionalDeduction == 1 ? '加计扣除&' : ''}{record.rdAwardsubsidy == 1 ? '研发奖补' : ''})</span>}
  76. {record.cSort == 6 && ([0, 3].indexOf(record.projectType) > -1) && <span>(仅提供单边会员服务)</span>}
  77. {record.cSort == 6 && record.projectType == 2 && <span>(仅填报表,仅咨询,不出备查资料)</span>}
  78. {record.cSort == 3 && <span>{record.technologyProjectType==0?'(简易项目)':record.technologyProjectType==1?'(市区级)':record.technologyProjectType==2?'(省级)':record.technologyProjectType==3?'(国家级)':''}</span>}
  79. {record.cSort == 8 ? (record.type != 2 && record.patentType == 1) ? <span>(变更)</span> : <span>{record.ordinaryRisk == 0 ? '(普通申请)' : record.ordinaryRisk == 1 ? '(风险代理)' : ''}</span> : ""}
  80. {record.type == 2 && <span>({record.days == 0 ? '普通' : record.days == 1 ? '加急' : ''}{record.scheme == 0 ? '&无方案' : record.scheme == 1 ? '&有方案' : ''})</span>}
  81. </div>
  82. </span>
  83. }
  84. }, {
  85. title: '项目类别',
  86. dataIndex: 'commodityType',
  87. key: 'commodityType',
  88. render: (text) => {
  89. return (getOrderType(text))
  90. }
  91. }, {
  92. title: '项目数量',
  93. dataIndex: 'commodityQuantity',
  94. key: 'commodityQuantity'
  95. }, {
  96. title: '服务市价(万元)',
  97. dataIndex: 'commodityPrice',
  98. key: 'commodityPrice'
  99. }, {
  100. title: '实签价格(万元)',
  101. dataIndex: 'discountPrice',
  102. key: 'discountPrice'
  103. }, {
  104. title: '下单时间',
  105. dataIndex: 'createTimes',
  106. key: 'createTimes'
  107. }, {
  108. title: '项目说明',
  109. dataIndex: 'remarks',
  110. key: 'remarks',
  111. render: (text) => {
  112. return (text && text.length > 8 ? text.substr(0, 8) + '…' : text)
  113. }
  114. }
  115. ],
  116. userList: [
  117. {
  118. title: '用户编号',
  119. dataIndex: 'userNo',
  120. key: 'userNo'
  121. }, {
  122. title: '用户姓名',
  123. dataIndex: 'name',
  124. key: 'name'
  125. }, {
  126. title: '部门机构',
  127. dataIndex: 'departmentName',
  128. key: 'departmentName'
  129. }, {
  130. title: '职务',
  131. dataIndex: 'position',
  132. key: 'position'
  133. }, {
  134. title: '联系手机',
  135. dataIndex: 'mobile',
  136. key: 'mobile'
  137. }, {
  138. title: '操作',
  139. dataIndex: 'abc',
  140. key: 'abc',
  141. render: (text, record, index) => {
  142. return (
  143. <Popconfirm title={'您确认指定【' + record.departmentName + '-' + record.name + '】为项目负责人?'} onConfirm={(e) => { this.confirmSelect(record) }} okText="确认" cancelText="取消">
  144. <Button style={{ marginRight: '5px' }} type="primary">选定</Button>
  145. </Popconfirm>
  146. )
  147. }
  148. }
  149. ],
  150. flowList: [
  151. {
  152. title: '平台流水号',
  153. dataIndex: 'billNo',
  154. key: 'billNo',
  155. }, {
  156. title: '平台流水时间',
  157. dataIndex: 'createTime',
  158. key: 'createTime'
  159. }, {
  160. title: '流水金额(万元)',
  161. dataIndex: 'transactionAmount',
  162. key: 'transactionAmount'
  163. }, {
  164. title: '付款人名称',
  165. dataIndex: 'payerName',
  166. key: 'payerName'
  167. }, {
  168. title: '收款人名称',
  169. dataIndex: 'payeeName',
  170. key: 'payeeName'
  171. },
  172. {
  173. title: '流水科目',
  174. dataIndex: 'transactionSubject',
  175. key: 'transactionSubject',
  176. render: (text) => { return getTransactionProject(text) }
  177. }, {
  178. title: '流水外联',
  179. dataIndex: 'transactionChannel',
  180. key: 'transactionChannel',
  181. render: (text) => { return getTransactionChannel(text) }
  182. }, {
  183. title: '财务流水号',
  184. dataIndex: 'financialPayNo',
  185. key: 'financialPayNo',
  186. }, {
  187. title: '财务流水时间',
  188. dataIndex: 'financialPayTime',
  189. key: 'financialPayTime',
  190. }, {
  191. title: '流水确认',
  192. dataIndex: 'confirmSign',
  193. key: 'confirmSign',
  194. render: (text) => { return text ? '已确认' : '待确认' }
  195. }, {
  196. title: '确认时间',
  197. dataIndex: 'confirmTime',
  198. key: 'confirmTime',
  199. }
  200. ],
  201. contractList: [
  202. {
  203. title: '姓名',
  204. dataIndex: 'name',
  205. key: 'name'
  206. }, {
  207. title: '部门',
  208. dataIndex: 'depatrment',
  209. key: 'depatrment'
  210. }, {
  211. title: '联系方式',
  212. dataIndex: 'mobile',
  213. key: 'mobile'
  214. }, {
  215. title: '是否为主要联系人',
  216. dataIndex: 'major',
  217. key: 'major',
  218. render: (text) => {
  219. return text ? '是' : "否"
  220. }
  221. }, {
  222. title: '职务',
  223. dataIndex: 'position',
  224. key: 'position'
  225. }, {
  226. title: '微信',
  227. dataIndex: 'wechat',
  228. key: 'wechat'
  229. }, {
  230. title: 'QQ',
  231. dataIndex: 'qq',
  232. key: 'qq'
  233. },
  234. ],
  235. };
  236. },
  237. seeContract() {
  238. this.contract();
  239. this.setState({
  240. orderVisible: true
  241. })
  242. },
  243. orderCancel() {
  244. this.setState({
  245. orderVisible: false
  246. })
  247. },
  248. //查看联系人
  249. contract() {
  250. $.ajax({
  251. method: "get",
  252. dataType: "json",
  253. crossDomain: false,
  254. url: globalConfig.context + '/api/admin/customer/findAllContacts',
  255. data: {
  256. uid: this.state.buyerId
  257. },
  258. success: function (data) {
  259. let thisData = data.data;
  260. if (!thisData) {
  261. if (data.error && data.error.length) {
  262. message.warning(data.error[0].message);
  263. };
  264. thisData = {};
  265. };
  266. this.setState({
  267. contractArr: thisData,
  268. });
  269. }.bind(this),
  270. }).always(function () {
  271. this.setState({
  272. loading: false
  273. });
  274. }.bind(this));
  275. },
  276. //查看基本详情基本信息
  277. loaduser(record) {
  278. if (record) {
  279. this.state.orderList = []
  280. $.ajax({
  281. method: "get",
  282. dataType: "json",
  283. crossDomain: false,
  284. url: globalConfig.context + '/api/admin/order/getServiceOrderDetail',
  285. data: {
  286. orderNo: record
  287. },
  288. success: function (data) {
  289. let thisData = data.data;
  290. if (!thisData) {
  291. if (data.error && data.error.length) {
  292. message.warning(data.error[0].message);
  293. };
  294. thisData = {};
  295. };
  296. this.setState({
  297. id: thisData.id,
  298. buyerId: thisData.buyerId,
  299. orderList: thisData,
  300. orderAmount: thisData.orderAmount,
  301. firstPayment: thisData.firstPayment,
  302. signTotalAmount: thisData.signTotalAmount,
  303. signFirstPayment: thisData.signFirstPayment,
  304. approval: thisData.approval == 0 ? thisData.approval.toString() : thisData.approval,
  305. orderRemarks: thisData.orderRemarks,
  306. orgCodeUrl: thisData.orgCodeUrl ? splitUrl(thisData.orgCodeUrl, ',', globalConfig.avatarHost + '/upload') : [],
  307. //签单
  308. orderNo: thisData.orderNo,//订单编号
  309. buyerName: thisData.buyerName,
  310. });
  311. }.bind(this),
  312. }).always(function () {
  313. this.setState({
  314. loading: false
  315. });
  316. }.bind(this));
  317. }
  318. },
  319. handleOk(e) {
  320. this.setState({
  321. visible: false,
  322. });
  323. this.props.closeDesc(false, true);
  324. },
  325. handleCancel(e) {
  326. this.setState({
  327. visible: false,
  328. });
  329. this.props.closeDesc(false);
  330. },
  331. lookflow() {
  332. this.setState({
  333. loading: true,
  334. lookVisible: true,
  335. })
  336. this.state.lookSource = [];
  337. $.ajax({
  338. method: "get",
  339. dataType: "json",
  340. crossDomain: false,
  341. url: globalConfig.context + '/api/admin/order/getBillByOrderNo',
  342. data: {
  343. orderNo: this.props.datauser.orderNo,
  344. },
  345. success: function (data) {
  346. let theArr = [];
  347. if (!data.data) {
  348. if (data.error && data.error.length) {
  349. message.warning(data.error[0].message);
  350. };
  351. } else {
  352. for (let i = 0; i < data.data.length; i++) {
  353. let thisdata = data.data[i];
  354. theArr.push({
  355. key: i,
  356. billNo: thisdata.billNo,
  357. transactionAmount: thisdata.transactionAmount,
  358. createTime: thisdata.createTime,
  359. payerName: thisdata.payerName,
  360. payeeName: thisdata.payeeName,
  361. transactionSubject: thisdata.transactionSubject,
  362. transactionChannel: thisdata.transactionChannel,
  363. financialPayNo: thisdata.financialPayNo,
  364. financialPayTime: thisdata.financialPayTime,
  365. orderNo: thisdata.orderNo,
  366. departmentName: thisdata.departmentName,
  367. salesmanName: thisdata.salesmanName,
  368. financeName: thisdata.financeName,
  369. confirmSign: thisdata.confirmSign,
  370. deleteSign: thisdata.deleteSign,
  371. confirmTime: thisdata.confirmTime
  372. });
  373. };
  374. };
  375. this.setState({
  376. lookflowList: theArr,
  377. });
  378. }.bind(this),
  379. }).always(function () {
  380. this.setState({
  381. loading: false
  382. });
  383. }.bind(this));
  384. },
  385. lookCancel() {
  386. this.setState({
  387. lookVisible: false
  388. })
  389. },
  390. tableRowClick(record, index) {
  391. this.setState({
  392. editFw: record,
  393. projectOperationVisible: true,
  394. });
  395. },
  396. /*
  397. * 选择负责人
  398. */
  399. //转交
  400. confirmDelet(index) {
  401. this.setState({
  402. showDesc: false,
  403. distributionVisible: true
  404. });
  405. this.departmentList()
  406. },
  407. distributionCancel() {
  408. this.setState({
  409. distributionVisible: false
  410. })
  411. },
  412. //分配对象列表
  413. contactList() {
  414. $.ajax({
  415. method: "get",
  416. dataType: "json",
  417. crossDomain: false,
  418. url: globalConfig.context + '/api/admin/superviser/adminList',
  419. data: {
  420. pageNo: 1,
  421. pageSize: 99,
  422. departmentId: this.state.departmenttList,
  423. name: this.state.financeNameSearch,
  424. },
  425. success: function (data) {
  426. let theArr = [];
  427. if (!data.data) {
  428. if (data.error && data.error.length) {
  429. message.warning(data.error[0].message);
  430. };
  431. } else {
  432. for (let i = 0; i < data.data.list.length; i++) {
  433. let thisdata = data.data.list[i];
  434. theArr.push({
  435. key: i,
  436. id: thisdata.id,
  437. userNo: thisdata.userNo,
  438. name: thisdata.name,
  439. departmentName: thisdata.departmentName,
  440. departmentId: thisdata.departmentId,
  441. position: thisdata.position,
  442. mobile: thisdata.mobile,
  443. });
  444. };
  445. };
  446. this.setState({
  447. distributionList: theArr,
  448. });
  449. }.bind(this),
  450. }).always(function () {
  451. this.setState({
  452. loading: false
  453. });
  454. }.bind(this));
  455. },
  456. //选定对象
  457. confirmSelect(record) {
  458. this.setState({
  459. loading: true
  460. });
  461. $.ajax({
  462. method: "POST",
  463. dataType: "json",
  464. crossDomain: false,
  465. url: globalConfig.context + "/api/admin/order/transferOrder",
  466. data: {
  467. orderNo: this.state.orderNo,
  468. aid: record.id,
  469. targetType: 2
  470. }
  471. }).done(function (data) {
  472. if (!data.error.length) {
  473. message.success('转交成功!');
  474. this.setState({
  475. loading: false,
  476. });
  477. this.distributionCancel();
  478. this.loaduser(this.state.orderNo);
  479. } else {
  480. message.warning(data.error[0].message);
  481. };
  482. }.bind(this));
  483. },
  484. //部门
  485. departmentList() {
  486. this.setState({
  487. loading: true
  488. });
  489. $.ajax({
  490. method: "get",
  491. dataType: "json",
  492. crossDomain: false,
  493. url: globalConfig.context + "/api/admin/organization/selectSuperId",
  494. data: {
  495. },
  496. success: function (data) {
  497. let thedata = data.data;
  498. let theArr = [];
  499. if (!thedata) {
  500. if (data.error && data.error.length) {
  501. message.warning(data.error[0].message);
  502. };
  503. thedata = {};
  504. } else {
  505. thedata.map(function (item, index) {
  506. theArr.push({
  507. key: index,
  508. name: item.name,
  509. id: item.id,
  510. })
  511. })
  512. }
  513. this.setState({
  514. departmentArr: theArr,
  515. })
  516. }.bind(this),
  517. }).always(function () {
  518. this.setState({
  519. loading: false
  520. });
  521. }.bind(this));
  522. },
  523. searchOrder() {
  524. this.contactList();
  525. },
  526. resetOrder() {
  527. this.state.departmenttList = undefined;
  528. this.state.financeNameSearch = '';
  529. this.setState({
  530. distributionList: []
  531. });
  532. },
  533. componentWillMount() {
  534. },
  535. componentWillReceiveProps(nextProps) { //props改变时触发
  536. this.state.visible = nextProps.showDesc;
  537. if (nextProps.userDetaile && nextProps.showDesc) {
  538. this.loaduser(nextProps.datauser.orderNo);
  539. this.loadData(nextProps.datauser);
  540. }
  541. },
  542. render() {
  543. const FormItem = Form.Item;
  544. let departmentArr = this.state.departmentArr || [];
  545. const formItemLayout = {
  546. labelCol: { span: 8 },
  547. wrapperCol: { span: 14 },
  548. };
  549. const orderDetaiel = this.state.orderList || [];
  550. return (
  551. <div>
  552. <Modal maskClosable={false} visible={this.state.visible}
  553. onOk={this.handleOk} onCancel={this.handleCancel}
  554. width='1200px'
  555. title='订单详情'
  556. footer=''
  557. className="admin-desc-content">
  558. <Form layout="horizontal" id="demand-form" style={{ paddingBottom: '40px' }} >
  559. <Spin spinning={this.state.loading}>
  560. <div className="clearfix">
  561. <div className="clearfix">
  562. <FormItem className="half-item"
  563. {...formItemLayout}
  564. label="订单编号" >
  565. <span>{orderDetaiel.orderNo}</span>
  566. </FormItem>
  567. <FormItem className="half-item"
  568. {...formItemLayout}
  569. label="下单时间" >
  570. <span>{orderDetaiel.createTime}</span>
  571. </FormItem>
  572. <FormItem className="half-item"
  573. {...formItemLayout}
  574. label="客户名称" >
  575. <span>{orderDetaiel.buyerName}</span>
  576. <Button onClick={this.seeContract} style={{ float: 'right', fontSize: '12px' }}>查看联系人</Button>
  577. </FormItem>
  578. <FormItem className="half-item"
  579. {...formItemLayout}
  580. label="订单类型" >
  581. <span>{getOrderType(orderDetaiel.orderType)}</span>
  582. </FormItem>
  583. <FormItem className="half-item"
  584. {...formItemLayout}
  585. label="订单外联" >
  586. <span>{getOrderChannel(orderDetaiel.orderChannel)}</span>
  587. </FormItem>
  588. <FormItem className="half-item"
  589. {...formItemLayout}
  590. label="订单状态" >
  591. <span>{getOrderState(orderDetaiel.orderStatus)}</span>
  592. </FormItem>
  593. <FormItem className="half-item"
  594. {...formItemLayout}
  595. label="已收款项" >
  596. <span>{orderDetaiel.actuallyTotalAmount + '万元'}</span>
  597. </FormItem>
  598. <FormItem className="half-item"
  599. {...formItemLayout}
  600. label="结算状态" >
  601. <span>{getPaymentState(orderDetaiel.liquidationStatus)}</span>
  602. </FormItem>
  603. <div className='clearfix'>
  604. <FormItem className="half-item"
  605. {...formItemLayout}
  606. label="实签订单金额" >
  607. <span>{orderDetaiel.signTotalAmount + '万元'}</span>
  608. </FormItem>
  609. <FormItem className="half-item"
  610. {...formItemLayout}
  611. label="实签首款金额" >
  612. <span>{orderDetaiel.signFirstPayment + '万元'}</span>
  613. </FormItem>
  614. <FormItem className="half-item"
  615. {...formItemLayout}
  616. label="特批立项" >
  617. <span>{getApprovedState(orderDetaiel.approval)}</span>
  618. </FormItem>
  619. <FormItem className="half-item"
  620. {...formItemLayout}
  621. label="合同编号" >
  622. <span>{orderDetaiel.contractNo}</span>
  623. </FormItem>
  624. <div className='clearfix'>
  625. <FormItem
  626. labelCol={{ span: 4 }}
  627. wrapperCol={{ span: 16 }}
  628. label="订单留言" >
  629. <span>{orderDetaiel.orderRemarks}</span>
  630. </FormItem>
  631. </div>
  632. </div>
  633. </div>
  634. <div className='clearfix'>
  635. <FormItem className="half-item"
  636. {...formItemLayout}
  637. label="订单负责人" >
  638. <span>{orderDetaiel.salesmanName}</span>
  639. </FormItem>
  640. <FormItem className="half-item"
  641. {...formItemLayout}
  642. label="业务品类" >
  643. <span>{orderDetaiel.projectType}</span>
  644. </FormItem>
  645. </div>
  646. <div className='clearfix'>
  647. <FormItem className="half-item"
  648. {...formItemLayout}
  649. label="意向时间" >
  650. <span>{orderDetaiel.createTime}</span>
  651. </FormItem>
  652. <FormItem className="half-item"
  653. {...formItemLayout}
  654. label="签单时间" >
  655. <span>{orderDetaiel.signTime}</span>
  656. </FormItem>
  657. <FormItem className="half-item"
  658. {...formItemLayout}
  659. label="财务负责人" >
  660. <span>{orderDetaiel.financeName}</span>
  661. <Button onClick={this.lookflow} style={{ float: 'right' }}>查看流水</Button>
  662. </FormItem>
  663. <FormItem className="half-item"
  664. {...formItemLayout}
  665. label="项目负责人" >
  666. <span>{orderDetaiel.technicianName}</span>
  667. {!orderDetaiel.technicianName ? <Button onClick={this.confirmDelet} style={{ float: 'right' }}>选择负责人</Button> : ''}
  668. </FormItem>
  669. <FormItem className="half-item"
  670. {...formItemLayout}
  671. label="立项时间" >
  672. <span>{orderDetaiel.setUpTime}</span>
  673. </FormItem>
  674. <FormItem className="half-item"
  675. {...formItemLayout}
  676. label="项目状态" >
  677. <span>{getProjectState(orderDetaiel.projectStage)}</span>
  678. </FormItem>
  679. </div>
  680. <div>
  681. <span style={{ marginLeft: '50px', fontSize: '20px' }}>业务项目</span>
  682. </div>
  683. <div className="patent-table">
  684. <Spin spinning={this.state.loading}>
  685. <Table columns={this.state.columns}
  686. dataSource={this.state.dataSource}
  687. pagination={false}
  688. onRowClick={this.tableRowClick}
  689. />
  690. </Spin>
  691. </div>
  692. </div>
  693. </Spin>
  694. </Form >
  695. </Modal>
  696. {this.state.projectOperationVisible ? <ProjectOperation
  697. readOnly={true}
  698. orderNo={this.state.orderNo}
  699. visible={this.state.projectOperationVisible}
  700. dataInfor={this.state.editFw}
  701. onCancel={() => {
  702. this.setState({
  703. projectOperationVisible: false,
  704. editFw: {},
  705. });
  706. }}
  707. /> : null}
  708. <Modal maskClosable={false} visible={this.state.lookVisible}
  709. onOk={this.lookCancel} onCancel={this.lookCancel}
  710. width='1300px'
  711. title='查看流水'
  712. footer=''
  713. className="admin-desc-content">
  714. <Form layout="horizontal" id="demand-form">
  715. <Spin spinning={this.state.loading}>
  716. <div className="clearfix">
  717. <Table columns={this.state.flowList}
  718. dataSource={this.state.lookflowList}
  719. pagination={false}
  720. />
  721. </div>
  722. </Spin>
  723. </Form >
  724. </Modal>
  725. <Modal maskClosable={false} visible={this.state.distributionVisible}
  726. onOk={this.distributionCancel} onCancel={this.distributionCancel}
  727. width='800px'
  728. title='请选择'
  729. footer=''
  730. className="admin-desc-content">
  731. <Form layout="horizontal" onSubmit={this.handleSubmit} id="demand-form" style={{ paddingBottom: '40px' }} >
  732. <Spin spinning={this.state.loading}>
  733. <div>
  734. <Select placeholder="订单部门"
  735. style={{ width: 150, marginRight: '10px', marginLeft: '10px' }}
  736. value={this.state.departmenttList}
  737. onChange={(e) => { this.setState({ departmenttList: e }) }}>
  738. {
  739. departmentArr.map(function (item) {
  740. return <Select.Option key={item.id} >{item.name}</Select.Option>
  741. })
  742. }
  743. </Select>
  744. <Input placeholder="项目负责人" style={{ width: '150px', marginLeft: '10px' }}
  745. value={this.state.financeNameSearch}
  746. onChange={(e) => { this.setState({ financeNameSearch: e.target.value }); }} />
  747. <Button type="primary" onClick={this.searchOrder} style={{ marginLeft: '10px', marginRight: '10px' }}>搜索</Button>
  748. <Button onClick={this.resetOrder}>重置</Button>
  749. </div>
  750. <div className="patent-table" style={{ marginTop: '10px' }}>
  751. <Spin spinning={this.state.loading}>
  752. <Table columns={this.state.userList}
  753. dataSource={this.state.distributionList}
  754. pagination={false}
  755. />
  756. </Spin>
  757. </div>
  758. </Spin>
  759. </Form>
  760. </Modal>
  761. <Modal maskClosable={false} visible={this.state.orderVisible}
  762. onOk={this.orderCancel} onCancel={this.orderCancel}
  763. width='800px'
  764. title='查看联系人'
  765. footer=''
  766. className="admin-desc-content">
  767. <Form layout="horizontal" id="demand-form" style={{ paddingBottom: '40px' }} >
  768. <Spin spinning={this.state.loading}>
  769. <div className="patent-table" style={{ marginTop: '10px' }}>
  770. <Spin spinning={this.state.loading}>
  771. <Table columns={this.state.contractList}
  772. dataSource={this.state.contractArr}
  773. pagination={false}
  774. />
  775. </Spin>
  776. </div>
  777. </Spin>
  778. </Form>
  779. </Modal>
  780. </div>
  781. )
  782. }
  783. }));
  784. export default MySettlementDetaile;