shouKuanAll.jsx 61 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178
  1. import React from "react";
  2. import $ from "jquery/src/ajax";
  3. import moment from "moment";
  4. import "./public.less";
  5. import "./shouKuan.less";
  6. import {
  7. Button,
  8. Form,
  9. Input,
  10. Spin,
  11. Table,
  12. Select,
  13. message,
  14. DatePicker,
  15. Modal,
  16. Tabs,
  17. Col
  18. } from "antd";
  19. import OrderDesc from "../orderDetail/orderDesc";
  20. import Receivable from "./receivable";
  21. import Assign from "@/manageCenter/publicComponent/assign";
  22. import ReactToPrint from "react-to-print";
  23. import {
  24. getLiquidationStatus,
  25. getProcessStatus,
  26. getApproval,
  27. getInvoiceStatus,
  28. getTransactionProject,
  29. getTaskStatus,
  30. getNewOrderStatus,
  31. getProjectStatus,
  32. getjiedian
  33. } from "@/tools";
  34. import { ChooseList } from "../../order/orderNew/chooseList";
  35. const FormItem = Form.Item;
  36. const { TabPane } = Tabs;
  37. const ShouKuang = React.createClass({
  38. departmentList() {
  39. this.setState({
  40. loading: true
  41. });
  42. $.ajax({
  43. method: "get",
  44. dataType: "json",
  45. crossDomain: false,
  46. url: globalConfig.context + "/api/admin/organization/selectSuperId",
  47. data: {},
  48. success: function(data) {
  49. let thedata = data.data;
  50. let theArr = [];
  51. if (!thedata) {
  52. if (data.error && data.error.length) {
  53. message.warning(data.error[0].message);
  54. }
  55. } else {
  56. thedata.map(function(item, index) {
  57. theArr.push({
  58. key: index,
  59. name: item.name,
  60. id: item.id
  61. });
  62. });
  63. }
  64. this.setState({
  65. departmentArr: theArr
  66. });
  67. }.bind(this)
  68. }).always(
  69. function() {
  70. this.setState({
  71. loading: false
  72. });
  73. }.bind(this)
  74. );
  75. },
  76. loadData(pageNo, pageSize) {
  77. this.state.data = [];
  78. this.state.pagination.pageSize = 10;
  79. this.setState({
  80. // selectedRowKeys: [],
  81. // selectedRowKey: [],
  82. page: pageNo,
  83. loadingA: true,
  84. pagination: this.state.pagination
  85. });
  86. $.ajax({
  87. method: "get",
  88. dataType: "json",
  89. crossDomain: false,
  90. url: globalConfig.context + "/api/admin/financial/financeList",
  91. data: {
  92. pageNo: pageNo || 1,
  93. pageSize: pageSize || this.state.pagination.pageSize,
  94. buyerName: this.state.nameSearch, //客户名称
  95. orderNo: this.state.orderNoSearch,
  96. startTime: this.state.releaseDate[0],
  97. endTime: this.state.releaseDate[1],
  98. startFinalReceivablesTime: this.state.shouKuanDate[0],
  99. endFinalReceivablesTime: this.state.shouKuanDate[1],
  100. departmentId: this.state.departmenttList,
  101. processStatus: this.state.processStatusSearch,
  102. contractNo: this.state.contractNoSearch,
  103. liquidationStatus: this.state.liquidationStatus
  104. },
  105. success: function(data) {
  106. let theArr = [];
  107. if (!data.data || !data.data.pagination.list) {
  108. if (data.error && data.error.length) {
  109. message.warning(data.error[0].message);
  110. }
  111. } else {
  112. for (let i = 0; i < data.data.pagination.list.length; i++) {
  113. let thisdata = data.data.pagination.list[i];
  114. theArr.push({
  115. key: thisdata.orderNo,
  116. orderNo: thisdata.orderNo,
  117. orderType: thisdata.orderType,
  118. orderStatus: thisdata.orderStatus,
  119. sellerName: thisdata.sellerName,
  120. processStatus: thisdata.processStatus,
  121. liquidationStatus: thisdata.liquidationStatus,
  122. approval: thisdata.approval,
  123. buyerName: thisdata.buyerName,
  124. actuallyTotalAmount: thisdata.actuallyTotalAmount,
  125. signTime: thisdata.signTime,
  126. companyId: thisdata.companyId,
  127. companyName: thisdata.companyName,
  128. buyerId: thisdata.buyerId,
  129. buyerName: thisdata.buyerName,
  130. contractNo: thisdata.contractNo,
  131. createTime: thisdata.createTime,
  132. departmentName: thisdata.departmentName,
  133. invoiceAmount: thisdata.invoiceAmount,
  134. finalReceivables: thisdata.finalReceivables,
  135. finalReceivablesTime: thisdata.finalReceivablesTime,
  136. signTotalAmount: thisdata.signTotalAmount,
  137. financeName: thisdata.financeName
  138. });
  139. }
  140. }
  141. this.state.pagination.current = data.data.pagination.pageNo;
  142. this.state.pagination.total = data.data.pagination.totalCount;
  143. if (
  144. data.data &&
  145. data.data.pagination.list &&
  146. !data.data.pagination.list.length
  147. ) {
  148. this.state.pagination.current = 0;
  149. this.state.pagination.total = 0;
  150. }
  151. this.setState({
  152. totalPage: data.data.pagination.totalPage,
  153. dataSource: theArr,
  154. pagination: this.state.pagination,
  155. totalHui: data.data.count ? data.data.count.signTotalAmount : 0,
  156. hui: data.data.count ? data.data.count.actuallyTotalAmount : 0
  157. });
  158. }.bind(this)
  159. }).always(
  160. function() {
  161. this.setState({
  162. loadingA: false
  163. });
  164. }.bind(this)
  165. );
  166. },
  167. getInitialState() {
  168. return {
  169. searchMore: true,
  170. dvisible: false,
  171. assignVisibleX: false,
  172. assignVisibleY: false,
  173. releaseDate: [],
  174. shouKuanDate: [],
  175. assignDataX: [],
  176. assignDataY: [],
  177. totalPage: 0,
  178. processStatusSearch: [],
  179. boHuivisible: false,
  180. selectedRowKeys: [],
  181. selectedRows: [],
  182. loading: false,
  183. loadingA: false,
  184. pagination: {
  185. defaultCurrent: 1,
  186. defaultPageSize: 10,
  187. showQuickJumper: true,
  188. pageSize: 10,
  189. onChange: function(page) {
  190. this.loadData(page);
  191. }.bind(this),
  192. showTotal: function(total) {
  193. return "共" + total + "条数据";
  194. }
  195. },
  196. // 子组件改变的表格title数组
  197. changeList: undefined,
  198. proColumns: [
  199. {
  200. title: "序号",
  201. dataIndex: "key",
  202. key: "key"
  203. },
  204. {
  205. title: "合同编号",
  206. dataIndex: "contractNo",
  207. key: "contractNo"
  208. },
  209. {
  210. title: "订单编号",
  211. dataIndex: "orderNo",
  212. key: "orderNo"
  213. },
  214. {
  215. title: "客户名称",
  216. dataIndex: "userName",
  217. key: "userName"
  218. },
  219. {
  220. title: "订单负责人",
  221. dataIndex: "salesmanName",
  222. key: "salesmanName"
  223. },
  224. {
  225. title: "是否主项目",
  226. dataIndex: "main",
  227. key: "main",
  228. render: text => {
  229. return text == 0 ? "否" : "是";
  230. }
  231. },
  232. {
  233. title: "项目类别",
  234. dataIndex: "cname",
  235. key: "cname"
  236. },
  237. {
  238. title: "项目名称",
  239. dataIndex: "commodityName",
  240. key: "commodityName"
  241. },
  242. {
  243. title: "项目数量",
  244. dataIndex: "commodityQuantity",
  245. key: "commodityQuantity"
  246. },
  247. {
  248. title: "服务市价",
  249. dataIndex: "commodityPrice",
  250. key: "commodityPrice"
  251. },
  252. {
  253. title: "证书编号",
  254. dataIndex: "certificateNumber",
  255. key: "certificateNumber"
  256. },
  257. {
  258. title: "项目状态",
  259. dataIndex: "projectStatus",
  260. key: "projectStatus",
  261. render: text => {
  262. return getProjectStatus(text);
  263. }
  264. },
  265. {
  266. title: "项目说明",
  267. dataIndex: "taskComment",
  268. key: "taskComment"
  269. },
  270. {
  271. title: "外包(内部)公司",
  272. dataIndex: "outsourceName",
  273. key: "outsourceName"
  274. },
  275. {
  276. title: "外包(内部)价格",
  277. dataIndex: "outsourcePrice",
  278. key: "outsourcePrice"
  279. }
  280. ],
  281. cuiColumns: [
  282. {
  283. title: "序号",
  284. dataIndex: "key",
  285. key: "key"
  286. },
  287. {
  288. title: "合同编号",
  289. dataIndex: "contractNo",
  290. key: "contractNo"
  291. },
  292. {
  293. title: "订单编号",
  294. dataIndex: "orderNo",
  295. key: "orderNo"
  296. },
  297. {
  298. title: "客户名称",
  299. dataIndex: "userName",
  300. key: "userName"
  301. },
  302. {
  303. title: "订单负责人",
  304. dataIndex: "salesmanName",
  305. key: "salesmanName"
  306. },
  307. {
  308. title: "订单部门",
  309. dataIndex: "depName",
  310. key: "depName"
  311. },
  312. {
  313. title: "订单状态",
  314. dataIndex: "orderStatus",
  315. key: "orderStatus",
  316. render: text => {
  317. return getNewOrderStatus(text);
  318. }
  319. },
  320. {
  321. title: "项目状态",
  322. dataIndex: "projectStatus",
  323. key: "projectStatus",
  324. render: text => {
  325. return getProjectStatus(text);
  326. }
  327. },
  328. {
  329. title: "签单金额",
  330. dataIndex: "totalAmount",
  331. key: "totalAmount"
  332. },
  333. {
  334. title: "结算状态",
  335. dataIndex: "liquidationStatus",
  336. key: "liquidationStatus",
  337. render: text => {
  338. return getLiquidationStatus(text);
  339. }
  340. },
  341. {
  342. title: "已收款",
  343. dataIndex: "settlementAmount",
  344. key: "settlementAmount"
  345. },
  346. {
  347. title: "应收款",
  348. dataIndex: "accountsReceivable",
  349. key: "accountsReceivable"
  350. },
  351. {
  352. title: "催收科目",
  353. dataIndex: "dunSubject",
  354. key: "dunSubject"
  355. // render: text => {
  356. // return getjiedian(text);
  357. // }
  358. },
  359. {
  360. title: "催款状态",
  361. dataIndex: "dunStatus",
  362. key: "dunStatus"
  363. },
  364. {
  365. title: "催收启动时间",
  366. dataIndex: "startDate",
  367. key: "startDate"
  368. }
  369. ],
  370. timeColumns: [
  371. {
  372. title: "合同编号",
  373. dataIndex: "contractNo",
  374. key: "contractNo"
  375. },
  376. {
  377. title: "订单编号",
  378. dataIndex: "orderNo",
  379. key: "orderNo"
  380. },
  381. {
  382. title: "客户名称",
  383. dataIndex: "userName",
  384. key: "userName",
  385. render: text => {
  386. return text && text.length > 9 ? text.substr(0, 9) + "..." : text;
  387. }
  388. },
  389. {
  390. title: "订单部门",
  391. dataIndex: "depName",
  392. key: "depName"
  393. },
  394. {
  395. title: "订单负责人",
  396. dataIndex: "salesmanName",
  397. key: "salesmanName"
  398. },
  399. {
  400. title: "项目类别",
  401. dataIndex: "cname",
  402. key: "cname"
  403. },
  404. {
  405. title: "项目编号",
  406. dataIndex: "id",
  407. key: "id"
  408. },
  409. {
  410. title: "项目名称",
  411. dataIndex: "taskName",
  412. key: "taskName"
  413. },
  414. {
  415. title: "项目负责人",
  416. dataIndex: "receiverName",
  417. key: "receiverName"
  418. },
  419. {
  420. title: "项目价格(万元)",
  421. dataIndex: "commodityPrice",
  422. key: "commodityPrice"
  423. },
  424. {
  425. title: "数量(个)",
  426. dataIndex: "commodityQuantity",
  427. key: "commodityQuantity"
  428. },
  429. {
  430. title: "任务状态",
  431. dataIndex: "taskStatus",
  432. key: "taskStatus",
  433. render: text => {
  434. return getTaskStatus(text);
  435. }
  436. },
  437. {
  438. title: "项目状态",
  439. dataIndex: "projectStatus",
  440. key: "projectStatus",
  441. render: text => {
  442. return getProjectStatus(text);
  443. }
  444. },
  445. {
  446. title: "工时",
  447. dataIndex: "hours",
  448. key: "hours"
  449. },
  450. {
  451. title: "签单日期",
  452. dataIndex: "signTime",
  453. key: "signTime"
  454. },
  455. {
  456. title: "派单日期",
  457. dataIndex: "creteTime",
  458. key: "creteTime"
  459. },
  460. {
  461. title: "分配时间",
  462. dataIndex: "taskDistributionTime",
  463. key: "taskDistributionTime"
  464. },
  465. {
  466. title: "完成时间",
  467. dataIndex: "taskEndTime",
  468. key: "taskEndTime"
  469. }
  470. ],
  471. printColumns: [
  472. {
  473. title: "合同编号",
  474. dataIndex: "contractNo",
  475. key: "contractNo"
  476. },
  477. {
  478. title: "订单编号",
  479. dataIndex: "orderNo",
  480. key: "orderNo"
  481. // fixed: "left"
  482. },
  483. {
  484. title: "客户名称",
  485. dataIndex: "buyerName",
  486. key: "buyerName"
  487. },
  488. {
  489. title: "订单部门",
  490. dataIndex: "departmentName",
  491. key: "departmentName"
  492. },
  493. {
  494. title: "订单负责人",
  495. dataIndex: "sellerName",
  496. key: "sellerName"
  497. },
  498. {
  499. title: "签单日期",
  500. dataIndex: "signTime",
  501. key: "signTime"
  502. },
  503. {
  504. title: "下单日期",
  505. dataIndex: "createTime",
  506. key: "createTime"
  507. },
  508. {
  509. title: "签单金额(万元)",
  510. dataIndex: "signTotalAmount",
  511. key: "signTotalAmount"
  512. },
  513. {
  514. title: "开票金额(万元)",
  515. dataIndex: "invoiceAmount",
  516. key: "invoiceAmount"
  517. },
  518. {
  519. title: "已收款(万元)",
  520. dataIndex: "actuallyTotalAmount",
  521. key: "actuallyTotalAmount"
  522. },
  523. {
  524. title: "最近收款(万元)",
  525. dataIndex: "finalReceivables",
  526. key: "finalReceivables"
  527. },
  528. {
  529. title: "最近收款时间",
  530. dataIndex: "finalReceivablesTime",
  531. key: "finalReceivablesTime"
  532. },
  533. {
  534. title: "结算状态",
  535. dataIndex: "liquidationStatus",
  536. key: "liquidationStatus",
  537. render: text => {
  538. return getLiquidationStatus(text);
  539. }
  540. },
  541. {
  542. title: "流程状态",
  543. dataIndex: "processStatus",
  544. key: "processStatus",
  545. render: text => {
  546. return getProcessStatus(text);
  547. }
  548. },
  549. {
  550. title: "特批状态",
  551. dataIndex: "approval",
  552. key: "approval",
  553. render: text => {
  554. return getApproval(text);
  555. }
  556. }
  557. ],
  558. columns: [
  559. {
  560. title: "合同编号",
  561. dataIndex: "contractNo",
  562. key: "contractNo",
  563. className: "title-table"
  564. },
  565. {
  566. title: "订单编号",
  567. dataIndex: "orderNo",
  568. key: "orderNo",
  569. className: "title-table"
  570. // fixed: "left"
  571. },
  572. {
  573. title: "客户名称",
  574. dataIndex: "buyerName",
  575. key: "buyerName",
  576. className: "title-table"
  577. },
  578. {
  579. title: "订单部门",
  580. dataIndex: "departmentName",
  581. key: "departmentName",
  582. className: "title-table"
  583. },
  584. {
  585. title: "订单负责人",
  586. dataIndex: "sellerName",
  587. key: "sellerName",
  588. className: "title-table"
  589. },
  590. {
  591. title: "财务负责人",
  592. dataIndex: "financeName",
  593. key: "financeName",
  594. className: "title-table"
  595. },
  596. {
  597. title: "签单日期",
  598. dataIndex: "signTime",
  599. key: "signTime",
  600. className: "title-table"
  601. },
  602. {
  603. title: "下单日期",
  604. dataIndex: "createTime",
  605. key: "createTime",
  606. className: "title-table"
  607. },
  608. {
  609. title: "签单金额(万元)",
  610. dataIndex: "signTotalAmount",
  611. key: "signTotalAmount",
  612. className: "title-table"
  613. },
  614. {
  615. title: "开票金额(万元)",
  616. dataIndex: "invoiceAmount",
  617. key: "invoiceAmount",
  618. className: "title-table"
  619. },
  620. {
  621. title: "已收款(万元)",
  622. dataIndex: "actuallyTotalAmount",
  623. key: "actuallyTotalAmount",
  624. className: "title-table"
  625. },
  626. {
  627. title: "最近收款(万元)",
  628. dataIndex: "finalReceivables",
  629. key: "finalReceivables",
  630. className: "title-table"
  631. },
  632. {
  633. title: "最近收款时间",
  634. dataIndex: "finalReceivablesTime",
  635. key: "finalReceivablesTime",
  636. className: "title-table"
  637. },
  638. {
  639. title: "结算状态",
  640. dataIndex: "liquidationStatus",
  641. key: "liquidationStatus",
  642. className: "title-table",
  643. render: text => {
  644. return getLiquidationStatus(text);
  645. }
  646. },
  647. {
  648. title: "流程状态",
  649. dataIndex: "processStatus",
  650. key: "processStatus",
  651. className: "title-table",
  652. render: text => {
  653. return getProcessStatus(text);
  654. }
  655. },
  656. {
  657. title: "特批状态",
  658. dataIndex: "approval",
  659. key: "approval",
  660. className: "title-table",
  661. render: text => {
  662. return getApproval(text);
  663. }
  664. }
  665. // {
  666. // title: '订单状态',
  667. // dataIndex: 'orderStatus',
  668. // key: 'orderStatus',
  669. // render: text => { return getNewOrderStatus(text)}
  670. // },
  671. // {
  672. // title: "操作",
  673. // dataIndex: "caozuo",
  674. // key: "caouzo",
  675. // className: "title-table",
  676. // render: (text, recard) => {
  677. // return (
  678. // <div>
  679. // {recard.liquidationStatus < 2 &&
  680. // (recard.approval === 1 || recard.approval === 2) ? (
  681. // <Button
  682. // style={{ background: "rgb(192,192,192)" }}
  683. // onClick={e => {
  684. // e.stopPropagation(), this.evaluateX(recard);
  685. // }}
  686. // >
  687. // 收款
  688. // </Button>
  689. // ) : (
  690. // <Button
  691. // type="primary"
  692. // onClick={e => {
  693. // e.stopPropagation(), this.evaluateX(recard);
  694. // }}
  695. // >
  696. // 收款
  697. // </Button>
  698. // )}
  699. // {recard.processStatus < 4 ? (
  700. // <Button
  701. // type="primary"
  702. // onClick={e => {
  703. // e.stopPropagation(), this.evaluateZ(recard);
  704. // }}
  705. // style={{ marginLeft: "5px" }}
  706. // >
  707. // 通过
  708. // </Button>
  709. // ) : (
  710. // ""
  711. // )}
  712. // {!(
  713. // recard.actuallyTotalAmount &&
  714. // Number(recard.actuallyTotalAmount) > 0
  715. // ) && (
  716. // <Button
  717. // type="danger"
  718. // style={{ marginLeft: "5px" }}
  719. // onClick={e => {
  720. // e.stopPropagation(), this.reject(recard);
  721. // }}
  722. // >
  723. // 驳回
  724. // </Button>
  725. // )}
  726. // {
  727. // // <Button
  728. // // type="primary"
  729. // // style={{ marginLeft: "5px" }}
  730. // // onClick={e => {
  731. // // e.stopPropagation(), this.evaluateY(recard, "财务专员");
  732. // // console.log(recard);
  733. // // }}
  734. // // >
  735. // // 转交
  736. // // </Button>
  737. // }
  738. // </div>
  739. // );
  740. // }
  741. // }
  742. ],
  743. dataSource: [],
  744. searchTime: [],
  745. columnsDate: [
  746. {
  747. title: "编号",
  748. dataIndex: "id",
  749. key: "id"
  750. },
  751. {
  752. title: "订单编号",
  753. dataIndex: "orderno",
  754. key: "orderno"
  755. },
  756. {
  757. title: "开票金额(万元)",
  758. dataIndex: "amount",
  759. key: "amount"
  760. },
  761. {
  762. title: "申请时间",
  763. dataIndex: "createTime",
  764. key: "createTime"
  765. },
  766. {
  767. title: "开票状态",
  768. dataIndex: "status",
  769. key: "status",
  770. render: text => {
  771. return getInvoiceStatus(text);
  772. }
  773. }
  774. ],
  775. waterlistDate: [
  776. {
  777. title: "订单编号",
  778. dataIndex: "orderNo",
  779. key: "orderNo"
  780. },
  781. {
  782. title: "平台流水号",
  783. dataIndex: "billNo",
  784. key: "billNo"
  785. // fixed: "left"
  786. },
  787. {
  788. title: "收款金额(万元)",
  789. dataIndex: "transactionAmount",
  790. key: "transactionAmount"
  791. },
  792. {
  793. title: "收款方",
  794. dataIndex: "payeeName",
  795. key: "payeeName"
  796. },
  797. {
  798. title: "付款方",
  799. dataIndex: "payerName",
  800. key: "payerName"
  801. },
  802. {
  803. title: "流水科目",
  804. dataIndex: "transactionSubject",
  805. key: "transactionSubject",
  806. render: text => {
  807. return getTransactionProject(text);
  808. }
  809. },
  810. {
  811. title: "收款类型",
  812. dataIndex: "type",
  813. key: "type"
  814. },
  815. {
  816. title: "财务流水时间",
  817. dataIndex: "financialPayTimes",
  818. key: "financialPayTimes"
  819. },
  820. {
  821. title: "财务流水号",
  822. dataIndex: "financialPayNo",
  823. key: "financialPayNo"
  824. },
  825. {
  826. title: "订单负责人",
  827. dataIndex: "saleName",
  828. key: "saleName"
  829. },
  830. {
  831. title: "创建时间",
  832. dataIndex: "createTimes",
  833. key: "createTimes"
  834. }
  835. ],
  836. waterData: []
  837. };
  838. },
  839. // 特批通过
  840. evaluateZ(record) {
  841. $.ajax({
  842. method: "POST",
  843. dataType: "json",
  844. crossDomain: false,
  845. url: globalConfig.context + "/api/admin/financial/financeApproval",
  846. data: {
  847. orderNo: record.orderNo
  848. }
  849. }).done(
  850. function(data) {
  851. if (!data.error.length) {
  852. message.success("通过成功!");
  853. this.setState({
  854. loading: false
  855. });
  856. this.loadData();
  857. } else {
  858. message.warning(data.error[0].message);
  859. }
  860. }.bind(this)
  861. );
  862. },
  863. /* 收款 */
  864. evaluateX(recard) {
  865. this.state.assignDataX = recard;
  866. this.setState({
  867. assignVisibleX: true
  868. });
  869. },
  870. /* 转交 */
  871. evaluateY(recard, nub) {
  872. this.state.assignDataY = recard;
  873. this.setState({
  874. nub,
  875. assignVisibleY: true
  876. });
  877. },
  878. /* 驳回 */
  879. reject(recard) {
  880. this.setState({
  881. bohuiData: recard,
  882. boHuiVisible: true,
  883. content: ""
  884. });
  885. },
  886. boHuiOk() {
  887. this.setState({
  888. boHuiVisible: false
  889. });
  890. if (
  891. this.state.pagination.current == this.state.totalPage &&
  892. this.state.pagination.total % 10 == 1
  893. ) {
  894. this.loadData(this.state.page - 1);
  895. } else {
  896. this.loadData(this.state.page);
  897. }
  898. },
  899. boHuiCancel() {
  900. this.setState({
  901. boHuiVisible: false
  902. });
  903. },
  904. componentWillMount() {
  905. this.loadData();
  906. this.departmentList();
  907. },
  908. tableRowClick(record) {
  909. this.state.RowData = record;
  910. this.setState({
  911. showDesc: true
  912. });
  913. },
  914. closeDesc(e, s) {
  915. this.state.showDesc = e;
  916. if (s) {
  917. this.loadData(this.state.page);
  918. }
  919. },
  920. closeAssignX(e, s) {
  921. this.state.assignDataX = {};
  922. this.state.assignVisibleX = e;
  923. if (s) {
  924. this.loadData(this.state.page);
  925. }
  926. },
  927. closeAssignY(e, s) {
  928. this.state.assignDataY = {};
  929. this.state.assignVisibleY = e;
  930. if (s) {
  931. this.loadData(this.state.page);
  932. }
  933. },
  934. search() {
  935. this.loadData();
  936. },
  937. reset() {
  938. this.state.nameSearch = "";
  939. this.state.releaseDate = [];
  940. this.state.shouKuanDate = [];
  941. this.state.orderNoSearch = "";
  942. this.state.departmenttList = undefined;
  943. this.state.processStatus = [];
  944. this.state.contractNoSearch = "";
  945. this.state.liquidationStatus = [];
  946. this.state.contractNo = "";
  947. this.loadData();
  948. },
  949. //驳回
  950. boHuiSubmit(e) {
  951. e.preventDefault();
  952. if (!this.state.content) {
  953. message.warning("请填写驳回原因");
  954. return false;
  955. }
  956. this.setState({
  957. loading: true
  958. });
  959. $.ajax({
  960. method: "POST",
  961. dataType: "json",
  962. crossDomain: false,
  963. url: globalConfig.context + "/api/admin/financial/reject",
  964. data: {
  965. orderNo: this.state.bohuiData.orderNo,
  966. reason: this.state.content
  967. }
  968. }).done(
  969. function(data) {
  970. if (!data.error.length) {
  971. message.success("驳回成功!");
  972. this.setState({
  973. loading: false
  974. });
  975. this.boHuiOk();
  976. } else {
  977. message.warning(data.error[0].message);
  978. }
  979. }.bind(this)
  980. );
  981. },
  982. searchSwitch() {
  983. this.setState({
  984. searchMore: !this.state.searchMore
  985. });
  986. },
  987. changeList(arr) {
  988. const newArr = [];
  989. this.state.columns.forEach(item => {
  990. arr.forEach(val => {
  991. if (val === item.title) {
  992. newArr.push(item);
  993. }
  994. });
  995. });
  996. this.setState({
  997. changeList: newArr
  998. });
  999. },
  1000. callback(key) {
  1001. console.log(key);
  1002. },
  1003. onSelectChange(selectedRowKeys) {
  1004. // for(var i=0; i<selectedRowKeys.length; i++){
  1005. // for(var j=i+1; j<selectedRowKeys.length; j++){
  1006. // if(selectedRowKeys[i]==selectedRowKeys[j]){
  1007. // selectedRowKeys.splice(j,1);
  1008. // j--;
  1009. // }
  1010. // }
  1011. // }
  1012. this.setState({ selectedRowKeys });
  1013. },
  1014. inRecordCanl() {
  1015. this.setState({
  1016. bvisible: false
  1017. });
  1018. },
  1019. inRecordData() {
  1020. this.setState({
  1021. loading: true
  1022. });
  1023. $.ajax({
  1024. method: "get",
  1025. dataType: "json",
  1026. crossDomain: false,
  1027. url:
  1028. globalConfig.context +
  1029. "/api/admin/orderInvoice/salesmanOrderInvoiceList",
  1030. data: {
  1031. orderNo: this.state.selectedRowKeys[0],
  1032. pageSize: 9999
  1033. },
  1034. success: function(data) {
  1035. let theArr = [];
  1036. let sum = 0;
  1037. if (!data.data) {
  1038. if (data.error && data.error.length) {
  1039. message.warning(data.error[0].message);
  1040. }
  1041. } else {
  1042. for (let i = 0; i < data.data.list.length; i++) {
  1043. let thisdata = data.data.list[i];
  1044. sum += parseFloat(thisdata.amount);
  1045. theArr.push({
  1046. id: thisdata.id,
  1047. orderno: thisdata.orderno, //订单编号
  1048. amount: thisdata.amount, //签单金额
  1049. createTime: thisdata.createTime, //流程状态
  1050. status: thisdata.status, //结算状态
  1051. rejectReason: thisdata.rejectReason
  1052. });
  1053. }
  1054. }
  1055. this.setState({
  1056. recordData: theArr,
  1057. sum: sum.toFixed(4)
  1058. });
  1059. }.bind(this)
  1060. }).done(
  1061. function() {
  1062. this.setState({
  1063. loading: false
  1064. });
  1065. }.bind(this)
  1066. );
  1067. },
  1068. waterData() {
  1069. this.state.data = [];
  1070. this.setState({
  1071. loading: true
  1072. });
  1073. $.ajax({
  1074. method: "get",
  1075. dataType: "json",
  1076. crossDomain: false,
  1077. url: globalConfig.context + "/api/admin/financial/myBillList",
  1078. data: {
  1079. orderNo: this.state.selectedRowKeys[0],
  1080. pageSize: 9999,
  1081. whoType: 1
  1082. },
  1083. success: function(data) {
  1084. let theArr = [];
  1085. let waterSum = 0;
  1086. if (!data.data || !data.data.list) {
  1087. if (data.error && data.error.length) {
  1088. message.warning(data.error[0].message);
  1089. }
  1090. } else {
  1091. for (let i = 0; i < data.data.list.length; i++) {
  1092. let thisdata = data.data.list[i];
  1093. waterSum += parseFloat(thisdata.transactionAmount);
  1094. theArr.push({
  1095. key: i,
  1096. orderNo: thisdata.orderNo,
  1097. billNo: thisdata.billNo,
  1098. transactionAmount: thisdata.transactionAmount,
  1099. payeeName: thisdata.payeeName,
  1100. payerName: thisdata.payerName,
  1101. transactionSubject: thisdata.transactionSubject,
  1102. transactionChannel: thisdata.transactionChannel,
  1103. financialPayTimes: thisdata.financialPayTimes,
  1104. financialPayNo: thisdata.financialPayNo,
  1105. createrName: thisdata.createrName,
  1106. saleName: thisdata.saleName,
  1107. createTimes: thisdata.createTimes,
  1108. type: thisdata.type == 0 ? "手工" : "批量"
  1109. });
  1110. }
  1111. }
  1112. this.setState({
  1113. waterData: theArr,
  1114. waterSum: (Math.round(waterSum * 10000) / 10000).toFixed(4)
  1115. });
  1116. }.bind(this)
  1117. }).always(
  1118. function() {
  1119. this.setState({
  1120. loading: false
  1121. });
  1122. }.bind(this)
  1123. );
  1124. },
  1125. waterCanl() {
  1126. this.setState({
  1127. cvisible: false
  1128. });
  1129. },
  1130. exportKaip() {
  1131. window.location.href =
  1132. globalConfig.context +
  1133. "/api/admin/receivables/exportInvoice?" +
  1134. `orderNo=${this.state.selectedRowKeys}`;
  1135. },
  1136. exportAll() {
  1137. window.location.href =
  1138. globalConfig.context +
  1139. "/api/admin/receivables/exportReceivables?" +
  1140. `orderNo=${
  1141. this.state.orderNoSearch ? this.state.orderNoSearch : ""
  1142. }&buyerName=${
  1143. this.state.nameSearch ? this.state.nameSearch : ""
  1144. }&departmentId=${
  1145. this.state.departmenttList ? this.state.departmenttList : ""
  1146. }&contractNo=${
  1147. this.state.contractNoSearch ? this.state.contractNoSearch : ""
  1148. }&processStatus=${this.state.processStatusSearch}`;
  1149. },
  1150. exportWater() {
  1151. window.location.href =
  1152. globalConfig.context +
  1153. "/api/admin/receivables/exportMyBill?" +
  1154. `orderNo=${this.state.selectedRowKeys}&whoType=1`;
  1155. },
  1156. printAll() {
  1157. this.setState({
  1158. dvisible: true
  1159. });
  1160. this.loadData(1, 9999);
  1161. },
  1162. timeData() {
  1163. this.setState({
  1164. loading: true
  1165. });
  1166. $.ajax({
  1167. method: "get",
  1168. dataType: "json",
  1169. crossDomain: false,
  1170. url: globalConfig.context + "/api/admin/orderProject/taskHoursList",
  1171. data: {
  1172. orderNo: this.state.selectedRowKeys[0],
  1173. pageSize: 9999
  1174. },
  1175. success: function(data) {
  1176. let theArr = [];
  1177. if (!data.data || !data.data.list) {
  1178. if (data.error && data.error.length) {
  1179. message.warning(data.error[0].message);
  1180. }
  1181. } else {
  1182. for (let i = 0; i < data.data.list.length; i++) {
  1183. let thisdata = data.data.list[i];
  1184. theArr.push({
  1185. key: i + 1,
  1186. id: thisdata.id, //ID
  1187. orderNo: thisdata.orderNo, //订单编号
  1188. taskName: thisdata.taskName, //任务名称
  1189. userName: thisdata.userName, //客户名称
  1190. cname: thisdata.cname, //项目品类
  1191. taskStatus: thisdata.taskStatus, //任务状态
  1192. receiverName: thisdata.receiverName, //负责人
  1193. hours: thisdata.hours, //任务工时
  1194. depName: thisdata.depName, //派单公司
  1195. contractNo: thisdata.contractNo,
  1196. signTime: thisdata.signTime,
  1197. creteTime: thisdata.creteTime,
  1198. projectStatus: thisdata.projectStatus,
  1199. commodityPrice: thisdata.commodityPrice, //价格
  1200. commodityQuantity: thisdata.commodityQuantity, //数量
  1201. salesmanName: thisdata.salesmanName, //订单负责人
  1202. taskDistributionTime: thisdata.taskDistributionTime,
  1203. taskEndTime: thisdata.taskEndTime
  1204. });
  1205. }
  1206. }
  1207. this.setState({
  1208. timeDataList: theArr
  1209. });
  1210. }.bind(this)
  1211. }).always(
  1212. function() {
  1213. this.setState({
  1214. loading: false
  1215. });
  1216. }.bind(this)
  1217. );
  1218. },
  1219. exportTime() {
  1220. const data = {
  1221. orderNo: this.state.selectedRowKeys[0],
  1222. pageSize: 9999
  1223. };
  1224. window.location.href =
  1225. globalConfig.context +
  1226. "/api/admin/orderProject/exportMyTaskList?" +
  1227. $.param(data);
  1228. },
  1229. exportPro() {
  1230. const data = {
  1231. orderNo: this.state.selectedRowKeys[0]
  1232. };
  1233. window.location.href =
  1234. globalConfig.context +
  1235. "/api/admin/newOrder/exportOrderTaskData?" +
  1236. $.param(data);
  1237. },
  1238. exportCui() {
  1239. var data = {
  1240. orderNo: this.state.selectedRowKeys[0]
  1241. ? this.state.selectedRowKeys[0]
  1242. : undefined, //订单编号
  1243. // specially: 1,
  1244. pageSize: 9999
  1245. };
  1246. window.location.href =
  1247. globalConfig.context +
  1248. "/api/admin/newOrder/exportOrderDunData?" +
  1249. $.param(data);
  1250. },
  1251. cuiData() {
  1252. this.setState({
  1253. loading: true
  1254. });
  1255. $.ajax({
  1256. method: "get",
  1257. dataType: "json",
  1258. crossDomain: false,
  1259. url: globalConfig.context + "/api/admin/newOrder/dunOrderNewList",
  1260. data: {
  1261. orderNo: this.state.selectedRowKeys[0],
  1262. pageSize: 9999
  1263. },
  1264. success: function(data) {
  1265. let theArr = [];
  1266. if (!data.data || !data.data.list) {
  1267. if (data.error && data.error.length) {
  1268. message.warning(data.error[0].message);
  1269. }
  1270. } else {
  1271. for (let i = 0; i < data.data.list.length; i++) {
  1272. let thisdata = data.data.list[i];
  1273. theArr.push({
  1274. key: i + 1,
  1275. orderNo: thisdata.orderNo,
  1276. contractNo: thisdata.contractNo,
  1277. userName: thisdata.userName,
  1278. buyerName: thisdata.buyerName,
  1279. departmentName: thisdata.departmentName,
  1280. salesmanName: thisdata.salesmanName,
  1281. depName: thisdata.depName,
  1282. orderStatus: thisdata.orderStatus,
  1283. projectStatus: thisdata.projectStatus,
  1284. totalAmount: thisdata.totalAmount,
  1285. liquidationStatus: thisdata.liquidationStatus,
  1286. settlementAmount: thisdata.settlementAmount,
  1287. accountsReceivable: thisdata.accountsReceivable,
  1288. dunSubject: thisdata.dunSubject,
  1289. startDate: thisdata.startDate,
  1290. taskStatus: thisdata.taskStatus,
  1291. cname: thisdata.cname,
  1292. id: thisdata.id,
  1293. taskName: thisdata.taskName,
  1294. hours: thisdata.hours,
  1295. taskDistributionTime: thisdata.taskDistributionTime,
  1296. taskEndTime: thisdata.taskEndTime,
  1297. dunStatus: thisdata.dunStatus == 0 ? "未触发" : "已触发"
  1298. });
  1299. }
  1300. }
  1301. this.setState({
  1302. cuiDataList: theArr
  1303. });
  1304. }.bind(this)
  1305. }).always(
  1306. function() {
  1307. this.setState({
  1308. loading: false
  1309. });
  1310. }.bind(this)
  1311. );
  1312. },
  1313. proData() {
  1314. this.setState({
  1315. loading: true
  1316. });
  1317. $.ajax({
  1318. method: "get",
  1319. dataType: "json",
  1320. crossDomain: false,
  1321. url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
  1322. data: {
  1323. orderNo: this.state.selectedRowKeys[0],
  1324. pageSize: 9999
  1325. },
  1326. success: function(data) {
  1327. let theArr = [];
  1328. let totalWaibao = 0;
  1329. if (!data.data) {
  1330. if (data.error && data.error.length) {
  1331. message.warning(data.error[0].message);
  1332. }
  1333. } else {
  1334. for (let i = 0; i < data.data.length; i++) {
  1335. let thisdata = data.data[i];
  1336. totalWaibao += thisdata.outsourcePrice;
  1337. theArr.push({
  1338. key: i + 1,
  1339. orderNo: thisdata.orderNo,
  1340. contractNo: thisdata.contractNo,
  1341. userName: thisdata.userName,
  1342. buyerName: thisdata.buyerName,
  1343. departmentName: thisdata.departmentName,
  1344. salesmanName: thisdata.salesmanName,
  1345. depName: thisdata.depName,
  1346. orderStatus: thisdata.orderStatus,
  1347. projectStatus: thisdata.projectStatus,
  1348. commodityName: thisdata.commodityName,
  1349. totalAmount: thisdata.totalAmount,
  1350. liquidationStatus: thisdata.liquidationStatus,
  1351. settlementAmount: thisdata.settlementAmount,
  1352. accountsReceivable: thisdata.accountsReceivable,
  1353. dunSubject: thisdata.dunSubject,
  1354. startDate: thisdata.startDate,
  1355. taskStatus: thisdata.taskStatus,
  1356. cname: thisdata.cname,
  1357. id: thisdata.id,
  1358. taskName: thisdata.taskName,
  1359. hours: thisdata.hours,
  1360. taskDistributionTime: thisdata.taskDistributionTime,
  1361. taskEndTime: thisdata.taskEndTime,
  1362. commodityQuantity: thisdata.commodityQuantity,
  1363. commodityPrice: thisdata.commodityPrice,
  1364. certificateNumber: thisdata.certificateNumber,
  1365. taskComment: thisdata.taskComment,
  1366. outsourceName: thisdata.outsourceName,
  1367. outsourcePrice: thisdata.outsourcePrice
  1368. });
  1369. }
  1370. }
  1371. totalWaibao = (Math.round(totalWaibao * 10000) / 10000).toFixed(4);
  1372. this.setState({
  1373. proDataList: theArr,
  1374. totalWaibao
  1375. });
  1376. }.bind(this)
  1377. }).always(
  1378. function() {
  1379. this.setState({
  1380. loading: false
  1381. });
  1382. }.bind(this)
  1383. );
  1384. },
  1385. render() {
  1386. const formItemLayout = {
  1387. labelCol: { span: 8 },
  1388. wrapperCol: { span: 14 }
  1389. };
  1390. const { RangePicker } = DatePicker;
  1391. var departmentArr = this.state.departmentArr || [];
  1392. const { loading, selectedRowKeys, visible } = this.state;
  1393. const rowSelection = {
  1394. selectedRowKeys,
  1395. onChange: this.onSelectChange,
  1396. hideDefaultSelections: true,
  1397. type: "radio"
  1398. };
  1399. return (
  1400. <div className="user-content">
  1401. <div className="content-title" style={{ marginBottom: 10 }}>
  1402. <span style={{ fontWeight: 900, fontSize: 16 }}>收款结算</span>
  1403. </div>
  1404. <Tabs defaultActiveKey="2" onChange={this.callback} className="test">
  1405. <TabPane tab="更改表格显示数据" key="1">
  1406. <div style={{ marginLeft: 10 }}>
  1407. <ChooseList
  1408. columns={this.state.columns}
  1409. changeFn={this.changeList}
  1410. changeList={this.state.changeList}
  1411. top={55}
  1412. margin={11}
  1413. />
  1414. </div>
  1415. </TabPane>
  1416. <TabPane tab="搜索" key="2">
  1417. <div className="user-search" style={{ marginLeft: 10 }}>
  1418. <Input
  1419. placeholder="订单编号"
  1420. value={this.state.orderNoSearch}
  1421. onChange={e => {
  1422. this.setState({ orderNoSearch: e.target.value });
  1423. }}
  1424. />
  1425. <Input
  1426. placeholder="客户名称"
  1427. value={this.state.nameSearch}
  1428. onChange={e => {
  1429. this.setState({ nameSearch: e.target.value });
  1430. }}
  1431. />
  1432. <Select
  1433. placeholder="订单部门"
  1434. style={{ width: 150, marginRight: 10 }}
  1435. value={this.state.departmenttList}
  1436. onChange={e => {
  1437. this.setState({ departmenttList: e });
  1438. }}
  1439. >
  1440. {departmentArr.map(function(item) {
  1441. return (
  1442. <Select.Option key={item.id}>{item.name}</Select.Option>
  1443. );
  1444. })}
  1445. </Select>
  1446. <Input
  1447. placeholder="合同编号"
  1448. value={this.state.contractNoSearch}
  1449. onChange={e => {
  1450. this.setState({
  1451. contractNoSearch: e.target.value
  1452. });
  1453. }}
  1454. />
  1455. <Select
  1456. placeholder="流程状态"
  1457. onChange={e => {
  1458. this.setState({ processStatusSearch: e });
  1459. }}
  1460. style={{ width: 160, marginRight: 5 }}
  1461. value={this.state.processStatusSearch}
  1462. >
  1463. <Option value="3">未分配</Option>
  1464. <Option value="4">已分配</Option>
  1465. </Select>
  1466. <Select
  1467. placeholder="结算状态"
  1468. onChange={e => {
  1469. this.setState({ liquidationStatus: e });
  1470. }}
  1471. style={{ width: 160, marginRight: 5 }}
  1472. value={this.state.liquidationStatus}
  1473. >
  1474. <Option value="0">首付待付清</Option>
  1475. <Option value="1">尾款待付清</Option>
  1476. <Option value="2">已付清</Option>
  1477. </Select>
  1478. <span style={{}}>下单日期:</span>
  1479. <RangePicker
  1480. value={[
  1481. this.state.releaseDate[0]
  1482. ? moment(this.state.releaseDate[0])
  1483. : null,
  1484. this.state.releaseDate[1]
  1485. ? moment(this.state.releaseDate[1])
  1486. : null
  1487. ]}
  1488. onChange={(data, dataString) => {
  1489. this.setState({ releaseDate: dataString });
  1490. }}
  1491. />
  1492. <span style={{}}>最近收款:</span>
  1493. <RangePicker
  1494. value={[
  1495. this.state.shouKuanDate[0]
  1496. ? moment(this.state.shouKuanDate[0])
  1497. : null,
  1498. this.state.shouKuanDate[1]
  1499. ? moment(this.state.shouKuanDate[1])
  1500. : null
  1501. ]}
  1502. onChange={(data, dataString) => {
  1503. this.setState({ shouKuanDate: dataString });
  1504. }}
  1505. />
  1506. <Button
  1507. type="primary"
  1508. onClick={this.search}
  1509. style={{ marginLeft: 10 }}
  1510. disabled={this.state.loadingA ? true : false}
  1511. >
  1512. 搜索
  1513. </Button>
  1514. <Button onClick={this.reset}>重置</Button>
  1515. </div>
  1516. </TabPane>
  1517. <TabPane tab="打印" key="3">
  1518. <Button
  1519. type="primary"
  1520. style={{ margin: "11px 0px 10px 10px" }}
  1521. onClick={this.printAll}
  1522. disabled={!this.state.dataSource.length}
  1523. >
  1524. 打印所有列表信息
  1525. </Button>
  1526. <Button
  1527. type="primary"
  1528. disabled={this.state.selectedRowKeys.length != 1}
  1529. style={{ margin: "11px 0px 10px 10px" }}
  1530. onClick={() => {
  1531. this.inRecordData();
  1532. this.setState({
  1533. bvisible: true
  1534. });
  1535. }}
  1536. >
  1537. 打印开票详情
  1538. </Button>
  1539. <Button
  1540. type="primary"
  1541. disabled={this.state.selectedRowKeys.length != 1}
  1542. style={{ margin: "11px 0px 10px 10px" }}
  1543. onClick={() => {
  1544. this.waterData();
  1545. this.setState({
  1546. cvisible: true
  1547. });
  1548. }}
  1549. >
  1550. 打印收款流水
  1551. </Button>
  1552. <Button
  1553. type="primary"
  1554. disabled={this.state.selectedRowKeys.length != 1}
  1555. style={{ margin: "11px 0px 10px 10px" }}
  1556. onClick={() => {
  1557. this.timeData();
  1558. this.setState({
  1559. timeVisible: true
  1560. });
  1561. }}
  1562. >
  1563. 打印工时信息
  1564. </Button>
  1565. <Button
  1566. type="primary"
  1567. disabled={this.state.selectedRowKeys.length != 1}
  1568. style={{ margin: "11px 0px 10px 10px" }}
  1569. onClick={() => {
  1570. this.cuiData();
  1571. this.setState({
  1572. cuiVisible: true
  1573. });
  1574. }}
  1575. >
  1576. 打印催款信息
  1577. </Button>
  1578. <Button
  1579. type="primary"
  1580. disabled={this.state.selectedRowKeys.length != 1}
  1581. style={{ margin: "11px 0px 10px 10px" }}
  1582. onClick={() => {
  1583. this.proData();
  1584. this.setState({
  1585. proVisible: true
  1586. });
  1587. }}
  1588. >
  1589. 打印项目信息
  1590. </Button>
  1591. </TabPane>
  1592. <TabPane tab="导出Excel" key="4">
  1593. <Button
  1594. type="primary"
  1595. style={{ margin: "11px 0px 10px 10px" }}
  1596. onClick={this.exportAll}
  1597. >
  1598. 导出当前列表
  1599. </Button>
  1600. <Button
  1601. type="primary"
  1602. disabled={this.state.selectedRowKeys.length != 1}
  1603. style={{ margin: "11px 0px 10px 10px" }}
  1604. onClick={this.exportKaip}
  1605. >
  1606. 导出所选开票详情
  1607. </Button>
  1608. <Button
  1609. type="primary"
  1610. disabled={this.state.selectedRowKeys.length != 1}
  1611. style={{ margin: "11px 0px 10px 10px" }}
  1612. onClick={this.exportWater}
  1613. >
  1614. 导出所选收款详情流水
  1615. </Button>
  1616. <Button
  1617. type="primary"
  1618. disabled={this.state.selectedRowKeys.length != 1}
  1619. style={{ margin: "11px 0px 10px 10px" }}
  1620. onClick={this.exportTime}
  1621. >
  1622. 导出所选工时信息
  1623. </Button>
  1624. <Button
  1625. type="primary"
  1626. disabled={this.state.selectedRowKeys.length != 1}
  1627. style={{ margin: "11px 0px 10px 10px" }}
  1628. onClick={this.exportCui}
  1629. >
  1630. 导出催款信息
  1631. </Button>
  1632. <Button
  1633. type="primary"
  1634. disabled={this.state.selectedRowKeys.length != 1}
  1635. style={{ margin: "11px 0px 10px 10px" }}
  1636. onClick={this.exportPro}
  1637. >
  1638. 导出项目详情
  1639. </Button>
  1640. </TabPane>
  1641. <TabPane tab="查看" key="5">
  1642. <Button
  1643. type="primary"
  1644. disabled={this.state.selectedRowKeys.length != 1}
  1645. style={{ margin: "11px 0px 10px 10px" }}
  1646. onClick={() => {
  1647. this.inRecordData();
  1648. this.setState({
  1649. bvisible: true
  1650. });
  1651. }}
  1652. >
  1653. 查看开票详情
  1654. </Button>
  1655. <Button
  1656. type="primary"
  1657. disabled={this.state.selectedRowKeys.length != 1}
  1658. style={{ margin: "11px 0px 10px 10px" }}
  1659. onClick={() => {
  1660. this.waterData();
  1661. this.setState({
  1662. cvisible: true
  1663. });
  1664. }}
  1665. >
  1666. 详情收款流水
  1667. </Button>
  1668. <Button
  1669. type="primary"
  1670. disabled={this.state.selectedRowKeys.length != 1}
  1671. style={{ margin: "11px 0px 10px 10px" }}
  1672. onClick={() => {
  1673. this.timeData();
  1674. this.setState({
  1675. timeVisible: true
  1676. });
  1677. }}
  1678. >
  1679. 工时信息
  1680. </Button>
  1681. <Button
  1682. type="primary"
  1683. disabled={this.state.selectedRowKeys.length != 1}
  1684. style={{ margin: "11px 0px 10px 10px" }}
  1685. onClick={() => {
  1686. this.cuiData();
  1687. this.setState({
  1688. cuiVisible: true
  1689. });
  1690. }}
  1691. >
  1692. 催款信息
  1693. </Button>
  1694. <Button
  1695. type="primary"
  1696. disabled={this.state.selectedRowKeys.length != 1}
  1697. style={{ margin: "11px 0px 10px 10px" }}
  1698. onClick={() => {
  1699. this.proData();
  1700. this.setState({
  1701. proVisible: true
  1702. });
  1703. }}
  1704. >
  1705. 项目信息
  1706. </Button>
  1707. </TabPane>
  1708. {/* <TabPane tab="批量操作" key="6">
  1709. <Button
  1710. type="primary"
  1711. disabled={this.state.selectedRowKeys.length == 0}
  1712. style={{ margin: "0px 0px 10px 10px" }}
  1713. onClick={e => {
  1714. e.stopPropagation(),
  1715. this.evaluateY(this.state.selectedRowKeys, "财务专员");
  1716. }}
  1717. >
  1718. 转交
  1719. </Button>
  1720. </TabPane> */}
  1721. </Tabs>
  1722. <div className="patent-table">
  1723. <Spin spinning={this.state.loadingA}>
  1724. <Table
  1725. bordered
  1726. columns={
  1727. this.state.changeList == undefined
  1728. ? this.state.columns
  1729. : this.state.changeList
  1730. }
  1731. dataSource={this.state.dataSource}
  1732. rowSelection={rowSelection}
  1733. scroll={{ x: "max-content", y: 0 }}
  1734. pagination={this.state.pagination}
  1735. onRowDoubleClick={this.tableRowClick.bind(this)}
  1736. size="small"
  1737. />
  1738. </Spin>
  1739. <p
  1740. style={{ display: "inline-block", fontSize: "14px", color: "red" }}
  1741. >
  1742. {
  1743. <span style={{ marginRight: 10 }}>
  1744. {`收款金额总计(万元):${this.state.hui ? this.state.hui : "0"}`}
  1745. </span>
  1746. }
  1747. {
  1748. <span>
  1749. {`合同额总计(万元):${
  1750. this.state.totalHui ? this.state.totalHui : "0"
  1751. }`}
  1752. </span>
  1753. }
  1754. </p>
  1755. </div>
  1756. <Assign
  1757. title="任务"
  1758. selApi={"/api/admin/newOrder/updateFinance"}
  1759. data={this.state.assignDataY}
  1760. showDesc={this.state.assignVisibleY}
  1761. closeDesc={this.closeAssignY.bind(this)}
  1762. // fenpaiData={8}
  1763. specially={0}
  1764. roleName={this.state.nub}
  1765. requestMethod={"get"}
  1766. />
  1767. <OrderDesc
  1768. data={this.state.RowData}
  1769. showDesc={this.state.showDesc}
  1770. closeDesc={this.closeDesc.bind(this)}
  1771. />
  1772. <Receivable
  1773. title="收款记录"
  1774. api="/api/admin/financial/addReceiptsFlow"
  1775. data={this.state.assignDataX}
  1776. showDesc={this.state.assignVisibleX}
  1777. closeDesc={this.closeAssignX.bind(this)}
  1778. />
  1779. <Modal
  1780. visible={this.state.boHuiVisible}
  1781. width="400px"
  1782. title="驳回备注"
  1783. footer=""
  1784. onOk={this.boHuiOk}
  1785. onCancel={this.boHuiCancel}
  1786. >
  1787. <Form layout="horizontal" onSubmit={this.boHuiSubmit}>
  1788. <Spin spinning={this.state.loading}>
  1789. <FormItem
  1790. labelCol={{ span: 5 }}
  1791. wrapperCol={{ span: 16 }}
  1792. label={
  1793. <span>
  1794. <strong style={{ color: "#f00" }}>*</strong>驳回原因
  1795. </span>
  1796. }
  1797. >
  1798. <Input
  1799. type="textarea"
  1800. rows={4}
  1801. placeholder="请输入驳回原因"
  1802. value={this.state.content}
  1803. onChange={e => {
  1804. this.setState({ content: e.target.value });
  1805. }}
  1806. />
  1807. </FormItem>
  1808. <FormItem wrapperCol={{ span: 12, offset: 5 }}>
  1809. <Button
  1810. type="primary"
  1811. htmlType="submit"
  1812. style={{ marginRight: 20 }}
  1813. >
  1814. 驳回
  1815. </Button>
  1816. <Button
  1817. type="default"
  1818. onClick={() => {
  1819. this.boHuiCancel();
  1820. }}
  1821. >
  1822. 取消
  1823. </Button>
  1824. </FormItem>
  1825. </Spin>
  1826. </Form>
  1827. </Modal>
  1828. <Modal
  1829. visible={this.state.bvisible}
  1830. footer=""
  1831. title="开票历史记录"
  1832. className="admin-desc-content"
  1833. width="900px"
  1834. onCancel={this.inRecordCanl}
  1835. >
  1836. <Spin spinning={this.state.loading}>
  1837. <div
  1838. className="patent-table"
  1839. ref={e => {
  1840. this.refs.kaiPiao = e;
  1841. }}
  1842. >
  1843. <Table
  1844. columns={this.state.columnsDate}
  1845. dataSource={this.state.recordData}
  1846. pagination={false}
  1847. bordered
  1848. />
  1849. <div className="clearfix" style={{ marginTop: "20px" }}>
  1850. <FormItem
  1851. className="half-item"
  1852. {...formItemLayout}
  1853. label={<span style={{ fontSize: "14px" }}>开票总计</span>}
  1854. >
  1855. <span>{this.state.sum + "(万元)"}</span>
  1856. </FormItem>
  1857. </div>
  1858. <ReactToPrint
  1859. trigger={() => (
  1860. <Button
  1861. type="primary"
  1862. style={{
  1863. float: "right",
  1864. // marginTop: 10,
  1865. position: "absolute",
  1866. top: -54,
  1867. right: 30
  1868. }}
  1869. >
  1870. 打印
  1871. </Button>
  1872. )}
  1873. content={() => this.refs.kaiPiao}
  1874. />
  1875. </div>
  1876. </Spin>
  1877. </Modal>
  1878. <Modal
  1879. visible={this.state.cvisible}
  1880. footer=""
  1881. title="详细收款流水"
  1882. className="admin-desc-content"
  1883. width="1300px"
  1884. onCancel={this.waterCanl}
  1885. >
  1886. <Spin spinning={this.state.loading}>
  1887. <div
  1888. className="patent-table"
  1889. ref={e => {
  1890. this.refs.shouKuan = e;
  1891. }}
  1892. >
  1893. <Table
  1894. columns={this.state.waterlistDate}
  1895. dataSource={this.state.waterData}
  1896. pagination={false}
  1897. bordered
  1898. />
  1899. <div className="clearfix" style={{ marginTop: "20px" }}>
  1900. <FormItem
  1901. className="half-item"
  1902. {...formItemLayout}
  1903. label={<span style={{ fontSize: "14px" }}>总计金额</span>}
  1904. >
  1905. <span>{this.state.waterSum + "(万元)"}</span>
  1906. </FormItem>
  1907. </div>
  1908. <ReactToPrint
  1909. trigger={() => (
  1910. <Button
  1911. type="primary"
  1912. style={{
  1913. float: "right",
  1914. position: "absolute",
  1915. top: -54,
  1916. right: 30
  1917. }}
  1918. >
  1919. 打印
  1920. </Button>
  1921. )}
  1922. content={() => this.refs.shouKuan}
  1923. />
  1924. </div>
  1925. </Spin>
  1926. </Modal>
  1927. <Modal
  1928. visible={this.state.dvisible}
  1929. footer=""
  1930. title="所有列表信息"
  1931. className="admin-desc-content"
  1932. width="1300px"
  1933. onCancel={() => {
  1934. this.loadData();
  1935. this.setState({
  1936. dvisible: false
  1937. });
  1938. }}
  1939. >
  1940. <Spin spinning={this.state.loading}>
  1941. <div
  1942. className="patent-table"
  1943. style={{
  1944. // width: 900,
  1945. // position: "relative",
  1946. // left: "50%",
  1947. // transform: "translate(-50%)",
  1948. padding: "25px 0 30px 30px"
  1949. }}
  1950. ref={e => {
  1951. this.refs.all = e;
  1952. }}
  1953. >
  1954. <Table
  1955. columns={this.state.printColumns}
  1956. dataSource={this.state.dataSource}
  1957. pagination={false}
  1958. bordered
  1959. size="small"
  1960. />
  1961. </div>
  1962. </Spin>
  1963. <ReactToPrint
  1964. trigger={() => (
  1965. <Button
  1966. type="primary"
  1967. style={{
  1968. float: "right",
  1969. marginTop: 10,
  1970. position: "absolute",
  1971. top: 0,
  1972. right: 30
  1973. }}
  1974. >
  1975. 打印
  1976. </Button>
  1977. )}
  1978. content={() => this.refs.all}
  1979. />
  1980. </Modal>
  1981. <Modal
  1982. visible={this.state.timeVisible}
  1983. footer=""
  1984. title="工时详情"
  1985. className="admin-desc-content"
  1986. width="1300px"
  1987. pagination={false}
  1988. onCancel={() => {
  1989. this.loadData();
  1990. this.setState({
  1991. timeVisible: false
  1992. });
  1993. }}
  1994. >
  1995. <Spin spinning={this.state.loading}>
  1996. <div
  1997. className="patent-table"
  1998. style={
  1999. {
  2000. // width: 900,
  2001. // position: "relative",
  2002. // left: "50%",
  2003. // transform: "translate(-50%)",
  2004. // padding: "25px 0 30px 30px"
  2005. }
  2006. }
  2007. ref={e => {
  2008. this.refs.all = e;
  2009. }}
  2010. >
  2011. <Table
  2012. columns={this.state.timeColumns}
  2013. dataSource={this.state.timeDataList}
  2014. scroll={{ x: "max-content", y: 0 }}
  2015. pagination={false}
  2016. bordered
  2017. size="small"
  2018. />
  2019. </div>
  2020. </Spin>
  2021. <ReactToPrint
  2022. trigger={() => (
  2023. <Button
  2024. type="primary"
  2025. style={{
  2026. float: "right",
  2027. marginTop: 10,
  2028. position: "absolute",
  2029. top: 0,
  2030. right: 30
  2031. }}
  2032. >
  2033. 打印
  2034. </Button>
  2035. )}
  2036. content={() => this.refs.all}
  2037. />
  2038. </Modal>
  2039. <Modal
  2040. visible={this.state.cuiVisible}
  2041. footer=""
  2042. title="催款详情"
  2043. className="admin-desc-content"
  2044. width="1300px"
  2045. pagination={false}
  2046. onCancel={() => {
  2047. this.loadData();
  2048. this.setState({
  2049. cuiVisible: false
  2050. });
  2051. }}
  2052. >
  2053. <Spin spinning={this.state.loading}>
  2054. <div
  2055. className="patent-table"
  2056. style={
  2057. {
  2058. // width: 900,
  2059. // position: "relative",
  2060. // left: "50%",
  2061. // transform: "translate(-50%)",
  2062. // padding: "25px 0 30px 30px"
  2063. }
  2064. }
  2065. ref={e => {
  2066. this.refs.all = e;
  2067. }}
  2068. >
  2069. <Table
  2070. columns={this.state.cuiColumns}
  2071. dataSource={this.state.cuiDataList}
  2072. scroll={{ x: "max-content", y: 0 }}
  2073. pagination={false}
  2074. bordered
  2075. size="small"
  2076. />
  2077. </div>
  2078. </Spin>
  2079. <ReactToPrint
  2080. trigger={() => (
  2081. <Button
  2082. type="primary"
  2083. style={{
  2084. float: "right",
  2085. marginTop: 10,
  2086. position: "absolute",
  2087. top: 0,
  2088. right: 30
  2089. }}
  2090. >
  2091. 打印
  2092. </Button>
  2093. )}
  2094. content={() => this.refs.all}
  2095. />
  2096. </Modal>
  2097. <Modal
  2098. visible={this.state.proVisible}
  2099. footer=""
  2100. title="项目详情"
  2101. className="admin-desc-content"
  2102. width="1300px"
  2103. pagination={false}
  2104. onCancel={() => {
  2105. this.loadData();
  2106. this.setState({
  2107. proVisible: false
  2108. });
  2109. }}
  2110. >
  2111. <Spin spinning={this.state.loading}>
  2112. <div
  2113. className="patent-table"
  2114. style={
  2115. {
  2116. // width: 900,
  2117. // position: "relative",
  2118. // left: "50%",
  2119. // transform: "translate(-50%)",
  2120. // padding: "25px 0 30px 30px"
  2121. }
  2122. }
  2123. ref={e => {
  2124. this.refs.all = e;
  2125. }}
  2126. >
  2127. <Table
  2128. columns={this.state.proColumns}
  2129. dataSource={this.state.proDataList}
  2130. pagination={false}
  2131. bordered
  2132. size="small"
  2133. />
  2134. </div>
  2135. <span style={{ display: "block", marginTop: 10, color: "red" }}>
  2136. 外包(内部)价格总计(万元):{this.state.totalWaibao}
  2137. </span>
  2138. </Spin>
  2139. <ReactToPrint
  2140. trigger={() => (
  2141. <Button
  2142. type="primary"
  2143. style={{
  2144. float: "right",
  2145. marginTop: 10,
  2146. position: "absolute",
  2147. top: 0,
  2148. right: 30
  2149. }}
  2150. >
  2151. 打印
  2152. </Button>
  2153. )}
  2154. content={() => this.refs.all}
  2155. />
  2156. </Modal>
  2157. </div>
  2158. );
  2159. }
  2160. });
  2161. export default ShouKuang;