inquiry.jsx 34 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076
  1. import React from 'react';
  2. import { Button, Input, Spin, Table, message,DatePicker, Upload, Form ,Modal,Col} from 'antd';
  3. import $ from 'jquery/src/ajax';
  4. import moment from 'moment';
  5. import { getLiquidationStatus,getApprovedState,getProcessStatus,splitUrl,getjiedian,getboutique,getCuikuan,getProjectStatus} from '@/tools.js';
  6. import './customer.less';
  7. const IntentionCustomer = Form.create()(React.createClass({
  8. loadData(pageNo) {
  9. this.setState({
  10. visitModul:false,
  11. loading: true,
  12. ispage:pageNo,
  13. modalVisible:false
  14. });
  15. $.ajax({
  16. method: "get",
  17. dataType: "json",
  18. crossDomain: false,
  19. url: globalConfig.context +"/api/admin/newOrder/orderNewList",
  20. data: {
  21. pageNo: pageNo || 1,
  22. pageSize: this.state.pagination.pageSize,
  23. specially: 5,//部门列表
  24. name: this.state.customerName,//名称
  25. orderNo: this.state.orderNo,//订单编号
  26. starTime: this.state.releaseDate[0],//开始时间
  27. endTime: this.state.releaseDate[1],//结束时间
  28. },
  29. success: function(data) {
  30. let theArr = [];
  31. if(data.error.length || data.data.list == "") {
  32. if(data.error && data.error.length) {
  33. message.warning(data.error[0].message);
  34. };
  35. } else {
  36. for(let i = 0; i < data.data.list.length; i++) {
  37. let thisdata = data.data.list[i];
  38. theArr.push({
  39. key: i,
  40. id: thisdata.id,//用户ID
  41. orderNo: thisdata.orderNo,//订单编号
  42. totalAmount:thisdata.totalAmount,//签单金额
  43. processStatus:thisdata.processStatus,//流程状态
  44. liquidationStatus:thisdata.liquidationStatus,//结算状态
  45. approval:thisdata.approval,//特批状态
  46. signDate:thisdata.signDate,//签单时间
  47. userName:thisdata.userName,//客户名称
  48. salesmanName:thisdata.salesmanName,//营销员名称
  49. financeName:thisdata.financeName,//财务名称
  50. createDate:thisdata.createDate,//下单时间
  51. });
  52. };
  53. this.state.pagination.total = data.data.totalCount;
  54. };
  55. if(data.data&&data.data.list&&!data.data.list.length){
  56. this.state.pagination.total=0
  57. }
  58. this.setState({
  59. dataSource: theArr,
  60. pageNo: pageNo,
  61. pagination: this.state.pagination,
  62. selectedRowKeys:[]
  63. });
  64. }.bind(this),
  65. }).always(function() {
  66. this.setState({
  67. loading: false
  68. });
  69. }.bind(this));
  70. },
  71. getInitialState() {
  72. return {
  73. page:1,
  74. releaseDate: [],
  75. selectedRowKeys: [],
  76. orgCodeUrl:[],
  77. paginations:false,
  78. pagination: {
  79. defaultCurrent: 1,
  80. defaultPageSize: 10,
  81. showQuickJumper: true,
  82. pageSize: 10,
  83. onChange: function(page) {
  84. this.loadData(page);
  85. }.bind(this),
  86. showTotal: function(total) {
  87. return '共' + total + '条数据';
  88. }
  89. },
  90. columns: [
  91. {
  92. title: '订单编号',
  93. dataIndex: 'orderNo',
  94. key: 'orderNo'
  95. }, {
  96. title: '下单时间',
  97. dataIndex: 'createDate',
  98. key: 'createTime'
  99. },{
  100. title: '合同签订时间',
  101. dataIndex: 'signDate',
  102. key: 'signDate'
  103. },{
  104. title: '客户名称',
  105. dataIndex: 'userName',
  106. key: 'userName',
  107. render:(text)=>{
  108. return (text&&text.length>9?text.substr(0,9)+'...':text)
  109. }
  110. }, {
  111. title: '流程状态',
  112. dataIndex: 'processStatus',
  113. key: 'processStatus',
  114. render:text=>{return getProcessStatus(text)}
  115. }, {
  116. title: '签单金额(万元)',
  117. dataIndex: 'totalAmount',
  118. key: 'totalAmount'
  119. },{
  120. title: '结算状态',
  121. dataIndex: 'liquidationStatus',
  122. key: 'liquidationStatus',
  123. render:text=>{return getLiquidationStatus(text)}
  124. }, {
  125. title: '是否特批',
  126. dataIndex: 'approval',
  127. key: 'approval',
  128. render:text=>{return getApprovedState(text)}
  129. },{
  130. title: '订单负责人',
  131. dataIndex: 'salesmanName',
  132. key: 'salesmanName'
  133. },{
  134. title: '财务负责人',
  135. dataIndex: 'financeName',
  136. key: 'financeName'
  137. }
  138. ],
  139. data: [],
  140. dataSource: [],
  141. columnsX: [
  142. {
  143. title: '业务项目名称',
  144. dataIndex: 'commodityName',
  145. key: 'commodityName'
  146. }, {
  147. title: '项目类别',
  148. dataIndex: 'cname',
  149. key: 'cname',
  150. },{
  151. title: '项目数量',
  152. dataIndex: 'commodityQuantity',
  153. key: 'commodityQuantity'
  154. }, {
  155. title: '金额(万元)',
  156. dataIndex: 'commodityPrice',
  157. key: 'commodityPrice'
  158. }, {
  159. title: '负责人',
  160. dataIndex: 'contacts',
  161. key: 'contacts'
  162. }, {
  163. title: '负责人电话',
  164. dataIndex: 'contactsMobile',
  165. key: 'contactsMobile'
  166. }, {
  167. title:'项目状态',
  168. dataIndex:'projectStatus',
  169. key: 'projectStatus',
  170. render:text=>{return getProjectStatus(text)}
  171. }, {
  172. title: '主要项目',
  173. dataIndex: 'main',
  174. key: 'main',
  175. render:(text)=>{
  176. return (text?'是':'否')
  177. }
  178. }, {
  179. title: '项目说明',
  180. dataIndex: 'taskComment',
  181. key: 'taskComment',
  182. render:(text)=>{
  183. return (text&&text.length>8?text.substr(0,8)+'…':text)
  184. }
  185. }
  186. ],
  187. columnsrizhi:[
  188. {
  189. title:'流程',
  190. dataIndex: 'processName',
  191. key: 'processName'
  192. },
  193. {
  194. title:'操作人',
  195. dataIndex: 'adminName',
  196. key: 'adminName'
  197. },{
  198. title:'时间',
  199. dataIndex: 'createDate',
  200. key: 'createDate'
  201. }
  202. ],
  203. dataSourceX: [],
  204. ContactsLists: [{
  205. title: '催款科目',
  206. dataIndex: 'dunSubject',
  207. key: 'dunSubject',
  208. render: text=>{return getjiedian(text)}
  209. },{
  210. title: '金额(万)',
  211. dataIndex: 'money',
  212. key: 'money',
  213. }, {
  214. title: '催款状态',
  215. dataIndex: 'dunStatus',
  216. key: 'dunStatus',
  217. render:text=>{return getCuikuan(text)}
  218. },
  219. ],
  220. }
  221. },
  222. //页面加载函数
  223. componentWillMount() {
  224. this.loadData();
  225. },
  226. //整行点击
  227. tableRowClick(record) {
  228. this.setState({
  229. visible:true,
  230. });
  231. this.xiangqing(record.orderNo);
  232. this.xiangmu(record.orderNo);
  233. this.jiedian(record.orderNo);
  234. },
  235. //点击打卡项目详情
  236. tableRowClickX(record) {
  237. this.setState({
  238. jid:record.id,//项目ID
  239. kid:record.commodityId,//商品ID
  240. commodityName:record.commodityName,//金额
  241. commodityPrice:record.commodityPrice,//金额
  242. commodityQuantity:record.commodityQuantity,//数量
  243. taskComment:record.taskComment,//备注
  244. main:record.main.toString(),//是否为主要
  245. addnextVisible:true,
  246. addState:0,
  247. });
  248. },
  249. //项目详情关闭
  250. nextCancel() {
  251. this.setState({
  252. addnextVisible: false
  253. })
  254. },
  255. //订单详情
  256. xiangqing(orderNos) {
  257. $.ajax({
  258. method: "get",
  259. dataType: "json",
  260. crossDomain: false,
  261. url: globalConfig.context +"/api/admin/newOrder/getOrderNewDetail",
  262. data: {
  263. orderNo:orderNos
  264. },
  265. success: function(data) {
  266. if(data.error.length || data.data.list == "") {
  267. if(data.error && data.error.length) {
  268. message.warning(data.error[0].message);
  269. };
  270. } else {
  271. let thisdata=data.data;
  272. this.setState({
  273. orderNo: thisdata.orderNo, //订单编号
  274. contractNo: thisdata.contractNo, //合同编号
  275. userName: thisdata.userName, //客户名称
  276. signDate: thisdata.signDate, //签单时间
  277. processStatus: thisdata.processStatus, //流程状态
  278. liquidationStatus: thisdata.liquidationStatus, //结算状态
  279. contacts: thisdata.contacts, //企业联系人
  280. contactMobile: thisdata.contactMobile, //联系人电话
  281. legalPerson: thisdata.legalPerson, //法人
  282. legalPersonTel: thisdata.legalPersonTel, //法人电话
  283. firstAmount: thisdata.firstAmount, //签单金额
  284. totalAmount: thisdata.totalAmount, //首付金额
  285. approval: thisdata.approval, //特批状态
  286. settlementAmount: thisdata.settlementAmount, //已收款项
  287. orderRemarks: thisdata.orderRemarks, //订单留言
  288. orgCodeUrl: thisdata.contractPictureUrl
  289. ? splitUrl(
  290. thisdata.contractPictureUrl,
  291. ",",
  292. globalConfig.avatarHost + "/upload"
  293. )
  294. : [], //图片地址
  295. salesmanName: thisdata.salesmanName, //营销员名称
  296. salesmanMobile: thisdata.salesmanMobile, //营销员电话
  297. oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
  298. oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
  299. financeName: thisdata.financeName, //财务名称
  300. financeMobile: thisdata.financeMobile, //财务电话
  301. nowFinance: thisdata.nowFinance, //财务名称
  302. nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
  303. depName: thisdata.depName
  304. });
  305. };
  306. }.bind(this),
  307. }).always(function() {
  308. this.setState({
  309. loading: false
  310. });
  311. }.bind(this));
  312. },
  313. //项目列表
  314. xiangmu(orderNos) {
  315. $.ajax({
  316. method: "get",
  317. dataType: "json",
  318. crossDomain: false,
  319. url: globalConfig.context +"/api/admin/newOrder/getOrderTask",
  320. data: {
  321. orderNo:orderNos
  322. },
  323. success: function(data) {
  324. let theArr = [];
  325. if(data.error.length || data.data.list == "") {
  326. if(data.error && data.error.length) {
  327. message.warning(data.error[0].message);
  328. };
  329. } else {
  330. for (let i = 0; i < data.data.length; i++) {
  331. let thisdata = data.data[i];
  332. theArr.push({
  333. key: i,
  334. id:thisdata.id,
  335. orderNo:thisdata.orderNo,//订单编号
  336. commodityId:thisdata.commodityId,//项目ID
  337. commodityName:thisdata.commodityName,//项目名称
  338. cname:thisdata.cname,//项目类别
  339. commodityPrice:thisdata.commodityPrice,//项目价格
  340. commodityQuantity:thisdata.commodityQuantity,//项目数量
  341. main:thisdata.main,//是否为主要任务
  342. taskComment:thisdata.taskComment,//任务说明
  343. contacts:thisdata.contacts,//联系人
  344. contactsMobile:thisdata.contactsMobile,//联系人电话
  345. projectStatus:thisdata.projectStatus,//项目状态
  346. });
  347. };
  348. };
  349. this.setState({
  350. dataSourceX: theArr,
  351. });
  352. }.bind(this),
  353. }).always(function() {
  354. this.setState({
  355. loading: false
  356. });
  357. }.bind(this));
  358. },
  359. //节点列表
  360. jiedian(orderNos) {
  361. $.ajax({
  362. method: "get",
  363. dataType: "json",
  364. crossDomain: false,
  365. url: globalConfig.context +"/api/admin/newOrder/selectOrderDun",
  366. data: {
  367. orderNo:orderNos
  368. },
  369. success: function(data) {
  370. let theArr = [];
  371. let thisData=[];
  372. if(data.error.length || data.data.list == "") {
  373. if(data.error && data.error.length) {
  374. message.warning(data.error[0].message);
  375. };
  376. } else {
  377. for(let i = 0; i < data.data.length; i++) {
  378. thisData= data.data[i];
  379. theArr.push({
  380. key:i,
  381. dunSubject:thisData.dunSubject?thisData.dunSubject.toString():"",//催款科目
  382. id:thisData.id,//节点Id
  383. money:thisData.money,//催款金额
  384. dunStatus:thisData.dunStatus,//催款状态
  385. })
  386. }
  387. this.setState({
  388. contactList:theArr
  389. })
  390. };
  391. }.bind(this),
  392. }).always(function() {
  393. this.setState({
  394. loading: false
  395. });
  396. }.bind(this));
  397. },
  398. //审核通过
  399. examOk(){
  400. $.ajax({
  401. method: "post",
  402. dataType: "json",
  403. crossDomain: false,
  404. url: globalConfig.context +"/api/admin/newOrder/auditOrderNew",
  405. data: {
  406. orderNo:this.state.orderNo,
  407. orderStatus:2,
  408. },
  409. success: function(data) {
  410. if(data.error.length || data.data.list == "") {
  411. if(data.error && data.error.length) {
  412. message.warning(data.error[0].message);
  413. };
  414. } else {
  415. message.success("该订单已通过审核~");
  416. this.setState({
  417. visible:false,
  418. });
  419. this.reset();
  420. };
  421. }.bind(this),
  422. }).always(function() {
  423. this.setState({
  424. loading: false
  425. });
  426. }.bind(this));
  427. },
  428. //审核不通过
  429. examOks(){
  430. $.ajax({
  431. method: "post",
  432. dataType: "json",
  433. crossDomain: false,
  434. url: globalConfig.context +"/api/admin/newOrder/auditOrderNew",
  435. data: {
  436. orderNo:this.state.orderNo,
  437. orderStatus:3,
  438. reason:this.state.reason,
  439. },
  440. success: function(data) {
  441. if(data.error.length || data.data.list == "") {
  442. if(data.error && data.error.length) {
  443. message.warning(data.error[0].message);
  444. };
  445. } else {
  446. message.success("该订单已被拒绝~");
  447. this.setState({
  448. visible:false,
  449. noVisible:false
  450. });
  451. this.reset();
  452. };
  453. }.bind(this),
  454. }).always(function() {
  455. this.setState({
  456. loading: false
  457. });
  458. }.bind(this));
  459. },
  460. //点击拒绝
  461. examNo(){
  462. this.setState({
  463. noVisible:true
  464. })
  465. },
  466. //关闭输入理由框
  467. noCancel(){
  468. this.setState({
  469. noVisible:false
  470. })
  471. },
  472. rizhi(){
  473. console.log(this.state.orderNo)
  474. this.setState({
  475. loading:true
  476. })
  477. $.ajax({
  478. method: "get",
  479. dataType: "json",
  480. crossDomain: false,
  481. url: '/api/admin/newOrder/selectOrderLog',
  482. data: {
  483. orderNo:this.state.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. thisData = {};
  493. }else{
  494. for(let i = 0; i < data.data.length; i++) {
  495. let thisdata = data.data[i];
  496. theArr.push({
  497. processName:thisdata.processName,
  498. adminName:thisdata.adminName,
  499. createDate:thisdata.createDate,
  500. });
  501. };
  502. };
  503. this.setState({
  504. dataSourcerizhi: theArr
  505. })
  506. }.bind(this),
  507. }).always(function () {
  508. this.setState({
  509. loading: false
  510. });
  511. }.bind(this));
  512. },
  513. //查看订单日志
  514. getOrderLog(){
  515. this.setState({
  516. rizhivisible:true
  517. })
  518. this.rizhi()
  519. },
  520. closeOrderLog(){
  521. this.setState({
  522. rizhivisible:false
  523. })
  524. },
  525. //搜索
  526. search() {
  527. this.setState({
  528. //signBillVisible:false
  529. })
  530. this.loadData();
  531. },
  532. //重置
  533. reset() {
  534. this.setState({
  535. signBillVisible:false
  536. })
  537. this.state.orderNo='';
  538. this.state.customerName='';
  539. this.state.releaseDate[0] = undefined;
  540. this.state.releaseDate[1] = undefined;
  541. this.state.approval= undefined;
  542. this.loadData();
  543. },
  544. resets(){
  545. this.state.orderNo='';
  546. this.state.customerName='';
  547. this.state.releaseDate[0] = undefined;
  548. this.state.releaseDate[1] = undefined;
  549. },
  550. getOrgCodeUrl(e) {
  551. this.setState({ orgCodeUrl: e });
  552. },
  553. //关闭详情
  554. visitCancel(){
  555. this.setState({
  556. visible:false
  557. })
  558. this.resets();
  559. },
  560. visitOk(){
  561. this.setState({
  562. visible:false
  563. })
  564. this.resets();
  565. },
  566. render() {
  567. const formItemLayout = {
  568. labelCol: { span: 8 },
  569. wrapperCol: { span: 14 },
  570. };
  571. const FormItem = Form.Item;
  572. const { RangePicker } = DatePicker;
  573. const rowSelection = {
  574. selectedRowKeys: this.state.selectedRowKeys,
  575. onChange: (selectedRowKeys, selectedRows) => {
  576. this.setState({
  577. modalVisible:false,
  578. selectedRows: selectedRows.slice(-1),
  579. selectedRowKeys: selectedRowKeys.slice(-1)
  580. });
  581. },
  582. onSelect: (recordt) => {
  583. this.setState({
  584. modalVisible:false,
  585. recordt: recordt.id
  586. })
  587. },
  588. };
  589. return (
  590. <div className="user-content">
  591. <div className="content-title">
  592. <span>部门订单</span>
  593. </div>
  594. <div className="user-search">
  595. <Input
  596. placeholder="客户名称"
  597. style={{ width: "150px", marginBottom: "10px" }}
  598. value={this.state.customerName}
  599. onChange={e => {
  600. this.setState({ customerName: e.target.value });
  601. }}
  602. />
  603. <Input
  604. placeholder="订单编号"
  605. style={{ width: "150px" }}
  606. value={this.state.orderNo}
  607. onChange={e => {
  608. this.setState({ orderNo: e.target.value });
  609. }}
  610. />
  611. <span style={{ marginRight: "10px" }}>下单时间 :</span>
  612. <RangePicker
  613. value={[
  614. this.state.releaseDate[0]
  615. ? moment(this.state.releaseDate[0])
  616. : null,
  617. this.state.releaseDate[1]
  618. ? moment(this.state.releaseDate[1])
  619. : null
  620. ]}
  621. onChange={(data, dataString) => {
  622. this.setState({ releaseDate: dataString });
  623. }}
  624. />
  625. <Button
  626. type="primary"
  627. onClick={this.search}
  628. style={{ marginLeft: "10px" }}
  629. >
  630. 搜索
  631. </Button>
  632. <Button onClick={this.reset}>重置</Button>
  633. <div className="patent-table">
  634. <Spin spinning={this.state.loading}>
  635. <Table
  636. columns={this.state.columns}
  637. dataSource={this.state.dataSource}
  638. rowSelection={rowSelection}
  639. pagination={this.state.pagination}
  640. onRowClick={this.tableRowClick}
  641. />
  642. </Spin>
  643. </div>
  644. <Modal
  645. className="customeDetails"
  646. footer=""
  647. title="订单详情"
  648. width="900px"
  649. visible={this.state.visible}
  650. onOk={this.visitOk}
  651. onCancel={this.visitCancel}
  652. >
  653. <Form
  654. layout="horizontal"
  655. onSubmit={this.handleSubmit}
  656. id="demand-form"
  657. style={{ paddingBottom: "40px" }}
  658. >
  659. <Spin spinning={this.state.loading}>
  660. <div className="clearfix">
  661. <FormItem
  662. className="half-item"
  663. {...formItemLayout}
  664. label="订单编号"
  665. >
  666. <span>{this.state.orderNo}</span>
  667. </FormItem>
  668. <FormItem
  669. className="half-item"
  670. {...formItemLayout}
  671. label="合同编号"
  672. >
  673. <span>{this.state.contractNo}</span>
  674. </FormItem>
  675. <FormItem
  676. className="half-item"
  677. {...formItemLayout}
  678. label="客户名称"
  679. >
  680. <span>{this.state.userName}</span>
  681. </FormItem>
  682. <FormItem
  683. className="half-item"
  684. {...formItemLayout}
  685. label="合同签订时间"
  686. >
  687. <span>{this.state.signDate}</span>
  688. </FormItem>
  689. <FormItem
  690. className="half-item"
  691. {...formItemLayout}
  692. label="流程状态"
  693. >
  694. <span>{getProcessStatus(this.state.processStatus)}</span>
  695. </FormItem>
  696. <FormItem
  697. className="half-item"
  698. {...formItemLayout}
  699. label="结算状态"
  700. >
  701. <span>
  702. {getLiquidationStatus(this.state.liquidationStatus)}
  703. </span>
  704. </FormItem>
  705. <FormItem
  706. className="half-item"
  707. {...formItemLayout}
  708. label="企业联系人"
  709. >
  710. <span>{this.state.contacts}</span>
  711. </FormItem>
  712. <FormItem
  713. className="half-item"
  714. {...formItemLayout}
  715. label="联系人电话"
  716. >
  717. <span>{this.state.contactMobile}</span>
  718. </FormItem>
  719. <FormItem
  720. className="half-item"
  721. {...formItemLayout}
  722. label="企业法人"
  723. >
  724. <span>{this.state.legalPerson}</span>
  725. </FormItem>
  726. <FormItem
  727. className="half-item"
  728. {...formItemLayout}
  729. label="法人电话"
  730. >
  731. <span>{this.state.legalPersonTel}</span>
  732. </FormItem>
  733. <FormItem
  734. className="half-item"
  735. {...formItemLayout}
  736. label="签单金额(万元)"
  737. >
  738. <span>{this.state.totalAmount}</span>
  739. </FormItem>
  740. <FormItem
  741. className="half-item"
  742. {...formItemLayout}
  743. label="首付金额(万元)"
  744. >
  745. <span>{this.state.firstAmount}</span>
  746. </FormItem>
  747. <FormItem
  748. className="half-item"
  749. {...formItemLayout}
  750. label="特批立项"
  751. >
  752. <span>{getApprovedState(this.state.approval)}</span>
  753. </FormItem>
  754. <FormItem
  755. className="half-item"
  756. {...formItemLayout}
  757. label="已收款项(万元)"
  758. >
  759. <span>{this.state.settlementAmount}</span>
  760. </FormItem>
  761. <FormItem
  762. className="half-item"
  763. {...formItemLayout}
  764. label="订单部门"
  765. >
  766. <span>{this.state.depName}</span>
  767. </FormItem>
  768. <div className="clearfix">
  769. <FormItem
  770. labelCol={{ span: 4 }}
  771. wrapperCol={{ span: 16 }}
  772. label="订单留言"
  773. >
  774. <span>{this.state.orderRemarks}</span>
  775. </FormItem>
  776. </div>
  777. <div className="clearfix">
  778. <FormItem
  779. labelCol={{ span: 4 }}
  780. wrapperCol={{ span: 18 }}
  781. label="合同扫描件"
  782. >
  783. <Upload
  784. className="demandDetailShow-upload"
  785. listType="picture-card"
  786. fileList={this.state.orgCodeUrl}
  787. onPreview={file => {
  788. this.setState({
  789. previewImage: file.url || file.thumbUrl,
  790. previewVisible: true
  791. });
  792. }}
  793. ></Upload>
  794. <Modal
  795. maskClosable={false}
  796. footer={null}
  797. visible={this.state.previewVisible}
  798. onCancel={() => {
  799. this.setState({ previewVisible: false });
  800. }}
  801. >
  802. <img
  803. alt=""
  804. style={{ width: "100%" }}
  805. src={this.state.previewImage || ""}
  806. />
  807. </Modal>
  808. <Button
  809. style={{
  810. float: "right",
  811. marginRight: "140px",
  812. marginTop: "20px"
  813. }}
  814. onClick={this.getOrderLog}
  815. >
  816. 查看订单 日志
  817. </Button>
  818. </FormItem>
  819. </div>
  820. <div className="clearfix">
  821. <FormItem
  822. className="half-item"
  823. {...formItemLayout}
  824. label="订单负责人"
  825. >
  826. <span>{this.state.salesmanName}</span>
  827. </FormItem>
  828. <FormItem
  829. className="half-item"
  830. {...formItemLayout}
  831. label="订单负责人电话"
  832. >
  833. <span>{this.state.salesmanMobile}</span>
  834. </FormItem>
  835. </div>
  836. <div className="clearfix">
  837. <FormItem
  838. className="half-item"
  839. {...formItemLayout}
  840. label="当前财务负责人"
  841. >
  842. <span>{this.state.nowFinance}</span>
  843. </FormItem>
  844. <FormItem
  845. className="half-item"
  846. {...formItemLayout}
  847. label="当前财务负责人电话"
  848. >
  849. <span>{this.state.nowFinanceMobile}</span>
  850. </FormItem>
  851. </div>
  852. <div className="clearfix">
  853. <FormItem
  854. className="half-item"
  855. {...formItemLayout}
  856. style={{ opacity: ".5" }}
  857. label="原订单负责人"
  858. >
  859. <span>{this.state.oldSalesmanName}</span>
  860. </FormItem>
  861. <FormItem
  862. className="half-item"
  863. {...formItemLayout}
  864. style={{ opacity: ".5" }}
  865. label="原订单负责人电话"
  866. >
  867. <span>{this.state.oldSalesmanMobile}</span>
  868. </FormItem>
  869. </div>
  870. <div className="clearfix">
  871. <FormItem
  872. className="half-item"
  873. style={{ opacity: ".5" }}
  874. {...formItemLayout}
  875. label="实际财务操作人"
  876. >
  877. <span>{this.state.financeName}</span>
  878. </FormItem>
  879. <FormItem
  880. className="half-item"
  881. {...formItemLayout}
  882. style={{ opacity: ".5" }}
  883. label="实际财务操作人电话"
  884. >
  885. <span>{this.state.financeMobile}</span>
  886. </FormItem>
  887. </div>
  888. <div>
  889. <span style={{ marginLeft: "50px", fontSize: "20px" }}>
  890. 催款节点
  891. </span>
  892. </div>
  893. <div className="clearfix">
  894. <Spin spinning={this.state.loading}>
  895. <Form layout="horizontal" id="demand-form">
  896. <Table
  897. pagination={false}
  898. columns={this.state.ContactsLists}
  899. dataSource={this.state.contactList}
  900. />
  901. <Col
  902. span={24}
  903. offset={9}
  904. style={{ marginTop: "15px" }}
  905. ></Col>
  906. </Form>
  907. </Spin>
  908. </div>
  909. <div>
  910. <span style={{ marginLeft: "50px", fontSize: "20px" }}>
  911. 项目业务
  912. </span>
  913. </div>
  914. <div className="patent-table">
  915. <Spin spinning={this.state.loading}>
  916. <Table
  917. columns={this.state.columnsX}
  918. dataSource={this.state.dataSourceX}
  919. pagination={this.state.paginations}
  920. onRowClick={this.tableRowClickX}
  921. />
  922. </Spin>
  923. </div>
  924. </div>
  925. </Spin>
  926. </Form>
  927. </Modal>
  928. <Modal
  929. maskClosable={false}
  930. visible={this.state.addnextVisible}
  931. onOk={this.nextCancel}
  932. onCancel={this.nextCancel}
  933. width="800px"
  934. title={"项目任务详情"}
  935. footer=""
  936. className="admin-desc-content"
  937. >
  938. <Form layout="horizontal" id="demand-form">
  939. <Spin spinning={this.state.loading}>
  940. <div className="clearfix">
  941. <FormItem
  942. className="half-item"
  943. {...formItemLayout}
  944. label="项目名称"
  945. >
  946. <span>{this.state.commodityName}</span>
  947. </FormItem>
  948. <FormItem
  949. className="half-item"
  950. {...formItemLayout}
  951. label="项目数量"
  952. >
  953. <span>{this.state.commodityQuantity}</span>
  954. </FormItem>
  955. <FormItem
  956. className="half-item"
  957. {...formItemLayout}
  958. label="金额(万元)"
  959. >
  960. <span>{this.state.commodityPrice}</span>
  961. </FormItem>
  962. <FormItem
  963. className="half-item"
  964. {...formItemLayout}
  965. label="主要项目"
  966. >
  967. <span>{getboutique(this.state.main)}</span>
  968. </FormItem>
  969. <div className="clearfix">
  970. <FormItem
  971. labelCol={{ span: 4 }}
  972. wrapperCol={{ span: 16 }}
  973. label="服务说明"
  974. >
  975. <span>{this.state.taskComment}</span>
  976. </FormItem>
  977. </div>
  978. </div>
  979. </Spin>
  980. </Form>
  981. </Modal>
  982. <Modal
  983. maskClosable={false}
  984. visible={this.state.noVisible}
  985. onOk={this.noCancel}
  986. onCancel={this.noCancel}
  987. width="400px"
  988. title={"拒绝理由"}
  989. footer=""
  990. className="admin-desc-content"
  991. >
  992. <Form layout="horizontal" id="demand-form">
  993. <Spin spinning={this.state.loading}>
  994. <div className="clearfix">
  995. <FormItem
  996. labelCol={{ span: 4 }}
  997. wrapperCol={{ span: 16 }}
  998. label="拒绝理由"
  999. >
  1000. <Input
  1001. type="textarea"
  1002. placeholder="请输入拒绝理由"
  1003. rows={4}
  1004. value={this.state.reason}
  1005. onChange={e => {
  1006. this.setState({ reason: e.target.value });
  1007. }}
  1008. />
  1009. </FormItem>
  1010. </div>
  1011. <div className="clearfix">
  1012. <Button
  1013. className="cancel"
  1014. type="primary"
  1015. onClick={this.examOks}
  1016. style={{ marginLeft: "50px" }}
  1017. htmlType="submit"
  1018. >
  1019. 确定
  1020. </Button>
  1021. <Button
  1022. className="cancel"
  1023. type="ghost"
  1024. onClick={this.noCancel}
  1025. style={{ marginLeft: "50px" }}
  1026. >
  1027. 取消
  1028. </Button>
  1029. </div>
  1030. </Spin>
  1031. </Form>
  1032. </Modal>
  1033. <Modal
  1034. visible={this.state.rizhivisible}
  1035. className="admin-desc-content"
  1036. width="800px"
  1037. maskClosable={false}
  1038. title="订单日志"
  1039. footer={null}
  1040. onCancel={this.closeOrderLog}
  1041. >
  1042. <div className="patent-table">
  1043. <Spin spinning={this.state.loading}>
  1044. <Table
  1045. columns={this.state.columnsrizhi}
  1046. dataSource={this.state.dataSourcerizhi}
  1047. pagination={false}
  1048. />
  1049. </Spin>
  1050. </div>
  1051. </Modal>
  1052. </div>
  1053. </div>
  1054. );
  1055. }
  1056. }));
  1057. export default IntentionCustomer;