approvedOutsourcingAll.jsx 125 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172
  1. import React from "react";
  2. import $ from "jquery/src/ajax";
  3. import moment from "moment";
  4. import "./public.less";
  5. import {
  6. Button,
  7. Form,
  8. Input,
  9. Select,
  10. Spin,
  11. Table,
  12. message,
  13. DatePicker,
  14. Modal,
  15. Upload,
  16. Tabs,
  17. Col,
  18. Tag
  19. } from "antd";
  20. import Receivable from "./receivable";
  21. import Assign from "@/manageCenter/publicComponent/assign";
  22. import ReactToPrint from "react-to-print";
  23. import ResolutionDetail from "@/resolutionDetail";
  24. import KaiPiaoModal from "./kaiPiaoModal";
  25. import OrderRiZi from "@/orderRiZi.jsx";
  26. import {
  27. getjiedian,
  28. getProcessStatus,
  29. getApproval,
  30. getNewOrderType,
  31. getLiquidationStatus,
  32. splitUrl,
  33. getprovince,
  34. getRefundStatus,
  35. getTransactionProject,
  36. getTaskStatus,
  37. getNewOrderStatus,
  38. getInvoiceStatus,
  39. getCuikuan
  40. } from "@/tools";
  41. import { ChooseList } from "../../../../component/manageCenter/order/orderNew/chooseList";
  42. import ImgList from "../../../common/imgList";
  43. import {getProjectName} from "../../../tools";
  44. import OrderItemStatus from "../../../common/orderItemStatus";
  45. const FormItem = Form.Item;
  46. const approvedOutsourcing = React.createClass({
  47. departmentList() {
  48. this.setState({
  49. loading: true,
  50. });
  51. $.ajax({
  52. method: "get",
  53. dataType: "json",
  54. crossDomain: false,
  55. url: globalConfig.context + "/api/admin/organization/selectSuperId",
  56. data: {},
  57. success: function (data) {
  58. let thedata = data.data;
  59. let theArr = [];
  60. if (!thedata) {
  61. if (data.error && data.error.length) {
  62. message.warning(data.error[0].message);
  63. }
  64. } else {
  65. thedata.map(function (item, index) {
  66. theArr.push({
  67. key: index,
  68. name: item.name,
  69. id: item.id,
  70. });
  71. });
  72. }
  73. this.setState({
  74. departmentArr: theArr,
  75. });
  76. }.bind(this),
  77. }).always(
  78. function () {
  79. this.setState({
  80. loading: false,
  81. });
  82. }.bind(this)
  83. );
  84. },
  85. loadData(pageNo, pageSize) {
  86. this.state.data = [];
  87. this.setState({
  88. page: pageNo,
  89. loadingA: true,
  90. });
  91. $.ajax({
  92. method: "get",
  93. dataType: "json",
  94. crossDomain: false,
  95. url: globalConfig.context + "/api/admin/financial/financeList",
  96. data: {
  97. pageNo: pageNo || 1,
  98. pageSize: pageSize || this.state.pagination.pageSize,
  99. buyerName: this.state.nameSearch, //客户名称
  100. orderNo: this.state.orderNoSearch,
  101. startTime: this.state.releaseDate[0],
  102. endTime: this.state.releaseDate[1],
  103. startFinalReceivablesTime: this.state.shouKuanDate[0],
  104. endFinalReceivablesTime: this.state.shouKuanDate[1],
  105. departmentId: this.state.departmenttList,
  106. processStatus: this.state.processStatusSearch,
  107. contractNo: this.state.contractNoSearch,
  108. outsource: 1,
  109. liquidationStatus: this.state.liquidationStatus,
  110. amountStatus: this.state.amountStatus,
  111. },
  112. success: function (data) {
  113. let theArr = [];
  114. if (!data.data || !data.data.pagination.list) {
  115. if (data.error && data.error.length) {
  116. message.warning(data.error[0].message);
  117. }
  118. } else {
  119. for (let i = 0; i < data.data.pagination.list.length; i++) {
  120. let thisdata = data.data.pagination.list[i];
  121. theArr.push({
  122. key: thisdata.orderNo,
  123. orderNo: thisdata.orderNo,
  124. orderType: thisdata.orderType,
  125. orderStatus: thisdata.orderStatus,
  126. sellerName: thisdata.sellerName,
  127. processStatus: thisdata.processStatus,
  128. liquidationStatus: thisdata.liquidationStatus,
  129. approval: thisdata.approval,
  130. buyerName: thisdata.buyerName,
  131. actuallyTotalAmount: thisdata.actuallyTotalAmount,
  132. signTime: thisdata.signTime,
  133. companyId: thisdata.companyId,
  134. companyName: thisdata.companyName,
  135. buyerId: thisdata.buyerId,
  136. contractNo: thisdata.contractNo,
  137. createTime: thisdata.createTime,
  138. departmentName: thisdata.departmentName,
  139. outsourceName: thisdata.outsourceName,
  140. invoiceAmount: thisdata.invoiceAmount,
  141. finalReceivables: thisdata.finalReceivables,
  142. finalReceivablesTime: thisdata.finalReceivablesTime,
  143. signTotalAmount: thisdata.signTotalAmount,
  144. outsourceAmount: thisdata.outsourceAmount,
  145. financeName: thisdata.financeName,
  146. backStatus: thisdata.backStatus,
  147. orderReceivables: thisdata.orderReceivables,
  148. orderArrears: thisdata.orderArrears,
  149. });
  150. }
  151. }
  152. this.state.pagination.current = data.data.pagination.pageNo;
  153. this.state.pagination.total = data.data.pagination.totalCount;
  154. if (
  155. data.data &&
  156. data.data.pagination.list &&
  157. !data.data.pagination.list.length
  158. ) {
  159. this.state.pagination.current = 0;
  160. this.state.pagination.total = 0;
  161. }
  162. this.setState({
  163. totalPage: data.data.pagination.totalPage,
  164. dataSource: theArr,
  165. pagination: this.state.pagination,
  166. totalHui: data.data.count ? data.data.count.signTotalAmount : 0,
  167. hui: data.data.count ? data.data.count.actuallyTotalAmount : 0,
  168. });
  169. }.bind(this),
  170. }).always(
  171. function () {
  172. this.setState({
  173. loadingA: false,
  174. });
  175. }.bind(this)
  176. );
  177. },
  178. getInitialState() {
  179. return {
  180. cuiTabKey: "1",
  181. rotateDeg: 0,
  182. searchMore: true,
  183. assignVisibleX: false,
  184. assignVisibleY: false,
  185. releaseDate: [],
  186. shouKuanDate: [],
  187. assignDataX: [],
  188. assignDataY: [],
  189. attachmentUrl: [],
  190. pictureUrl: [],
  191. totalPage: 0,
  192. modKey: "1",
  193. width: "800px",
  194. boHuivisible: false,
  195. selectedRowKeys: [],
  196. selectedRows: [],
  197. loading: false,
  198. pagination: {
  199. defaultCurrent: 1,
  200. defaultPageSize: 10,
  201. showQuickJumper: true,
  202. pageSize: 10,
  203. onChange: function (page) {
  204. this.loadData(page);
  205. }.bind(this),
  206. showTotal: function (total) {
  207. return "共" + total + "条数据";
  208. },
  209. },
  210. loadingA: false,
  211. // 子组件改变的表格title数组
  212. changeList: undefined,
  213. columns: [
  214. {
  215. title: "合同编号",
  216. dataIndex: "contractNo",
  217. key: "contractNo",
  218. className: "title-table",
  219. fixed: "left",
  220. },
  221. {
  222. title: "客户名称",
  223. dataIndex: "buyerName",
  224. key: "buyerName",
  225. className: "title-table",
  226. fixed: "left",
  227. },
  228. {
  229. title: "订单编号",
  230. dataIndex: "orderNo",
  231. key: "orderNo",
  232. className: "title-table",
  233. // fixed: "left"
  234. },
  235. {
  236. title: "特批状态",
  237. dataIndex: "approval",
  238. key: "approval",
  239. className: "title-table",
  240. render: (text) => {
  241. if (text == 1 || text == 2) {
  242. return <Tag color="#f50">{getApproval(text)}</Tag>;
  243. }
  244. return getApproval(text);
  245. },
  246. },
  247. {
  248. title: "订单部门",
  249. dataIndex: "departmentName",
  250. key: "departmentName",
  251. className: "title-table",
  252. },
  253. {
  254. title: "订单负责人",
  255. dataIndex: "sellerName",
  256. key: "sellerName",
  257. className: "title-table",
  258. },
  259. {
  260. title: "财务负责人",
  261. dataIndex: "financeName",
  262. key: "financeName",
  263. className: "title-table",
  264. },
  265. {
  266. title: "外包公司",
  267. dataIndex: "outsourceName",
  268. key: "outsourceName",
  269. className: "title-table",
  270. },
  271. {
  272. title: "外包成本",
  273. dataIndex: "outsourceAmount",
  274. key: "outsourceAmount",
  275. className: "title-table",
  276. render: (text) => {
  277. return isNaN(parseFloat(text)) ? text : parseFloat(text);
  278. }
  279. },
  280. {
  281. title: "签单日期",
  282. dataIndex: "signTime",
  283. key: "signTime",
  284. className: "title-table",
  285. },
  286. {
  287. title: "下单日期",
  288. dataIndex: "createTime",
  289. key: "createTime",
  290. className: "title-table",
  291. },
  292. {
  293. title: "签单金额(万元)",
  294. dataIndex: "signTotalAmount",
  295. key: "signTotalAmount",
  296. className: "title-table",
  297. render: (text) => {
  298. return isNaN(parseFloat(text)) ? text : parseFloat(text);
  299. }
  300. },
  301. {
  302. title: "开票金额(万元)",
  303. dataIndex: "invoiceAmount",
  304. key: "invoiceAmount",
  305. className: "title-table",
  306. render: (text) => {
  307. return isNaN(parseFloat(text)) ? text : parseFloat(text);
  308. }
  309. },
  310. {
  311. title: "已收款(万元)",
  312. dataIndex: "actuallyTotalAmount",
  313. key: "actuallyTotalAmount",
  314. className: "title-table",
  315. render: (text) => {
  316. return isNaN(parseFloat(text)) ? text : parseFloat(text);
  317. }
  318. },
  319. {
  320. title: "应收款(万元)",
  321. dataIndex: "orderReceivables",
  322. key: "orderReceivables",
  323. className: "title-table",
  324. render: (text) => {
  325. return isNaN(parseFloat(text)) ? text : parseFloat(text);
  326. }
  327. },
  328. {
  329. title: "欠款(万元)",
  330. dataIndex: "orderArrears",
  331. key: "orderArrears",
  332. className: "title-table",
  333. render: (text) => {
  334. return isNaN(parseFloat(text)) ? text : parseFloat(text);
  335. }
  336. },
  337. {
  338. title: "最近收款(万元)",
  339. dataIndex: "finalReceivables",
  340. key: "finalReceivables",
  341. className: "title-table",
  342. render: (text) => {
  343. return isNaN(parseFloat(text)) ? text : parseFloat(text);
  344. }
  345. },
  346. {
  347. title: "最近收款时间",
  348. dataIndex: "finalReceivablesTime",
  349. key: "finalReceivablesTime",
  350. className: "title-table",
  351. },
  352. {
  353. title: "结算状态",
  354. dataIndex: "liquidationStatus",
  355. key: "liquidationStatus",
  356. className: "title-table",
  357. render: (text) => {
  358. return getLiquidationStatus(text);
  359. },
  360. },
  361. {
  362. title: "流程状态",
  363. dataIndex: "processStatus",
  364. key: "processStatus",
  365. className: "title-table",
  366. render: (text) => {
  367. return getProcessStatus(text);
  368. },
  369. },
  370. {
  371. title: "驳回状态",
  372. dataIndex: "backStatus",
  373. key: "backStatus",
  374. className: "title-table",
  375. render: (text) => {
  376. if (text == 3) {
  377. return <Tag>已驳回</Tag>;
  378. } else {
  379. return "";
  380. }
  381. },
  382. },
  383. // {
  384. // title: "操作",
  385. // dataIndex: "caozuo",
  386. // key: "caouzo",
  387. // className: "title-table",
  388. // render: (text, recard) => {
  389. // return (
  390. // <div>
  391. // {recard.liquidationStatus < 2 &&
  392. // (recard.approval === 1 || recard.approval === 2) ? (
  393. // <Button
  394. // style={{ background: "rgb(192,192,192)" }}
  395. // onClick={e => {
  396. // e.stopPropagation(), this.evaluateX(recard);
  397. // }}
  398. // >
  399. // 收款
  400. // </Button>
  401. // ) : (
  402. // <Button
  403. // type="primary"
  404. // onClick={e => {
  405. // e.stopPropagation(), this.evaluateX(recard);
  406. // }}
  407. // >
  408. // 收款
  409. // </Button>
  410. // )}
  411. // {recard.processStatus < 4 ? (
  412. // <Button
  413. // type="primary"
  414. // onClick={e => {
  415. // e.stopPropagation(), this.evaluateZ(recard);
  416. // }}
  417. // style={{ marginLeft: "5px" }}
  418. // >
  419. // 通过
  420. // </Button>
  421. // ) : (
  422. // ""
  423. // )}
  424. // {!(
  425. // recard.actuallyTotalAmount &&
  426. // Number(recard.actuallyTotalAmount) > 0
  427. // ) && (
  428. // <Button
  429. // type="danger"
  430. // style={{ marginLeft: "5px" }}
  431. // onClick={e => {
  432. // e.stopPropagation(), this.reject(recard);
  433. // }}
  434. // >
  435. // 驳回
  436. // </Button>
  437. // )}
  438. // {
  439. // // <Button
  440. // // type="primary"
  441. // // style={{ marginLeft: "5px" }}
  442. // // onClick={e => {
  443. // // e.stopPropagation(), this.evaluateY(recard, "财务专员");
  444. // // console.log(recard);
  445. // // }}
  446. // // >
  447. // // 转交
  448. // // </Button>
  449. // }
  450. // </div>
  451. // );
  452. // }
  453. // }
  454. ],
  455. ContactsListsNew: [
  456. {
  457. title: "项目名称",
  458. dataIndex: "commodityName",
  459. key: "commodityName",
  460. render: (text, record) => {
  461. return <span>{text + "-" + record.tid}</span>;
  462. },
  463. },
  464. {
  465. title: "项目分类",
  466. dataIndex: "projectType",
  467. key: "projectType",
  468. render: (text) => {
  469. let arr = this.state.dataSourceX || [];
  470. let str = "";
  471. for (let i = 0; i < arr.length; i++) {
  472. if (this.state.dataSourceX[i].sort == text) {
  473. str = this.state.dataSourceX[i].cname;
  474. return <span>{str}</span>;
  475. }
  476. }
  477. },
  478. },
  479. {
  480. title: "催款科目",
  481. dataIndex: "dunTypeName",
  482. key: "dunTypeName",
  483. render: (text, record) => {
  484. if (record.customizeName) {
  485. return text + record.customizeName;
  486. }
  487. return <span>{text}</span>;
  488. },
  489. },
  490. {
  491. title: "时间(天)",
  492. dataIndex: "waitDay",
  493. key: "waitDay",
  494. render: (text, record) => {
  495. if (record.dunTypeName) {
  496. if (record.customizeTimes) {
  497. return record.customizeTimes;
  498. }
  499. return <span>{text}</span>;
  500. }
  501. },
  502. },
  503. {
  504. title: "金额(万元)",
  505. dataIndex: "money",
  506. key: "money",
  507. render: (text, record) => {
  508. if (record.dunTypeName) {
  509. if (record.appropriationRatio && !record.money) {
  510. return <span>{record.appropriationRatio}(拨款比例)</span>;
  511. } else if (record.appropriationRatio && record.money) {
  512. return (
  513. <span>
  514. {text}(比例:{record.appropriationRatio})
  515. </span>
  516. );
  517. } else {
  518. return <span>{text}</span>;
  519. }
  520. }
  521. },
  522. },
  523. {
  524. title: "服务年限",
  525. dataIndex: "startDate",
  526. key: "startDate",
  527. render: (text, record) => {
  528. if (record.dunTypeName) {
  529. return <span>{text}</span>;
  530. }
  531. },
  532. },
  533. {
  534. title: "催款状态",
  535. dataIndex: "status",
  536. key: "status",
  537. render: (text) => {
  538. return <span>{text == 1 ? "已启动" : "未启动"}</span>;
  539. },
  540. },
  541. ],
  542. ContactsLists: [
  543. {
  544. title: "催款科目",
  545. dataIndex: "dunSubject",
  546. key: "dunSubject",
  547. render: (text) => {
  548. return getjiedian(text);
  549. },
  550. },
  551. {
  552. title: "金额(万元)",
  553. dataIndex: "money",
  554. key: "money",
  555. },
  556. {
  557. title: "催款状态",
  558. dataIndex: "dunStatus",
  559. key: "dunStatus",
  560. render: (text) => {
  561. return getCuikuan(text);
  562. },
  563. },
  564. ],
  565. proColumns: [
  566. {
  567. title: "序号",
  568. dataIndex: "key",
  569. key: "key",
  570. },
  571. {
  572. title: "合同编号",
  573. dataIndex: "contractNo",
  574. key: "contractNo",
  575. },
  576. {
  577. title: "订单编号",
  578. dataIndex: "orderNo",
  579. key: "orderNo",
  580. },
  581. {
  582. title: "客户名称",
  583. dataIndex: "userName",
  584. key: "userName",
  585. },
  586. {
  587. title: "订单负责人",
  588. dataIndex: "salesmanName",
  589. key: "salesmanName",
  590. },
  591. {
  592. title: "是否主项目",
  593. dataIndex: "main",
  594. key: "main",
  595. render: (text) => {
  596. return text == 0 ? "否" : "是";
  597. },
  598. },
  599. {
  600. title: "项目类别",
  601. dataIndex: "cname",
  602. key: "cname",
  603. },
  604. {
  605. title: "项目名称",
  606. dataIndex: "commodityName",
  607. key: "commodityName",
  608. },
  609. {
  610. title: "项目数量",
  611. dataIndex: "commodityQuantity",
  612. key: "commodityQuantity",
  613. render: (text, record) => {
  614. if (record.splitStatus == 1) {
  615. return (
  616. <span>
  617. {text}{" "}
  618. <Tag
  619. color="#108ee9"
  620. onClick={(e) => {
  621. e.stopPropagation();
  622. this.showRes(record);
  623. }}
  624. >
  625. 已拆
  626. </Tag>
  627. </span>
  628. );
  629. } else {
  630. return text;
  631. }
  632. },
  633. },
  634. {
  635. title: "服务市价",
  636. dataIndex: "commodityPrice",
  637. key: "commodityPrice",
  638. },
  639. {
  640. title: "证书编号",
  641. dataIndex: "certificateNumber",
  642. key: "certificateNumber",
  643. },
  644. {
  645. title: "项目状态",
  646. dataIndex: "projectStatus",
  647. key: "projectStatus",
  648. render: (text) => {
  649. return getProjectName(text);
  650. },
  651. },
  652. {
  653. title: "项目说明",
  654. dataIndex: "taskComment",
  655. key: "taskComment",
  656. },
  657. // {
  658. // title: "外包(内部)公司",
  659. // dataIndex: "outsourceName",
  660. // key: "outsourceName",
  661. // },
  662. // {
  663. // title: "外包(内部)价格",
  664. // dataIndex: "outsourcePrice",
  665. // key: "outsourcePrice",
  666. // },
  667. ],
  668. cuiColumns: [
  669. {
  670. title: "序号",
  671. dataIndex: "key",
  672. key: "key",
  673. },
  674. {
  675. title: "合同编号",
  676. dataIndex: "contractNo",
  677. key: "contractNo",
  678. },
  679. {
  680. title: "订单编号",
  681. dataIndex: "orderNo",
  682. key: "orderNo",
  683. },
  684. {
  685. title: "客户名称",
  686. dataIndex: "userName",
  687. key: "userName",
  688. },
  689. {
  690. title: "订单负责人",
  691. dataIndex: "salesmanName",
  692. key: "salesmanName",
  693. },
  694. {
  695. title: "订单部门",
  696. dataIndex: "depName",
  697. key: "depName",
  698. },
  699. {
  700. title: "订单状态",
  701. dataIndex: "orderStatus",
  702. key: "orderStatus",
  703. render: (text) => {
  704. return getNewOrderStatus(text);
  705. },
  706. },
  707. {
  708. title: "项目状态",
  709. dataIndex: "projectStatus",
  710. key: "projectStatus",
  711. render: (text) => {
  712. return getProjectName(text);
  713. },
  714. },
  715. {
  716. title: "签单金额",
  717. dataIndex: "totalAmount",
  718. key: "totalAmount",
  719. },
  720. {
  721. title: "结算状态",
  722. dataIndex: "liquidationStatus",
  723. key: "liquidationStatus",
  724. render: (text) => {
  725. return getLiquidationStatus(text);
  726. },
  727. },
  728. {
  729. title: "已收款",
  730. dataIndex: "settlementAmount",
  731. key: "settlementAmount",
  732. },
  733. {
  734. title: "应收款",
  735. dataIndex: "accountsReceivable",
  736. key: "accountsReceivable",
  737. },
  738. {
  739. title: "催收科目",
  740. dataIndex: "dunSubject",
  741. key: "dunSubject",
  742. // render: text => {
  743. // return getjiedian(text);
  744. // }
  745. },
  746. {
  747. title: "催款状态",
  748. dataIndex: "dunStatus",
  749. key: "dunStatus",
  750. },
  751. {
  752. title: "催收启动时间",
  753. dataIndex: "startDate",
  754. key: "startDate",
  755. },
  756. ],
  757. timeColumns: [
  758. {
  759. title: "合同编号",
  760. dataIndex: "contractNo",
  761. key: "contractNo",
  762. },
  763. {
  764. title: "订单编号",
  765. dataIndex: "orderNo",
  766. key: "orderNo",
  767. },
  768. {
  769. title: "项目编号",
  770. dataIndex: "id",
  771. key: "id",
  772. render: (text, record) => {
  773. if (record.splitStatus == 2) {
  774. return <span>{record.splitSuper + "-" + record.splitId}</span>;
  775. } else {
  776. return text;
  777. }
  778. },
  779. },
  780. {
  781. title: "客户名称",
  782. dataIndex: "userName",
  783. key: "userName",
  784. render: (text) => {
  785. return text && text.length > 9 ? text.substr(0, 9) + "..." : text;
  786. },
  787. },
  788. {
  789. title: "订单部门",
  790. dataIndex: "depName",
  791. key: "depName",
  792. },
  793. {
  794. title: "订单负责人",
  795. dataIndex: "salesmanName",
  796. key: "salesmanName",
  797. },
  798. {
  799. title: "项目类别",
  800. dataIndex: "cname",
  801. key: "cname",
  802. },
  803. {
  804. title: "项目名称",
  805. dataIndex: "taskName",
  806. key: "taskName",
  807. },
  808. {
  809. title: "项目负责人",
  810. dataIndex: "receiverName",
  811. key: "receiverName",
  812. },
  813. {
  814. title: "项目价格(万元)",
  815. dataIndex: "commodityPrice",
  816. key: "commodityPrice",
  817. },
  818. {
  819. title: "数量(个)",
  820. dataIndex: "commodityQuantity",
  821. key: "commodityQuantity",
  822. },
  823. {
  824. title: "任务状态",
  825. dataIndex: "taskStatus",
  826. key: "taskStatus",
  827. render: (text) => {
  828. return getTaskStatus(text);
  829. },
  830. },
  831. {
  832. title: "项目状态",
  833. dataIndex: "projectStatus",
  834. key: "projectStatus",
  835. render: (text) => {
  836. return getProjectName(text);
  837. },
  838. },
  839. {
  840. title: "工时",
  841. dataIndex: "hours",
  842. key: "hours",
  843. },
  844. {
  845. title: "是否外包",
  846. dataIndex: "outsource",
  847. key: "outsource",
  848. render: (text) => {
  849. if (text == 0) {
  850. return "否";
  851. } else if (text == 1) {
  852. return "是";
  853. }
  854. },
  855. },
  856. {
  857. title: "签单日期",
  858. dataIndex: "signTime",
  859. key: "signTime",
  860. },
  861. {
  862. title: "派单日期",
  863. dataIndex: "creteTime",
  864. key: "creteTime",
  865. },
  866. {
  867. title: "分配时间",
  868. dataIndex: "taskDistributionTime",
  869. key: "taskDistributionTime",
  870. },
  871. {
  872. title: "完成时间",
  873. dataIndex: "taskEndTime",
  874. key: "taskEndTime",
  875. },
  876. ],
  877. printColumns: [
  878. {
  879. title: "合同编号",
  880. dataIndex: "contractNo",
  881. key: "contractNo",
  882. },
  883. {
  884. title: "订单编号",
  885. dataIndex: "orderNo",
  886. key: "orderNo",
  887. // fixed: "left"
  888. },
  889. {
  890. title: "客户名称",
  891. dataIndex: "buyerName",
  892. key: "buyerName",
  893. },
  894. {
  895. title: "订单部门",
  896. dataIndex: "departmentName",
  897. key: "departmentName",
  898. },
  899. {
  900. title: "订单负责人",
  901. dataIndex: "sellerName",
  902. key: "sellerName",
  903. },
  904. {
  905. title: "签单日期",
  906. dataIndex: "signTime",
  907. key: "signTime",
  908. },
  909. {
  910. title: "下单日期",
  911. dataIndex: "createTime",
  912. key: "createTime",
  913. },
  914. {
  915. title: "签单金额(万元)",
  916. dataIndex: "signTotalAmount",
  917. key: "signTotalAmount",
  918. render: (text) => {
  919. return isNaN(parseFloat(text)) ? text : parseFloat(text);
  920. }
  921. },
  922. {
  923. title: "开票金额(万元)",
  924. dataIndex: "invoiceAmount",
  925. key: "invoiceAmount",
  926. render: (text) => {
  927. return isNaN(parseFloat(text)) ? text : parseFloat(text);
  928. }
  929. },
  930. {
  931. title: "已收款(万元)",
  932. dataIndex: "actuallyTotalAmount",
  933. key: "actuallyTotalAmount",
  934. render: (text) => {
  935. return isNaN(parseFloat(text)) ? text : parseFloat(text);
  936. }
  937. },
  938. {
  939. title: "最近收款(万元)",
  940. dataIndex: "finalReceivables",
  941. key: "finalReceivables",
  942. render: (text) => {
  943. return isNaN(parseFloat(text)) ? text : parseFloat(text);
  944. }
  945. },
  946. {
  947. title: "最近收款时间",
  948. dataIndex: "finalReceivablesTime",
  949. key: "finalReceivablesTime",
  950. },
  951. {
  952. title: "结算状态",
  953. dataIndex: "liquidationStatus",
  954. key: "liquidationStatus",
  955. render: (text) => {
  956. return getLiquidationStatus(text);
  957. },
  958. },
  959. {
  960. title: "流程状态",
  961. dataIndex: "processStatus",
  962. key: "processStatus",
  963. render: (text) => {
  964. return getProcessStatus(text);
  965. },
  966. },
  967. {
  968. title: "特批状态",
  969. dataIndex: "approval",
  970. key: "approval",
  971. render: (text) => {
  972. return getApproval(text);
  973. },
  974. },
  975. ],
  976. columnsX: [
  977. {
  978. title: "业务项目名称",
  979. dataIndex: "commodityName",
  980. key: "commodityName",
  981. render: (text, record) => {
  982. return text && text.length > 6 ? (
  983. <span title={text}>{text.substr(0, 8) + "-" + record.id}...</span>
  984. ) : (
  985. text + "-" + record.id
  986. );
  987. },
  988. },
  989. {
  990. title: "项目类别",
  991. dataIndex: "cname",
  992. key: "cname",
  993. },
  994. {
  995. title: "项目数量",
  996. dataIndex: "commodityQuantity",
  997. key: "commodityQuantity",
  998. render: (text, record) => {
  999. if (record.splitStatus == 1) {
  1000. return (
  1001. <span>
  1002. {text}{" "}
  1003. <Tag
  1004. color="#108ee9"
  1005. onClick={(e) => {
  1006. e.stopPropagation();
  1007. this.showRes(record);
  1008. }}
  1009. >
  1010. 已拆
  1011. </Tag>
  1012. </span>
  1013. );
  1014. } else {
  1015. return text;
  1016. }
  1017. },
  1018. },
  1019. {
  1020. title: "服务市价(万元)",
  1021. dataIndex: "commodityPrice",
  1022. key: "commodityPrice",
  1023. },
  1024. {
  1025. title: "项目状态",
  1026. dataIndex: "projectStatus",
  1027. key: "projectStatus",
  1028. render: (text) => {
  1029. return getProjectName(text);
  1030. },
  1031. },
  1032. {
  1033. title: "证书编号",
  1034. dataIndex: "certificateNumber",
  1035. key: "certificateNumber",
  1036. },
  1037. {
  1038. title: "是否主要项目",
  1039. dataIndex: "main",
  1040. key: "main",
  1041. render: (text) => {
  1042. return text ? "是" : "否";
  1043. },
  1044. },
  1045. {
  1046. title: "项目说明",
  1047. dataIndex: "taskComment",
  1048. key: "taskComment",
  1049. render: (text) => {
  1050. return text && text.length > 8 ? (
  1051. <span title={text}>{text.substr(0, 8)}...</span>
  1052. ) : (
  1053. text
  1054. );
  1055. },
  1056. },
  1057. ],
  1058. columnsDate: [
  1059. {
  1060. title: "编号",
  1061. dataIndex: "id",
  1062. key: "id",
  1063. },
  1064. {
  1065. title: "订单编号",
  1066. dataIndex: "orderno",
  1067. key: "orderno",
  1068. },
  1069. {
  1070. title: "开票金额(万元)",
  1071. dataIndex: "amount",
  1072. key: "amount",
  1073. },
  1074. {
  1075. title: "申请时间",
  1076. dataIndex: "createTime",
  1077. key: "createTime",
  1078. },
  1079. {
  1080. title: "开票状态",
  1081. dataIndex: "status",
  1082. key: "status",
  1083. render: (text) => {
  1084. return getInvoiceStatus(text);
  1085. },
  1086. },
  1087. ],
  1088. columnsY: [
  1089. {
  1090. title: "流程",
  1091. dataIndex: "processName",
  1092. key: "processName",
  1093. },
  1094. {
  1095. title: "操作人",
  1096. dataIndex: "adminName",
  1097. key: "adminName",
  1098. },
  1099. {
  1100. title: "时间",
  1101. dataIndex: "createDate",
  1102. key: "createDate",
  1103. },
  1104. ],
  1105. columnsW: [
  1106. {
  1107. title: "外包名称",
  1108. dataIndex: "name",
  1109. key: "name",
  1110. },
  1111. {
  1112. title: "联系人",
  1113. dataIndex: "contacts",
  1114. key: "contacts",
  1115. },
  1116. {
  1117. title: "联系人电话",
  1118. dataIndex: "contactsMobile",
  1119. key: "contactsMobile",
  1120. },
  1121. {
  1122. title: "地址",
  1123. dataIndex: "ProvinceCity",
  1124. key: "ProvinceCity",
  1125. render: (test) => {
  1126. return test[0] === null
  1127. ? ""
  1128. : getprovince(test[0]) +
  1129. "/" +
  1130. getprovince(test[1]) +
  1131. "/" +
  1132. getprovince(test[2]);
  1133. },
  1134. },
  1135. {
  1136. title: "地址详情",
  1137. dataIndex: "address",
  1138. key: "address",
  1139. render: (text) => {
  1140. return text && text.length > 8 ? text.substr(0, 8) + "..." : text;
  1141. },
  1142. },
  1143. {
  1144. title: "创建时间",
  1145. dataIndex: "createTimes",
  1146. key: "createTimes",
  1147. },
  1148. {
  1149. title: "任务名称",
  1150. dataIndex: "tname",
  1151. key: "tname",
  1152. },
  1153. {
  1154. title: "合同编号",
  1155. dataIndex: "contractNo",
  1156. key: "contractNo",
  1157. },
  1158. {
  1159. title: "项目状态",
  1160. dataIndex: "projectStatus",
  1161. key: "projectStatus",
  1162. render: (text) => {
  1163. return getProjectName(text);
  1164. },
  1165. },
  1166. ],
  1167. dataSource: [],
  1168. searchTime: [,],
  1169. printColumns: [
  1170. {
  1171. title: "合同编号",
  1172. dataIndex: "contractNo",
  1173. key: "contractNo",
  1174. },
  1175. {
  1176. title: "订单编号",
  1177. dataIndex: "orderNo",
  1178. key: "orderNo",
  1179. // fixed: "left"
  1180. },
  1181. {
  1182. title: "客户名称",
  1183. dataIndex: "buyerName",
  1184. key: "buyerName",
  1185. },
  1186. {
  1187. title: "订单部门",
  1188. dataIndex: "departmentName",
  1189. key: "departmentName",
  1190. },
  1191. {
  1192. title: "订单负责人",
  1193. dataIndex: "sellerName",
  1194. key: "sellerName",
  1195. },
  1196. {
  1197. title: "外包公司",
  1198. dataIndex: "outsourceName",
  1199. key: "outsourceName",
  1200. },
  1201. {
  1202. title: "签单日期",
  1203. dataIndex: "signTime",
  1204. key: "signTime",
  1205. },
  1206. {
  1207. title: "下单日期",
  1208. dataIndex: "createTime",
  1209. key: "createTime",
  1210. },
  1211. {
  1212. title: "签单金额(万元)",
  1213. dataIndex: "signTotalAmount",
  1214. key: "signTotalAmount",
  1215. },
  1216. {
  1217. title: "开票金额(万元)",
  1218. dataIndex: "invoiceAmount",
  1219. key: "invoiceAmount",
  1220. },
  1221. {
  1222. title: "已收款(万元)",
  1223. dataIndex: "actuallyTotalAmount",
  1224. key: "actuallyTotalAmount",
  1225. },
  1226. {
  1227. title: "最近收款(万元)",
  1228. dataIndex: "finalReceivables",
  1229. key: "finalReceivables",
  1230. },
  1231. {
  1232. title: "最近收款时间",
  1233. dataIndex: "finalReceivablesTime",
  1234. key: "finalReceivablesTime",
  1235. },
  1236. {
  1237. title: "结算状态",
  1238. dataIndex: "liquidationStatus",
  1239. key: "liquidationStatus",
  1240. render: (text) => {
  1241. return getLiquidationStatus(text);
  1242. },
  1243. },
  1244. {
  1245. title: "流程状态",
  1246. dataIndex: "processStatus",
  1247. key: "processStatus",
  1248. render: (text) => {
  1249. return getProcessStatus(text);
  1250. },
  1251. },
  1252. {
  1253. title: "特批状态",
  1254. dataIndex: "approval",
  1255. key: "approval",
  1256. render: (text) => {
  1257. return getApproval(text);
  1258. },
  1259. },
  1260. ],
  1261. waterlistDate: [
  1262. {
  1263. title: "订单编号",
  1264. dataIndex: "orderNo",
  1265. key: "orderNo",
  1266. },
  1267. {
  1268. title: "平台流水号",
  1269. dataIndex: "billNo",
  1270. key: "billNo",
  1271. // fixed: "left"
  1272. },
  1273. {
  1274. title: "金额(万元)",
  1275. dataIndex: "transactionAmount",
  1276. key: "transactionAmount",
  1277. },
  1278. {
  1279. title: "收款方",
  1280. dataIndex: "payeeName",
  1281. key: "payeeName",
  1282. },
  1283. {
  1284. title: "付款方",
  1285. dataIndex: "payerName",
  1286. key: "payerName",
  1287. },
  1288. {
  1289. title: "流水科目",
  1290. dataIndex: "transactionSubject",
  1291. key: "transactionSubject",
  1292. render: (text) => {
  1293. return getTransactionProject(text);
  1294. },
  1295. },
  1296. {
  1297. title: "收款类型",
  1298. dataIndex: "type",
  1299. key: "type",
  1300. },
  1301. {
  1302. title: "财务流水时间",
  1303. dataIndex: "financialPayTimes",
  1304. key: "financialPayTimes",
  1305. },
  1306. {
  1307. title: "财务流水号",
  1308. dataIndex: "financialPayNo",
  1309. key: "financialPayNo",
  1310. },
  1311. {
  1312. title: "订单负责人",
  1313. dataIndex: "saleName",
  1314. key: "saleName",
  1315. },
  1316. {
  1317. title: "创建时间",
  1318. dataIndex: "createTimes",
  1319. key: "createTimes",
  1320. },
  1321. {
  1322. title: "退款时间",
  1323. dataIndex: "refundTimes",
  1324. key: "refundTimes",
  1325. },
  1326. {
  1327. title: "删除时间",
  1328. dataIndex: "deleteTimes",
  1329. key: "deleteTimes",
  1330. },
  1331. {
  1332. title: "备注",
  1333. dataIndex: "remarks",
  1334. key: "remarks",
  1335. },
  1336. {
  1337. title: "流水状态",
  1338. dataIndex: "deleteSign",
  1339. key: "deleteSign",
  1340. render: (text, record) => {
  1341. if (!text) {
  1342. return "";
  1343. } else {
  1344. return <Tag>已删除</Tag>;
  1345. }
  1346. },
  1347. },
  1348. ],
  1349. waterData: [],
  1350. qianColumns: [
  1351. {
  1352. title: "序号",
  1353. dataIndex: "key",
  1354. key: "key",
  1355. },
  1356. {
  1357. title: "合同编号",
  1358. dataIndex: "contractNo",
  1359. key: "contractNo",
  1360. },
  1361. {
  1362. title: "订单编号",
  1363. dataIndex: "orderNo",
  1364. key: "orderNo",
  1365. },
  1366. {
  1367. title: "客户名称",
  1368. dataIndex: "userName",
  1369. key: "userName",
  1370. },
  1371. {
  1372. title: "订单负责人",
  1373. dataIndex: "salesmanName",
  1374. key: "salesmanName",
  1375. },
  1376. {
  1377. title: "订单部门",
  1378. dataIndex: "depName",
  1379. key: "depName",
  1380. },
  1381. {
  1382. title: "订单状态",
  1383. dataIndex: "orderStatus",
  1384. key: "orderStatus",
  1385. render: (text) => {
  1386. return getNewOrderStatus(text);
  1387. },
  1388. },
  1389. {
  1390. title: "项目状态",
  1391. dataIndex: "projectStatus",
  1392. key: "projectStatus",
  1393. render: (text) => {
  1394. return getProjectName(text);
  1395. },
  1396. },
  1397. {
  1398. title: "签单金额",
  1399. dataIndex: "totalAmount",
  1400. key: "totalAmount",
  1401. },
  1402. {
  1403. title: "结算状态",
  1404. dataIndex: "liquidationStatus",
  1405. key: "liquidationStatus",
  1406. render: (text) => {
  1407. return getLiquidationStatus(text);
  1408. },
  1409. },
  1410. {
  1411. title: "已收款",
  1412. dataIndex: "settlementAmount",
  1413. key: "settlementAmount",
  1414. },
  1415. {
  1416. title: "欠款",
  1417. dataIndex: "orderArrears",
  1418. key: "orderArrears",
  1419. },
  1420. {
  1421. title: "催收科目",
  1422. dataIndex: "type",
  1423. key: "type",
  1424. render: (text) => {
  1425. return "按时触发应收欠款";
  1426. },
  1427. },
  1428. {
  1429. title: "催款状态",
  1430. dataIndex: "dunStatus",
  1431. key: "dunStatus",
  1432. render: (text) => {
  1433. if (text == 0) {
  1434. return "未启动";
  1435. } else if (text == 1) {
  1436. return "催款中";
  1437. } else if (text == 2) {
  1438. return "已完成";
  1439. } else if (text == 3) {
  1440. return "已停止";
  1441. }
  1442. },
  1443. },
  1444. {
  1445. title: "催收启动时间",
  1446. dataIndex: "startDate",
  1447. key: "startDate",
  1448. },
  1449. ],
  1450. };
  1451. },
  1452. // 特批通过
  1453. evaluateZ(record) {
  1454. $.ajax({
  1455. method: "POST",
  1456. dataType: "json",
  1457. crossDomain: false,
  1458. url: globalConfig.context + "/api/admin/financial/financeApproval",
  1459. data: {
  1460. orderNo: record.orderNo,
  1461. },
  1462. }).done(
  1463. function (data) {
  1464. if (!data.error.length) {
  1465. message.success("通过成功!");
  1466. this.setState({
  1467. loading: false,
  1468. });
  1469. this.loadData();
  1470. } else {
  1471. message.warning(data.error[0].message);
  1472. }
  1473. }.bind(this)
  1474. );
  1475. },
  1476. jdDate(orderNo) {
  1477. $.ajax({
  1478. method: "get",
  1479. dataType: "json",
  1480. crossDomain: false,
  1481. url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
  1482. data: {
  1483. orderNo: orderNo,
  1484. },
  1485. success: function (data) {
  1486. let thisData = data.data;
  1487. if (!thisData.length) {
  1488. if (data.error && data.error.length) {
  1489. message.warning(data.error[0].message);
  1490. }
  1491. thisData = {};
  1492. } else {
  1493. this.setState({
  1494. jsDate: thisData,
  1495. });
  1496. }
  1497. }.bind(this),
  1498. }).always(
  1499. function () {
  1500. this.setState({
  1501. loading: false,
  1502. });
  1503. }.bind(this)
  1504. );
  1505. },
  1506. /* 收款 */
  1507. evaluateX(recard) {
  1508. this.state.assignDataX = recard;
  1509. this.setState({
  1510. assignVisibleX: true,
  1511. });
  1512. },
  1513. /* 转交 */
  1514. evaluateY(recard, nub) {
  1515. this.state.assignDataY = recard;
  1516. this.setState({
  1517. nub,
  1518. assignVisibleY: true,
  1519. });
  1520. },
  1521. /* 驳回 */
  1522. reject(recard) {
  1523. this.setState({
  1524. bohuiData: recard,
  1525. boHuiVisible: true,
  1526. content: "",
  1527. });
  1528. },
  1529. boHuiCancel() {
  1530. this.setState({
  1531. boHuiVisible: false,
  1532. reason: "",
  1533. });
  1534. },
  1535. componentWillMount() {
  1536. this.loadData();
  1537. this.departmentList();
  1538. },
  1539. tableRowClick(record) {
  1540. this.state.RowData = record;
  1541. this.setState({
  1542. showDesc: true,
  1543. visible: true,
  1544. orderNo: record.orderNo,
  1545. modKey: "1",
  1546. });
  1547. this.jdDate(record.orderNo);
  1548. this.loadXmu(record);
  1549. this.loadModal(record);
  1550. this.jiedian(record.orderNo);
  1551. this.jiedianNew(record.orderNo);
  1552. },
  1553. // 拆分详细
  1554. showRes(record) {
  1555. this.setState({
  1556. resVisible: true,
  1557. resRecord: record,
  1558. });
  1559. },
  1560. resCancel() {
  1561. this.setState({
  1562. resVisible: false,
  1563. });
  1564. },
  1565. //详情
  1566. callBack(key) {
  1567. if (key === "2") {
  1568. this.setState({
  1569. modKey: key,
  1570. width: "1200px",
  1571. });
  1572. this.loadWaiBao();
  1573. }
  1574. if (key === "1") {
  1575. this.setState({
  1576. modKey: key,
  1577. width: "800px",
  1578. });
  1579. }
  1580. if (this.state.pictureUrl.length) {
  1581. let picArr = [];
  1582. this.state.pictureUrl.map(function (item) {
  1583. if (item.response && item.response.data && item.response.data.length) {
  1584. picArr.push(item.response.data);
  1585. }
  1586. });
  1587. }
  1588. if (key === "3") {
  1589. this.setState({
  1590. modKey: key,
  1591. width: "800px",
  1592. });
  1593. this.setState({
  1594. loading: true,
  1595. });
  1596. $.ajax({
  1597. method: "get",
  1598. dataType: "json",
  1599. crossDomain: false,
  1600. url:
  1601. globalConfig.context + "/api/admin/outsourceOrg/orderOutsourceDtails",
  1602. data: {
  1603. orderNo: this.state.orderNo,
  1604. },
  1605. success: function (data) {
  1606. let thisdata = data.data;
  1607. this.setState({
  1608. id: thisdata.id,
  1609. createTimes: thisdata.createTimes,
  1610. auditTimes: thisdata.auditTimes,
  1611. remarks: thisdata.remarks,
  1612. attachmentUrl: thisdata.attachmentUrl
  1613. ? splitUrl(
  1614. thisdata.attachmentUrl,
  1615. ",",
  1616. globalConfig.avatarHost + "/upload"
  1617. )
  1618. : [],
  1619. pictureUrl: thisdata.pictureUrl
  1620. ? splitUrl(
  1621. thisdata.pictureUrl,
  1622. ",",
  1623. globalConfig.avatarHost + "/upload"
  1624. )
  1625. : [], //图片地址
  1626. amount: thisdata.amount,
  1627. companyName: thisdata.companyName,
  1628. refundStatus: thisdata.refundStatus,
  1629. outsourceRemarks: thisdata.outsourceRemarks,
  1630. unitNumber: thisdata.unitNumber,
  1631. unitPrice: thisdata.unitPrice,
  1632. });
  1633. }.bind(this),
  1634. }).always(
  1635. function () {
  1636. this.setState({
  1637. loading: false,
  1638. });
  1639. }.bind(this)
  1640. );
  1641. }
  1642. },
  1643. //外包详情
  1644. loadWaiBao() {
  1645. $.ajax({
  1646. method: "get",
  1647. dataType: "json",
  1648. rossDomain: false,
  1649. url:
  1650. globalConfig.context +
  1651. "/api/admin/outsourceOrg/selectOrderOutsourceOrg",
  1652. data: {
  1653. orderNo: this.state.orderNo,
  1654. },
  1655. success: function (data) {
  1656. let theArr = [];
  1657. if (data.error.length || data.data.list == "") {
  1658. if (data.error && data.error.length) {
  1659. message.warning(data.error[0].message);
  1660. }
  1661. } else {
  1662. for (let i = 0; i < data.data.length; i++) {
  1663. let thisdata = data.data[i];
  1664. let ProvinceCityArr = [];
  1665. let ProvinceS = thisdata.province; //省
  1666. let citys = thisdata.city; //市
  1667. let Areas = thisdata.area; //区
  1668. ProvinceCityArr.push(ProvinceS, citys, Areas);
  1669. theArr.push({
  1670. key: i,
  1671. id: thisdata.id,
  1672. name: thisdata.name,
  1673. contacts: thisdata.contacts, //订单编号
  1674. contactsMobile: thisdata.contactsMobile,
  1675. ProvinceCity: ProvinceCityArr[0] === null ? [] : ProvinceCityArr,
  1676. province: thisdata.province,
  1677. city: thisdata.city,
  1678. area: thisdata.area,
  1679. address: thisdata.address,
  1680. remarks: thisdata.remarks,
  1681. tid: thisdata.tid,
  1682. createTimes: thisdata.createTimes,
  1683. tname: thisdata.tname,
  1684. contractNo: thisdata.contractNo,
  1685. projectStatus: thisdata.projectStatus,
  1686. });
  1687. }
  1688. }
  1689. this.setState(
  1690. {
  1691. dataSourceW: theArr,
  1692. },
  1693. () => {}
  1694. );
  1695. }.bind(this),
  1696. }).always(
  1697. function () {
  1698. this.setState({
  1699. loading: false,
  1700. });
  1701. }.bind(this)
  1702. );
  1703. },
  1704. loadXmu(record) {
  1705. this.state.data = [];
  1706. this.setState({
  1707. loading: true,
  1708. });
  1709. $.ajax({
  1710. method: "get",
  1711. dataType: "json",
  1712. crossDomain: false,
  1713. url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
  1714. data: {
  1715. orderNo: record.orderNo,
  1716. },
  1717. success: function (data) {
  1718. let theArr = [];
  1719. if (!data.data) {
  1720. if (data.error && data.error.length) {
  1721. message.warning(data.error[0].message);
  1722. }
  1723. } else {
  1724. for (let i = 0; i < data.data.length; i++) {
  1725. let thisdata = data.data[i];
  1726. theArr.push({
  1727. key: i,
  1728. id: thisdata.id,
  1729. orderNo: thisdata.orderNo,
  1730. commodityName: thisdata.commodityName,
  1731. commodityPrice: thisdata.commodityPrice,
  1732. commodityQuantity: thisdata.commodityQuantity,
  1733. taskStatus: thisdata.taskStatus,
  1734. taskComment: thisdata.taskComment,
  1735. main: thisdata.main,
  1736. contacts: thisdata.contacts,
  1737. contactsMobile: thisdata.contactsMobile,
  1738. cname: thisdata.cname,
  1739. certificateNumber: thisdata.certificateNumber,
  1740. projectStatus: thisdata.projectStatus,
  1741. sort: thisdata.cSort,
  1742. splitStatus: thisdata.splitStatus,
  1743. });
  1744. }
  1745. }
  1746. this.setState({
  1747. dataSourceX: theArr,
  1748. });
  1749. }.bind(this),
  1750. }).always(
  1751. function () {
  1752. this.setState({
  1753. loading: false,
  1754. });
  1755. }.bind(this)
  1756. );
  1757. },
  1758. loadModal(record) {
  1759. this.state.orderList = [];
  1760. $.ajax({
  1761. method: "get",
  1762. dataType: "json",
  1763. crossDomain: false,
  1764. url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
  1765. data: {
  1766. orderNo: record.orderNo,
  1767. },
  1768. success: function (data) {
  1769. let thisData = data.data;
  1770. if (!thisData) {
  1771. if (data.error && data.error.length) {
  1772. message.warning(data.error[0].message);
  1773. }
  1774. thisData = {};
  1775. }
  1776. this.setState({
  1777. id: thisData.id,
  1778. orderList: thisData,
  1779. approval:
  1780. thisData.approval == 0
  1781. ? thisData.approval.toString()
  1782. : thisData.approval,
  1783. orderRemarks: thisData.orderRemarks,
  1784. orgCodeUrl: thisData.contractPictureUrl
  1785. ? splitUrl(
  1786. thisData.contractPictureUrl,
  1787. ",",
  1788. globalConfig.avatarHost + "/upload"
  1789. )
  1790. : [],
  1791. replenishUrl: thisData.agreementUrl
  1792. ? splitUrl(
  1793. thisData.agreementUrl,
  1794. ",",
  1795. globalConfig.avatarHost + "/upload"
  1796. )
  1797. : [],
  1798. orderNo: thisData.orderNo, //订单编号
  1799. buyerId: thisData.buyerId,
  1800. depName: thisData.depName,
  1801. deleteSign:thisData.deleteSign,
  1802. });
  1803. }.bind(this),
  1804. }).always(
  1805. function () {
  1806. this.setState({
  1807. loading: false,
  1808. });
  1809. }.bind(this)
  1810. );
  1811. },
  1812. rizhi() {
  1813. this.setState({
  1814. loading: true,
  1815. });
  1816. $.ajax({
  1817. method: "get",
  1818. dataType: "json",
  1819. crossDomain: false,
  1820. url: "/api/admin/newOrder/selectOrderLog",
  1821. data: {
  1822. orderNo: this.state.orderNo,
  1823. },
  1824. success: function (data) {
  1825. let theArr = [];
  1826. let thisData = data.data;
  1827. if (!thisData.length) {
  1828. if (data.error && data.error.length) {
  1829. message.warning(data.error[0].message);
  1830. }
  1831. thisData = {};
  1832. } else {
  1833. for (let i = 0; i < data.data.length; i++) {
  1834. let thisdata = data.data[i];
  1835. theArr.push({
  1836. processName: thisdata.processName,
  1837. adminName: thisdata.adminName,
  1838. createDate: thisdata.createDate,
  1839. remarks: thisdata.remarks,
  1840. });
  1841. }
  1842. }
  1843. this.setState({
  1844. dataSourceY: theArr,
  1845. });
  1846. }.bind(this),
  1847. }).always(
  1848. function () {
  1849. this.setState({
  1850. loading: false,
  1851. });
  1852. }.bind(this)
  1853. );
  1854. },
  1855. closeOrderLog() {
  1856. this.setState({
  1857. avisible: false,
  1858. });
  1859. },
  1860. load() {
  1861. if (this.state.attachmentUrl) {
  1862. let url = window.location.href.substring(7);
  1863. this.state.attachmentUrl.forEach((e) => {
  1864. window.location.href =
  1865. "http://" +
  1866. url.substring(0, url.indexOf("/")) +
  1867. "/api/admin/outsourceOrg//downloadFile?path=" +
  1868. e.response.data;
  1869. });
  1870. } else {
  1871. message.error("此订单无上传文件");
  1872. }
  1873. },
  1874. getOrderLog() {
  1875. this.setState({
  1876. avisible: true,
  1877. });
  1878. this.rizhi();
  1879. },
  1880. closeModal() {
  1881. this.setState(
  1882. {
  1883. visible: false,
  1884. width: "800px",
  1885. },
  1886. () => {
  1887. this.setState({
  1888. modKey: "1",
  1889. });
  1890. }
  1891. );
  1892. },
  1893. closeDesc(e, s) {
  1894. this.state.showDesc = e;
  1895. if (s) {
  1896. this.loadData();
  1897. }
  1898. },
  1899. closeAssignX(e, s) {
  1900. this.state.assignDataX = {};
  1901. this.state.assignVisibleX = e;
  1902. if (s) {
  1903. this.loadData();
  1904. }
  1905. },
  1906. closeAssignY(e, s) {
  1907. this.state.assignDataY = {};
  1908. this.state.assignVisibleY = e;
  1909. if (s) {
  1910. this.loadData();
  1911. }
  1912. },
  1913. search() {
  1914. this.setState({
  1915. selectedRowKeys: []
  1916. })
  1917. this.loadData();
  1918. },
  1919. reset() {
  1920. this.state.nameSearch = "";
  1921. this.state.releaseDate = [];
  1922. this.state.shouKuanDate = [];
  1923. this.state.orderNoSearch = "";
  1924. this.state.departmenttList = undefined;
  1925. this.state.amountStatus = undefined;
  1926. this.state.processStatus = [];
  1927. this.state.processStatusSearch = [];
  1928. this.state.contractNoSearch = "";
  1929. this.state.liquidationStatus = [];
  1930. this.state.contractNo = "";
  1931. this.loadData();
  1932. },
  1933. boHuiCo() {
  1934. this.boHuiCancel();
  1935. this.boHuiSubmit();
  1936. },
  1937. //驳回
  1938. boHuiSubmit() {
  1939. if (!this.state.reason) {
  1940. message.warning("请填写驳回原因");
  1941. return false;
  1942. }
  1943. this.setState({
  1944. loading: true,
  1945. });
  1946. $.ajax({
  1947. method: "POST",
  1948. dataType: "json",
  1949. crossDomain: false,
  1950. url: globalConfig.context + "/api/admin/financial/reject",
  1951. data: {
  1952. orderNo: this.state.bohuiData.orderNo,
  1953. reason: this.state.reason,
  1954. },
  1955. }).done(
  1956. function (data) {
  1957. if (!data.error.length) {
  1958. message.success("驳回成功!");
  1959. this.setState({
  1960. loading: false,
  1961. });
  1962. this.loadData();
  1963. } else {
  1964. message.warning(data.error[0].message);
  1965. }
  1966. }.bind(this)
  1967. );
  1968. },
  1969. searchSwitch() {
  1970. this.setState({
  1971. searchMore: !this.state.searchMore,
  1972. });
  1973. },
  1974. changeList(arr) {
  1975. const newArr = [];
  1976. this.state.columns.forEach((item) => {
  1977. arr.forEach((val) => {
  1978. if (val === item.title) {
  1979. newArr.push(item);
  1980. }
  1981. });
  1982. });
  1983. this.setState({
  1984. changeList: newArr,
  1985. });
  1986. },
  1987. onSelectChange(selectedRowKeys) {
  1988. // for(var i=0; i<selectedRowKeys.length; i++){
  1989. // for(var j=i+1; j<selectedRowKeys.length; j++){
  1990. // if(selectedRowKeys[i]==selectedRowKeys[j]){
  1991. // selectedRowKeys.splice(j,1);
  1992. // j--;
  1993. // }
  1994. // }
  1995. // }
  1996. this.setState({ selectedRowKeys });
  1997. },
  1998. inRecordData() {
  1999. this.setState({
  2000. loading: true,
  2001. });
  2002. $.ajax({
  2003. method: "get",
  2004. dataType: "json",
  2005. crossDomain: false,
  2006. url:
  2007. globalConfig.context +
  2008. "/api/admin/orderInvoice/salesmanOrderInvoiceList",
  2009. data: {
  2010. orderNo: this.state.selectedRowKeys[0],
  2011. pageSize: 9999,
  2012. },
  2013. success: function (data) {
  2014. let theArr = [];
  2015. let sum = 0;
  2016. if (!data.data) {
  2017. if (data.error && data.error.length) {
  2018. message.warning(data.error[0].message);
  2019. }
  2020. } else {
  2021. for (let i = 0; i < data.data.list.length; i++) {
  2022. let thisdata = data.data.list[i];
  2023. sum += parseFloat(thisdata.amount);
  2024. theArr.push({
  2025. id: thisdata.id,
  2026. orderno: thisdata.orderno, //订单编号
  2027. amount: thisdata.amount, //签单金额
  2028. createTime: thisdata.createTime, //流程状态
  2029. status: thisdata.status, //结算状态
  2030. rejectReason: thisdata.rejectReason,
  2031. });
  2032. }
  2033. }
  2034. this.setState({
  2035. recordData: theArr,
  2036. sum: sum.toFixed(6),
  2037. });
  2038. }.bind(this),
  2039. }).done(
  2040. function () {
  2041. this.setState({
  2042. loading: false,
  2043. });
  2044. }.bind(this)
  2045. );
  2046. },
  2047. inRecordCanl() {
  2048. this.setState({
  2049. bvisible: false,
  2050. });
  2051. },
  2052. waterData() {
  2053. this.state.data = [];
  2054. this.setState({
  2055. loading: true,
  2056. });
  2057. $.ajax({
  2058. method: "get",
  2059. dataType: "json",
  2060. crossDomain: false,
  2061. url: globalConfig.context + "/api/admin/financial/myBillList",
  2062. data: {
  2063. orderNo: this.state.selectedRowKeys[0],
  2064. pageSize: 9999,
  2065. whoType: 1,
  2066. },
  2067. success: function (data) {
  2068. let theArr = [];
  2069. let waterSum = 0;
  2070. if (!data.data || !data.data.list) {
  2071. if (data.error && data.error.length) {
  2072. message.warning(data.error[0].message);
  2073. }
  2074. } else {
  2075. for (let i = 0; i < data.data.list.length; i++) {
  2076. let thisdata = data.data.list[i];
  2077. if (thisdata.deleteSign == 0) {
  2078. waterSum += parseFloat(thisdata.transactionAmount);
  2079. }
  2080. theArr.push({
  2081. key: i,
  2082. orderNo: thisdata.orderNo,
  2083. billNo: thisdata.billNo,
  2084. transactionAmount: thisdata.transactionAmount,
  2085. payeeName: thisdata.payeeName,
  2086. payerName: thisdata.payerName,
  2087. transactionSubject: thisdata.transactionSubject,
  2088. transactionChannel: thisdata.transactionChannel,
  2089. financialPayTimes: thisdata.financialPayTimes,
  2090. financialPayNo: thisdata.financialPayNo,
  2091. createrName: thisdata.createrName,
  2092. saleName: thisdata.saleName,
  2093. createTimes: thisdata.createTimes,
  2094. type:
  2095. thisdata.type == 0
  2096. ? "手工"
  2097. : thisdata.type == 1
  2098. ? "批量"
  2099. : "合同变更退款",
  2100. deleteSign: thisdata.deleteSign,
  2101. deleteTimes: thisdata.deleteTimes,
  2102. refundTimes: thisdata.refundTimes,
  2103. remarks: thisdata.remarks,
  2104. });
  2105. }
  2106. }
  2107. this.setState({
  2108. waterData: theArr,
  2109. waterSum: waterSum.toFixed(6),
  2110. });
  2111. }.bind(this),
  2112. }).always(
  2113. function () {
  2114. this.setState({
  2115. loading: false,
  2116. });
  2117. }.bind(this)
  2118. );
  2119. },
  2120. waterCanl() {
  2121. this.setState({
  2122. cvisible: false,
  2123. });
  2124. },
  2125. exportAll() {
  2126. const data = {
  2127. pageSize: 9999,
  2128. buyerName: this.state.nameSearch, //客户名称
  2129. orderNo: this.state.orderNoSearch,
  2130. startTime: this.state.releaseDate[0],
  2131. endTime: this.state.releaseDate[1],
  2132. startFinalReceivablesTime: this.state.shouKuanDate[0],
  2133. endFinalReceivablesTime: this.state.shouKuanDate[1],
  2134. departmentId: this.state.departmenttList,
  2135. processStatus: this.state.processStatusSearch,
  2136. contractNo: this.state.contractNoSearch,
  2137. outsource: 1,
  2138. liquidationStatus: this.state.liquidationStatus,
  2139. };
  2140. window.location.href =
  2141. globalConfig.context +
  2142. "/api/admin/receivables/exportReceivables?" +
  2143. $.param(data);
  2144. },
  2145. exportKaip() {
  2146. window.location.href =
  2147. globalConfig.context +
  2148. "/api/admin/receivables/exportInvoice?" +
  2149. `orderNo=${this.state.selectedRowKeys}`;
  2150. },
  2151. exportWater() {
  2152. window.location.href =
  2153. globalConfig.context +
  2154. "/api/admin/receivables/exportMyBill?" +
  2155. `orderNo=${this.state.selectedRowKeys}&whoType=1`;
  2156. },
  2157. printAll() {
  2158. this.setState({
  2159. dvisible: true,
  2160. // loading: true
  2161. });
  2162. this.loadData(1, 9999);
  2163. },
  2164. downImg() {
  2165. let num = 0;
  2166. for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
  2167. if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
  2168. num = i;
  2169. }
  2170. }
  2171. if (num == this.state.orgCodeUrl.length - 1) {
  2172. return message.warning("已经是最后一张了哦");
  2173. }
  2174. this.state.previewImage = this.state.orgCodeUrl[num + 1].url;
  2175. this.setState({
  2176. previewImage: this.state.previewImage,
  2177. rotateDeg: 0,
  2178. });
  2179. },
  2180. upImg() {
  2181. let num = 0;
  2182. for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
  2183. if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
  2184. num = i;
  2185. }
  2186. }
  2187. if (num == 0) {
  2188. return message.warning("已经是第一张了哦");
  2189. }
  2190. this.state.previewImage = this.state.orgCodeUrl[num - 1].url;
  2191. this.setState({
  2192. previewImage: this.state.previewImage,
  2193. rotateDeg: 0,
  2194. });
  2195. },
  2196. rotate() {
  2197. let rotateDeg = this.state.rotateDeg + 90;
  2198. this.setState({
  2199. rotateDeg,
  2200. });
  2201. },
  2202. downImgs() {
  2203. let num = 0;
  2204. for (let i = 0; i < this.state.replenishUrl.length; i++) {
  2205. if (this.state.replenishUrl[i].url == this.state.previewImage) {
  2206. num = i;
  2207. }
  2208. }
  2209. if (num == this.state.replenishUrl.length - 1) {
  2210. return message.warning("已经是最后一张了哦");
  2211. }
  2212. this.state.previewImage = this.state.replenishUrl[num + 1].url;
  2213. this.setState({
  2214. previewImage: this.state.previewImage,
  2215. rotateDeg: 0,
  2216. });
  2217. },
  2218. upImgs() {
  2219. let num = 0;
  2220. for (let i = 0; i < this.state.replenishUrl.length; i++) {
  2221. if (this.state.replenishUrl[i].url == this.state.previewImage) {
  2222. num = i;
  2223. }
  2224. }
  2225. if (num == 0) {
  2226. return message.warning("已经是第一张了哦");
  2227. }
  2228. this.state.previewImage = this.state.replenishUrl[num - 1].url;
  2229. this.setState({
  2230. previewImage: this.state.previewImage,
  2231. rotateDeg: 0,
  2232. });
  2233. },
  2234. rotates() {
  2235. let rotateDeg = this.state.rotateDeg + 90;
  2236. this.setState({
  2237. rotateDeg,
  2238. });
  2239. },
  2240. timeData() {
  2241. this.setState({
  2242. loading: true,
  2243. });
  2244. $.ajax({
  2245. method: "get",
  2246. dataType: "json",
  2247. crossDomain: false,
  2248. url: globalConfig.context + "/api/admin/orderProject/taskHoursList",
  2249. data: {
  2250. orderNo: this.state.selectedRowKeys[0],
  2251. pageSize: 9999,
  2252. },
  2253. success: function (data) {
  2254. let theArr = [];
  2255. if (!data.data || !data.data.list) {
  2256. if (data.error && data.error.length) {
  2257. message.warning(data.error[0].message);
  2258. }
  2259. } else {
  2260. for (let i = 0; i < data.data.list.length; i++) {
  2261. let thisdata = data.data.list[i];
  2262. theArr.push({
  2263. key: i + 1,
  2264. id: thisdata.id, //ID
  2265. orderNo: thisdata.orderNo, //订单编号
  2266. taskName: thisdata.taskName, //任务名称
  2267. userName: thisdata.userName, //客户名称
  2268. cname: thisdata.cname, //项目品类
  2269. taskStatus: thisdata.taskStatus, //任务状态
  2270. receiverName: thisdata.receiverName, //负责人
  2271. hours: thisdata.hours, //任务工时
  2272. depName: thisdata.depName, //派单公司
  2273. contractNo: thisdata.contractNo,
  2274. signTime: thisdata.signTime,
  2275. creteTime: thisdata.creteTime,
  2276. projectStatus: thisdata.projectStatus,
  2277. commodityPrice: thisdata.commodityPrice, //价格
  2278. commodityQuantity: thisdata.commodityQuantity, //数量
  2279. salesmanName: thisdata.salesmanName, //订单负责人
  2280. taskDistributionTime: thisdata.taskDistributionTime,
  2281. taskEndTime: thisdata.taskEndTime,
  2282. outsource: thisdata.outsource,
  2283. splitStatus: thisdata.splitStatus,
  2284. splitSuper: thisdata.splitSuper,
  2285. splitId: thisdata.splitId,
  2286. });
  2287. }
  2288. }
  2289. this.setState({
  2290. timeDataList: theArr,
  2291. });
  2292. }.bind(this),
  2293. }).always(
  2294. function () {
  2295. this.setState({
  2296. loading: false,
  2297. });
  2298. }.bind(this)
  2299. );
  2300. },
  2301. exportTime() {
  2302. const data = {
  2303. orderNo: this.state.selectedRowKeys[0],
  2304. outsourcing: 1,
  2305. };
  2306. window.location.href =
  2307. globalConfig.context +
  2308. "/api/admin/orderProject/exportMyTaskList?" +
  2309. $.param(data);
  2310. },
  2311. exportPro() {
  2312. const data = {
  2313. orderNo: this.state.selectedRowKeys[0],
  2314. };
  2315. window.location.href =
  2316. globalConfig.context +
  2317. "/api/admin/newOrder/exportOrderTaskData?" +
  2318. $.param(data);
  2319. },
  2320. exportCui() {
  2321. var data = {
  2322. orderNo: this.state.selectedRowKeys[0]
  2323. ? this.state.selectedRowKeys[0]
  2324. : undefined, //订单编号
  2325. // specially: 1,
  2326. pageSize: 9999,
  2327. outsource: 1,
  2328. };
  2329. window.location.href =
  2330. globalConfig.context +
  2331. "/api/admin/newOrder/exportOrderDunData?" +
  2332. $.param(data);
  2333. },
  2334. cuiData() {
  2335. this.setState({
  2336. loading: true,
  2337. });
  2338. $.ajax({
  2339. method: "get",
  2340. dataType: "json",
  2341. crossDomain: false,
  2342. url: globalConfig.context + "/api/admin/newOrder/dunOrderNewList",
  2343. data: {
  2344. orderNo: this.state.selectedRowKeys[0],
  2345. pageSize: 9999,
  2346. },
  2347. success: function (data) {
  2348. let theArr = [];
  2349. if (!data.data || !data.data.list) {
  2350. if (data.error && data.error.length) {
  2351. message.warning(data.error[0].message);
  2352. }
  2353. } else {
  2354. for (let i = 0; i < data.data.list.length; i++) {
  2355. let thisdata = data.data.list[i];
  2356. theArr.push({
  2357. key: i + 1,
  2358. orderNo: thisdata.orderNo,
  2359. contractNo: thisdata.contractNo,
  2360. userName: thisdata.userName,
  2361. buyerName: thisdata.buyerName,
  2362. departmentName: thisdata.departmentName,
  2363. salesmanName: thisdata.salesmanName,
  2364. depName: thisdata.depName,
  2365. orderStatus: thisdata.orderStatus,
  2366. projectStatus: thisdata.projectStatus,
  2367. totalAmount: thisdata.totalAmount,
  2368. liquidationStatus: thisdata.liquidationStatus,
  2369. settlementAmount: thisdata.settlementAmount,
  2370. accountsReceivable: thisdata.accountsReceivable,
  2371. dunSubject: thisdata.dunSubject,
  2372. startDate: thisdata.startDate,
  2373. taskStatus: thisdata.taskStatus,
  2374. cname: thisdata.cname,
  2375. id: thisdata.id,
  2376. taskName: thisdata.taskName,
  2377. hours: thisdata.hours,
  2378. taskDistributionTime: thisdata.taskDistributionTime,
  2379. taskEndTime: thisdata.taskEndTime,
  2380. dunStatus: thisdata.dunStatus == 0 ? "未触发" : "已触发",
  2381. });
  2382. }
  2383. }
  2384. this.setState({
  2385. cuiDataList: theArr,
  2386. });
  2387. }.bind(this),
  2388. }).always(
  2389. function () {
  2390. this.setState({
  2391. loading: false,
  2392. });
  2393. }.bind(this)
  2394. );
  2395. },
  2396. proData() {
  2397. this.setState({
  2398. loading: true,
  2399. });
  2400. $.ajax({
  2401. method: "get",
  2402. dataType: "json",
  2403. crossDomain: false,
  2404. url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
  2405. data: {
  2406. orderNo: this.state.selectedRowKeys[0],
  2407. pageSize: 9999,
  2408. },
  2409. success: function (data) {
  2410. let theArr = [];
  2411. let totalWaibao = 0;
  2412. if (!data.data) {
  2413. if (data.error && data.error.length) {
  2414. message.warning(data.error[0].message);
  2415. }
  2416. } else {
  2417. for (let i = 0; i < data.data.length; i++) {
  2418. let thisdata = data.data[i];
  2419. totalWaibao += thisdata.outsourcePrice;
  2420. theArr.push({
  2421. key: i + 1,
  2422. orderNo: thisdata.orderNo,
  2423. contractNo: thisdata.contractNo,
  2424. userName: thisdata.userName,
  2425. buyerName: thisdata.buyerName,
  2426. departmentName: thisdata.departmentName,
  2427. salesmanName: thisdata.salesmanName,
  2428. depName: thisdata.depName,
  2429. orderStatus: thisdata.orderStatus,
  2430. projectStatus: thisdata.projectStatus,
  2431. commodityName: thisdata.commodityName,
  2432. totalAmount: thisdata.totalAmount,
  2433. liquidationStatus: thisdata.liquidationStatus,
  2434. settlementAmount: thisdata.settlementAmount,
  2435. accountsReceivable: thisdata.accountsReceivable,
  2436. dunSubject: thisdata.dunSubject,
  2437. startDate: thisdata.startDate,
  2438. taskStatus: thisdata.taskStatus,
  2439. cname: thisdata.cname,
  2440. id: thisdata.id,
  2441. taskName: thisdata.taskName,
  2442. hours: thisdata.hours,
  2443. taskDistributionTime: thisdata.taskDistributionTime,
  2444. taskEndTime: thisdata.taskEndTime,
  2445. commodityQuantity: thisdata.commodityQuantity,
  2446. commodityPrice: thisdata.commodityPrice,
  2447. certificateNumber: thisdata.certificateNumber,
  2448. taskComment: thisdata.taskComment,
  2449. outsourceName: thisdata.outsourceName,
  2450. outsourcePrice: thisdata.outsourcePrice,
  2451. splitStatus: thisdata.splitStatus,
  2452. sort: thisdata.cSort,
  2453. });
  2454. }
  2455. }
  2456. totalWaibao = (Math.round(totalWaibao * 1000000) / 1000000).toFixed(6);
  2457. this.setState({
  2458. proDataList: theArr,
  2459. totalWaibao,
  2460. });
  2461. }.bind(this),
  2462. }).always(
  2463. function () {
  2464. this.setState({
  2465. loading: false,
  2466. });
  2467. }.bind(this)
  2468. );
  2469. },
  2470. jiedian(orderNos) {
  2471. $.ajax({
  2472. method: "get",
  2473. dataType: "json",
  2474. crossDomain: false,
  2475. url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
  2476. data: {
  2477. orderNo: orderNos,
  2478. },
  2479. success: function (data) {
  2480. let theArr = [];
  2481. let thisData = [];
  2482. if (data.error.length || data.data.list == "") {
  2483. if (data.error && data.error.length) {
  2484. message.warning(data.error[0].message);
  2485. }
  2486. } else {
  2487. for (let i = 0; i < data.data.length; i++) {
  2488. thisData = data.data[i];
  2489. theArr.push({
  2490. key: i,
  2491. dunSubject: thisData.dunSubject
  2492. ? thisData.dunSubject.toString()
  2493. : "", //催款科目
  2494. id: thisData.id, //节点Id
  2495. money: thisData.money, //催款金额
  2496. dunStatus: thisData.dunStatus, //催款状态
  2497. orderNo: thisData.orderNo,
  2498. });
  2499. }
  2500. this.setState({
  2501. contactList: theArr,
  2502. });
  2503. }
  2504. }.bind(this),
  2505. }).always(
  2506. function () {
  2507. this.setState({
  2508. loading: false,
  2509. });
  2510. }.bind(this)
  2511. );
  2512. },
  2513. //查看催款节点
  2514. jiedianNew(orderNos) {
  2515. $.ajax({
  2516. method: "get",
  2517. dataType: "json",
  2518. crossDomain: false,
  2519. url:
  2520. globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun",
  2521. data: {
  2522. orderNo: orderNos,
  2523. },
  2524. success: function (data) {
  2525. if (data.error && data.error.length) {
  2526. message.warning(data.error[0].message);
  2527. } else {
  2528. let theArr = [];
  2529. let thisData = [];
  2530. let arr = data.data || [];
  2531. let totalCui = 0;
  2532. for (let i = 0; i < arr.length; i++) {
  2533. thisData = arr[i];
  2534. totalCui += +thisData.money;
  2535. theArr.push({
  2536. key: i,
  2537. dunSubject: thisData.dunSubject
  2538. ? thisData.dunSubject.toString()
  2539. : "", //催款科目
  2540. id: thisData.id, //节点Id
  2541. money: thisData.money, //催款金额
  2542. // orderNo: record ? record.orderNo : this.props.datauser.orderNo,
  2543. commodityName: thisData.commodityName,
  2544. projectType: thisData.projectType,
  2545. dunTypeName: thisData.dunTypeName,
  2546. status: thisData.status,
  2547. waitDay: thisData.waitDay,
  2548. effectiveCount: thisData.effectiveCount,
  2549. startDate: thisData.startDate,
  2550. dunType: thisData.dunType,
  2551. appropriationRatio: thisData.appropriationRatio,
  2552. customizeName: thisData.customizeName,
  2553. customizeTimes: thisData.customizeTimes,
  2554. tid: thisData.tid,
  2555. });
  2556. }
  2557. if (!totalCui) {
  2558. totalCui = 0;
  2559. }
  2560. totalCui = (Math.round(totalCui * 1000000) / 1000000).toFixed(6);
  2561. this.setState({
  2562. contactListNew: theArr,
  2563. totalCui,
  2564. });
  2565. }
  2566. }.bind(this),
  2567. }).always(
  2568. function () {
  2569. this.setState({
  2570. loading: false,
  2571. });
  2572. }.bind(this)
  2573. );
  2574. },
  2575. cuiTabChange(index) {
  2576. this.setState({
  2577. cuiTabKey: index,
  2578. });
  2579. if (index == 2) {
  2580. this.setState({
  2581. loading: true,
  2582. });
  2583. $.ajax({
  2584. method: "get",
  2585. dataType: "json",
  2586. crossDomain: false,
  2587. url: globalConfig.context + "/api/admin/newOrder/arrearsDunList",
  2588. data: {
  2589. orderNo: this.state.selectedRowKeys[0],
  2590. pageSize: 9999,
  2591. },
  2592. success: function (data) {
  2593. let theArr = [];
  2594. if (data.error.length || data.data.list == "") {
  2595. if (data.error && data.error.length) {
  2596. message.warning(data.error[0].message);
  2597. }
  2598. } else {
  2599. for (let i = 0; i < data.data.list.length; i++) {
  2600. let thisdata = data.data.list[i];
  2601. let obj = thisdata;
  2602. obj.key = i;
  2603. theArr.push(obj);
  2604. }
  2605. }
  2606. this.setState({
  2607. qianDataList: theArr,
  2608. });
  2609. }.bind(this),
  2610. }).always(
  2611. function () {
  2612. this.setState({
  2613. loading: false,
  2614. });
  2615. }.bind(this)
  2616. );
  2617. }
  2618. },
  2619. kaiPiaoData(record) {
  2620. this.setState({
  2621. avisible: true,
  2622. });
  2623. this.invoiceData(record.id);
  2624. },
  2625. invoiceData(id) {
  2626. this.setState({
  2627. loading: true,
  2628. });
  2629. $.ajax({
  2630. method: "get",
  2631. dataType: "json",
  2632. crossDomain: false,
  2633. url:
  2634. globalConfig.context + "/api/admin/orderInvoice/selectByIdOrderInvoice",
  2635. data: {
  2636. id,
  2637. },
  2638. success: function (data) {
  2639. let thisdata = data.data;
  2640. let obj = {
  2641. contractNo: thisdata.contractNo,
  2642. orderNo: thisdata.orderNo,
  2643. approval: thisdata.approval,
  2644. type: thisdata.type,
  2645. status: thisdata.status,
  2646. remarks: thisdata.remarks,
  2647. invoiceType: thisdata.invoiceType,
  2648. unitName: thisdata.unitName,
  2649. taxNumber: thisdata.taxNumber,
  2650. amount: thisdata.amount,
  2651. banks: thisdata.banks,
  2652. content: thisdata.content,
  2653. unitAddress: thisdata.unitAddress,
  2654. invoiceRemarks: thisdata.invoiceRemarks,
  2655. unitMobile: thisdata.unitMobile,
  2656. post: thisdata.post,
  2657. addressee: thisdata.addressee,
  2658. addresseeMobile: thisdata.addresseeMobile,
  2659. addresseeProvince: thisdata.addresseeProvince,
  2660. addresseeCity: thisdata.addresseeCity,
  2661. addresseeArea: thisdata.addresseeArea,
  2662. alreadyAmount: thisdata.alreadyAmount,
  2663. recipientAddress: thisdata.recipientAddress,
  2664. orgCodeUrl: thisdata.voucherUrl
  2665. ? splitUrl(
  2666. thisdata.voucherUrl,
  2667. ",",
  2668. globalConfig.avatarHost + "/upload"
  2669. )
  2670. : [],
  2671. };
  2672. this.setState({
  2673. modalData: obj,
  2674. });
  2675. }.bind(this),
  2676. }).done(
  2677. function () {
  2678. this.setState({
  2679. loading: false,
  2680. });
  2681. }.bind(this)
  2682. );
  2683. },
  2684. visitCancels() {
  2685. this.setState({
  2686. avisible: false,
  2687. });
  2688. },
  2689. render() {
  2690. const { TextArea } = Input;
  2691. const { RangePicker } = DatePicker;
  2692. const { TabPane } = Tabs;
  2693. var departmentArr = this.state.departmentArr || [];
  2694. const theData = this.state.orderList || {};
  2695. const formItemLayout = {
  2696. labelCol: { span: 8 },
  2697. wrapperCol: { span: 12 },
  2698. };
  2699. const { loading, selectedRowKeys, visible } = this.state;
  2700. const cuiDataList = this.state.contactList || [];
  2701. const rowSelection = {
  2702. selectedRowKeys,
  2703. onChange: this.onSelectChange,
  2704. hideDefaultSelections: true,
  2705. type: "radio",
  2706. };
  2707. const jsDate = this.state.jsDate || [];
  2708. return (
  2709. <div className="user-content">
  2710. {this.state.resVisible ? (
  2711. <ResolutionDetail
  2712. cancel={this.resCancel}
  2713. detail={this.state.resRecord}
  2714. visible={this.state.resVisible}
  2715. id={this.state.resRecord.orderNo}
  2716. />
  2717. ) : (
  2718. ""
  2719. )}
  2720. <div className="content-title" style={{ marginBottom: 10 }}>
  2721. <span style={{ fontWeight: 900, fontSize: 16 }}>外包结算管理</span>
  2722. </div>
  2723. <Tabs defaultActiveKey="2" className="test">
  2724. <TabPane tab="搜索" key="2">
  2725. <div className="user-search" style={{ marginLeft: 10 }}>
  2726. <Input
  2727. placeholder="订单编号"
  2728. value={this.state.orderNoSearch}
  2729. onChange={(e) => {
  2730. this.setState({ orderNoSearch: e.target.value });
  2731. }}
  2732. />
  2733. <Input
  2734. placeholder="客户名称"
  2735. value={this.state.nameSearch}
  2736. onChange={(e) => {
  2737. this.setState({ nameSearch: e.target.value });
  2738. }}
  2739. />
  2740. <Select
  2741. placeholder="订单部门"
  2742. style={{ width: 120, marginRight: 10 }}
  2743. value={this.state.departmenttList}
  2744. onChange={(e) => {
  2745. this.setState({ departmenttList: e });
  2746. }}
  2747. >
  2748. {departmentArr.map(function (item) {
  2749. return (
  2750. <Select.Option key={item.id}>{item.name}</Select.Option>
  2751. );
  2752. })}
  2753. </Select>
  2754. <Input
  2755. placeholder="合同编号"
  2756. value={this.state.contractNoSearch}
  2757. onChange={(e) => {
  2758. this.setState({
  2759. contractNoSearch: e.target.value,
  2760. });
  2761. }}
  2762. />
  2763. <Select
  2764. placeholder="流程状态"
  2765. onChange={(e) => {
  2766. this.setState({ processStatusSearch: e });
  2767. }}
  2768. style={{ width: 120, marginRight: 5 }}
  2769. value={this.state.processStatusSearch}
  2770. >
  2771. <Option value="3">未分配</Option>
  2772. <Option value="4">已分配</Option>
  2773. <Option value="9">已驳回</Option>
  2774. </Select>
  2775. <Select
  2776. placeholder="结算状态"
  2777. onChange={(e) => {
  2778. this.setState({ liquidationStatus: e });
  2779. }}
  2780. style={{ width: 120, marginRight: 5 }}
  2781. value={this.state.liquidationStatus}
  2782. >
  2783. <Option value="0">首付待付清</Option>
  2784. <Option value="1">尾款待付清</Option>
  2785. <Option value="2">已付清</Option>
  2786. </Select>
  2787. <Select
  2788. style={{ width: 120 }}
  2789. placeholder="签单金额"
  2790. value={this.state.amountStatus}
  2791. onChange={(e) => {
  2792. this.setState({
  2793. amountStatus: e,
  2794. });
  2795. }}
  2796. >
  2797. <Option value="0">10万元以下</Option>
  2798. <Option value="1">10~20万元</Option>
  2799. <Option value="2">20~30万元</Option>
  2800. <Option value="3">30~40万元</Option>
  2801. <Option value="4">40万元以上</Option>
  2802. </Select>
  2803. <span style={{ marginRight: 0 }}>下单日期:</span>
  2804. <RangePicker
  2805. style={{ width: 170 }}
  2806. value={[
  2807. this.state.releaseDate[0]
  2808. ? moment(this.state.releaseDate[0])
  2809. : null,
  2810. this.state.releaseDate[1]
  2811. ? moment(this.state.releaseDate[1])
  2812. : null,
  2813. ]}
  2814. onChange={(data, dataString) => {
  2815. this.setState({ releaseDate: dataString });
  2816. }}
  2817. />
  2818. <span style={{}}>最近收款:</span>
  2819. <RangePicker
  2820. style={{ width: 170 }}
  2821. value={[
  2822. this.state.shouKuanDate[0]
  2823. ? moment(this.state.shouKuanDate[0])
  2824. : null,
  2825. this.state.shouKuanDate[1]
  2826. ? moment(this.state.shouKuanDate[1])
  2827. : null,
  2828. ]}
  2829. onChange={(data, dataString) => {
  2830. this.setState({ shouKuanDate: dataString });
  2831. }}
  2832. />
  2833. <Button
  2834. type="primary"
  2835. onClick={this.search}
  2836. style={{ marginLeft: 10 }}
  2837. disabled={this.state.loadingA ? true : false}
  2838. >
  2839. 搜索
  2840. </Button>
  2841. <Button onClick={this.reset}>重置</Button>
  2842. </div>
  2843. </TabPane>
  2844. <TabPane tab="打印" key="3">
  2845. <Button
  2846. type="primary"
  2847. style={{ margin: "11px 0px 10px 10px" }}
  2848. onClick={this.printAll}
  2849. disabled={!this.state.dataSource.length}
  2850. >
  2851. 打印所有列表信息
  2852. </Button>
  2853. <Button
  2854. type="primary"
  2855. disabled={this.state.selectedRowKeys.length != 1}
  2856. style={{ margin: "11px 0px 10px 10px" }}
  2857. onClick={() => {
  2858. this.inRecordData();
  2859. this.setState({
  2860. bvisible: true,
  2861. });
  2862. }}
  2863. >
  2864. 打印开票详情
  2865. </Button>
  2866. <Button
  2867. type="primary"
  2868. disabled={this.state.selectedRowKeys.length != 1}
  2869. style={{ margin: "11px 0px 10px 10px" }}
  2870. onClick={() => {
  2871. this.waterData();
  2872. this.setState({
  2873. cvisible: true,
  2874. });
  2875. }}
  2876. >
  2877. 打印收款流水
  2878. </Button>
  2879. <Button
  2880. type="primary"
  2881. disabled={this.state.selectedRowKeys.length != 1}
  2882. style={{ margin: "11px 0px 10px 10px" }}
  2883. onClick={() => {
  2884. this.timeData();
  2885. this.setState({
  2886. timeVisible: true,
  2887. });
  2888. }}
  2889. >
  2890. 打印工时信息
  2891. </Button>
  2892. <Button
  2893. type="primary"
  2894. disabled={this.state.selectedRowKeys.length != 1}
  2895. style={{ margin: "11px 0px 10px 10px" }}
  2896. onClick={() => {
  2897. this.cuiData();
  2898. this.setState({
  2899. cuiVisible: true,
  2900. });
  2901. }}
  2902. >
  2903. 打印催款信息
  2904. </Button>
  2905. <Button
  2906. type="primary"
  2907. disabled={this.state.selectedRowKeys.length != 1}
  2908. style={{ margin: "11px 0px 10px 10px" }}
  2909. onClick={() => {
  2910. this.proData();
  2911. this.setState({
  2912. proVisible: true,
  2913. });
  2914. }}
  2915. >
  2916. 打印项目进度
  2917. </Button>
  2918. </TabPane>
  2919. <TabPane tab="导出Excel" key="4">
  2920. <Button
  2921. type="primary"
  2922. style={{ margin: "11px 0px 10px 10px" }}
  2923. onClick={this.exportAll}
  2924. >
  2925. 导出当前列表
  2926. </Button>
  2927. <Button
  2928. type="primary"
  2929. disabled={this.state.selectedRowKeys.length != 1}
  2930. style={{ margin: "11px 0px 10px 10px" }}
  2931. onClick={this.exportKaip}
  2932. >
  2933. 导出所选开票详情
  2934. </Button>
  2935. <Button
  2936. type="primary"
  2937. disabled={this.state.selectedRowKeys.length != 1}
  2938. style={{ margin: "11px 0px 10px 10px" }}
  2939. onClick={this.exportWater}
  2940. >
  2941. 导出所选收款详情流水
  2942. </Button>
  2943. <Button
  2944. type="primary"
  2945. disabled={this.state.selectedRowKeys.length != 1}
  2946. style={{ margin: "11px 0px 10px 10px" }}
  2947. onClick={this.exportTime}
  2948. >
  2949. 导出所选工时信息
  2950. </Button>
  2951. <Button
  2952. type="primary"
  2953. disabled={this.state.selectedRowKeys.length != 1}
  2954. style={{ margin: "11px 0px 10px 10px" }}
  2955. onClick={this.exportCui}
  2956. >
  2957. 导出催款信息
  2958. </Button>
  2959. <Button
  2960. type="primary"
  2961. disabled={this.state.selectedRowKeys.length != 1}
  2962. style={{ margin: "11px 0px 10px 10px" }}
  2963. onClick={this.exportPro}
  2964. >
  2965. 导出项目进度
  2966. </Button>
  2967. </TabPane>
  2968. <TabPane tab="查看" key="5">
  2969. <Button
  2970. type="primary"
  2971. disabled={this.state.selectedRowKeys.length != 1}
  2972. style={{ margin: "11px 0px 10px 10px" }}
  2973. onClick={() => {
  2974. this.inRecordData();
  2975. this.setState({
  2976. bvisible: true,
  2977. });
  2978. }}
  2979. >
  2980. 查看开票详情
  2981. </Button>
  2982. <Button
  2983. type="primary"
  2984. disabled={this.state.selectedRowKeys.length != 1}
  2985. style={{ margin: "11px 0px 10px 10px" }}
  2986. onClick={() => {
  2987. this.waterData();
  2988. this.setState({
  2989. cvisible: true,
  2990. });
  2991. }}
  2992. >
  2993. 详情收款流水
  2994. </Button>
  2995. <Button
  2996. type="primary"
  2997. disabled={this.state.selectedRowKeys.length != 1}
  2998. style={{ margin: "11px 0px 10px 10px" }}
  2999. onClick={() => {
  3000. this.timeData();
  3001. this.setState({
  3002. timeVisible: true,
  3003. });
  3004. }}
  3005. >
  3006. 工时信息
  3007. </Button>
  3008. <Button
  3009. type="primary"
  3010. disabled={this.state.selectedRowKeys.length != 1}
  3011. style={{ margin: "11px 0px 10px 10px" }}
  3012. onClick={() => {
  3013. this.cuiData();
  3014. this.setState({
  3015. cuiVisible: true,
  3016. });
  3017. }}
  3018. >
  3019. 催款信息
  3020. </Button>
  3021. <Button
  3022. type="primary"
  3023. disabled={this.state.selectedRowKeys.length != 1}
  3024. style={{ margin: "11px 0px 10px 10px" }}
  3025. onClick={() => {
  3026. this.proData();
  3027. this.setState({
  3028. proVisible: true,
  3029. });
  3030. }}
  3031. >
  3032. 项目进度
  3033. </Button>
  3034. </TabPane>
  3035. <TabPane tab="更改表格显示数据" key="1">
  3036. <div style={{ marginLeft: 10 }}>
  3037. <ChooseList
  3038. columns={this.state.columns}
  3039. changeFn={this.changeList}
  3040. changeList={this.state.changeList}
  3041. top={55}
  3042. margin={11}
  3043. />
  3044. </div>
  3045. </TabPane>
  3046. {/* <TabPane tab="批量操作" key="6">
  3047. <Button
  3048. type="primary"
  3049. disabled={this.state.selectedRowKeys.length == 0}
  3050. style={{ margin: "0px 0px 10px 10px" }}
  3051. onClick={e => {
  3052. e.stopPropagation(),
  3053. this.evaluateY(this.state.selectedRowKeys, "财务专员");
  3054. }}
  3055. >
  3056. 转交
  3057. </Button>
  3058. </TabPane> */}
  3059. </Tabs>
  3060. <div className="patent-table">
  3061. <Spin spinning={this.state.loadingA}>
  3062. <Table
  3063. bordered
  3064. columns={
  3065. this.state.changeList == undefined
  3066. ? this.state.columns
  3067. : this.state.changeList
  3068. }
  3069. dataSource={this.state.dataSource}
  3070. rowSelection={false}
  3071. scroll={{ x: "max-content", y: 0 }}
  3072. pagination={this.state.pagination}
  3073. onRowDoubleClick={this.tableRowClick.bind(this)}
  3074. rowSelection={rowSelection}
  3075. size="middle"
  3076. />
  3077. </Spin>
  3078. <p
  3079. style={{ display: "inline-block", fontSize: "14px", color: "red" }}
  3080. >
  3081. {
  3082. <span style={{ marginRight: 10 }}>
  3083. {`收款金额总计(万元):${this.state.hui ? this.state.hui : "0"}`}
  3084. </span>
  3085. }
  3086. {
  3087. <span>
  3088. {`合同额总计(万元):${
  3089. this.state.totalHui ? this.state.totalHui : "0"
  3090. }`}
  3091. </span>
  3092. }
  3093. </p>
  3094. </div>
  3095. <div className="patent-desc">
  3096. {this.state.visible ? <Modal
  3097. maskClosable={false}
  3098. visible={this.state.visible}
  3099. onCancel={this.closeModal}
  3100. width={this.state.width}
  3101. footer=""
  3102. className="admin-desc-content"
  3103. >
  3104. <Tabs
  3105. onChange={this.callBack}
  3106. type="card"
  3107. activeKey={this.state.modKey}
  3108. tabBarExtraContent={
  3109. <div style={{fontWeight:'bold',paddingRight:'15px'}}>
  3110. <OrderItemStatus deleteSign={this.state.deleteSign}/>
  3111. </div>
  3112. }
  3113. >
  3114. <TabPane tab="项目概况" key="1">
  3115. {this.state.modKey === '1' ? <Form layout="horizontal" id="demand-form">
  3116. <Spin spinning={this.state.loading}>
  3117. <div className="clearfix">
  3118. <FormItem
  3119. className="half-item"
  3120. {...formItemLayout}
  3121. label="订单编号"
  3122. >
  3123. <span>{this.state.orderNo}</span>
  3124. </FormItem>
  3125. <FormItem
  3126. className="half-item"
  3127. {...formItemLayout}
  3128. label="签单时间"
  3129. >
  3130. <span>{theData.signDate}</span>
  3131. </FormItem>
  3132. <FormItem
  3133. className="half-item"
  3134. {...formItemLayout}
  3135. label="客户名称"
  3136. >
  3137. <span>{theData.userName}</span>
  3138. </FormItem>
  3139. <FormItem
  3140. className="half-item"
  3141. {...formItemLayout}
  3142. label="流转状态"
  3143. >
  3144. <span>{getProcessStatus(theData.processStatus)}</span>
  3145. </FormItem>
  3146. <FormItem
  3147. className="half-item"
  3148. {...formItemLayout}
  3149. label="订单类型"
  3150. >
  3151. <span>{getNewOrderType(theData.orderType)}</span>
  3152. </FormItem>
  3153. <FormItem
  3154. className="half-item"
  3155. {...formItemLayout}
  3156. label="结算状态"
  3157. >
  3158. <span>
  3159. {getLiquidationStatus(theData.liquidationStatus)}
  3160. </span>
  3161. </FormItem>
  3162. <FormItem
  3163. className="half-item"
  3164. {...formItemLayout}
  3165. label="签单总金额(万元)"
  3166. >
  3167. <span>{theData.totalAmount}</span>
  3168. </FormItem>
  3169. <FormItem
  3170. className="half-item"
  3171. {...formItemLayout}
  3172. label="首付款(万元)"
  3173. >
  3174. <span>{theData.firstAmount}</span>
  3175. </FormItem>
  3176. <FormItem
  3177. className="half-item"
  3178. {...formItemLayout}
  3179. label="已收款(万元)"
  3180. >
  3181. <span>{theData.settlementAmount}</span>
  3182. </FormItem>
  3183. <FormItem
  3184. className="half-item"
  3185. {...formItemLayout}
  3186. label="是否特批"
  3187. >
  3188. <span>{getApproval(theData.approval)}</span>
  3189. </FormItem>
  3190. {/*this.props.data.orderStatus=='6'&&<FormItem className="half-item" {...formItemLayout} label="已退(万元)">
  3191. <span>{this.props.data.refundAmount}</span>
  3192. </FormItem>*/}
  3193. </div>
  3194. <div className="clearfix">
  3195. <FormItem
  3196. labelCol={{ span: 5 }}
  3197. wrapperCol={{ span: 18 }}
  3198. label="合同扫描件"
  3199. >
  3200. {/*<Upload*/}
  3201. {/* className="demandDetailShow-upload"*/}
  3202. {/* listType="picture-card"*/}
  3203. {/* fileList={this.state.orgCodeUrl}*/}
  3204. {/* onPreview={(file) => {*/}
  3205. {/* this.setState({*/}
  3206. {/* previewImage: file.url || file.thumbUrl,*/}
  3207. {/* previewVisible: true,*/}
  3208. {/* });*/}
  3209. {/* }}*/}
  3210. {/*/>*/}
  3211. <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
  3212. {this.state.orgCodeUrl && this.state.modKey === '1' ? <ImgList domId={'approvedOutsourcingAll1'} fileList={this.state.orgCodeUrl}/> : <div/>}
  3213. </div>
  3214. <Modal
  3215. maskClosable={false}
  3216. footer={null}
  3217. width={"50%"}
  3218. visible={this.state.previewVisible}
  3219. onCancel={() => {
  3220. this.setState({
  3221. previewVisible: false,
  3222. rotateDeg: 0,
  3223. });
  3224. }}
  3225. >
  3226. <img
  3227. alt=""
  3228. style={{
  3229. width: "100%",
  3230. transform: `rotate(${this.state.rotateDeg}deg)`,
  3231. }}
  3232. src={this.state.previewImage || ""}
  3233. />
  3234. <Button
  3235. onClick={this.rotate}
  3236. style={{
  3237. position: "relative",
  3238. left: "50%",
  3239. transform: "translateX(-50%)",
  3240. }}
  3241. >
  3242. 旋转
  3243. </Button>
  3244. <Button
  3245. onClick={this.upImg}
  3246. style={{
  3247. position: "absolute",
  3248. left: -81,
  3249. top: "50%",
  3250. transform: "translateY(-50%)",
  3251. }}
  3252. >
  3253. 上一张
  3254. </Button>
  3255. <Button
  3256. onClick={this.downImg}
  3257. style={{
  3258. position: "absolute",
  3259. right: -81,
  3260. top: "50%",
  3261. transform: "translateY(-50%)",
  3262. }}
  3263. >
  3264. 下一张
  3265. </Button>
  3266. </Modal>
  3267. <Button
  3268. style={{
  3269. float: "right",
  3270. marginRight: "140px",
  3271. marginTop: "20px",
  3272. }}
  3273. onClick={this.getOrderLog}
  3274. >
  3275. 查看订单日志
  3276. </Button>
  3277. </FormItem>
  3278. <FormItem
  3279. labelCol={{ span: 5 }}
  3280. wrapperCol={{ span: 18 }}
  3281. label="补充协议"
  3282. >
  3283. {/*<Upload*/}
  3284. {/* className="demandDetailShow-upload"*/}
  3285. {/* listType="picture-card"*/}
  3286. {/* fileList={this.state.replenishUrl}*/}
  3287. {/* onPreview={(file) => {*/}
  3288. {/* this.setState({*/}
  3289. {/* previewImage: file.url || file.thumbUrl,*/}
  3290. {/* previewVisibles: true,*/}
  3291. {/* });*/}
  3292. {/* }}*/}
  3293. {/*/>*/}
  3294. <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
  3295. {this.state.replenishUrl && this.state.modKey === '1' ? <ImgList fileList={this.state.replenishUrl}/> : <div/>}
  3296. </div>
  3297. <Modal
  3298. maskClosable={false}
  3299. footer={null}
  3300. width={"50%"}
  3301. visible={this.state.previewVisibles}
  3302. onCancel={() => {
  3303. this.setState({
  3304. previewVisibles: false,
  3305. rotateDeg: 0,
  3306. });
  3307. }}
  3308. >
  3309. <img
  3310. alt=""
  3311. style={{
  3312. width: "100%",
  3313. transform: `rotate(${this.state.rotateDeg}deg)`,
  3314. }}
  3315. src={this.state.previewImage || ""}
  3316. />
  3317. <Button
  3318. onClick={this.rotates}
  3319. style={{
  3320. position: "relative",
  3321. left: "50%",
  3322. transform: "translateX(-50%)",
  3323. }}
  3324. >
  3325. 旋转
  3326. </Button>
  3327. <Button
  3328. onClick={this.upImgs}
  3329. style={{
  3330. position: "absolute",
  3331. left: -81,
  3332. top: "50%",
  3333. transform: "translateY(-50%)",
  3334. }}
  3335. >
  3336. 上一张
  3337. </Button>
  3338. <Button
  3339. onClick={this.downImgs}
  3340. style={{
  3341. position: "absolute",
  3342. right: -81,
  3343. top: "50%",
  3344. transform: "translateY(-50%)",
  3345. }}
  3346. >
  3347. 下一张
  3348. </Button>
  3349. </Modal>
  3350. </FormItem>
  3351. </div>
  3352. <div className="clearfix">
  3353. <FormItem
  3354. className="half-item"
  3355. {...formItemLayout}
  3356. label="合同编号"
  3357. >
  3358. <span>{theData.contractNo}</span>
  3359. </FormItem>
  3360. <FormItem
  3361. className="half-item"
  3362. {...formItemLayout}
  3363. label="订单部门"
  3364. >
  3365. <span>{theData.depName}</span>
  3366. </FormItem>
  3367. </div>
  3368. <div className="clearfix">
  3369. <FormItem
  3370. labelCol={{ span: 5 }}
  3371. wrapperCol={{ span: 18 }}
  3372. label="订单留言"
  3373. >
  3374. <p style={{ width: 500, wordWrap: "break-word" }}>
  3375. {this.state.orderRemarks}
  3376. </p>
  3377. </FormItem>
  3378. </div>
  3379. {/* <div className="clearfix">
  3380. <FormItem
  3381. labelCol={{ span: 5 }}
  3382. wrapperCol={{ span: 18 }}
  3383. label="收款节点"
  3384. >
  3385. {jsDate.map(item => {
  3386. return (
  3387. <p>
  3388. {getjiedian(item.dunSubject)} -- {item.money} 万元
  3389. </p>
  3390. );
  3391. })}
  3392. </FormItem>
  3393. </div> */}
  3394. <div className="clearfix">
  3395. <FormItem
  3396. className="half-item"
  3397. {...formItemLayout}
  3398. label="订单负责人"
  3399. >
  3400. <span>{theData.salesmanName}</span>
  3401. </FormItem>
  3402. <FormItem
  3403. className="half-item"
  3404. {...formItemLayout}
  3405. label="订单负责人电话"
  3406. >
  3407. <span>{theData.salesmanMobile}</span>
  3408. </FormItem>
  3409. <FormItem
  3410. className="half-item"
  3411. {...formItemLayout}
  3412. label="当前财务负责人"
  3413. >
  3414. <span>{theData.nowFinance}</span>
  3415. </FormItem>
  3416. <FormItem
  3417. className="half-item"
  3418. {...formItemLayout}
  3419. label="当前财务负责人电话"
  3420. >
  3421. <span>{theData.nowFinanceMobile}</span>
  3422. </FormItem>
  3423. <FormItem
  3424. className="half-item"
  3425. {...formItemLayout}
  3426. style={{ opacity: ".5" }}
  3427. label="原订单负责人"
  3428. >
  3429. <span>{theData.oldSalesmanName}</span>
  3430. </FormItem>
  3431. <FormItem
  3432. className="half-item"
  3433. {...formItemLayout}
  3434. style={{ opacity: ".5" }}
  3435. label="原订单负责人电话"
  3436. >
  3437. <span>{theData.oldSalesmanMobile}</span>
  3438. </FormItem>
  3439. <FormItem
  3440. className="half-item"
  3441. {...formItemLayout}
  3442. style={{ opacity: ".5" }}
  3443. label="实际财务操作人"
  3444. >
  3445. <span>{theData.financeName}</span>
  3446. </FormItem>
  3447. <FormItem
  3448. className="half-item"
  3449. {...formItemLayout}
  3450. style={{ opacity: ".5" }}
  3451. label="实际财务操作人电话"
  3452. >
  3453. <span>{theData.financeMobile}</span>
  3454. </FormItem>
  3455. </div>
  3456. {/* <Modal
  3457. visible={this.state.avisible}
  3458. className="admin-desc-content"
  3459. width="800px"
  3460. maskClosable={false}
  3461. title="订单日志"
  3462. footer={null}
  3463. onCancel={this.closeOrderLog}
  3464. >
  3465. <div className="patent-table">
  3466. <Spin spinning={this.state.loading}>
  3467. <Table
  3468. columns={this.state.columnsY}
  3469. dataSource={this.state.dataSourceY}
  3470. pagination={false}
  3471. />
  3472. </Spin>
  3473. </div>
  3474. </Modal> */}
  3475. <OrderRiZi
  3476. dataSourcerizhi={this.state.dataSourceY}
  3477. closeOrderLog={this.closeOrderLog}
  3478. visible={this.state.avisible}
  3479. loading={this.state.loading}
  3480. />
  3481. <div className="clearfix">
  3482. <p style={{ fontSize: 18, marginLeft: 20 }}>项目业务</p>
  3483. <div className="patent-table">
  3484. <Spin spinning={this.state.loading}>
  3485. <Table
  3486. columns={this.state.columnsX}
  3487. dataSource={this.state.dataSourceX}
  3488. pagination={false}
  3489. size="middle"
  3490. bordered
  3491. />
  3492. </Spin>
  3493. </div>
  3494. </div>
  3495. <div>
  3496. <span style={{ marginLeft: 20, fontSize: "18px" }}>
  3497. 催款节点
  3498. </span>
  3499. <span
  3500. style={{
  3501. display: cuiDataList.length ? "none" : "inline-block",
  3502. marginLeft: 10,
  3503. color: "red",
  3504. }}
  3505. >
  3506. 金额总计(万元): {this.state.totalCui}
  3507. </span>
  3508. </div>
  3509. <div className="clearfix">
  3510. <Spin spinning={this.state.loading}>
  3511. <Form layout="horizontal" id="demand-form">
  3512. <Table
  3513. pagination={false}
  3514. bordered
  3515. size="middle"
  3516. columns={
  3517. cuiDataList.length
  3518. ? this.state.ContactsLists
  3519. : this.state.ContactsListsNew
  3520. }
  3521. dataSource={
  3522. cuiDataList.length
  3523. ? this.state.contactList
  3524. : this.state.contactListNew
  3525. }
  3526. />
  3527. <Col
  3528. span={24}
  3529. offset={9}
  3530. style={{ marginTop: "15px" }}
  3531. />
  3532. </Form>
  3533. </Spin>
  3534. </div>
  3535. </Spin>
  3536. </Form> : <div/>}
  3537. </TabPane>
  3538. <TabPane tab="外包详情" key="2">
  3539. <div className="clearfix">
  3540. <p style={{ color: "red" }}>
  3541. 提示:查看备注请点击表格左侧加号按钮~
  3542. </p>
  3543. <div className="patent-table">
  3544. <Spin spinning={this.state.loading}>
  3545. <Table
  3546. columns={this.state.columnsW}
  3547. dataSource={this.state.dataSourceW}
  3548. pagination={false}
  3549. size="middle"
  3550. expandedRowRender={(record) => (
  3551. <p style={{ margin: 0 }}>{record.remarks}</p>
  3552. )}
  3553. scroll={{ x: 300, y: 0 }}
  3554. />
  3555. </Spin>
  3556. </div>
  3557. </div>
  3558. </TabPane>
  3559. <TabPane tab="外包审核" key="3">
  3560. <div className="clearfix">
  3561. <FormItem
  3562. className="half-item"
  3563. labelCol={{ span: 8 }}
  3564. wrapperCol={{ span: 14 }}
  3565. label="外包公司"
  3566. >
  3567. <span>{this.state.companyName}</span>
  3568. </FormItem>
  3569. </div>
  3570. <div className="clearfix">
  3571. <FormItem
  3572. className="half-item"
  3573. {...formItemLayout}
  3574. label="单价(万元)"
  3575. >
  3576. <span>{this.state.unitPrice}</span>
  3577. </FormItem>
  3578. </div>
  3579. <div className="clearfix">
  3580. <FormItem
  3581. className="half-item"
  3582. {...formItemLayout}
  3583. label="数量(万元)"
  3584. >
  3585. <span>{this.state.unitNumber}</span>
  3586. </FormItem>
  3587. </div>
  3588. <div className="clearfix">
  3589. <FormItem
  3590. className="half-item"
  3591. {...formItemLayout}
  3592. label="总金额(万元)"
  3593. >
  3594. <span>{this.state.amount}</span>
  3595. </FormItem>
  3596. </div>
  3597. <div className="clearfix">
  3598. <FormItem
  3599. className="half-item"
  3600. {...formItemLayout}
  3601. label="备注"
  3602. >
  3603. <span>{this.state.outsourceRemarks}</span>
  3604. </FormItem>
  3605. </div>
  3606. {/*<div className="clearfix">
  3607. <FormItem className="half-item"
  3608. labelCol={{ span: 8 }}
  3609. wrapperCol={{ span: 14 }}
  3610. label="上传协议文件" >
  3611. <Upload header={{authorization: 'authorization-text'}} action={globalConfig.context + "/api/admin/outsourceOrg/uploadOutsourceFile"}
  3612. data={(e)=>{
  3613. return {
  3614. 'sign': e.name.substring(0,e.name.lastIndexOf("."))
  3615. }
  3616. }}
  3617. fileList={this.state.attachmentUrl}
  3618. showUploadList={{showRemoveIcon:false}}
  3619. onPreview={(e)=>{
  3620. let url = window.location.href.substring(7)
  3621. window.location.href="http://"+url.substring(0,url.indexOf("/"))+"/api/admin/outsourceOrg//downloadFile?path="+e.response.data
  3622. }}>
  3623. </Upload>
  3624. </FormItem>
  3625. </div>*/}
  3626. <div className="clearfix">
  3627. <FormItem
  3628. labelCol={{ span: 4 }}
  3629. wrapperCol={{ span: 18 }}
  3630. label="合同/协议扫描件"
  3631. >
  3632. {/*<Upload*/}
  3633. {/* className="demandDetailShow-upload"*/}
  3634. {/* listType="picture-card"*/}
  3635. {/* fileList={this.state.pictureUrl}*/}
  3636. {/* onPreview={(file) => {*/}
  3637. {/* this.setState({*/}
  3638. {/* previewImage: file.url || file.thumbUrl,*/}
  3639. {/* previewVisible: true,*/}
  3640. {/* });*/}
  3641. {/* }}*/}
  3642. {/*/>*/}
  3643. <div style={{paddingTop:'10px',paddingBottom:'10px'}}>
  3644. {this.state.pictureUrl && this.state.modKey === '3' ? <ImgList domId={'approvedOutsourcingAll2'} fileList={this.state.pictureUrl}/> : <div/>}
  3645. </div>
  3646. <Modal
  3647. maskClosable={false}
  3648. footer={null}
  3649. width={"50%"}
  3650. visible={this.state.previewVisible}
  3651. onCancel={() => {
  3652. this.setState({ previewVisible: false });
  3653. }}
  3654. >
  3655. <img
  3656. alt=""
  3657. style={{
  3658. width: "100%",
  3659. transform: `rotate(${this.state.rotateDeg}deg)`,
  3660. }}
  3661. src={this.state.previewImage || ""}
  3662. />
  3663. <Button
  3664. onClick={this.rotate}
  3665. style={{
  3666. position: "relative",
  3667. left: "50%",
  3668. transform: "translateX(-50%)",
  3669. }}
  3670. >
  3671. 旋转
  3672. </Button>
  3673. <Button
  3674. onClick={this.upImg}
  3675. style={{
  3676. position: "absolute",
  3677. left: -81,
  3678. top: "50%",
  3679. transform: "translateY(-50%)",
  3680. }}
  3681. >
  3682. 上一张
  3683. </Button>
  3684. <Button
  3685. onClick={this.downImg}
  3686. style={{
  3687. position: "absolute",
  3688. right: -81,
  3689. top: "50%",
  3690. transform: "translateY(-50%)",
  3691. }}
  3692. >
  3693. 下一张
  3694. </Button>
  3695. </Modal>
  3696. </FormItem>
  3697. </div>
  3698. <div className="clearfix">
  3699. <hr className="division" />
  3700. <div className="clearfix">
  3701. <FormItem
  3702. className="half-item"
  3703. labelCol={{ span: 8 }}
  3704. wrapperCol={{ span: 14 }}
  3705. label="审核意见"
  3706. >
  3707. <span>{this.state.remarks}</span>
  3708. </FormItem>
  3709. </div>
  3710. <div className="clearfix">
  3711. <FormItem
  3712. className="half-item"
  3713. labelCol={{ span: 8 }}
  3714. wrapperCol={{ span: 14 }}
  3715. label="审核结果"
  3716. >
  3717. <span>{getRefundStatus(this.state.refundStatus)}</span>
  3718. </FormItem>
  3719. </div>
  3720. <div className="clearfix">
  3721. <FormItem
  3722. className="half-item"
  3723. labelCol={{ span: 8 }}
  3724. wrapperCol={{ span: 14 }}
  3725. label="审核时间"
  3726. >
  3727. <span>{this.state.auditTimes}</span>
  3728. </FormItem>
  3729. </div>
  3730. </div>
  3731. </TabPane>
  3732. </Tabs>
  3733. </Modal> : <div/>}
  3734. </div>
  3735. <div className="patent-desc">
  3736. <Modal
  3737. maskClosable={false}
  3738. title="驳回理由"
  3739. visible={this.state.boHuiVisible}
  3740. onCancel={this.boHuiCancel}
  3741. width="500px"
  3742. footer=""
  3743. className="admin-desc-content"
  3744. >
  3745. <TextArea
  3746. rows={4}
  3747. value={this.state.reason}
  3748. onChange={(e) => {
  3749. this.setState({
  3750. reason: e.target.value,
  3751. });
  3752. }}
  3753. />
  3754. <Button
  3755. type="primary"
  3756. style={{ marginTop: "20px" }}
  3757. onClick={this.boHuiCo}
  3758. >
  3759. 确定
  3760. </Button>
  3761. </Modal>
  3762. </div>
  3763. <Assign
  3764. title="任务"
  3765. selApi={"/api/admin/newOrder/updateFinance"}
  3766. data={this.state.assignDataY}
  3767. showDesc={this.state.assignVisibleY}
  3768. closeDesc={this.closeAssignY.bind(this)}
  3769. // fenpaiData={8}
  3770. specially={0}
  3771. roleName={this.state.nub}
  3772. requestMethod={"get"}
  3773. />
  3774. <Receivable
  3775. title="收款记录"
  3776. api="/api/admin/financial/addReceiptsFlow"
  3777. data={this.state.assignDataX}
  3778. showDesc={this.state.assignVisibleX}
  3779. closeDesc={this.closeAssignX.bind(this)}
  3780. />
  3781. <Modal
  3782. visible={this.state.bvisible}
  3783. footer=""
  3784. title="开票历史记录"
  3785. className="admin-desc-content"
  3786. width="900px"
  3787. onCancel={this.inRecordCanl}
  3788. >
  3789. <Spin spinning={this.state.loading}>
  3790. <div
  3791. className="patent-table"
  3792. ref={(e) => {
  3793. this.refs.kaiPiao = e;
  3794. }}
  3795. >
  3796. <Table
  3797. columns={this.state.columnsDate}
  3798. dataSource={this.state.recordData}
  3799. onRowClick={this.kaiPiaoData}
  3800. pagination={false}
  3801. bordered
  3802. size="middle"
  3803. />
  3804. <div className="clearfix" style={{ marginTop: "20px" }}>
  3805. <FormItem
  3806. className="half-item"
  3807. {...formItemLayout}
  3808. label={<span style={{ fontSize: "14px" }}>开票总计</span>}
  3809. >
  3810. <span>{this.state.sum + "(万元)"}</span>
  3811. </FormItem>
  3812. </div>
  3813. <ReactToPrint
  3814. trigger={() => (
  3815. <Button
  3816. type="primary"
  3817. style={{
  3818. float: "right",
  3819. // marginTop: 10,
  3820. position: "absolute",
  3821. top: -54,
  3822. right: 30,
  3823. }}
  3824. >
  3825. 打印
  3826. </Button>
  3827. )}
  3828. content={() => this.refs.kaiPiao}
  3829. />
  3830. </div>
  3831. </Spin>
  3832. </Modal>
  3833. <Modal
  3834. visible={this.state.cvisible}
  3835. footer=""
  3836. title="详细收款流水"
  3837. className="admin-desc-content"
  3838. width="1300px"
  3839. onCancel={this.waterCanl}
  3840. >
  3841. <Spin spinning={this.state.loading}>
  3842. <div
  3843. className="patent-table"
  3844. ref={(e) => {
  3845. this.refs.shouKuan = e;
  3846. }}
  3847. >
  3848. <Table
  3849. columns={this.state.waterlistDate}
  3850. dataSource={this.state.waterData}
  3851. pagination={false}
  3852. scroll={{ x: "max-content", y: 0 }}
  3853. bordered
  3854. size="middle"
  3855. />
  3856. <div className="clearfix" style={{ marginTop: "20px" }}>
  3857. <FormItem
  3858. className="half-item"
  3859. {...formItemLayout}
  3860. label={<span style={{ fontSize: "14px" }}>总计金额</span>}
  3861. >
  3862. <span>{this.state.waterSum + "(万元)"}</span>
  3863. </FormItem>
  3864. </div>
  3865. <ReactToPrint
  3866. trigger={() => (
  3867. <Button
  3868. type="primary"
  3869. style={{
  3870. float: "right",
  3871. position: "absolute",
  3872. top: -54,
  3873. right: 30,
  3874. }}
  3875. >
  3876. 打印
  3877. </Button>
  3878. )}
  3879. content={() => this.refs.shouKuan}
  3880. />
  3881. </div>
  3882. </Spin>
  3883. </Modal>
  3884. <Modal
  3885. visible={this.state.dvisible}
  3886. footer=""
  3887. title="所有列表信息"
  3888. className="admin-desc-content"
  3889. width="1300px"
  3890. onCancel={() => {
  3891. this.loadData();
  3892. this.setState({
  3893. dvisible: false,
  3894. });
  3895. }}
  3896. >
  3897. <Spin spinning={this.state.loading}>
  3898. <div
  3899. className="patent-table"
  3900. style={{
  3901. // width: 900,
  3902. // position: "relative",
  3903. // left: "50%",
  3904. // transform: "translate(-50%)",
  3905. padding: "25px 0 30px 30px",
  3906. }}
  3907. ref={(e) => {
  3908. this.refs.all = e;
  3909. }}
  3910. >
  3911. <Table
  3912. columns={this.state.printColumns}
  3913. dataSource={this.state.dataSource}
  3914. pagination={false}
  3915. bordered
  3916. size="small"
  3917. />
  3918. </div>
  3919. </Spin>
  3920. <ReactToPrint
  3921. trigger={() => (
  3922. <Button
  3923. type="primary"
  3924. style={{
  3925. float: "right",
  3926. marginTop: 10,
  3927. position: "absolute",
  3928. top: 0,
  3929. right: 30,
  3930. }}
  3931. >
  3932. 打印
  3933. </Button>
  3934. )}
  3935. content={() => this.refs.all}
  3936. />
  3937. </Modal>
  3938. <Modal
  3939. visible={this.state.timeVisible}
  3940. footer=""
  3941. title="工时详情"
  3942. className="admin-desc-content"
  3943. width="1300px"
  3944. pagination={false}
  3945. onCancel={() => {
  3946. this.loadData();
  3947. this.setState({
  3948. timeVisible: false,
  3949. });
  3950. }}
  3951. >
  3952. <Spin spinning={this.state.loading}>
  3953. <div
  3954. className="patent-table"
  3955. style={
  3956. {
  3957. // width: 900,
  3958. // position: "relative",
  3959. // left: "50%",
  3960. // transform: "translate(-50%)",
  3961. // padding: "25px 0 30px 30px"
  3962. }
  3963. }
  3964. ref={(e) => {
  3965. this.refs.all = e;
  3966. }}
  3967. >
  3968. <Table
  3969. columns={this.state.timeColumns}
  3970. dataSource={this.state.timeDataList}
  3971. scroll={{ x: "max-content", y: 0 }}
  3972. pagination={false}
  3973. bordered
  3974. size="small"
  3975. />
  3976. </div>
  3977. </Spin>
  3978. <ReactToPrint
  3979. trigger={() => (
  3980. <Button
  3981. type="primary"
  3982. style={{
  3983. float: "right",
  3984. marginTop: 10,
  3985. position: "absolute",
  3986. top: 0,
  3987. right: 30,
  3988. }}
  3989. >
  3990. 打印
  3991. </Button>
  3992. )}
  3993. content={() => this.refs.all}
  3994. />
  3995. </Modal>
  3996. <Modal
  3997. visible={this.state.cuiVisible}
  3998. footer=""
  3999. title="催款详情"
  4000. className="admin-desc-content"
  4001. width="1300px"
  4002. pagination={false}
  4003. onCancel={() => {
  4004. this.loadData();
  4005. this.setState({
  4006. cuiVisible: false,
  4007. cuiTabKey: "1",
  4008. });
  4009. }}
  4010. >
  4011. <Tabs activeKey={this.state.cuiTabKey} onChange={this.cuiTabChange}>
  4012. <TabPane tab="催款节点" key="1">
  4013. <Spin spinning={this.state.loading}>
  4014. <div
  4015. className="patent-table"
  4016. ref={(e) => {
  4017. this.refs.all = e;
  4018. }}
  4019. >
  4020. <Table
  4021. columns={this.state.cuiColumns}
  4022. dataSource={this.state.cuiDataList}
  4023. scroll={{ x: "max-content", y: 0 }}
  4024. pagination={false}
  4025. bordered
  4026. size="small"
  4027. />
  4028. </div>
  4029. <ReactToPrint
  4030. trigger={() => (
  4031. <Button
  4032. type="primary"
  4033. style={{
  4034. float: "right",
  4035. marginTop: 10,
  4036. position: "absolute",
  4037. top: "-60px",
  4038. right: 30,
  4039. }}
  4040. >
  4041. 打印
  4042. </Button>
  4043. )}
  4044. content={() => this.refs.all}
  4045. />
  4046. </Spin>
  4047. </TabPane>
  4048. <TabPane tab="欠款催收记录" key="2">
  4049. <Spin spinning={this.state.loading}>
  4050. <div
  4051. className="patent-table"
  4052. ref={(e) => {
  4053. this.refs.all = e;
  4054. }}
  4055. >
  4056. <Table
  4057. columns={this.state.qianColumns}
  4058. dataSource={this.state.qianDataList}
  4059. scroll={{ x: "max-content", y: 0 }}
  4060. pagination={false}
  4061. bordered
  4062. size="small"
  4063. />
  4064. </div>
  4065. <ReactToPrint
  4066. trigger={() => (
  4067. <Button
  4068. type="primary"
  4069. style={{
  4070. float: "right",
  4071. marginTop: 10,
  4072. position: "absolute",
  4073. top: "-60px",
  4074. right: 30,
  4075. }}
  4076. >
  4077. 打印
  4078. </Button>
  4079. )}
  4080. content={() => this.refs.all}
  4081. />
  4082. </Spin>
  4083. </TabPane>
  4084. </Tabs>
  4085. </Modal>
  4086. <Modal
  4087. visible={this.state.proVisible}
  4088. footer=""
  4089. title="项目进度"
  4090. className="admin-desc-content"
  4091. width="1300px"
  4092. pagination={false}
  4093. onCancel={() => {
  4094. this.loadData();
  4095. this.setState({
  4096. proVisible: false,
  4097. });
  4098. }}
  4099. >
  4100. <Spin spinning={this.state.loading}>
  4101. <div
  4102. className="patent-table"
  4103. style={
  4104. {
  4105. // width: 900,
  4106. // position: "relative",
  4107. // left: "50%",
  4108. // transform: "translate(-50%)",
  4109. // padding: "25px 0 30px 30px"
  4110. }
  4111. }
  4112. ref={(e) => {
  4113. this.refs.all = e;
  4114. }}
  4115. >
  4116. <Table
  4117. columns={this.state.proColumns}
  4118. dataSource={this.state.proDataList}
  4119. pagination={false}
  4120. bordered
  4121. size="small"
  4122. />
  4123. </div>
  4124. <span style={{ display: "block", marginTop: 10, color: "red" }}>
  4125. 外包(内部)价格总计(万元):{this.state.totalWaibao}
  4126. </span>
  4127. </Spin>
  4128. <ReactToPrint
  4129. trigger={() => (
  4130. <Button
  4131. type="primary"
  4132. style={{
  4133. float: "right",
  4134. marginTop: 10,
  4135. position: "absolute",
  4136. top: 0,
  4137. right: 30,
  4138. }}
  4139. >
  4140. 打印
  4141. </Button>
  4142. )}
  4143. content={() => this.refs.all}
  4144. />
  4145. </Modal>
  4146. <KaiPiaoModal
  4147. visible={this.state.avisible}
  4148. data={this.state.modalData}
  4149. onCancel={this.visitCancels}
  4150. loading={this.state.loading}
  4151. />
  4152. </div>
  4153. );
  4154. },
  4155. });
  4156. export default approvedOutsourcing;