approvedOutsourcing.jsx 135 KB

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