inquiry.jsx 34 KB

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