approveds.jsx 107 KB

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