approveds.jsx 107 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373
  1. import React from 'react';
  2. import {
  3. Icon,
  4. Button,
  5. Input,
  6. Select,
  7. Spin,
  8. Table,
  9. message,
  10. DatePicker,
  11. Upload,
  12. Form,
  13. Modal,
  14. Col,
  15. Tag,
  16. Tabs, Tooltip
  17. } from "antd";
  18. import $ from 'jquery/src/ajax';
  19. import ResolutionDetail from "@/resolutionDetail";
  20. import ReactToPrint from "react-to-print";
  21. import moment from 'moment';
  22. import {
  23. getLiquidationStatus,
  24. getApprovedState,
  25. getProcessStatus,
  26. splitUrl,
  27. getjiedian,
  28. getboutique,
  29. getCuikuan,
  30. ShowModal,
  31. getApproval,
  32. getTaskStatus,
  33. getProjectStatus,
  34. getNewOrderStatus,
  35. getInvoiceStatus,
  36. getProjectName,
  37. getApprovedType,
  38. } from "@/tools.js";
  39. import './customer.less';
  40. import { ChooseList } from "../orderNew/chooseList";
  41. import ShowModalDiv from "@/showModal.jsx";
  42. import Project from "../../../../component/project";
  43. import ImgList from "../../../common/imgList";
  44. import ProjectDetailsReadOnly from "../../../common/projectDetailsReadOnly";
  45. import NewEditProject from "../../../common/projectOperation/newEditProject";
  46. import DepartmentList from "../../../common/departmentList";
  47. import OrderItemStatus from "../../../common/orderItemStatus";
  48. import EnterpriseNameChange from "../../../common/enterpriseNameChange";
  49. import OrderCoor from './changeComponent/orderCoor';
  50. import { approvalOptions } from "@/dataDic.js";
  51. import ContentUrl from './contentUrl';
  52. import LogPopup from "../../../common/logPopup";
  53. import Cascaders from "../../../common/cascaders";
  54. import FlowChart from '../../../common/flowchart'; // 流程图
  55. import Gxczx from '../../../common/orderDetail/gxczx' // 高新纯咨询合同说明详情
  56. import Property from '../../../common/orderDetail/property' // 知识产权情况
  57. import ApproveTypeTooltip from '../../../common/ApproveTypeTooltip';
  58. const { TabPane } = Tabs;
  59. const { TextArea } = Input;
  60. //图片组件
  61. const PicturesWall = React.createClass({
  62. getInitialState() {
  63. return {
  64. previewVisible: false,
  65. previewImage: '',
  66. fileList: [],
  67. }
  68. },
  69. handleCancel() {
  70. this.setState({
  71. previewVisible: false
  72. })
  73. },
  74. handlePreview(file) {
  75. this.setState({
  76. previewImage: file.url || file.thumbUrl,
  77. previewVisible: true,
  78. });
  79. },
  80. handleChange(info) {
  81. let fileList = info.fileList;
  82. this.setState({
  83. fileList
  84. });
  85. this.props.fileList(fileList);
  86. },
  87. componentWillReceiveProps(nextProps) {
  88. this.state.fileList = nextProps.pictureUrl;
  89. this.state.pojectApplicationUrl = undefined;
  90. },
  91. render() {
  92. const {
  93. fileList
  94. } = this.state;
  95. return (
  96. <div style={{ display: "inline-block" }}>
  97. <ImgList
  98. domId={this.props.domId}
  99. fileList={fileList}
  100. />
  101. </div>
  102. );
  103. }
  104. });
  105. const IntentionCustomer = Form.create()(
  106. React.createClass({
  107. loadData(pageNo, pageSize) {
  108. this.setState({
  109. visitModul: false,
  110. loading: true,
  111. ispage: pageNo,
  112. modalVisible: false,
  113. });
  114. $.ajax({
  115. method: "get",
  116. dataType: "json",
  117. crossDomain: false,
  118. url: globalConfig.context + "/api/admin/newOrder/orderNewList",
  119. data: {
  120. manageType: this.props.manageType,
  121. pageNo: pageNo || 1,
  122. pageSize: pageSize || this.state.pagination.pageSize,
  123. specially: 3, //审核列表
  124. name: this.state.nameSearch, //名称
  125. orderNo: this.state.orderNoSearch, //订单编号
  126. contractNo: this.state.contractNoSearch, //合同编号
  127. deps: this.state.departmenttList, //订单部门
  128. starTime: this.state.releaseDate[0], //开始时间
  129. endTime: this.state.releaseDate[1], //结束时间
  130. approval: this.state.approvalSearch ? this.state.approvalSearch : 0, //审批状态
  131. liquidationStatus: this.state.liquidationStatusSearch, //结算状态
  132. type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
  133. },
  134. success: function (data) {
  135. ShowModal(this);
  136. let theArr = [];
  137. if (data.error.length || data.data.list == "") {
  138. if (data.error && data.error.length) {
  139. message.warning(data.error[0].message);
  140. }
  141. } else {
  142. for (let i = 0; i < data.data.list.length; i++) {
  143. let thisdata = data.data.list[i];
  144. theArr.push({
  145. key: thisdata.orderNo,
  146. orderNo: thisdata.orderNo,
  147. orderType: thisdata.orderType,
  148. orderStatus: thisdata.orderStatus,
  149. salesmanName: thisdata.salesmanName,
  150. processStatus: thisdata.processStatus,
  151. liquidationStatus: thisdata.liquidationStatus,
  152. approval: thisdata.approval,
  153. settlementAmount: thisdata.settlementAmount,
  154. signDate: thisdata.signDate,
  155. companyId: thisdata.companyId,
  156. companyName: thisdata.companyName,
  157. buyerId: thisdata.buyerId,
  158. userName: thisdata.userName,
  159. contractNo: thisdata.contractNo,
  160. createDate: thisdata.createDate,
  161. depName: thisdata.depName,
  162. invoiceAmount: thisdata.invoiceAmount,
  163. totalAmount: thisdata.totalAmount,
  164. financeName: thisdata.financeName,
  165. type: thisdata.type || "", // 特批类型
  166. typeExplain: thisdata.typeExplain,
  167. });
  168. }
  169. this.state.pagination.total = data.data.totalCount;
  170. }
  171. if (data.data && data.data.list && !data.data.list.length) {
  172. this.state.pagination.total = 0;
  173. }
  174. this.setState({
  175. dataSource: theArr,
  176. pageNo: pageNo,
  177. pagination: this.state.pagination,
  178. selectedRowKeys: [],
  179. });
  180. }.bind(this),
  181. }).always(
  182. function () {
  183. this.setState({
  184. loading: false,
  185. });
  186. }.bind(this)
  187. );
  188. },
  189. getInitialState() {
  190. return {
  191. approvaType: [],
  192. page: 1,
  193. declarationBatch: 1,
  194. orderNos: '',
  195. dataInfor: {},
  196. releaseDate: [],
  197. selectedRowKeys: [],
  198. rotateDeg: 0,
  199. orgCodeUrl: [],
  200. approvalSearch: "1",
  201. paginations: false,
  202. pagination: {
  203. defaultCurrent: 1,
  204. defaultPageSize: 10,
  205. showQuickJumper: true,
  206. pageSize: 10,
  207. onChange: function (page) {
  208. this.loadData(page);
  209. }.bind(this),
  210. showTotal: function (total) {
  211. return "共" + total + "条数据";
  212. },
  213. },
  214. columnsDate: [
  215. {
  216. title: "编号",
  217. dataIndex: "id",
  218. key: "id",
  219. },
  220. {
  221. title: "订单编号",
  222. dataIndex: "orderno",
  223. key: "orderno",
  224. },
  225. {
  226. title: "开票金额(万元)",
  227. dataIndex: "amount",
  228. key: "amount",
  229. },
  230. {
  231. title: "申请时间",
  232. dataIndex: "createTime",
  233. key: "createTime",
  234. },
  235. {
  236. title: "开票状态",
  237. dataIndex: "status",
  238. key: "status",
  239. render: (text, record) => {
  240. return <div>{getInvoiceStatus(text, record)} <LogPopup id={record.id} /></div>;
  241. },
  242. },
  243. ],
  244. columns: [
  245. {
  246. title: "特批类型",
  247. dataIndex: "type",
  248. key: "type",
  249. width: 110,
  250. render: (text, record) => {
  251. return (
  252. <span>
  253. {getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
  254. </span>
  255. );
  256. },
  257. },
  258. {
  259. title: "合同编号",
  260. dataIndex: "contractNo",
  261. key: "contractNo",
  262. className: "title-table",
  263. },
  264. {
  265. title: "订单编号",
  266. dataIndex: "orderNo",
  267. key: "orderNo",
  268. className: "title-table",
  269. // fixed: "left"
  270. },
  271. {
  272. title: "特批状态",
  273. dataIndex: "approval",
  274. key: "approval",
  275. className: "title-table",
  276. render: (text) => {
  277. return <Tag color="#f50">{getApproval(text)}</Tag>;
  278. // if (text == 1) {
  279. // return <Tag color="#f50">{getApproval(text)}</Tag>;
  280. // }
  281. // return getApproval(text);
  282. },
  283. },
  284. {
  285. title: "客户名称",
  286. dataIndex: "userName",
  287. key: "userName",
  288. className: "title-table",
  289. render: text => {
  290. return (
  291. <Tooltip title={text}>
  292. <div
  293. // style={{
  294. // maxWidth: '150px',
  295. // overflow: 'hidden',
  296. // textOverflow: "ellipsis",
  297. // whiteSpace: 'nowrap',
  298. // }}
  299. >{text}</div>
  300. </Tooltip>
  301. )
  302. }
  303. },
  304. {
  305. title: "订单部门",
  306. dataIndex: "depName",
  307. key: "depName",
  308. className: "title-table",
  309. },
  310. {
  311. title: "订单负责人",
  312. dataIndex: "salesmanName",
  313. key: "salesmanName",
  314. className: "title-table",
  315. },
  316. {
  317. title: "财务负责人",
  318. dataIndex: "financeName",
  319. key: "financeName",
  320. className: "title-table",
  321. },
  322. {
  323. title: "签单日期",
  324. dataIndex: "signDate",
  325. key: "signDate",
  326. className: "title-table",
  327. },
  328. {
  329. title: "下单日期",
  330. dataIndex: "createDate",
  331. key: "createDate",
  332. className: "title-table",
  333. },
  334. {
  335. title: "签单金额(万元)",
  336. dataIndex: "totalAmount",
  337. key: "totalAmount",
  338. className: "title-table",
  339. },
  340. {
  341. title: "开票金额(万元)",
  342. dataIndex: "invoiceAmount",
  343. key: "invoiceAmount",
  344. className: "title-table",
  345. },
  346. {
  347. title: "已收款(万元)",
  348. dataIndex: "settlementAmount",
  349. key: "settlementAmount",
  350. className: "title-table",
  351. },
  352. {
  353. title: "结算状态",
  354. dataIndex: "liquidationStatus",
  355. key: "liquidationStatus",
  356. className: "title-table",
  357. render: (text) => {
  358. return getLiquidationStatus(text);
  359. },
  360. },
  361. {
  362. title: "流程状态",
  363. dataIndex: "processStatus",
  364. key: "processStatus",
  365. className: "title-table",
  366. render: (text, record) => {
  367. return getProcessStatus(text, record.examineName, record.approval);
  368. },
  369. },
  370. ],
  371. data: [],
  372. dataSource: [],
  373. columnsX: [
  374. {
  375. title: "业务项目名称",
  376. dataIndex: "commodityName",
  377. key: "commodityName",
  378. render: (text, record) => {
  379. return <span>
  380. {text}<span style={{ color: "red" }}>{record.patentTypeName}</span>{"-" + record.id}
  381. <div>
  382. {record.cSort == 6 && record.projectType == 1 && <span>(含{record.htMember == 1 ? '高新会员&' : ''}{record.additionalDeduction == 1 ? '加计扣除&' : ''}{record.rdAwardsubsidy == 1 ? '研发奖补' : ''})</span>}
  383. {record.cSort == 6 && ([0, 3].indexOf(record.projectType) > -1) && <span>(仅提供单边会员服务)</span>}
  384. {record.cSort == 6 && record.projectType == 2 && <span>(仅填报表,仅咨询,不出备查资料)</span>}
  385. {record.cSort == 3 && <span>{record.technologyProjectType==0?'(简易项目)':record.technologyProjectType==1?'(市区级)':record.technologyProjectType==2?'(省级)':record.technologyProjectType==3?'(国家级)':''}</span>}
  386. {record.cSort == 8 ? (record.type != 2 && record.patentType == 1) ? <span>(变更)</span> : <span>{record.ordinaryRisk == 0 ? '(普通申请)' : record.ordinaryRisk == 1 ? '(风险代理)' : ''}</span> : ""}
  387. {record.type == 2 && <span>({record.days == 0 ? '普通' : record.days == 1 ? '加急' : ''}{record.scheme == 0 ? '&无方案' : record.scheme == 1 ? '&有方案' : ''})</span>}
  388. </div>
  389. </span>
  390. }
  391. },
  392. {
  393. title: "项目类别",
  394. dataIndex: "cname",
  395. key: "cname",
  396. },
  397. {
  398. title: "项目数量",
  399. dataIndex: "commodityQuantity",
  400. key: "commodityQuantity",
  401. render: (text, record) => {
  402. if (record.splitStatus == 1) {
  403. return (
  404. <span>
  405. {text}{" "}
  406. {/* <Tag
  407. color="#108ee9"
  408. onClick={(e) => {
  409. e.stopPropagation();
  410. this.showRes(record);
  411. }}
  412. >
  413. 已拆
  414. </Tag> */}
  415. </span>
  416. );
  417. } else {
  418. return text;
  419. }
  420. },
  421. },
  422. {
  423. title: "金额(万元)",
  424. dataIndex: "commodityPrice",
  425. key: "commodityPrice",
  426. },
  427. {
  428. title: "负责人",
  429. dataIndex: "contacts",
  430. key: "contacts",
  431. },
  432. {
  433. title: "负责人电话",
  434. dataIndex: "contactsMobile",
  435. key: "contactsMobile",
  436. },
  437. {
  438. title: "主要项目",
  439. dataIndex: "main",
  440. key: "main",
  441. render: (text) => {
  442. return text ? "是" : "否";
  443. },
  444. },
  445. {
  446. title: "项目说明",
  447. dataIndex: "taskComment",
  448. key: "taskComment",
  449. render: (text) => {
  450. return text && text.length > 8 ? text.substr(0, 8) + "…" : text;
  451. },
  452. },
  453. ],
  454. columnsrizhi: [
  455. {
  456. title: "流程",
  457. dataIndex: "processName",
  458. key: "processName",
  459. },
  460. {
  461. title: "操作人",
  462. dataIndex: "adminName",
  463. key: "adminName",
  464. },
  465. {
  466. title: "时间",
  467. dataIndex: "createDate",
  468. key: "createDate",
  469. },
  470. {
  471. title: "备注",
  472. dataIndex: "remarks",
  473. key: "remarks",
  474. },
  475. ],
  476. dataSourceX: [],
  477. ContactsListsNew: [
  478. {
  479. title: "项目名称",
  480. dataIndex: "commodityName",
  481. key: "commodityName",
  482. render: (text, record) => {
  483. return <span>{text + "-" + record.tid}</span>;
  484. },
  485. },
  486. {
  487. title: "项目分类",
  488. dataIndex: "projectType",
  489. key: "projectType",
  490. render: (text) => {
  491. let arr = this.state.dataSourceX || [];
  492. let str = "";
  493. for (let i = 0; i < arr.length; i++) {
  494. if (this.state.dataSourceX[i].sort == text) {
  495. str = this.state.dataSourceX[i].cname;
  496. return <span>{str}</span>;
  497. }
  498. }
  499. },
  500. },
  501. {
  502. title: "催款科目",
  503. dataIndex: "dunTypeName",
  504. key: "dunTypeName",
  505. render: (text, record) => {
  506. if (record.customizeName) {
  507. return text + record.customizeName;
  508. }
  509. return <span>{text}</span>;
  510. },
  511. },
  512. {
  513. title: "时间(天)",
  514. dataIndex: "waitDay",
  515. key: "waitDay",
  516. render: (text, record) => {
  517. if (record.dunTypeName) {
  518. if (record.customizeTimes) {
  519. return record.customizeTimes;
  520. }
  521. return <span>{text}</span>;
  522. }
  523. },
  524. },
  525. {
  526. title: "金额(万元)",
  527. dataIndex: "money",
  528. key: "money",
  529. render: (text, record) => {
  530. if (record.dunTypeName) {
  531. if (record.appropriationRatio) {
  532. let percent = Number(record.appropriationRatio * 100).toFixed(2);
  533. percent += "%";
  534. return <span>{percent}(拨款比例)</span>;
  535. } else {
  536. return <span>{text}</span>;
  537. }
  538. }
  539. },
  540. },
  541. {
  542. title: "服务年限",
  543. dataIndex: "startDate",
  544. key: "startDate",
  545. render: (text, record) => {
  546. if (record.dunTypeName) {
  547. return <span>{text}</span>;
  548. }
  549. },
  550. },
  551. {
  552. title: "催款状态",
  553. dataIndex: "status",
  554. key: "status",
  555. render: (text) => {
  556. return <span>{text == 1 ? "已启动" : "未启动"}</span>;
  557. },
  558. },
  559. ],
  560. ContactsLists: [
  561. {
  562. title: "催款科目",
  563. dataIndex: "dunSubject",
  564. key: "dunSubject",
  565. render: (text) => {
  566. return getjiedian(text);
  567. },
  568. },
  569. {
  570. title: "金额(万元)",
  571. dataIndex: "money",
  572. key: "money",
  573. },
  574. {
  575. title: "催款状态",
  576. dataIndex: "dunStatus",
  577. key: "dunStatus",
  578. render: (text) => {
  579. return getCuikuan(text);
  580. },
  581. },
  582. ],
  583. waterlistDate: [
  584. {
  585. title: "订单编号",
  586. dataIndex: "orderNo",
  587. key: "orderNo",
  588. },
  589. {
  590. title: "平台流水号",
  591. dataIndex: "billNo",
  592. key: "billNo",
  593. // fixed: "left"
  594. },
  595. {
  596. title: "收款金额(万元)",
  597. dataIndex: "transactionAmount",
  598. key: "transactionAmount",
  599. },
  600. {
  601. title: "收款方",
  602. dataIndex: "payeeName",
  603. key: "payeeName",
  604. },
  605. {
  606. title: "付款方",
  607. dataIndex: "payerName",
  608. key: "payerName",
  609. },
  610. {
  611. title: "流水科目",
  612. dataIndex: "transactionSubject",
  613. key: "transactionSubject",
  614. render: (text) => {
  615. return getTransactionProject(text);
  616. },
  617. },
  618. {
  619. title: "收款类型",
  620. dataIndex: "type",
  621. key: "type",
  622. },
  623. {
  624. title: "财务流水时间",
  625. dataIndex: "financialPayTimes",
  626. key: "financialPayTimes",
  627. },
  628. {
  629. title: "财务流水号",
  630. dataIndex: "financialPayNo",
  631. key: "financialPayNo",
  632. },
  633. {
  634. title: "订单负责人",
  635. dataIndex: "saleName",
  636. key: "saleName",
  637. },
  638. {
  639. title: "创建时间",
  640. dataIndex: "createTimes",
  641. key: "createTimes",
  642. },
  643. ],
  644. timeColumns: [
  645. {
  646. title: "合同编号",
  647. dataIndex: "contractNo",
  648. key: "contractNo",
  649. },
  650. {
  651. title: "订单编号",
  652. dataIndex: "orderNo",
  653. key: "orderNo",
  654. },
  655. {
  656. title: "客户名称",
  657. dataIndex: "userName",
  658. key: "userName",
  659. render: text => {
  660. return (
  661. <Tooltip title={text}>
  662. <div
  663. // style={{
  664. // maxWidth: '150px',
  665. // overflow: 'hidden',
  666. // textOverflow: "ellipsis",
  667. // whiteSpace: 'nowrap',
  668. // }}
  669. >{text}</div>
  670. </Tooltip>
  671. )
  672. }
  673. },
  674. {
  675. title: "订单部门",
  676. dataIndex: "depName",
  677. key: "depName",
  678. },
  679. {
  680. title: "订单负责人",
  681. dataIndex: "salesmanName",
  682. key: "salesmanName",
  683. },
  684. {
  685. title: "项目类别",
  686. dataIndex: "cname",
  687. key: "cname",
  688. },
  689. {
  690. title: "项目编号",
  691. dataIndex: "id",
  692. key: "id",
  693. },
  694. {
  695. title: "项目名称",
  696. dataIndex: "taskName",
  697. key: "taskName",
  698. },
  699. {
  700. title: "项目负责人",
  701. dataIndex: "receiverName",
  702. key: "receiverName",
  703. },
  704. {
  705. title: "项目价格(万元)",
  706. dataIndex: "commodityPrice",
  707. key: "commodityPrice",
  708. },
  709. {
  710. title: "数量(个)",
  711. dataIndex: "commodityQuantity",
  712. key: "commodityQuantity",
  713. },
  714. {
  715. title: "任务状态",
  716. dataIndex: "taskStatus",
  717. key: "taskStatus",
  718. render: (text) => {
  719. return getTaskStatus(text);
  720. },
  721. },
  722. {
  723. title: "项目状态",
  724. dataIndex: "projectStatus",
  725. key: "projectStatus",
  726. render: (text) => {
  727. return getProjectName(text);
  728. },
  729. },
  730. {
  731. title: "工时",
  732. dataIndex: "hours",
  733. key: "hours",
  734. },
  735. {
  736. title: "是否外包",
  737. dataIndex: "outsource",
  738. key: "outsource",
  739. render: (text) => {
  740. if (text == 0) {
  741. return "否";
  742. } else if (text == 1) {
  743. return "是";
  744. }
  745. },
  746. },
  747. {
  748. title: "签单日期",
  749. dataIndex: "signTime",
  750. key: "signTime",
  751. },
  752. {
  753. title: "派单日期",
  754. dataIndex: "creteTime",
  755. key: "creteTime",
  756. },
  757. {
  758. title: "分配时间",
  759. dataIndex: "taskDistributionTime",
  760. key: "taskDistributionTime",
  761. },
  762. {
  763. title: "完成时间",
  764. dataIndex: "taskEndTime",
  765. key: "taskEndTime",
  766. },
  767. ],
  768. resVisible: false,
  769. cuiColumns: [
  770. {
  771. title: "序号",
  772. dataIndex: "key",
  773. key: "key",
  774. },
  775. {
  776. title: "合同编号",
  777. dataIndex: "contractNo",
  778. key: "contractNo",
  779. },
  780. {
  781. title: "订单编号",
  782. dataIndex: "orderNo",
  783. key: "orderNo",
  784. },
  785. {
  786. title: "客户名称",
  787. dataIndex: "userName",
  788. key: "userName",
  789. render: text => {
  790. return (
  791. <Tooltip title={text}>
  792. <div
  793. // style={{
  794. // maxWidth: '150px',
  795. // overflow: 'hidden',
  796. // textOverflow: "ellipsis",
  797. // whiteSpace: 'nowrap',
  798. // }}
  799. >{text}</div>
  800. </Tooltip>
  801. )
  802. }
  803. },
  804. {
  805. title: "订单负责人",
  806. dataIndex: "salesmanName",
  807. key: "salesmanName",
  808. },
  809. {
  810. title: "订单部门",
  811. dataIndex: "depName",
  812. key: "depName",
  813. },
  814. {
  815. title: "订单状态",
  816. dataIndex: "orderStatus",
  817. key: "orderStatus",
  818. render: (text) => {
  819. return getNewOrderStatus(text);
  820. },
  821. },
  822. {
  823. title: "项目状态",
  824. dataIndex: "projectStatus",
  825. key: "projectStatus",
  826. render: (text) => {
  827. return getProjectName(text);
  828. },
  829. },
  830. {
  831. title: "签单金额",
  832. dataIndex: "totalAmount",
  833. key: "totalAmount",
  834. },
  835. {
  836. title: "结算状态",
  837. dataIndex: "liquidationStatus",
  838. key: "liquidationStatus",
  839. render: (text) => {
  840. return getLiquidationStatus(text);
  841. },
  842. },
  843. {
  844. title: "已收款",
  845. dataIndex: "settlementAmount",
  846. key: "settlementAmount",
  847. },
  848. {
  849. title: "应收款",
  850. dataIndex: "accountsReceivable",
  851. key: "accountsReceivable",
  852. },
  853. {
  854. title: "催收科目",
  855. dataIndex: "dunSubject",
  856. key: "dunSubject",
  857. // render: text => {
  858. // return getjiedian(text);
  859. // }
  860. },
  861. {
  862. title: "催款状态",
  863. dataIndex: "dunStatus",
  864. key: "dunStatus",
  865. },
  866. {
  867. title: "催收启动时间",
  868. dataIndex: "startDate",
  869. key: "startDate",
  870. },
  871. ],
  872. proColumns: [
  873. {
  874. title: "序号",
  875. dataIndex: "key",
  876. key: "key",
  877. },
  878. {
  879. title: "合同编号",
  880. dataIndex: "contractNo",
  881. key: "contractNo",
  882. },
  883. {
  884. title: "订单编号",
  885. dataIndex: "orderNo",
  886. key: "orderNo",
  887. },
  888. // {
  889. // title: "项目编号",
  890. // dataIndex: "id",
  891. // key: "id"
  892. // },
  893. {
  894. title: "客户名称",
  895. dataIndex: "userName",
  896. key: "userName",
  897. render: text => {
  898. return (
  899. <Tooltip title={text}>
  900. <div
  901. // style={{
  902. // maxWidth: '150px',
  903. // overflow: 'hidden',
  904. // textOverflow: "ellipsis",
  905. // whiteSpace: 'nowrap',
  906. // }}
  907. >{text}</div>
  908. </Tooltip>
  909. )
  910. }
  911. },
  912. {
  913. title: "订单负责人",
  914. dataIndex: "salesmanName",
  915. key: "salesmanName",
  916. },
  917. {
  918. title: "是否主项目",
  919. dataIndex: "main",
  920. key: "main",
  921. render: (text) => {
  922. return text == 0 ? "否" : "是";
  923. },
  924. },
  925. {
  926. title: "项目类别",
  927. dataIndex: "cname",
  928. key: "cname",
  929. },
  930. {
  931. title: "项目名称",
  932. dataIndex: "commodityName",
  933. key: "commodityName",
  934. },
  935. {
  936. title: "项目数量",
  937. dataIndex: "commodityQuantity",
  938. key: "commodityQuantity",
  939. render: (text, record) => {
  940. if (record.splitStatus == 1) {
  941. return (
  942. <span>
  943. {text}{" "}
  944. <Tag
  945. color="#108ee9"
  946. onClick={(e) => {
  947. e.stopPropagation();
  948. this.showRes(record);
  949. }}
  950. >
  951. 已拆
  952. </Tag>
  953. </span>
  954. );
  955. } else {
  956. return text;
  957. }
  958. },
  959. },
  960. {
  961. title: "服务市价",
  962. dataIndex: "commodityPrice",
  963. key: "commodityPrice",
  964. },
  965. {
  966. title: "证书编号",
  967. dataIndex: "certificateNumber",
  968. key: "certificateNumber",
  969. },
  970. {
  971. title: "项目状态",
  972. dataIndex: "projectStatus",
  973. key: "projectStatus",
  974. render: (text) => {
  975. return getProjectName(text);
  976. },
  977. },
  978. {
  979. title: "项目说明",
  980. dataIndex: "taskComment",
  981. key: "taskComment",
  982. },
  983. // {
  984. // title: "外包(内部)公司",
  985. // dataIndex: "outsourceName",
  986. // key: "outsourceName",
  987. // },
  988. // {
  989. // title: "外包(内部)价格",
  990. // dataIndex: "outsourcePrice",
  991. // key: "outsourcePrice",
  992. // },
  993. ],
  994. };
  995. },
  996. //页面加载函数
  997. componentWillMount() {
  998. this.loadData();
  999. },
  1000. componentWillReceiveProps(nextProps) {
  1001. let next = JSON.stringify(nextProps);
  1002. let props = JSON.stringify(this.props);
  1003. if (next !== props) {
  1004. location.reload();
  1005. }
  1006. },
  1007. //整行点击
  1008. tableRowClick(record) {
  1009. this.setState({
  1010. visible: true,
  1011. orderNos: record.orderNo
  1012. });
  1013. this.xiangqing(record.orderNo);
  1014. this.xiangmu(record.orderNo);
  1015. this.jiedian(record.orderNo);
  1016. this.jiedianNew(record.orderNo);
  1017. },
  1018. //点击打卡项目详情
  1019. tableRowClickX(record) {
  1020. // console.log(record);
  1021. this.setState({
  1022. jid: record.id, //项目ID
  1023. kid: record.commodityId, //商品ID
  1024. commodityName: record.commodityName, //金额
  1025. commodityPrice: record.commodityPrice, //金额
  1026. commodityQuantity: record.commodityQuantity, //数量
  1027. taskComment: record.taskComment, //备注
  1028. main: record.main.toString(), //是否为主要
  1029. addnextVisible: true,
  1030. dataInfor: record,
  1031. addState: 0,
  1032. });
  1033. },
  1034. //项目详情关闭
  1035. nextCancel() {
  1036. this.setState({
  1037. addnextVisible: false,
  1038. });
  1039. },
  1040. //订单详情
  1041. xiangqing(orderNos) {
  1042. $.ajax({
  1043. method: "get",
  1044. dataType: "json",
  1045. crossDomain: false,
  1046. url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
  1047. data: {
  1048. orderNo: orderNos,
  1049. },
  1050. success: function (data) {
  1051. if (data.error.length || data.data.list == "") {
  1052. if (data.error && data.error.length) {
  1053. message.warning(data.error[0].message);
  1054. }
  1055. } else {
  1056. let thisdata = data.data;
  1057. this.setState({
  1058. orderUid: thisdata.uid,
  1059. orderNo: thisdata.orderNo, //订单编号
  1060. contractNo: thisdata.contractNo, //合同编号
  1061. userName: thisdata.userName, //客户名称
  1062. signDate: thisdata.signDate, //签单时间
  1063. examineName: thisdata.examineName,
  1064. processStatus: thisdata.processStatus, //流程状态
  1065. liquidationStatus: thisdata.liquidationStatus, //结算状态
  1066. contacts: thisdata.contacts, //企业联系人
  1067. contactMobile: thisdata.contactMobile, //联系人电话
  1068. legalPerson: thisdata.legalPerson, //法人
  1069. legalPersonTel: thisdata.legalPersonTel, //法人电话
  1070. firstAmount: thisdata.firstAmount, //签单金额
  1071. totalAmount: thisdata.totalAmount, //首付金额
  1072. approval: thisdata.approval, //特批状态
  1073. settlementAmount: thisdata.settlementAmount, //已收款项
  1074. orderRemarks: thisdata.orderRemarks, //订单留言
  1075. orgCodeUrl: thisdata.contractPictureUrl
  1076. ? splitUrl(
  1077. thisdata.contractPictureUrl,
  1078. ",",
  1079. globalConfig.avatarHost + "/upload"
  1080. )
  1081. : [], //图片地址
  1082. replenishUrl: thisdata.agreementUrl
  1083. ? splitUrl(
  1084. thisdata.agreementUrl,
  1085. ",",
  1086. globalConfig.avatarHost + "/upload"
  1087. )
  1088. : [],
  1089. contentUrl: thisdata.serviceContent
  1090. ? splitUrl(
  1091. thisdata.serviceContent,
  1092. ",",
  1093. globalConfig.avatarHost + "/upload"
  1094. )
  1095. : [], //图片地址
  1096. salesmanName: thisdata.salesmanName, //营销员名称
  1097. salesmanMobile: thisdata.salesmanMobile, //营销员电话
  1098. financeName: thisdata.financeName, //财务名称
  1099. financeMobile: thisdata.financeMobile, //财务电话
  1100. outsource: thisdata.outsource == 0 ? "否" : "是",
  1101. deleteSign: thisdata.deleteSign,
  1102. // 高新纯咨询合同说明
  1103. knowledgeServices: thisdata.knowledgeServices, //知识产权服务
  1104. auditServices: thisdata.auditServices, //审计服务
  1105. addDeductionServices: thisdata.addDeductionServices, //加计扣除服务
  1106. knowledgeOther: thisdata.knowledgeOther, //知识产权服务其他描述
  1107. auditOther: thisdata.auditOther, //审计服务其他描述
  1108. addDeductionOther: thisdata.addDeductionOther, //加计扣除服务其他描述
  1109. patentStatus: thisdata.patentStatus, //知识产权情况
  1110. type: thisdata.type,// 特批类型
  1111. typeExplain: thisdata.typeExplain, // 特批类型
  1112. });
  1113. }
  1114. }.bind(this),
  1115. }).always(
  1116. function () {
  1117. this.setState({
  1118. loading: false,
  1119. });
  1120. }.bind(this)
  1121. );
  1122. },
  1123. //项目列表
  1124. xiangmu(orderNos) {
  1125. $.ajax({
  1126. method: "get",
  1127. dataType: "json",
  1128. crossDomain: false,
  1129. url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
  1130. data: {
  1131. orderNo: orderNos,
  1132. },
  1133. success: function (data) {
  1134. let theArr = [];
  1135. if (data.error.length || data.data.list == "") {
  1136. if (data.error && data.error.length) {
  1137. message.warning(data.error[0].message);
  1138. }
  1139. } else {
  1140. for (let i = 0; i < data.data.length; i++) {
  1141. let thisdata = data.data[i];
  1142. thisdata.key = i;
  1143. theArr.push(thisdata);
  1144. }
  1145. }
  1146. this.setState({
  1147. dataSourceX: theArr,
  1148. });
  1149. }.bind(this),
  1150. }).always(
  1151. function () {
  1152. this.setState({
  1153. loading: false,
  1154. });
  1155. }.bind(this)
  1156. );
  1157. },
  1158. rizhi() {
  1159. // console.log(this.state.orderNo);
  1160. this.setState({
  1161. loading: true,
  1162. });
  1163. $.ajax({
  1164. method: "get",
  1165. dataType: "json",
  1166. crossDomain: false,
  1167. url: "/api/admin/newOrder/selectOrderLog",
  1168. data: {
  1169. orderNo: this.state.orderNo,
  1170. },
  1171. success: function (data) {
  1172. let theArr = [];
  1173. let thisData = data.data;
  1174. if (thisData && !thisData.length) {
  1175. if (data.error && data.error.length) {
  1176. message.warning(data.error[0].message);
  1177. }
  1178. thisData = {};
  1179. } else {
  1180. for (let i = 0; i < data.data.length; i++) {
  1181. let thisdata = data.data[i];
  1182. theArr.push({
  1183. processName: thisdata.processName,
  1184. adminName: thisdata.adminName,
  1185. createDate: thisdata.createDate,
  1186. remarks: thisdata.remarks,
  1187. });
  1188. }
  1189. }
  1190. this.setState({
  1191. dataSourcerizhi: theArr,
  1192. });
  1193. }.bind(this),
  1194. }).always(
  1195. function () {
  1196. this.setState({
  1197. loading: false,
  1198. });
  1199. }.bind(this)
  1200. );
  1201. },
  1202. //查看订单日志
  1203. getOrderLog() {
  1204. this.setState({
  1205. rizhivisible: true,
  1206. });
  1207. this.rizhi();
  1208. },
  1209. closeOrderLog() {
  1210. this.setState({
  1211. rizhivisible: false,
  1212. });
  1213. },
  1214. //节点列表
  1215. jiedian(orderNos) {
  1216. $.ajax({
  1217. method: "get",
  1218. dataType: "json",
  1219. crossDomain: false,
  1220. url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
  1221. data: {
  1222. orderNo: orderNos,
  1223. },
  1224. success: function (data) {
  1225. let theArr = [];
  1226. let thisData = [];
  1227. if (data.error.length || data.data.list == "") {
  1228. if (data.error && data.error.length) {
  1229. message.warning(data.error[0].message);
  1230. }
  1231. } else {
  1232. for (let i = 0; i < data.data.length; i++) {
  1233. thisData = data.data[i];
  1234. theArr.push({
  1235. key: i,
  1236. dunSubject: thisData.dunSubject
  1237. ? thisData.dunSubject.toString()
  1238. : "", //催款科目
  1239. id: thisData.id, //节点Id
  1240. money: thisData.money, //催款金额
  1241. dunStatus: thisData.dunStatus, //催款状态
  1242. });
  1243. }
  1244. this.setState({
  1245. contactList: theArr,
  1246. });
  1247. }
  1248. }.bind(this),
  1249. }).always(
  1250. function () {
  1251. this.setState({
  1252. loading: false,
  1253. });
  1254. }.bind(this)
  1255. );
  1256. },
  1257. //查看催款节点
  1258. jiedianNew(orderNos) {
  1259. $.ajax({
  1260. method: "get",
  1261. dataType: "json",
  1262. crossDomain: false,
  1263. url:
  1264. globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun",
  1265. data: {
  1266. orderNo: orderNos,
  1267. },
  1268. success: function (data) {
  1269. if (data.error && data.error.length) {
  1270. message.warning(data.error[0].message);
  1271. } else {
  1272. let theArr = [];
  1273. let thisData = [];
  1274. let arr = data.data || [];
  1275. let totalCui = 0;
  1276. for (let i = 0; i < arr.length; i++) {
  1277. thisData = arr[i];
  1278. totalCui += +thisData.money;
  1279. theArr.push({
  1280. key: i,
  1281. dunSubject: thisData.dunSubject
  1282. ? thisData.dunSubject.toString()
  1283. : "", //催款科目
  1284. id: thisData.id, //节点Id
  1285. money: thisData.money, //催款金额
  1286. // orderNo: record ? record.orderNo : this.props.datauser.orderNo,
  1287. commodityName: thisData.commodityName,
  1288. projectType: thisData.projectType,
  1289. dunTypeName: thisData.dunTypeName,
  1290. status: thisData.status,
  1291. waitDay: thisData.waitDay,
  1292. effectiveCount: thisData.effectiveCount,
  1293. startDate: thisData.startDate,
  1294. dunType: thisData.dunType,
  1295. appropriationRatio: thisData.appropriationRatio,
  1296. customizeName: thisData.customizeName,
  1297. customizeTimes: thisData.customizeTimes,
  1298. tid: thisData.tid,
  1299. });
  1300. }
  1301. if (!totalCui) {
  1302. totalCui = 0;
  1303. }
  1304. totalCui = (Math.round(totalCui * 1000000) / 1000000).toFixed(6);
  1305. this.setState({
  1306. contactListNew: theArr,
  1307. totalCui,
  1308. });
  1309. }
  1310. }.bind(this),
  1311. }).always(
  1312. function () {
  1313. this.setState({
  1314. loading: false,
  1315. });
  1316. }.bind(this)
  1317. );
  1318. },
  1319. //审核通过
  1320. examOk() {
  1321. if (!this.state.reason) {
  1322. message.warning("请填写备注");
  1323. return;
  1324. }
  1325. if (!this.state.reason.replace(/\s+/g, '')) {
  1326. message.warning("请填写备注");
  1327. return;
  1328. }
  1329. this.setState({
  1330. loading: true,
  1331. });
  1332. $.ajax({
  1333. method: "post",
  1334. dataType: "json",
  1335. crossDomain: false,
  1336. url: globalConfig.context + "/api/admin/newOrder/approvalOrder",
  1337. data: {
  1338. orderNo: this.state.orderNo,
  1339. confirm: 2,
  1340. reason: this.state.reason,
  1341. },
  1342. success: function (data) {
  1343. if (data.error.length || data.data.list == "") {
  1344. if (data.error && data.error.length) {
  1345. message.warning(data.error[0].message);
  1346. }
  1347. } else {
  1348. message.success("该特批订单已通过审核~");
  1349. this.setState({
  1350. visible: false,
  1351. });
  1352. this.passCancel();
  1353. this.reset();
  1354. }
  1355. }.bind(this),
  1356. }).always(
  1357. function () {
  1358. this.setState({
  1359. loading: false,
  1360. });
  1361. }.bind(this)
  1362. );
  1363. },
  1364. //审核不通过
  1365. examOks() {
  1366. if (!this.state.reason) {
  1367. message.warning("请填写备注");
  1368. return;
  1369. }
  1370. if (!this.state.reason.replace(/\s+/g, '')) {
  1371. message.warning("请填写备注");
  1372. return;
  1373. }
  1374. this.setState({
  1375. loading: true,
  1376. });
  1377. $.ajax({
  1378. method: "post",
  1379. dataType: "json",
  1380. crossDomain: false,
  1381. url: globalConfig.context + "/api/admin/newOrder/approvalOrder",
  1382. data: {
  1383. orderNo: this.state.orderNo,
  1384. confirm: 3,
  1385. reason: this.state.reason,
  1386. },
  1387. success: function (data) {
  1388. if (data.error.length || data.data.list == "") {
  1389. if (data.error && data.error.length) {
  1390. message.warning(data.error[0].message);
  1391. }
  1392. } else {
  1393. message.success("该特批订单已被驳回~");
  1394. this.setState({
  1395. visible: false,
  1396. noVisible: false,
  1397. reason: "",
  1398. });
  1399. this.loadData();
  1400. this.resets();
  1401. }
  1402. }.bind(this),
  1403. }).always(
  1404. function () {
  1405. this.setState({
  1406. loading: false,
  1407. });
  1408. }.bind(this)
  1409. );
  1410. },
  1411. //点击拒绝
  1412. examNo() {
  1413. this.setState({
  1414. noVisible: true,
  1415. });
  1416. },
  1417. //关闭输入理由框
  1418. noCancel() {
  1419. this.setState({
  1420. noVisible: false,
  1421. reason: "",
  1422. });
  1423. },
  1424. //搜索
  1425. search() {
  1426. this.setState({
  1427. //signBillVisible:false
  1428. });
  1429. this.loadData();
  1430. },
  1431. //重置
  1432. reset() {
  1433. this.setState({
  1434. signBillVisible: false,
  1435. });
  1436. this.state.orderNoSearch = undefined;
  1437. this.state.contractNoSearch = undefined;
  1438. this.state.nameSearch = undefined;
  1439. this.state.liquidationStatusSearch = [];
  1440. this.state.departmenttList = undefined;
  1441. this.state.releaseDate[0] = undefined;
  1442. this.state.releaseDate[1] = undefined;
  1443. this.state.approvalSearch = "1";
  1444. this.Cascaders.empty();
  1445. this.state.approvaType = [];
  1446. this.loadData();
  1447. },
  1448. resets() {
  1449. this.state.orderNo = "";
  1450. this.state.customerName = "";
  1451. this.state.departmenttSearch = undefined;
  1452. this.state.releaseDate[0] = undefined;
  1453. this.state.releaseDate[1] = undefined;
  1454. },
  1455. getOrgCodeUrl(e) {
  1456. this.setState({ orgCodeUrl: e });
  1457. },
  1458. getReplenishUrl(e) {
  1459. this.setState({ replenishUrl: e });
  1460. },
  1461. downImg() {
  1462. let num = 0;
  1463. for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
  1464. if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
  1465. num = i;
  1466. }
  1467. }
  1468. if (num == this.state.orgCodeUrl.length - 1) {
  1469. return message.warning("已经是最后一张了哦");
  1470. }
  1471. this.state.previewImage = this.state.orgCodeUrl[num + 1].url;
  1472. this.setState({
  1473. previewImage: this.state.previewImage,
  1474. rotateDeg: 0,
  1475. });
  1476. },
  1477. upImg() {
  1478. let num = 0;
  1479. for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
  1480. if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
  1481. num = i;
  1482. }
  1483. }
  1484. if (num == 0) {
  1485. return message.warning("已经是第一张了哦");
  1486. }
  1487. this.state.previewImage = this.state.orgCodeUrl[num - 1].url;
  1488. this.setState({
  1489. previewImage: this.state.previewImage,
  1490. rotateDeg: 0,
  1491. });
  1492. },
  1493. rotate() {
  1494. let rotateDeg = this.state.rotateDeg + 90;
  1495. this.setState({
  1496. rotateDeg,
  1497. });
  1498. },
  1499. downImgs() {
  1500. let num = 0;
  1501. for (let i = 0; i < this.state.replenishUrl.length; i++) {
  1502. if (this.state.replenishUrl[i].url == this.state.previewImage) {
  1503. num = i;
  1504. }
  1505. }
  1506. if (num == this.state.replenishUrl.length - 1) {
  1507. return message.warning("已经是最后一张了哦");
  1508. }
  1509. this.state.previewImage = this.state.replenishUrl[num + 1].url;
  1510. this.setState({
  1511. previewImage: this.state.previewImage,
  1512. rotateDeg: 0,
  1513. });
  1514. },
  1515. upImgs() {
  1516. let num = 0;
  1517. for (let i = 0; i < this.state.replenishUrl.length; i++) {
  1518. if (this.state.replenishUrl[i].url == this.state.previewImage) {
  1519. num = i;
  1520. }
  1521. }
  1522. if (num == 0) {
  1523. return message.warning("已经是第一张了哦");
  1524. }
  1525. this.state.previewImage = this.state.replenishUrl[num - 1].url;
  1526. this.setState({
  1527. previewImage: this.state.previewImage,
  1528. rotateDeg: 0,
  1529. });
  1530. },
  1531. rotates() {
  1532. let rotateDeg = this.state.rotateDeg + 90;
  1533. this.setState({
  1534. rotateDeg,
  1535. });
  1536. },
  1537. changeList(arr) {
  1538. const newArr = [];
  1539. this.state.columns.forEach((item) => {
  1540. arr.forEach((val) => {
  1541. if (val === item.title) {
  1542. newArr.push(item);
  1543. }
  1544. });
  1545. });
  1546. this.setState({
  1547. changeList: newArr,
  1548. });
  1549. },
  1550. //关闭详情
  1551. visitCancel() {
  1552. this.setState({
  1553. visible: false,
  1554. });
  1555. this.resets();
  1556. },
  1557. visitOk() {
  1558. this.setState({
  1559. visible: false,
  1560. });
  1561. this.resets();
  1562. },
  1563. waterData() {
  1564. this.state.data = [];
  1565. this.setState({
  1566. loading: true,
  1567. });
  1568. $.ajax({
  1569. method: "get",
  1570. dataType: "json",
  1571. crossDomain: false,
  1572. url: globalConfig.context + "/api/admin/financial/myBillList",
  1573. data: {
  1574. orderNo: this.state.selectedRowKeys[0],
  1575. pageSize: 9999999,
  1576. whoType: 1,
  1577. },
  1578. success: function (data) {
  1579. let theArr = [];
  1580. let waterSum = 0;
  1581. if (!data.data || !data.data.list) {
  1582. if (data.error && data.error.length) {
  1583. message.warning(data.error[0].message);
  1584. }
  1585. } else {
  1586. for (let i = 0; i < data.data.list.length; i++) {
  1587. let thisdata = data.data.list[i];
  1588. waterSum += parseFloat(thisdata.transactionAmount);
  1589. theArr.push({
  1590. key: i,
  1591. orderNo: thisdata.orderNo,
  1592. billNo: thisdata.billNo,
  1593. transactionAmount: thisdata.transactionAmount,
  1594. payeeName: thisdata.payeeName,
  1595. payerName: thisdata.payerName,
  1596. transactionSubject: thisdata.transactionSubject,
  1597. transactionChannel: thisdata.transactionChannel,
  1598. financialPayTimes: thisdata.financialPayTimes,
  1599. financialPayNo: thisdata.financialPayNo,
  1600. createrName: thisdata.createrName,
  1601. saleName: thisdata.saleName,
  1602. createTimes: thisdata.createTimes,
  1603. type: thisdata.type == 0 ? "手工" : "批量",
  1604. });
  1605. }
  1606. }
  1607. this.setState({
  1608. waterData: theArr,
  1609. waterSum: (Math.round(waterSum * 1000000) / 1000000).toFixed(6),
  1610. });
  1611. }.bind(this),
  1612. }).always(
  1613. function () {
  1614. this.setState({
  1615. loading: false,
  1616. });
  1617. }.bind(this)
  1618. );
  1619. },
  1620. waterCanl() {
  1621. this.setState({
  1622. cvisible: false,
  1623. });
  1624. },
  1625. // 拆分详细
  1626. showRes(record) {
  1627. this.setState({
  1628. resVisible: true,
  1629. resRecord: record,
  1630. });
  1631. },
  1632. resCancel() {
  1633. this.setState({
  1634. resVisible: false,
  1635. });
  1636. },
  1637. exportKaip() {
  1638. window.location.href =
  1639. globalConfig.context +
  1640. "/api/admin/receivables/exportInvoice?" +
  1641. `orderNo=${this.state.selectedRowKeys}`;
  1642. },
  1643. exportAll() {
  1644. message.config({
  1645. duration: 20,
  1646. });
  1647. let loading = message.loading("下载中...");
  1648. this.setState({
  1649. exportPendingLoading: true,
  1650. });
  1651. let data = {
  1652. orderNo: this.state.orderNoSearch,
  1653. buyerName: this.state.nameSearch,
  1654. deps: this.state.departmenttList,
  1655. contractNo: this.state.contractNoSearch,
  1656. processStatus: this.state.processStatusSearch,
  1657. };
  1658. $.ajax({
  1659. method: "get",
  1660. dataType: "json",
  1661. crossDomain: false,
  1662. url: "/api/admin/receivables/exportReceivables",
  1663. data,
  1664. success: function (data) {
  1665. if (data.error.length === 0) {
  1666. this.download(data.data);
  1667. } else {
  1668. message.warning(data.error[0].message);
  1669. }
  1670. }.bind(this),
  1671. }).always(
  1672. function () {
  1673. loading();
  1674. this.setState({
  1675. exportPendingLoading: false,
  1676. });
  1677. }.bind(this)
  1678. )
  1679. // window.location.href =
  1680. // globalConfig.context +
  1681. // "/api/admin/receivables/exportReceivables?" +
  1682. // `orderNo=${
  1683. // this.state.orderNoSearch ? this.state.orderNoSearch : ""
  1684. // }&buyerName=${
  1685. // this.state.nameSearch ? this.state.nameSearch : ""
  1686. // }&departmentId=${
  1687. // this.state.departmenttList ? this.state.departmenttList : ""
  1688. // }&contractNo=${
  1689. // this.state.contractNoSearch ? this.state.contractNoSearch : ""
  1690. // }&processStatus=${this.state.processStatusSearch}`;
  1691. },
  1692. // 下载
  1693. download(fileName) {
  1694. window.location.href =
  1695. globalConfig.context + "/open/download?fileName=" + fileName;
  1696. },
  1697. exportWater() {
  1698. window.location.href =
  1699. globalConfig.context +
  1700. "/api/admin/receivables/exportMyBill?" +
  1701. `orderNo=${this.state.selectedRowKeys}&whoType=1`;
  1702. },
  1703. timeData() {
  1704. this.setState({
  1705. loading: true,
  1706. });
  1707. $.ajax({
  1708. method: "get",
  1709. dataType: "json",
  1710. crossDomain: false,
  1711. url: globalConfig.context + "/api/admin/orderProject/taskHoursList",
  1712. data: {
  1713. orderNo: this.state.selectedRowKeys[0],
  1714. pageSize: 9999999,
  1715. },
  1716. success: function (data) {
  1717. let theArr = [];
  1718. if (!data.data || !data.data.list) {
  1719. if (data.error && data.error.length) {
  1720. message.warning(data.error[0].message);
  1721. }
  1722. } else {
  1723. for (let i = 0; i < data.data.list.length; i++) {
  1724. let thisdata = data.data.list[i];
  1725. theArr.push({
  1726. key: i + 1,
  1727. id: thisdata.id, //ID
  1728. orderNo: thisdata.orderNo, //订单编号
  1729. taskName: thisdata.taskName, //任务名称
  1730. userName: thisdata.userName, //客户名称
  1731. cname: thisdata.cname, //项目品类
  1732. taskStatus: thisdata.taskStatus, //任务状态
  1733. receiverName: thisdata.receiverName, //负责人
  1734. hours: thisdata.hours, //任务工时
  1735. depName: thisdata.depName, //派单公司
  1736. contractNo: thisdata.contractNo,
  1737. signTime: thisdata.signTime,
  1738. creteTime: thisdata.creteTime,
  1739. projectStatus: thisdata.projectStatus,
  1740. commodityPrice: thisdata.commodityPrice, //价格
  1741. commodityQuantity: thisdata.commodityQuantity, //数量
  1742. salesmanName: thisdata.salesmanName, //订单负责人
  1743. taskDistributionTime: thisdata.taskDistributionTime,
  1744. taskEndTime: thisdata.taskEndTime,
  1745. outsource: thisdata.outsource,
  1746. });
  1747. }
  1748. }
  1749. this.setState({
  1750. timeDataList: theArr,
  1751. });
  1752. }.bind(this),
  1753. }).always(
  1754. function () {
  1755. this.setState({
  1756. loading: false,
  1757. });
  1758. }.bind(this)
  1759. );
  1760. },
  1761. exportTime() {
  1762. const data = {
  1763. orderNo: this.state.selectedRowKeys[0],
  1764. pageSize: 9999999,
  1765. };
  1766. window.location.href =
  1767. globalConfig.context +
  1768. "/api/admin/orderProject/exportMyTaskList?" +
  1769. $.param(data);
  1770. },
  1771. exportPro() {
  1772. const data = {
  1773. orderNo: this.state.selectedRowKeys[0],
  1774. };
  1775. window.location.href =
  1776. globalConfig.context +
  1777. "/api/admin/newOrder/exportOrderTaskData?" +
  1778. $.param(data);
  1779. },
  1780. exportCui() {
  1781. var data = {
  1782. orderNo: this.state.selectedRowKeys[0]
  1783. ? this.state.selectedRowKeys[0]
  1784. : undefined, //订单编号
  1785. // specially: 1,
  1786. pageSize: 9999999,
  1787. };
  1788. window.location.href =
  1789. globalConfig.context +
  1790. "/api/admin/newOrder/exportOrderDunData?" +
  1791. $.param(data);
  1792. },
  1793. cuiData() {
  1794. this.setState({
  1795. loading: true,
  1796. });
  1797. $.ajax({
  1798. method: "get",
  1799. dataType: "json",
  1800. crossDomain: false,
  1801. url: globalConfig.context + "/api/admin/newOrder/dunOrderNewList",
  1802. data: {
  1803. orderNo: this.state.selectedRowKeys[0],
  1804. pageSize: 9999999,
  1805. },
  1806. success: function (data) {
  1807. let theArr = [];
  1808. if (!data.data || !data.data.list) {
  1809. if (data.error && data.error.length) {
  1810. message.warning(data.error[0].message);
  1811. }
  1812. } else {
  1813. for (let i = 0; i < data.data.list.length; i++) {
  1814. let thisdata = data.data.list[i];
  1815. theArr.push({
  1816. key: i + 1,
  1817. orderNo: thisdata.orderNo,
  1818. contractNo: thisdata.contractNo,
  1819. userName: thisdata.userName,
  1820. buyerName: thisdata.buyerName,
  1821. departmentName: thisdata.departmentName,
  1822. salesmanName: thisdata.salesmanName,
  1823. depName: thisdata.depName,
  1824. orderStatus: thisdata.orderStatus,
  1825. projectStatus: thisdata.projectStatus,
  1826. totalAmount: thisdata.totalAmount,
  1827. liquidationStatus: thisdata.liquidationStatus,
  1828. settlementAmount: thisdata.settlementAmount,
  1829. accountsReceivable: thisdata.accountsReceivable,
  1830. dunSubject: thisdata.dunSubject,
  1831. startDate: thisdata.startDate,
  1832. taskStatus: thisdata.taskStatus,
  1833. cname: thisdata.cname,
  1834. id: thisdata.id,
  1835. taskName: thisdata.taskName,
  1836. hours: thisdata.hours,
  1837. taskDistributionTime: thisdata.taskDistributionTime,
  1838. taskEndTime: thisdata.taskEndTime,
  1839. dunStatus: thisdata.dunStatus == 0 ? "未触发" : "已触发",
  1840. });
  1841. }
  1842. }
  1843. this.setState({
  1844. cuiDataList: theArr,
  1845. });
  1846. }.bind(this),
  1847. }).always(
  1848. function () {
  1849. this.setState({
  1850. loading: false,
  1851. });
  1852. }.bind(this)
  1853. );
  1854. },
  1855. proData() {
  1856. this.setState({
  1857. loading: true,
  1858. });
  1859. $.ajax({
  1860. method: "get",
  1861. dataType: "json",
  1862. crossDomain: false,
  1863. url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
  1864. data: {
  1865. orderNo: this.state.selectedRowKeys[0],
  1866. pageSize: 9999999,
  1867. },
  1868. success: function (data) {
  1869. let theArr = [];
  1870. let totalWaibao = 0;
  1871. if (!data.data) {
  1872. if (data.error && data.error.length) {
  1873. message.warning(data.error[0].message);
  1874. }
  1875. } else {
  1876. for (let i = 0; i < data.data.length; i++) {
  1877. let thisdata = data.data[i];
  1878. totalWaibao += thisdata.outsourcePrice;
  1879. thisdata.key = i + 1;
  1880. theArr.push(thisdata);
  1881. }
  1882. }
  1883. totalWaibao = (Math.round(totalWaibao * 1000000) / 1000000).toFixed(6);
  1884. this.setState({
  1885. proDataList: theArr,
  1886. totalWaibao,
  1887. });
  1888. }.bind(this),
  1889. }).always(
  1890. function () {
  1891. this.setState({
  1892. loading: false,
  1893. });
  1894. }.bind(this)
  1895. );
  1896. },
  1897. inRecordCanl() {
  1898. this.setState({
  1899. bvisible: false,
  1900. });
  1901. },
  1902. inRecordData() {
  1903. this.setState({
  1904. loading: true,
  1905. });
  1906. $.ajax({
  1907. method: "get",
  1908. dataType: "json",
  1909. crossDomain: false,
  1910. url:
  1911. globalConfig.context +
  1912. "/api/admin/orderInvoice/salesmanOrderInvoiceList",
  1913. data: {
  1914. orderNo: this.state.selectedRowKeys[0],
  1915. pageSize: 9999999,
  1916. },
  1917. success: function (data) {
  1918. let theArr = [];
  1919. let sum = 0;
  1920. if (!data.data) {
  1921. if (data.error && data.error.length) {
  1922. message.warning(data.error[0].message);
  1923. }
  1924. } else {
  1925. for (let i = 0; i < data.data.list.length; i++) {
  1926. let thisdata = data.data.list[i];
  1927. sum += parseFloat(thisdata.amount);
  1928. theArr.push({
  1929. id: thisdata.id,
  1930. orderno: thisdata.orderno, //订单编号
  1931. amount: thisdata.amount, //签单金额
  1932. createTime: thisdata.createTime, //流程状态
  1933. status: thisdata.status, //结算状态
  1934. rejectReason: thisdata.rejectReason,
  1935. approval: thisdata.approval,//0非特批 1待审核 2审核通过
  1936. examineName: thisdata.examineName,
  1937. });
  1938. }
  1939. }
  1940. this.setState({
  1941. recordData: theArr,
  1942. sum: sum.toFixed(6),
  1943. });
  1944. }.bind(this),
  1945. }).done(
  1946. function () {
  1947. this.setState({
  1948. loading: false,
  1949. });
  1950. }.bind(this)
  1951. );
  1952. },
  1953. // 通过弹出备注框
  1954. pass() {
  1955. this.setState({
  1956. reason: "",
  1957. passVisible: true,
  1958. });
  1959. },
  1960. passCancel() {
  1961. this.setState({
  1962. reason: "",
  1963. passVisible: false,
  1964. });
  1965. },
  1966. printAll() {
  1967. this.setState({
  1968. dvisible: true,
  1969. });
  1970. this.loadData(1, 9999999);
  1971. },
  1972. // 可展开颜色不同
  1973. addRowColor(record) {
  1974. if (!!record.splitList && record.splitList.length > 0) {
  1975. return 'light'
  1976. } else {
  1977. return 'dark'
  1978. }
  1979. },
  1980. render() {
  1981. const expandedRowRenderVip = (e) => {
  1982. const data = e.splitList;
  1983. let columns = [];
  1984. if (data instanceof Array && data.length) {
  1985. if (e.cSort == 6) {
  1986. columns = [
  1987. {
  1988. title: "负责人",
  1989. dataIndex: "receiverName",
  1990. key: "receiverName",
  1991. width: 140,
  1992. },
  1993. {
  1994. title: "负责人电话",
  1995. dataIndex: "receiverMobile",
  1996. key: "receiverMobile",
  1997. align: "center",
  1998. width: 120,
  1999. },
  2000. {
  2001. title: "会员负责人",
  2002. dataIndex: "projectMemberName",
  2003. key: "projectMemberName",
  2004. width: 140,
  2005. align: "center",
  2006. },
  2007. {
  2008. title: "项目状态",
  2009. dataIndex: "projectStatus",
  2010. key: "projectStatus",
  2011. align: "center",
  2012. width: 100,
  2013. render: (text) => {
  2014. return getProjectName(text);
  2015. },
  2016. },
  2017. {
  2018. title: "本次派单",
  2019. dataIndex: "serviceYear",
  2020. key: "serviceYear",
  2021. width: 80,
  2022. align: "center"
  2023. },
  2024. {
  2025. title: "项目说明",
  2026. dataIndex: "taskComment",
  2027. key: "taskComment",
  2028. render: (text, record) => {
  2029. let textStr = text;
  2030. let textArr = [];
  2031. if (record.htMember === 1) {
  2032. textArr.push("高新会员");
  2033. }
  2034. if (record.additionalDeduction === 1) {
  2035. textArr.push("加计扣除");
  2036. }
  2037. if (record.rdAwardsubsidy === 1) {
  2038. textArr.push("研发奖补");
  2039. }
  2040. if (textArr.length) {
  2041. textStr = `${textArr.join("&")} ${!!text ? `(${text})` : ''}`
  2042. }
  2043. return (
  2044. <Tooltip title={textStr}>
  2045. <div
  2046. // style={{
  2047. // width: 100,
  2048. // overflow: "hidden",
  2049. // whiteSpace: "nowrap",
  2050. // textOverflow: "ellipsis",
  2051. // }}
  2052. >{textStr}</div>
  2053. </Tooltip>
  2054. )
  2055. },
  2056. },
  2057. ];
  2058. } else {
  2059. columns = [
  2060. {
  2061. title: "子项目名称",
  2062. dataIndex: "taskName",
  2063. key: "taskName"
  2064. },
  2065. {
  2066. title: "子项目数量",
  2067. dataIndex: "commodityQuantity",
  2068. key: "commodityQuantity"
  2069. },
  2070. {
  2071. title: "拆分操作人",
  2072. dataIndex: "splitAname",
  2073. key: "splitAname"
  2074. },
  2075. {
  2076. title: "项目负责人",
  2077. dataIndex: "receiverName",
  2078. key: "receiverName"
  2079. },
  2080. {
  2081. title: "拆分时间",
  2082. dataIndex: "splitTimes",
  2083. key: "splitTimes"
  2084. }
  2085. ]
  2086. }
  2087. return (
  2088. <Table
  2089. columns={columns}
  2090. dataSource={data}
  2091. pagination={false}
  2092. />
  2093. );
  2094. } else {
  2095. columns = [];
  2096. return (
  2097. <p
  2098. style={{ fontWeight: "bold", color: "red", textAlign: "center" }}
  2099. >
  2100. {e.cSort == 6 ? "暂无派单" : "此项目暂未拆分"}
  2101. </p>
  2102. );
  2103. }
  2104. };
  2105. const formItemLayout = {
  2106. labelCol: { span: 8 },
  2107. wrapperCol: { span: 14 },
  2108. };
  2109. const FormItem = Form.Item;
  2110. const { RangePicker } = DatePicker;
  2111. const cuiDataList = this.state.contactList || [];
  2112. const rowSelection = {
  2113. selectedRowKeys: this.state.selectedRowKeys,
  2114. onChange: (selectedRowKeys, selectedRows) => {
  2115. this.setState({
  2116. modalVisible: false,
  2117. selectedRows: selectedRows.slice(-1),
  2118. selectedRowKeys: selectedRowKeys.slice(-1),
  2119. });
  2120. },
  2121. onSelect: (recordt) => {
  2122. this.setState({
  2123. modalVisible: false,
  2124. recordt: recordt.id,
  2125. });
  2126. },
  2127. };
  2128. const approvaChildren = approvalOptions.map(i => (
  2129. <Option key={i.value}>{i.label}</Option>
  2130. ));
  2131. return (
  2132. <div className="user-content">
  2133. {this.state.resVisible ? (
  2134. <ResolutionDetail
  2135. cancel={this.resCancel}
  2136. detail={this.state.resRecord}
  2137. visible={this.state.resVisible}
  2138. id={this.state.resRecord.orderNo}
  2139. />
  2140. ) : (
  2141. ""
  2142. )}
  2143. <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} />
  2144. <div className="content-title" style={{ marginBottom: 10 }}>
  2145. <span style={{ fontWeight: 900, fontSize: 16 }}>特批订单审核</span>
  2146. </div>
  2147. <Tabs defaultActiveKey="2" onChange={this.callback} className="test">
  2148. <TabPane tab="更改表格显示数据" key="1">
  2149. <div style={{ marginLeft: 10 }}>
  2150. <ChooseList
  2151. columns={this.state.columns}
  2152. changeFn={this.changeList}
  2153. changeList={this.state.changeList}
  2154. top={55}
  2155. margin={11}
  2156. />
  2157. </div>
  2158. </TabPane>
  2159. <TabPane tab="搜索" key="2">
  2160. <div className="user-search" style={{ marginLeft: 10 }}>
  2161. <Input
  2162. placeholder="订单编号"
  2163. value={this.state.orderNoSearch}
  2164. onChange={(e) => {
  2165. this.setState({ orderNoSearch: e.target.value });
  2166. }}
  2167. />
  2168. <Input
  2169. placeholder="客户名称"
  2170. value={this.state.nameSearch}
  2171. onChange={(e) => {
  2172. this.setState({ nameSearch: e.target.value });
  2173. }}
  2174. />
  2175. <Cascaders
  2176. ref={node => this.Cascaders = node}
  2177. placeholder="订单部门"
  2178. id="id"
  2179. name="name"
  2180. children="list"
  2181. height={28}
  2182. onSel={(e) => {
  2183. this.setState({
  2184. departmenttList: JSON.stringify(e),
  2185. });
  2186. }}
  2187. />
  2188. {/* <DepartmentList
  2189. value={this.state.departmenttList}
  2190. onChange={e => {
  2191. this.setState({ departmenttList: e });
  2192. }} /> */}
  2193. <Input
  2194. placeholder="合同编号"
  2195. value={this.state.contractNoSearch}
  2196. onChange={(e) => {
  2197. this.setState({
  2198. contractNoSearch: e.target.value,
  2199. });
  2200. }}
  2201. />
  2202. <Select
  2203. placeholder="特批状态"
  2204. onChange={(e) => {
  2205. this.setState({ approvalSearch: e });
  2206. }}
  2207. style={{ width: 160, marginRight: 5 }}
  2208. value={this.state.approvalSearch}
  2209. >
  2210. <Option value="1">特批待审核</Option>
  2211. <Option value="2">特批(通过以及驳回)</Option>
  2212. </Select>
  2213. <Select
  2214. placeholder="结算状态"
  2215. onChange={(e) => {
  2216. this.setState({ liquidationStatusSearch: e });
  2217. }}
  2218. style={{ width: 160, marginRight: 5 }}
  2219. value={this.state.liquidationStatusSearch}
  2220. >
  2221. <Option value="0">首付待付清</Option>
  2222. <Option value="1">尾款待付清</Option>
  2223. <Option value="2">已付清</Option>
  2224. </Select>
  2225. <Select
  2226. mode="multiple"
  2227. style={{ width: 200 }}
  2228. placeholder="特批类型"
  2229. value={this.state.approvaType}
  2230. onChange={e => {
  2231. this.setState({
  2232. approvaType: e
  2233. })
  2234. }}
  2235. >
  2236. {approvaChildren}
  2237. </Select>
  2238. <span style={{}}>下单日期:</span>
  2239. <RangePicker
  2240. value={[
  2241. this.state.releaseDate[0]
  2242. ? moment(this.state.releaseDate[0])
  2243. : null,
  2244. this.state.releaseDate[1]
  2245. ? moment(this.state.releaseDate[1])
  2246. : null,
  2247. ]}
  2248. onChange={(data, dataString) => {
  2249. this.setState({ releaseDate: dataString });
  2250. }}
  2251. />
  2252. <Button
  2253. type="primary"
  2254. onClick={this.search}
  2255. style={{ marginLeft: 10 }}
  2256. disabled={this.state.loadingA ? true : false}
  2257. >
  2258. 搜索
  2259. </Button>
  2260. <Button onClick={this.reset}>重置</Button>
  2261. </div>
  2262. </TabPane>
  2263. <TabPane tab="打印" key="3">
  2264. <Button
  2265. type="primary"
  2266. style={{ margin: "11px 0px 10px 10px" }}
  2267. onClick={this.printAll}
  2268. disabled={!this.state.dataSource.length}
  2269. >
  2270. 打印所有列表信息
  2271. </Button>
  2272. <Button
  2273. type="primary"
  2274. disabled={this.state.selectedRowKeys.length != 1}
  2275. style={{ margin: "11px 0px 10px 10px" }}
  2276. onClick={() => {
  2277. this.inRecordData();
  2278. this.setState({
  2279. bvisible: true,
  2280. });
  2281. }}
  2282. >
  2283. 打印开票详情
  2284. </Button>
  2285. <Button
  2286. type="primary"
  2287. disabled={this.state.selectedRowKeys.length != 1}
  2288. style={{ margin: "11px 0px 10px 10px" }}
  2289. onClick={() => {
  2290. this.waterData();
  2291. this.setState({
  2292. cvisible: true,
  2293. });
  2294. }}
  2295. >
  2296. 打印收款流水
  2297. </Button>
  2298. <Button
  2299. type="primary"
  2300. disabled={this.state.selectedRowKeys.length != 1}
  2301. style={{ margin: "11px 0px 10px 10px" }}
  2302. onClick={() => {
  2303. this.timeData();
  2304. this.setState({
  2305. timeVisible: true,
  2306. });
  2307. }}
  2308. >
  2309. 打印工时信息
  2310. </Button>
  2311. <Button
  2312. type="primary"
  2313. disabled={this.state.selectedRowKeys.length != 1}
  2314. style={{ margin: "11px 0px 10px 10px" }}
  2315. onClick={() => {
  2316. this.cuiData();
  2317. this.setState({
  2318. cuiVisible: true,
  2319. });
  2320. }}
  2321. >
  2322. 打印催款信息
  2323. </Button>
  2324. <Button
  2325. type="primary"
  2326. disabled={this.state.selectedRowKeys.length != 1}
  2327. style={{ margin: "11px 0px 10px 10px" }}
  2328. onClick={() => {
  2329. this.proData();
  2330. this.setState({
  2331. proVisible: true,
  2332. });
  2333. }}
  2334. >
  2335. 打印项目信息
  2336. </Button>
  2337. </TabPane>
  2338. <TabPane tab="导出Excel" key="4">
  2339. {/* <Button
  2340. type="primary"
  2341. style={{ margin: "11px 0px 10px 10px" }}
  2342. onClick={this.exportAll}
  2343. >
  2344. 导出当前列表
  2345. </Button> */}
  2346. <Button
  2347. type="primary"
  2348. disabled={this.state.selectedRowKeys.length != 1}
  2349. style={{ margin: "11px 0px 10px 10px" }}
  2350. onClick={this.exportKaip}
  2351. >
  2352. 导出所选开票详情
  2353. </Button>
  2354. <Button
  2355. type="primary"
  2356. disabled={this.state.selectedRowKeys.length != 1}
  2357. style={{ margin: "11px 0px 10px 10px" }}
  2358. onClick={this.exportWater}
  2359. >
  2360. 导出所选收款详情流水
  2361. </Button>
  2362. <Button
  2363. type="primary"
  2364. disabled={this.state.selectedRowKeys.length != 1}
  2365. style={{ margin: "11px 0px 10px 10px" }}
  2366. onClick={this.exportTime}
  2367. >
  2368. 导出所选工时信息
  2369. </Button>
  2370. <Button
  2371. type="primary"
  2372. disabled={this.state.selectedRowKeys.length != 1}
  2373. style={{ margin: "11px 0px 10px 10px" }}
  2374. onClick={this.exportCui}
  2375. >
  2376. 导出催款信息
  2377. </Button>
  2378. <Button
  2379. type="primary"
  2380. disabled={this.state.selectedRowKeys.length != 1}
  2381. style={{ margin: "11px 0px 10px 10px" }}
  2382. onClick={this.exportPro}
  2383. >
  2384. 导出项目详情
  2385. </Button>
  2386. </TabPane>
  2387. <TabPane tab="查看" key="5">
  2388. <Button
  2389. type="primary"
  2390. disabled={this.state.selectedRowKeys.length != 1}
  2391. style={{ margin: "11px 0px 10px 10px" }}
  2392. onClick={() => {
  2393. this.inRecordData();
  2394. this.setState({
  2395. bvisible: true,
  2396. });
  2397. }}
  2398. >
  2399. 查看开票详情
  2400. </Button>
  2401. <Button
  2402. type="primary"
  2403. disabled={this.state.selectedRowKeys.length != 1}
  2404. style={{ margin: "11px 0px 10px 10px" }}
  2405. onClick={() => {
  2406. this.waterData();
  2407. this.setState({
  2408. cvisible: true,
  2409. });
  2410. }}
  2411. >
  2412. 详情收款流水
  2413. </Button>
  2414. <Button
  2415. type="primary"
  2416. disabled={this.state.selectedRowKeys.length != 1}
  2417. style={{ margin: "11px 0px 10px 10px" }}
  2418. onClick={() => {
  2419. this.timeData();
  2420. this.setState({
  2421. timeVisible: true,
  2422. });
  2423. }}
  2424. >
  2425. 工时信息
  2426. </Button>
  2427. <Button
  2428. type="primary"
  2429. disabled={this.state.selectedRowKeys.length != 1}
  2430. style={{ margin: "11px 0px 10px 10px" }}
  2431. onClick={() => {
  2432. this.cuiData();
  2433. this.setState({
  2434. cuiVisible: true,
  2435. });
  2436. }}
  2437. >
  2438. 催款信息
  2439. </Button>
  2440. <Button
  2441. type="primary"
  2442. disabled={this.state.selectedRowKeys.length != 1}
  2443. style={{ margin: "11px 0px 10px 10px" }}
  2444. onClick={() => {
  2445. this.proData();
  2446. this.setState({
  2447. proVisible: true,
  2448. });
  2449. }}
  2450. >
  2451. 项目信息
  2452. </Button>
  2453. </TabPane>
  2454. {/* <TabPane tab="批量操作" key="6">
  2455. <Button
  2456. type="primary"
  2457. disabled={this.state.selectedRowKeys.length == 0}
  2458. style={{ margin: "0px 0px 10px 10px" }}
  2459. onClick={e => {
  2460. e.stopPropagation(),
  2461. this.evaluateY(this.state.selectedRowKeys, "财务专员");
  2462. }}
  2463. >
  2464. 转交
  2465. </Button>
  2466. </TabPane> */}
  2467. </Tabs>
  2468. <div className="user-search">
  2469. <div className="patent-table">
  2470. <Spin spinning={this.state.loading}>
  2471. <Table
  2472. columns={
  2473. this.state.changeList == undefined
  2474. ? this.state.columns
  2475. : this.state.changeList
  2476. }
  2477. dataSource={this.state.dataSource}
  2478. rowSelection={rowSelection}
  2479. pagination={this.state.pagination}
  2480. onRowClick={this.tableRowClick}
  2481. bordered
  2482. size="small"
  2483. />
  2484. </Spin>
  2485. </div>
  2486. {this.state.visible ? <Modal
  2487. maskClosable={false}
  2488. className="customeDetails"
  2489. footer=""
  2490. title="订单详情"
  2491. width="1200px"
  2492. visible={this.state.visible}
  2493. onOk={this.visitOk}
  2494. onCancel={this.visitCancel}
  2495. >
  2496. <Form
  2497. layout="horizontal"
  2498. onSubmit={this.handleSubmit}
  2499. id="demand-form"
  2500. style={{ paddingBottom: "15px" }}
  2501. >
  2502. <Spin spinning={this.state.loading}>
  2503. <div className="clearfix">
  2504. <div style={{ position: "absolute", top: '-52px', left: '81px', zIndex: 10000 }}>
  2505. <OrderItemStatus deleteSign={this.state.deleteSign} />
  2506. </div>
  2507. <FormItem
  2508. className="half-item"
  2509. {...formItemLayout}
  2510. label="订单编号"
  2511. >
  2512. <span>{this.state.orderNo}</span>
  2513. </FormItem>
  2514. <FormItem
  2515. className="half-item"
  2516. {...formItemLayout}
  2517. label="合同编号"
  2518. >
  2519. <span>{this.state.contractNo}</span>
  2520. </FormItem>
  2521. <FormItem
  2522. className="half-item"
  2523. {...formItemLayout}
  2524. label="客户名称"
  2525. >
  2526. <span>
  2527. {this.state.userName}
  2528. <EnterpriseNameChange
  2529. type='journal'
  2530. style={{ marginLeft: 10 }}
  2531. enterpriseId={this.state.orderUid} />
  2532. </span>
  2533. </FormItem>
  2534. <FormItem
  2535. className="half-item"
  2536. {...formItemLayout}
  2537. label="合同签订时间"
  2538. >
  2539. <span>{this.state.signDate}</span>
  2540. </FormItem>
  2541. <FormItem
  2542. className="half-item"
  2543. {...formItemLayout}
  2544. label="流程状态"
  2545. >
  2546. <span>{getProcessStatus(this.state.processStatus, this.state.examineName, this.state.approval)}</span>
  2547. <FlowChart
  2548. orderNo={this.state.orderNos}
  2549. />
  2550. </FormItem>
  2551. <FormItem
  2552. className="half-item"
  2553. {...formItemLayout}
  2554. label="结算状态"
  2555. >
  2556. <span>
  2557. {getLiquidationStatus(this.state.liquidationStatus)}
  2558. </span>
  2559. </FormItem>
  2560. <FormItem
  2561. className="half-item"
  2562. {...formItemLayout}
  2563. label="企业联系人"
  2564. >
  2565. <span>{this.state.contacts}</span>
  2566. </FormItem>
  2567. <FormItem
  2568. className="half-item"
  2569. {...formItemLayout}
  2570. label="联系人电话"
  2571. >
  2572. <span>{this.state.contactMobile}</span>
  2573. </FormItem>
  2574. <FormItem
  2575. className="half-item"
  2576. {...formItemLayout}
  2577. label="企业法人"
  2578. >
  2579. <span>{this.state.legalPerson}</span>
  2580. </FormItem>
  2581. <FormItem
  2582. className="half-item"
  2583. {...formItemLayout}
  2584. label="法人电话"
  2585. >
  2586. <span>{this.state.legalPersonTel}</span>
  2587. </FormItem>
  2588. <FormItem
  2589. className="half-item"
  2590. {...formItemLayout}
  2591. label="签单金额(万元)"
  2592. >
  2593. <span>{this.state.totalAmount}</span>
  2594. </FormItem>
  2595. <FormItem
  2596. className="half-item"
  2597. {...formItemLayout}
  2598. label="首付金额(万元)"
  2599. >
  2600. <span>{this.state.firstAmount}</span>
  2601. </FormItem>
  2602. <FormItem
  2603. className="half-item"
  2604. {...formItemLayout}
  2605. label="特批立项"
  2606. >
  2607. <span>
  2608. {getApprovedState(this.state.approval)}
  2609. {getApprovedType(this.state.type ? this.state.type.split(",").map(Number) : [], this.state.typeExplain, 1)}
  2610. </span>
  2611. </FormItem>
  2612. { this.state.approval > 0 && <div className="clearfix">
  2613. <FormItem
  2614. labelCol={{ span: 5 }}
  2615. wrapperCol={{ span: 19 }}
  2616. label={
  2617. <span className="mandatory" style={{fontSize: '12px'}}>
  2618. 提示
  2619. </span>
  2620. }
  2621. >
  2622. <ApproveTypeTooltip />
  2623. </FormItem>
  2624. </div>
  2625. }
  2626. <FormItem
  2627. className="half-item"
  2628. {...formItemLayout}
  2629. label="已收款项(万元)"
  2630. >
  2631. <span>{this.state.settlementAmount}</span>
  2632. </FormItem>
  2633. <FormItem
  2634. className="half-item"
  2635. {...formItemLayout}
  2636. label="是否外包"
  2637. >
  2638. <span>{this.state.outsource}</span>
  2639. </FormItem>
  2640. <div className="clearfix">
  2641. <FormItem
  2642. labelCol={{ span: 4 }}
  2643. wrapperCol={{ span: 16 }}
  2644. label="订单留言"
  2645. >
  2646. <span>{this.state.orderRemarks}</span>
  2647. </FormItem>
  2648. </div>
  2649. <div className="clearfix">
  2650. <FormItem
  2651. labelCol={{ span: 4 }}
  2652. wrapperCol={{ span: 18 }}
  2653. label={
  2654. <span>
  2655. <strong style={{ color: "#f00" }}>*</strong>
  2656. 合同扫描件
  2657. </span>
  2658. }
  2659. >
  2660. <PicturesWall
  2661. domId={'approveds1'}
  2662. fileList={this.getOrgCodeUrl}
  2663. pictureUrl={this.state.orgCodeUrl}
  2664. />
  2665. <p>图片建议:要清晰。</p>
  2666. <Button
  2667. style={{
  2668. float: "right",
  2669. marginRight: "140px",
  2670. marginTop: "20px",
  2671. }}
  2672. onClick={this.getOrderLog}
  2673. >
  2674. 查看订单日志
  2675. </Button>
  2676. </FormItem>
  2677. {/* 高新纯咨询合同说明详情 */}
  2678. <Gxczx
  2679. knowledgeServices={this.state.knowledgeServices}
  2680. auditServices={this.state.auditServices}
  2681. addDeductionServices={this.state.addDeductionServices}
  2682. knowledgeOther={this.state.knowledgeOther}
  2683. auditOther={this.state.auditOther}
  2684. addDeductionOther={this.state.addDeductionOther}
  2685. />
  2686. <FormItem
  2687. labelCol={{ span: 4 }}
  2688. wrapperCol={{ span: 18 }}
  2689. label={
  2690. <span>
  2691. 补充协议
  2692. </span>
  2693. }
  2694. >
  2695. <PicturesWall
  2696. domId={'approveds2'}
  2697. fileList={this.getReplenishUrl}
  2698. pictureUrl={this.state.replenishUrl}
  2699. url="/api/admin/order/uploadOrderImg"
  2700. sign=""
  2701. />
  2702. <p>图片建议:要清晰。</p>
  2703. </FormItem>
  2704. </div>
  2705. <ContentUrl
  2706. processStatus={2}
  2707. domId={"approContents"}
  2708. contentUrl={this.state.contentUrl}
  2709. imgId={"approContentsImg"}
  2710. />
  2711. <Property
  2712. patentStatus={this.state.patentStatus}
  2713. />
  2714. <div className="clearfix">
  2715. <FormItem
  2716. className="half-item"
  2717. {...formItemLayout}
  2718. label="订单负责人"
  2719. >
  2720. <span>{this.state.salesmanName}</span>
  2721. </FormItem>
  2722. <FormItem
  2723. className="half-item"
  2724. {...formItemLayout}
  2725. label="订单负责人电话"
  2726. >
  2727. <span>{this.state.salesmanMobile}</span>
  2728. </FormItem>
  2729. </div>
  2730. <div className="clearfix">
  2731. <FormItem
  2732. className="half-item"
  2733. {...formItemLayout}
  2734. label="财务负责人"
  2735. >
  2736. <span>{this.state.financeName}</span>
  2737. </FormItem>
  2738. <FormItem
  2739. className="half-item"
  2740. {...formItemLayout}
  2741. label="财务负责人电话"
  2742. >
  2743. <span>{this.state.financeMobile}</span>
  2744. </FormItem>
  2745. </div>
  2746. {/* */}
  2747. <OrderCoor orderNo={this.state.orderNos} />
  2748. <div>
  2749. <span style={{ marginLeft: "50px", fontSize: "18px" }}>
  2750. 项目业务
  2751. </span>
  2752. {this.state.processStatus == 0 ? (
  2753. <Button
  2754. type="primary"
  2755. onClick={this.addDetailed}
  2756. style={{
  2757. float: "right",
  2758. marginRight: "50px",
  2759. marginBottom: "15px",
  2760. }}
  2761. >
  2762. 添加项目明细
  2763. </Button>
  2764. ) : (
  2765. ""
  2766. )}
  2767. </div>
  2768. <div className="patent-table">
  2769. <Spin spinning={this.state.loading}>
  2770. <Table
  2771. columns={this.state.columnsX}
  2772. dataSource={this.state.dataSourceX}
  2773. pagination={this.state.paginations}
  2774. onRowClick={this.tableRowClickX}
  2775. expandedRowRender={expandedRowRenderVip}
  2776. rowClassName={this.addRowColor}
  2777. bordered
  2778. size="small"
  2779. />
  2780. </Spin>
  2781. </div>
  2782. <div style={{ marginTop: 10 }}>
  2783. <span style={{ marginLeft: 50, fontSize: "18px" }}>
  2784. 催款节点
  2785. </span>
  2786. <span
  2787. style={{
  2788. display: cuiDataList.length ? "none" : "inline-block",
  2789. marginLeft: 10,
  2790. color: "red",
  2791. }}
  2792. >
  2793. 金额总计(万元): {this.state.totalCui}
  2794. </span>
  2795. </div>
  2796. <div className="clearfix">
  2797. <Spin spinning={this.state.loading}>
  2798. <Form layout="horizontal" id="demand-form">
  2799. <Table
  2800. pagination={false}
  2801. bordered
  2802. size="small"
  2803. columns={
  2804. cuiDataList.length
  2805. ? this.state.ContactsLists
  2806. : this.state.ContactsListsNew
  2807. }
  2808. dataSource={
  2809. cuiDataList.length
  2810. ? this.state.contactList
  2811. : this.state.contactListNew
  2812. }
  2813. />
  2814. <Col
  2815. span={24}
  2816. offset={9}
  2817. style={{ marginTop: "15px" }}
  2818. />
  2819. </Form>
  2820. </Spin>
  2821. </div>
  2822. {(this.state.approval === 1 || this.state.approval === 4 || this.state.approval === 7) &&
  2823. <div className="addSave" style={{ display: "flex", justifyContent: "center" }}>
  2824. <Button
  2825. className="cancel"
  2826. type="primary"
  2827. onClick={this.pass}
  2828. style={{ margin: 25 }}
  2829. htmlType="submit"
  2830. >
  2831. 通过
  2832. </Button>
  2833. <Button
  2834. className="cancel"
  2835. type="primary"
  2836. onClick={this.examNo}
  2837. style={{ margin: 25 }}
  2838. htmlType="submit"
  2839. >
  2840. 驳回
  2841. </Button>
  2842. <Button
  2843. className="cancel"
  2844. type="ghost"
  2845. onClick={this.visitCancel}
  2846. style={{ margin: 25 }}
  2847. >
  2848. 取消
  2849. </Button>
  2850. </div>}
  2851. </div>
  2852. </Spin>
  2853. </Form>
  2854. </Modal> : <div />}
  2855. {this.state.noVisible ? <Modal
  2856. maskClosable={false}
  2857. visible={this.state.noVisible}
  2858. onOk={this.noCancel}
  2859. onCancel={this.noCancel}
  2860. width="400px"
  2861. title={"拒绝理由"}
  2862. footer=""
  2863. className="admin-desc-content"
  2864. >
  2865. <Form layout="horizontal" id="demand-form">
  2866. <Spin spinning={this.state.loading}>
  2867. <div className="clearfix">
  2868. <FormItem
  2869. labelCol={{ span: 4 }}
  2870. wrapperCol={{ span: 16 }}
  2871. label="拒绝理由"
  2872. >
  2873. <Input
  2874. type="textarea"
  2875. placeholder="请输入拒绝理由"
  2876. rows={4}
  2877. value={this.state.reason}
  2878. onChange={(e) => {
  2879. this.setState({ reason: e.target.value });
  2880. }}
  2881. />
  2882. </FormItem>
  2883. </div>
  2884. <div className="clearfix">
  2885. <Button
  2886. className="cancel"
  2887. type="primary"
  2888. onClick={this.examOks}
  2889. style={{ marginLeft: "50px" }}
  2890. htmlType="submit"
  2891. >
  2892. 确定
  2893. </Button>
  2894. <Button
  2895. className="cancel"
  2896. type="ghost"
  2897. onClick={this.noCancel}
  2898. style={{ marginLeft: "50px" }}
  2899. >
  2900. 取消
  2901. </Button>
  2902. </div>
  2903. </Spin>
  2904. </Form>
  2905. </Modal> : <div />}
  2906. {this.state.passVisible ? <Modal
  2907. maskClosable={false}
  2908. visible={this.state.passVisible}
  2909. onOk={this.passCancel}
  2910. onCancel={this.passCancel}
  2911. width="400px"
  2912. title={"同意理由"}
  2913. footer=""
  2914. className="admin-desc-content"
  2915. >
  2916. <Form layout="horizontal">
  2917. <Spin spinning={this.state.loading}>
  2918. <div className="clearfix">
  2919. <FormItem
  2920. labelCol={{ span: 4 }}
  2921. wrapperCol={{ span: 16 }}
  2922. label="同意备注"
  2923. >
  2924. <Input
  2925. type="textarea"
  2926. placeholder="请输入备注"
  2927. rows={4}
  2928. value={this.state.reason}
  2929. onChange={(e) => {
  2930. this.setState({ reason: e.target.value });
  2931. }}
  2932. />
  2933. </FormItem>
  2934. </div>
  2935. <div className="clearfix">
  2936. <Button
  2937. className="cancel"
  2938. type="primary"
  2939. onClick={this.examOk}
  2940. style={{ marginLeft: "50px" }}
  2941. htmlType="submit"
  2942. >
  2943. 确定
  2944. </Button>
  2945. <Button
  2946. className="cancel"
  2947. type="ghost"
  2948. onClick={this.passCancel}
  2949. style={{ marginLeft: "50px" }}
  2950. >
  2951. 取消
  2952. </Button>
  2953. </div>
  2954. </Spin>
  2955. </Form>
  2956. </Modal> : <div />}
  2957. {this.state.rizhivisible ? <Modal
  2958. visible={this.state.rizhivisible}
  2959. className="admin-desc-content"
  2960. width="800px"
  2961. maskClosable={false}
  2962. title="订单日志"
  2963. footer={null}
  2964. onCancel={this.closeOrderLog}
  2965. >
  2966. <div className="patent-table">
  2967. <Spin spinning={this.state.loading}>
  2968. <Table
  2969. columns={this.state.columnsrizhi}
  2970. dataSource={this.state.dataSourcerizhi}
  2971. pagination={false}
  2972. bordered
  2973. size="small"
  2974. />
  2975. </Spin>
  2976. </div>
  2977. </Modal> : <div />}
  2978. {this.state.dvisible ? <Modal
  2979. maskClosable={false}
  2980. visible={this.state.dvisible}
  2981. footer=""
  2982. title="所有列表信息"
  2983. className="admin-desc-content"
  2984. width="1400px"
  2985. onCancel={() => {
  2986. // this.loadData();
  2987. this.setState({
  2988. dvisible: false,
  2989. });
  2990. }}
  2991. >
  2992. <Spin spinning={this.state.loading}>
  2993. <div
  2994. className="patent-table"
  2995. style={{
  2996. // width: 900,
  2997. // position: "relative",
  2998. // left: "50%",
  2999. // transform: "translate(-50%)",
  3000. padding: "25px 0 30px 30px",
  3001. }}
  3002. ref={(e) => {
  3003. this.refs.all = e;
  3004. }}
  3005. >
  3006. <Table
  3007. columns={this.state.columns}
  3008. dataSource={this.state.dataSource}
  3009. pagination={false}
  3010. bordered
  3011. size="small"
  3012. />
  3013. </div>
  3014. </Spin>
  3015. <ReactToPrint
  3016. trigger={() => (
  3017. <Button
  3018. type="primary"
  3019. style={{
  3020. float: "right",
  3021. marginTop: 10,
  3022. position: "absolute",
  3023. top: 0,
  3024. right: 30,
  3025. }}
  3026. >
  3027. 打印
  3028. </Button>
  3029. )}
  3030. content={() => this.refs.all}
  3031. />
  3032. </Modal> : <div />}
  3033. {this.state.bvisible ? <Modal
  3034. maskClosable={false}
  3035. visible={this.state.bvisible}
  3036. footer=""
  3037. title="开票历史记录"
  3038. className="admin-desc-content"
  3039. width="1200px"
  3040. onCancel={this.inRecordCanl}
  3041. >
  3042. <Spin spinning={this.state.loading}>
  3043. <div
  3044. className="patent-table"
  3045. ref={(e) => {
  3046. this.refs.kaiPiao = e;
  3047. }}
  3048. >
  3049. <Table
  3050. columns={this.state.columnsDate}
  3051. dataSource={this.state.recordData}
  3052. pagination={false}
  3053. bordered
  3054. size="small"
  3055. />
  3056. <div className="clearfix" style={{ marginTop: "20px" }}>
  3057. <FormItem
  3058. className="half-item"
  3059. {...formItemLayout}
  3060. label={<span style={{ fontSize: "14px" }}>开票总计</span>}
  3061. >
  3062. <span>{this.state.sum + "(万元)"}</span>
  3063. </FormItem>
  3064. </div>
  3065. <ReactToPrint
  3066. trigger={() => (
  3067. <Button
  3068. type="primary"
  3069. style={{
  3070. float: "right",
  3071. // marginTop: 10,
  3072. position: "absolute",
  3073. top: -54,
  3074. right: 30,
  3075. }}
  3076. >
  3077. 打印
  3078. </Button>
  3079. )}
  3080. content={() => this.refs.kaiPiao}
  3081. />
  3082. </div>
  3083. </Spin>
  3084. </Modal> : <div />}
  3085. {this.state.cvisible ? <Modal
  3086. maskClosable={false}
  3087. visible={this.state.cvisible}
  3088. footer=""
  3089. title="详细收款流水"
  3090. className="admin-desc-content"
  3091. width="1300px"
  3092. onCancel={this.waterCanl}
  3093. >
  3094. <Spin spinning={this.state.loading}>
  3095. <div
  3096. className="patent-table"
  3097. ref={(e) => {
  3098. this.refs.shouKuan = e;
  3099. }}
  3100. >
  3101. <Table
  3102. columns={this.state.waterlistDate}
  3103. dataSource={this.state.waterData}
  3104. pagination={false}
  3105. bordered
  3106. size="small"
  3107. />
  3108. <div className="clearfix" style={{ marginTop: "20px" }}>
  3109. <FormItem
  3110. className="half-item"
  3111. {...formItemLayout}
  3112. label={<span style={{ fontSize: "14px" }}>总计金额</span>}
  3113. >
  3114. <span>{this.state.waterSum + "(万元)"}</span>
  3115. </FormItem>
  3116. </div>
  3117. <ReactToPrint
  3118. trigger={() => (
  3119. <Button
  3120. type="primary"
  3121. style={{
  3122. float: "right",
  3123. position: "absolute",
  3124. top: -54,
  3125. right: 30,
  3126. }}
  3127. >
  3128. 打印
  3129. </Button>
  3130. )}
  3131. content={() => this.refs.shouKuan}
  3132. />
  3133. </div>
  3134. </Spin>
  3135. </Modal> : <div />}
  3136. {this.state.timeVisible ? <Modal
  3137. maskClosable={false}
  3138. visible={this.state.timeVisible}
  3139. footer=""
  3140. title="工时详情"
  3141. className="admin-desc-content"
  3142. width="1300px"
  3143. pagination={false}
  3144. onCancel={() => {
  3145. // this.loadData();
  3146. this.setState({
  3147. timeVisible: false,
  3148. });
  3149. }}
  3150. >
  3151. <Spin spinning={this.state.loading}>
  3152. <div
  3153. className="patent-table"
  3154. style={
  3155. {
  3156. // width: 900,
  3157. // position: "relative",
  3158. // left: "50%",
  3159. // transform: "translate(-50%)",
  3160. // padding: "25px 0 30px 30px"
  3161. }
  3162. }
  3163. ref={(e) => {
  3164. this.refs.all = e;
  3165. }}
  3166. >
  3167. <Table
  3168. columns={this.state.timeColumns}
  3169. dataSource={this.state.timeDataList}
  3170. scroll={{ x: "max-content", y: 0 }}
  3171. pagination={false}
  3172. bordered
  3173. size="small"
  3174. />
  3175. </div>
  3176. </Spin>
  3177. <ReactToPrint
  3178. trigger={() => (
  3179. <Button
  3180. type="primary"
  3181. style={{
  3182. float: "right",
  3183. marginTop: 10,
  3184. position: "absolute",
  3185. top: 0,
  3186. right: 30,
  3187. }}
  3188. >
  3189. 打印
  3190. </Button>
  3191. )}
  3192. content={() => this.refs.all}
  3193. />
  3194. </Modal> : <div />}
  3195. {this.state.cuiVisible ? <Modal
  3196. maskClosable={false}
  3197. visible={this.state.cuiVisible}
  3198. footer=""
  3199. title="催款详情"
  3200. className="admin-desc-content"
  3201. width="1300px"
  3202. pagination={false}
  3203. onCancel={() => {
  3204. // this.loadData();
  3205. this.setState({
  3206. cuiVisible: false,
  3207. });
  3208. }}
  3209. >
  3210. <Spin spinning={this.state.loading}>
  3211. <div
  3212. className="patent-table"
  3213. style={
  3214. {
  3215. // width: 900,
  3216. // position: "relative",
  3217. // left: "50%",
  3218. // transform: "translate(-50%)",
  3219. // padding: "25px 0 30px 30px"
  3220. }
  3221. }
  3222. ref={(e) => {
  3223. this.refs.all = e;
  3224. }}
  3225. >
  3226. <Table
  3227. columns={this.state.cuiColumns}
  3228. dataSource={this.state.cuiDataList}
  3229. scroll={{ x: "max-content", y: 0 }}
  3230. pagination={false}
  3231. bordered
  3232. size="small"
  3233. />
  3234. </div>
  3235. </Spin>
  3236. <ReactToPrint
  3237. trigger={() => (
  3238. <Button
  3239. type="primary"
  3240. style={{
  3241. float: "right",
  3242. marginTop: 10,
  3243. position: "absolute",
  3244. top: 0,
  3245. right: 30,
  3246. }}
  3247. >
  3248. 打印
  3249. </Button>
  3250. )}
  3251. content={() => this.refs.all}
  3252. />
  3253. </Modal> : <div />}
  3254. {this.state.proVisible ? <Modal
  3255. maskClosable={false}
  3256. visible={this.state.proVisible}
  3257. footer=""
  3258. title="项目详情"
  3259. className="admin-desc-content"
  3260. width="1300px"
  3261. pagination={false}
  3262. onCancel={() => {
  3263. // this.loadData();
  3264. this.setState({
  3265. proVisible: false,
  3266. });
  3267. }}
  3268. >
  3269. <Spin spinning={this.state.loading}>
  3270. <Project
  3271. record={this.state.record}
  3272. visible={this.state.pvisible}
  3273. cancel={() => {
  3274. this.setState({ pvisible: false });
  3275. }}
  3276. />
  3277. <div
  3278. className="patent-table"
  3279. style={
  3280. {
  3281. // width: 900,
  3282. // position: "relative",
  3283. // left: "50%",
  3284. // transform: "translate(-50%)",
  3285. // padding: "25px 0 30px 30px"
  3286. }
  3287. }
  3288. ref={(e) => {
  3289. this.refs.all = e;
  3290. }}
  3291. >
  3292. <Table
  3293. columns={this.state.proColumns}
  3294. dataSource={this.state.proDataList}
  3295. // onRowClick={this.tableRowClickPro}
  3296. pagination={false}
  3297. bordered
  3298. size="small"
  3299. />
  3300. </div>
  3301. <span style={{ display: "block", marginTop: 10, color: "red" }}>
  3302. 外包(内部)价格总计(万元):{this.state.totalWaibao}
  3303. </span>
  3304. </Spin>
  3305. <ReactToPrint
  3306. trigger={() => (
  3307. <Button
  3308. type="primary"
  3309. style={{
  3310. float: "right",
  3311. marginTop: 10,
  3312. position: "absolute",
  3313. top: 0,
  3314. right: 30,
  3315. }}
  3316. >
  3317. 打印
  3318. </Button>
  3319. )}
  3320. content={() => this.refs.all}
  3321. />
  3322. </Modal> : <div />}
  3323. </div>
  3324. {/* {this.state.addnextVisible &&
  3325. <ProjectDetailsReadOnly
  3326. infor={this.state.dataInfor}
  3327. visible={this.state.addnextVisible}
  3328. onCancel={this.nextCancel}
  3329. />} */}
  3330. {
  3331. // 项目业务详情
  3332. this.state.addnextVisible &&
  3333. <NewEditProject
  3334. readOnly={
  3335. this.state.dataInfor &&
  3336. Object.keys(this.state.dataInfor).length > 0 &&
  3337. this.state.processStatus !== 0
  3338. }
  3339. visible={this.state.addnextVisible}
  3340. dataInfor={this.state.dataInfor}
  3341. onCancel={this.nextCancel}
  3342. />
  3343. }
  3344. </div>
  3345. );
  3346. },
  3347. })
  3348. );
  3349. export default IntentionCustomer;