taskCount.jsx 79 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304
  1. import React from 'react';
  2. import { Button, Input, Spin, Table, message,DatePicker, Upload, Form ,Modal,Tabs, Select, Tag} from 'antd';
  3. import $ from 'jquery/src/ajax';
  4. import moment from 'moment';
  5. import {
  6. getLiquidationStatus,
  7. getProcessStatus,
  8. splitUrl,
  9. getboutique,
  10. getTaskStatus,
  11. getApproval,
  12. getprovince,
  13. ShowModal,
  14. getProjectStatus,
  15. getProjectName
  16. } from "@/tools.js";
  17. import ShowModalDiv from "@/showModal.jsx";
  18. import ResolutionDetail from "@/resolutionDetail";
  19. import OrderRiZi from "@/orderRiZi.jsx";
  20. import {ChooseList} from "../../order/orderNew/chooseList";
  21. import PatentSchedule from './patentSchedule';
  22. import DeclarationProgress from "../../../common/declarationProgress";
  23. const {TabPane} = Tabs
  24. const IntentionCustomer = Form.create()(
  25. React.createClass({
  26. loadData(pageNo) {
  27. this.setState({
  28. visitModul: false,
  29. loadingA: true,
  30. ispage: pageNo,
  31. modalVisible: false
  32. });
  33. let nameText = this.state.SuperArr;
  34. let superText =
  35. this.state.cid && typeof this.state.cid != "object"
  36. ? nameText[parseInt(this.state.cid)].id
  37. : "";
  38. if (superText) {
  39. $.ajax({
  40. method: "get",
  41. dataType: "json",
  42. crossDomain: false,
  43. url: globalConfig.context + "/api/admin/orderProject/taskHoursList",
  44. data: {
  45. pageNo: pageNo || 1,
  46. pageSize: this.state.pagination.pageSize,
  47. name: this.state.customerName, //名称
  48. taskId: this.state.idSearch, //订单编号
  49. orderNo: this.state.orderNoSearch,
  50. starTime: this.state.releaseDate[0], //开始时间
  51. endTime: this.state.releaseDate[1], //结束时间
  52. contractNo: this.state.contractNoSearch,
  53. cid: superText, //业务分类
  54. depId: this.state.departmenttList, //部门ID
  55. outsource: this.state.outsourceSearch
  56. },
  57. success: function(data) {
  58. let theArr = [];
  59. if (data.error.length || data.data.list == "") {
  60. if (data.error && data.error.length) {
  61. message.warning(data.error[0].message);
  62. }
  63. } else {
  64. for (let i = 0; i < data.data.list.length; i++) {
  65. let thisdata = data.data.list[i];
  66. theArr.push({
  67. key: i,
  68. id: thisdata.id, //ID
  69. orderNo: thisdata.orderNo, //订单编号
  70. taskName: thisdata.taskName, //任务名称
  71. userName: thisdata.userName, //客户名称
  72. cname: thisdata.cname, //项目品类
  73. taskStatus: thisdata.taskStatus, //任务状态
  74. receiverName: thisdata.receiverName, //负责人
  75. hours: thisdata.hours, //任务工时
  76. depName: thisdata.depName, //派单公司
  77. contractNo: thisdata.contractNo,
  78. signTime: thisdata.signTime,
  79. creteTime: thisdata.creteTime,
  80. projectStatus: thisdata.projectStatus,
  81. commodityPrice: thisdata.commodityPrice, //价格
  82. commodityQuantity: thisdata.commodityQuantity, //数量
  83. salesmanName: thisdata.salesmanName, //订单负责人
  84. taskDistributionTime: thisdata.taskDistributionTime,
  85. taskEndTime: thisdata.taskEndTime,
  86. outsource: thisdata.outsource,
  87. splitStatus: thisdata.splitStatus,
  88. splitSuper: thisdata.splitSuper,
  89. splitId: thisdata.splitId
  90. });
  91. }
  92. this.state.pagination.total = data.data.totalCount;
  93. this.state.pagination.current = data.data.pageNo;
  94. }
  95. if (data.data && data.data.list && !data.data.list.length) {
  96. this.state.pagination.total = 0;
  97. }
  98. this.setState({
  99. dataSource: theArr,
  100. pageNo: pageNo,
  101. pagination: this.state.pagination,
  102. selectedRowKeys: []
  103. });
  104. }.bind(this)
  105. }).always(
  106. function() {
  107. this.setState({
  108. loadingA: false
  109. });
  110. }.bind(this)
  111. );
  112. } else {
  113. $.ajax({
  114. method: "get",
  115. dataType: "json",
  116. crossDomain: false,
  117. url: globalConfig.context + "/api/admin/orderProject/taskHoursList",
  118. data: {
  119. pageNo: pageNo || 1,
  120. pageSize: this.state.pagination.pageSize,
  121. name: this.state.customerName, //名称
  122. taskId: this.state.idSearch, //订单编号
  123. orderNo: this.state.orderNoSearch,
  124. starTime: this.state.releaseDate[0], //开始时间
  125. endTime: this.state.releaseDate[1], //结束时间
  126. contractNo: this.state.contractNoSearch,
  127. depId: this.state.departmenttList, //部门ID
  128. outsource: this.state.outsourceSearch
  129. },
  130. success: function(data) {
  131. let theArr = [];
  132. if (data.error.length || data.data.list == "") {
  133. if (data.error && data.error.length) {
  134. message.warning(data.error[0].message);
  135. }
  136. } else {
  137. for (let i = 0; i < data.data.list.length; i++) {
  138. let thisdata = data.data.list[i];
  139. thisdata.key = i;
  140. theArr.push(thisdata);
  141. }
  142. this.state.pagination.total = data.data.totalCount;
  143. this.state.pagination.current = data.data.pageNo;
  144. }
  145. if (data.data && data.data.list && !data.data.list.length) {
  146. this.state.pagination.total = 0;
  147. }
  148. this.setState({
  149. dataSource: theArr,
  150. pageNo: pageNo,
  151. pagination: this.state.pagination,
  152. selectedRowKeys: []
  153. });
  154. }.bind(this)
  155. }).always(
  156. function() {
  157. this.setState({
  158. loadingA: false
  159. });
  160. }.bind(this)
  161. );
  162. }
  163. },
  164. getInitialState() {
  165. return {
  166. page: 1,
  167. releaseDate: [],
  168. selectedRowKeys: [],
  169. timeRecordparse:{},
  170. orgCodeUrl: [],
  171. loadingA: false,
  172. paginations: false,
  173. pagination: {
  174. defaultCurrent: 1,
  175. defaultPageSize: 10,
  176. showQuickJumper: true,
  177. pageSize: 10,
  178. onChange: function(page) {
  179. this.loadData(page);
  180. }.bind(this),
  181. showTotal: function(total) {
  182. return "共" + total + "条数据";
  183. }
  184. },
  185. columns: [
  186. {
  187. title: "合同编号",
  188. dataIndex: "contractNo",
  189. key: "contractNo"
  190. },
  191. {
  192. title: "订单编号",
  193. dataIndex: "orderNo",
  194. key: "orderNo"
  195. },
  196. {
  197. title: "项目编号",
  198. dataIndex: "id",
  199. key: "id",
  200. render: (text, record) => {
  201. if (record.splitStatus == 2) {
  202. return <span>{record.splitSuper + "-" + record.splitId}</span>;
  203. } else {
  204. return text;
  205. }
  206. }
  207. },
  208. {
  209. title: "客户名称",
  210. dataIndex: "userName",
  211. key: "userName",
  212. render: text => {
  213. return text && text.length > 9 ? text.substr(0, 9) + "..." : text;
  214. }
  215. },
  216. {
  217. title: "订单部门",
  218. dataIndex: "depName",
  219. key: "depName"
  220. },
  221. {
  222. title: "订单负责人",
  223. dataIndex: "salesmanName",
  224. key: "salesmanName"
  225. },
  226. {
  227. title: "项目类别",
  228. dataIndex: "cname",
  229. key: "cname"
  230. },
  231. {
  232. title: "项目名称",
  233. dataIndex: "taskName",
  234. key: "taskName"
  235. },
  236. {
  237. title: "项目负责人",
  238. dataIndex: "receiverName",
  239. key: "receiverName"
  240. },
  241. {
  242. title: "项目价格(万元)",
  243. dataIndex: "commodityPrice",
  244. key: "commodityPrice"
  245. },
  246. {
  247. title: "实际成本(万元)",
  248. dataIndex: "costAmount",
  249. key: "costAmount"
  250. },
  251. {
  252. title: "已付成本(万元)",
  253. dataIndex: "partyAmount",
  254. key: "partyAmount"
  255. },
  256. {
  257. title: "数量(个)",
  258. dataIndex: "commodityQuantity",
  259. key: "commodityQuantity"
  260. },
  261. {
  262. title: "任务状态",
  263. dataIndex: "taskStatus",
  264. key: "taskStatus",
  265. render: text => {
  266. return getTaskStatus(text);
  267. }
  268. },
  269. {
  270. title: "项目状态",
  271. dataIndex: "projectStatus",
  272. key: "projectStatus",
  273. render: text => {
  274. return getProjectName(text);
  275. }
  276. },
  277. {
  278. title: "工时",
  279. dataIndex: "hours",
  280. key: "hours"
  281. },
  282. {
  283. title: "是否外包",
  284. dataIndex: "outsource",
  285. key: "outsource",
  286. render: text => {
  287. if (text == 0) {
  288. return "否";
  289. } else if (text == 1) {
  290. return "是";
  291. }
  292. }
  293. },
  294. {
  295. title: "签单日期",
  296. dataIndex: "signTime",
  297. key: "signTime"
  298. },
  299. {
  300. title: "派单日期",
  301. dataIndex: "creteTime",
  302. key: "creteTime"
  303. },
  304. {
  305. title: "分配时间",
  306. dataIndex: "taskDistributionTime",
  307. key: "taskDistributionTime"
  308. },
  309. {
  310. title: "完成时间",
  311. dataIndex: "taskEndTime",
  312. key: "taskEndTime"
  313. }
  314. ],
  315. data: [],
  316. dataSource: [],
  317. columnsX: [
  318. {
  319. title: "业务项目名称",
  320. dataIndex: "commodityName",
  321. key: "commodityName"
  322. },
  323. {
  324. title: "项目类别",
  325. dataIndex: "cname",
  326. key: "cname"
  327. },
  328. {
  329. title: "项目数量",
  330. dataIndex: "commodityQuantity",
  331. key: "commodityQuantity",
  332. render: (text, record) => {
  333. if (record.splitStatus == 1) {
  334. return (
  335. <span>
  336. {text}{" "}
  337. <Tag
  338. color="#108ee9"
  339. onClick={e => {
  340. e.stopPropagation();
  341. this.showRes(record);
  342. }}
  343. >
  344. 已拆
  345. </Tag>
  346. </span>
  347. );
  348. } else {
  349. return text;
  350. }
  351. }
  352. },
  353. {
  354. title: "金额(万元)",
  355. dataIndex: "commodityPrice",
  356. key: "commodityPrice"
  357. },
  358. {
  359. title: "负责人",
  360. dataIndex: "contacts",
  361. key: "contacts"
  362. },
  363. {
  364. title: "负责人电话",
  365. dataIndex: "contactsMobile",
  366. key: "contactsMobile"
  367. },
  368. {
  369. title: "主要项目",
  370. dataIndex: "main",
  371. key: "main",
  372. render: text => {
  373. return text ? "是" : "否";
  374. }
  375. },
  376. {
  377. title: "项目说明",
  378. dataIndex: "taskComment",
  379. key: "taskComment",
  380. render: text => {
  381. return text && text.length > 8 ? text.substr(0, 8) + "…" : text;
  382. }
  383. }
  384. ],
  385. columnsA: [
  386. {
  387. title: "流程",
  388. dataIndex: "content",
  389. key: "content",
  390. align: "center"
  391. },
  392. {
  393. title: "操作人",
  394. dataIndex: "aName",
  395. key: "aName",
  396. align: "center"
  397. },
  398. {
  399. title: "时间",
  400. dataIndex: "createTimes",
  401. key: "createTimes",
  402. align: "center"
  403. }
  404. ],
  405. dataSourceX: [],
  406. dataSourceA: [],
  407. ContactsLists: [
  408. {
  409. title: "批次",
  410. dataIndex: "num",
  411. key: "num"
  412. },
  413. {
  414. title: "下证时间",
  415. dataIndex: "licenceTimes",
  416. key: "licenceTimes"
  417. },
  418. {
  419. title: "下证数量",
  420. dataIndex: "alreadyNumber",
  421. key: "alreadyNumber"
  422. },
  423. {
  424. title: "未下证数量",
  425. dataIndex: "notCount",
  426. key: "notCount"
  427. }
  428. ]
  429. };
  430. },
  431. departmentList() {
  432. this.setState({
  433. loading: true
  434. });
  435. $.ajax({
  436. method: "get",
  437. dataType: "json",
  438. crossDomain: false,
  439. url: globalConfig.context + "/api/admin/organization/selectSuperId",
  440. data: {},
  441. success: function(data) {
  442. let thedata = data.data;
  443. let theArr = [];
  444. if (!thedata) {
  445. if (data.error && data.error.length) {
  446. message.warning(data.error[0].message);
  447. }
  448. } else {
  449. thedata.map(function(item, index) {
  450. theArr.push({
  451. key: index,
  452. name: item.name,
  453. id: item.id
  454. });
  455. });
  456. }
  457. this.setState({
  458. departmentArr: theArr
  459. });
  460. }.bind(this)
  461. }).always(
  462. function() {
  463. this.setState({
  464. loading: false
  465. });
  466. }.bind(this)
  467. );
  468. },
  469. //页面加载函数
  470. componentWillMount() {
  471. this.loadData();
  472. this.selectSuperId();
  473. this.departmentList();
  474. },
  475. // //整行点击
  476. tableRowClick(record) {
  477. this.state.RowData = record;
  478. if (record.taskName.substring(0, 5) === "软件著作权") {
  479. this.setState({
  480. speVisible: true,
  481. id: record.id,
  482. dataArr: record,
  483. commodityQuantity: record.commodityQuantity
  484. });
  485. } else {
  486. this.setState({
  487. visible: true
  488. });
  489. }
  490. this.setState({
  491. isIso: record.taskName.indexOf("贯标") !== -1,
  492. })
  493. this.xiangqing(record.id, record.taskName);
  494. this.xiangqings(record.orderNo);
  495. this.xiangmu(record.orderNo);
  496. this.loaduserss(record);
  497. },
  498. //订单详情
  499. xiangqing(id) {
  500. $.ajax({
  501. method: "get",
  502. dataType: "json",
  503. crossDomain: false,
  504. url: globalConfig.context + "/api/admin/orderProject/orderTaskDetail",
  505. data: {
  506. id: id
  507. },
  508. success: function(data) {
  509. if (data.error.length || data.data.list == "") {
  510. if (data.error && data.error.length) {
  511. message.warning(data.error[0].message);
  512. }
  513. } else {
  514. let thisdata = data.data;
  515. this.setState({
  516. certificationCorporate: thisdata.certificationCorporate,//认证费公司
  517. certificationFee: thisdata.certificationFee,//认证费
  518. ifCertificationFee: thisdata.ifCertificationFee,//是否包含认证费
  519. id: thisdata.id, //ID
  520. orderNo: thisdata.orderNo, //订单编号
  521. userName: thisdata.userName, //客户名称
  522. taskName: thisdata.taskName, //任务名称
  523. cname: thisdata.cname, //项目品类
  524. contractNo: thisdata.contractNo, //合同编号
  525. projectStatus: thisdata.projectStatus, //项目状态
  526. taskStatus: thisdata.taskStatus, //任务状态
  527. taskDate: thisdata.taskDate, //分配时间
  528. taskComment: thisdata.taskComment, //说明
  529. attachmentUrl: thisdata.attachmentUrl
  530. ? splitUrl(
  531. thisdata.attachmentUrl,
  532. ",",
  533. globalConfig.avatarHost + "/upload"
  534. )
  535. : [], //图片地址
  536. salesmanName: thisdata.salesmanName, //订单负责人
  537. startDate: thisdata.startDate, //启动日期
  538. endDate: thisdata.endDate, //结束日期
  539. acceptDate: thisdata.acceptDate, //受理日期
  540. reviewDate: thisdata.reviewDate, //评审日期
  541. publicityDate: thisdata.publicityDate, //公示日期
  542. licenceDate: thisdata.licenceDate, //发证日期
  543. contacts: thisdata.contacts, //联系人
  544. contactMobile: thisdata.contactMobile, //联系人电话
  545. legalPerson: thisdata.legalPerson, //法人
  546. legalPersonTel: thisdata.legalPersonTel, //法人电话
  547. certificateNumber: thisdata.certificateNumber, //证书编号
  548. status: thisdata.status, //状态
  549. formRetrieve: thisdata.formRetrieve, //满意度表格
  550. taskRefund: thisdata.taskRefund, //退单
  551. refundContent: thisdata.refundContent, //退单信息
  552. retrieveContent: thisdata.retrieveContent, //回收信息
  553. arrivalMoney: thisdata.arrivalMoney, //是否到款
  554. setUpAmount: thisdata.setUpAmount, //立项金额
  555. declareUser: thisdata.declareUser, //账号
  556. declarePwd: thisdata.declarePwd, //密码
  557. depName: thisdata.depName, //订单部门
  558. outsourceName: thisdata.outsourceName, //外包公司名称
  559. outsourcePrice: thisdata.outsourcePrice, //外包价格
  560. splitStatus: thisdata.splitStatus, //是否为子项目 2是 1主项目
  561. splitSuper: thisdata.splitSuper,
  562. splitId: thisdata.splitId,
  563. declarationBatch: thisdata.declarationBatch,
  564. bpType:thisdata.bpType,//0 正常 1专利 2软著 3审计 4双软 5高新 6商标
  565. specialComment: thisdata.specialComment,
  566. urgentDay: thisdata.urgentDay, //有无材料
  567. ifMaterial: thisdata.ifMaterial, //加急情况
  568. spotCheckStatus: thisdata.spotCheckStatus,
  569. setUpStatus: thisdata.setUpStatus,
  570. setUpTime: thisdata.setUpTime,
  571. highTechStatus: thisdata.highTechStatus,
  572. acceptCount:thisdata.acceptCount, //受理数
  573. certificatesCount:thisdata.certificatesCount, //授权数
  574. rejectCount:thisdata.rejectCount, //驳回数
  575. commodityQuantity:thisdata.commodityQuantity, //派单项目数
  576. timeRecordparse: thisdata.timeRecord ? JSON.parse(thisdata.timeRecord) : {},//项目状态JSON
  577. });
  578. }
  579. }.bind(this)
  580. }).always(
  581. function() {
  582. this.setState({
  583. loading: false
  584. });
  585. }.bind(this)
  586. );
  587. },
  588. //订单详情
  589. xiangqings(orderNos) {
  590. $.ajax({
  591. method: "get",
  592. dataType: "json",
  593. crossDomain: false,
  594. url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
  595. data: {
  596. orderNo: orderNos
  597. },
  598. success: function(data) {
  599. let thisdata = data.data;
  600. let ProvinceCityArr = [];
  601. let ProvinceS = thisdata.locationProvince; //省
  602. let citys = thisdata.locationCity; //市
  603. let Areas = thisdata.locationArea; //区
  604. ProvinceCityArr.push(ProvinceS, citys, Areas);
  605. if (data.error.length || data.data.list == "") {
  606. if (data.error && data.error.length) {
  607. message.warning(data.error[0].message);
  608. }
  609. } else {
  610. this.setState({
  611. processStatus: thisdata.processStatus, //流程状态
  612. liquidationStatus: thisdata.liquidationStatus, //结算状态
  613. approval: thisdata.approval, //特批状态
  614. orderRemarks: thisdata.orderRemarks, //订单留言
  615. salesmanName: thisdata.salesmanName, //营销员名称
  616. salesmanMobile: thisdata.salesmanMobile, //营销员电话
  617. financeName: thisdata.financeName, //财务名称
  618. financeMobile: thisdata.financeMobile, //财务电话
  619. oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
  620. oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
  621. nowFinance: thisdata.nowFinance, //财务名称
  622. nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
  623. depName: thisdata.depName, //订单部门
  624. locationProvince: thisdata.locationProvince,
  625. locationCity: thisdata.locationCity,
  626. locationArea: thisdata.locationArea,
  627. ProvinceCity: ProvinceCityArr,
  628. postalAddress: thisdata.postalAddress, //详细地址
  629. outsource: thisdata.outsource
  630. });
  631. }
  632. }.bind(this)
  633. }).always(
  634. function() {
  635. this.setState({
  636. loading: false
  637. });
  638. }.bind(this)
  639. );
  640. },
  641. //查看下证信息
  642. loaduserss(record) {
  643. $.ajax({
  644. method: "get",
  645. dataType: "json",
  646. crossDomain: false,
  647. url:
  648. globalConfig.context + "/api/admin/orderProject/selectTaskProgress",
  649. data: {
  650. tid: record.id
  651. },
  652. success: function(data) {
  653. let theArr = [];
  654. let thisData = [];
  655. if (!thisData) {
  656. if (data.error && data.error.length) {
  657. message.warning(data.error[0].message);
  658. }
  659. thisData = {};
  660. } else {
  661. for (let i = 0; i < data.data.length; i++) {
  662. thisData = data.data[i];
  663. theArr.push({
  664. num: i + 1,
  665. key: i,
  666. id: thisData.id, //编号
  667. alreadyNumber: thisData.alreadyNumber, //下证数
  668. licenceTimes: thisData.licenceTimes, //下证时间
  669. notCount: thisData.notCount, //未下证数
  670. flag: true
  671. });
  672. }
  673. this.setState({
  674. contactList: theArr
  675. });
  676. }
  677. }.bind(this)
  678. }).always(
  679. function() {
  680. this.setState({
  681. loading: false
  682. });
  683. }.bind(this)
  684. );
  685. },
  686. //操作日志
  687. caozuorizhi() {
  688. this.setState({
  689. visibleA: true
  690. });
  691. $.ajax({
  692. method: "get",
  693. dataType: "json",
  694. crossDomain: false,
  695. url: globalConfig.context + "/api/admin/orderProject/TaskLogList",
  696. data: {
  697. id: this.state.id
  698. },
  699. success: function(data) {
  700. let theArr = [];
  701. if (data.error.length || data.data.list == "") {
  702. if (data.error && data.error.length) {
  703. message.warning(data.error[0].message);
  704. }
  705. } else {
  706. for (let i = 0; i < data.data.length; i++) {
  707. let thisdata = data.data[i];
  708. theArr.push({
  709. key: i,
  710. id: thisdata.id, //日志ID
  711. content: thisdata.content, //流程
  712. taskId: thisdata.taskId, //任务ID
  713. aName: thisdata.aName, //负责人
  714. createTimes: thisdata.createTimes //时间
  715. });
  716. }
  717. }
  718. this.setState({
  719. dataSourceA: theArr
  720. });
  721. }.bind(this)
  722. }).always(
  723. function() {
  724. this.setState({
  725. loading: false
  726. });
  727. }.bind(this)
  728. );
  729. },
  730. //关闭操作工时
  731. visitCancelA() {
  732. this.setState({
  733. visibleA: false
  734. });
  735. },
  736. //项目列表
  737. xiangmu(orderNos) {
  738. $.ajax({
  739. method: "get",
  740. dataType: "json",
  741. crossDomain: false,
  742. url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
  743. data: {
  744. orderNo: orderNos
  745. },
  746. success: function(data) {
  747. let theArr = [];
  748. if (data.error.length || data.data.list == "") {
  749. if (data.error && data.error.length) {
  750. message.warning(data.error[0].message);
  751. }
  752. } else {
  753. for (let i = 0; i < data.data.length; i++) {
  754. let thisdata = data.data[i];
  755. theArr.push({
  756. key: i,
  757. id: thisdata.id,
  758. orderNo: thisdata.orderNo, //订单编号
  759. commodityId: thisdata.commodityId, //项目ID
  760. commodityName: thisdata.commodityName, //项目名称
  761. cname: thisdata.cname, //项目类别
  762. commodityPrice: thisdata.commodityPrice, //项目价格
  763. commodityQuantity: thisdata.commodityQuantity, //项目数量
  764. main: thisdata.main, //是否为主要任务
  765. taskComment: thisdata.taskComment, //任务说明
  766. contacts: thisdata.contacts, //联系人
  767. contactsMobile: thisdata.contactsMobile, //联系人电话
  768. taskStatus: thisdata.taskStatus, //是否分配
  769. splitStatus: thisdata.splitStatus, //是否为子项目 2是 1主项目
  770. splitSuper: thisdata.splitSuper,
  771. splitId: thisdata.splitId
  772. });
  773. }
  774. }
  775. this.setState({
  776. dataSourceX: theArr
  777. });
  778. }.bind(this)
  779. }).always(
  780. function() {
  781. this.setState({
  782. loading: false
  783. });
  784. }.bind(this)
  785. );
  786. },
  787. // 拆分详细
  788. showRes(record) {
  789. this.setState({
  790. resVisible: true,
  791. resRecord: record
  792. });
  793. },
  794. resCancel() {
  795. this.setState({
  796. resVisible: false
  797. });
  798. },
  799. //关闭输入理由框
  800. noCancel() {
  801. this.setState({
  802. noVisible: false
  803. });
  804. },
  805. //搜索
  806. search() {
  807. this.setState({
  808. //signBillVisible:false
  809. });
  810. this.loadData();
  811. },
  812. //重置
  813. reset() {
  814. this.setState({
  815. signBillVisible: false
  816. });
  817. this.state.orderNo = "";
  818. this.state.customerName = "";
  819. this.state.releaseDate[0] = undefined;
  820. this.state.releaseDate[1] = undefined;
  821. this.state.orderNoSearch = "";
  822. this.state.departmenttList = [];
  823. this.state.cid = [];
  824. this.state.contractNoSearch = "";
  825. this.state.outsourceSearch = [];
  826. this.setState({
  827. urgentDay: '', //有无材料
  828. ifMaterial: '', //加急情况
  829. specialComment: '', //特别说明
  830. spotCheckStatus: '',
  831. setUpStatus: '',
  832. setUpTime: '',
  833. highTechStatus: '',
  834. })
  835. this.loadData();
  836. },
  837. resets() {
  838. this.state.orderNo = "";
  839. this.state.customerName = "";
  840. this.state.releaseDate[0] = undefined;
  841. this.state.releaseDate[1] = undefined;
  842. },
  843. getOrgCodeUrl(e) {
  844. this.setState({ orgCodeUrl: e });
  845. },
  846. setColor() {
  847. $(".userName span").after(
  848. "(<span class='ruanzhu'>软著数</span>/<span class='xiazheng'>下证数</span>)"
  849. );
  850. },
  851. closeDesc(e, s) {
  852. this.state.showDesc = e;
  853. if (s) {
  854. this.loadData(this.state.page);
  855. }
  856. },
  857. closeAssign(e, s) {
  858. this.state.roleName = "";
  859. this.state.assignVisible = e;
  860. if (s) {
  861. this.loadData(this.state.page);
  862. }
  863. },
  864. nextCancel() {
  865. this.setState({
  866. addnextVisible: false
  867. });
  868. },
  869. //点击打卡项目详情
  870. tableRowClickX(record) {
  871. this.setState({
  872. jid: record.id, //项目ID
  873. kid: record.commodityId, //商品ID
  874. commodityName: record.commodityName, //金额
  875. commodityPrice: record.commodityPrice, //金额
  876. commodityQuantity: record.commodityQuantity, //数量
  877. taskComment: record.taskComment, //备注
  878. main: record.main.toString(), //是否为主要
  879. addnextVisible: true,
  880. addState: 0
  881. });
  882. },
  883. //关闭详情
  884. visitCancel() {
  885. this.setState({
  886. visible: false,
  887. speVisible: false
  888. });
  889. this.resets();
  890. },
  891. visitOk() {
  892. this.setState({
  893. visible: false
  894. });
  895. this.resets();
  896. },
  897. //关闭详情
  898. visitCancels() {
  899. this.setState({
  900. visibles: false
  901. });
  902. this.resets();
  903. },
  904. //导出
  905. exportExec() {
  906. var data = {
  907. name: this.state.customerName ? this.state.customerName : undefined, //订单负责人
  908. taskId: this.state.orderNo ? this.state.orderNo : undefined, //订单编号
  909. starTime: this.state.releaseDate[0]
  910. ? this.state.releaseDate[0]
  911. : undefined,
  912. endTime: this.state.releaseDate[1]
  913. ? this.state.releaseDate[1]
  914. : undefined
  915. };
  916. window.location.href =
  917. globalConfig.context +
  918. "/api/admin/orderProject/exportMyTaskList?" +
  919. $.param(data);
  920. },
  921. visitOks() {
  922. this.setState({
  923. visibles: false
  924. });
  925. this.resets();
  926. },
  927. selectSuperId() {
  928. this.state.data = [];
  929. $.ajax({
  930. method: "get",
  931. dataType: "json",
  932. crossDomain: false,
  933. url: globalConfig.context + "/api/admin/ProjectSize/getAllCname",
  934. data: {
  935. flag: 0
  936. },
  937. success: function(data) {
  938. let theArr = [];
  939. let thedata = data.data;
  940. if (!thedata) {
  941. if (data.error && data.error.length) {
  942. message.warning(data.error[0].message);
  943. }
  944. thedata = {};
  945. }
  946. var contactIds = [];
  947. for (var i = 0; i < data.data.length; i++) {
  948. let theData = data.data[i];
  949. theArr.push(
  950. <Select.Option value={i.toString()} key={theData.cname}>
  951. {theData.cname}
  952. </Select.Option>
  953. );
  954. }
  955. this.setState({
  956. SuperArr: thedata,
  957. contactsOption: theArr,
  958. orderStatusOptions: data.data
  959. });
  960. }.bind(this)
  961. }).always(
  962. function() {
  963. this.loadData(this.state.ispage);
  964. this.setState({
  965. loading: false
  966. });
  967. }.bind(this)
  968. );
  969. },
  970. rizhi() {
  971. this.setState({
  972. loading: true
  973. });
  974. $.ajax({
  975. method: "get",
  976. dataType: "json",
  977. crossDomain: false,
  978. url: "/api/admin/newOrder/selectOrderLog",
  979. data: {
  980. orderNo: this.state.orderNo
  981. },
  982. success: function(data) {
  983. let theArr = [];
  984. let thisData = data.data;
  985. if (!thisData.length) {
  986. if (data.error && data.error.length) {
  987. message.warning(data.error[0].message);
  988. }
  989. thisData = {};
  990. } else {
  991. for (let i = 0; i < data.data.length; i++) {
  992. let thisdata = data.data[i];
  993. theArr.push({
  994. processName: thisdata.processName,
  995. adminName: thisdata.adminName,
  996. createDate: thisdata.createDate,
  997. remarks: thisdata.remarks
  998. });
  999. }
  1000. }
  1001. this.setState({
  1002. dataSourceY: theArr
  1003. });
  1004. }.bind(this)
  1005. }).always(
  1006. function() {
  1007. this.setState({
  1008. loading: false
  1009. });
  1010. }.bind(this)
  1011. );
  1012. },
  1013. closeOrderLog() {
  1014. this.setState({
  1015. avisible: false
  1016. });
  1017. },
  1018. getOrderLog() {
  1019. this.setState({
  1020. avisible: true
  1021. });
  1022. this.rizhi();
  1023. },
  1024. changeList(arr) {
  1025. const newArr = [];
  1026. this.state.columns.forEach(item => {
  1027. arr.forEach(val => {
  1028. if (val === item.title) {
  1029. newArr.push(item);
  1030. }
  1031. });
  1032. });
  1033. this.setState({
  1034. changeList: newArr
  1035. });
  1036. },
  1037. render() {
  1038. const formItemLayout = {
  1039. labelCol: { span: 8 },
  1040. wrapperCol: { span: 14 }
  1041. };
  1042. const utils = {
  1043. getSatisfaction: function(num) {
  1044. switch (num) {
  1045. case 0:
  1046. return "未收回";
  1047. case 1:
  1048. return "已收回";
  1049. default:
  1050. return "其它";
  1051. }
  1052. },
  1053. getChargeback: function(num) {
  1054. switch (num) {
  1055. case 0:
  1056. return "已完成";
  1057. case 1:
  1058. return "未完成";
  1059. default:
  1060. return "其它";
  1061. }
  1062. }
  1063. };
  1064. const FormItem = Form.Item;
  1065. const { RangePicker } = DatePicker;
  1066. const departmentArr = this.state.departmentArr || [];
  1067. const isWai = [
  1068. {
  1069. id: 0,
  1070. name: "非外包"
  1071. },
  1072. {
  1073. id: 1,
  1074. name: "外包"
  1075. }
  1076. ];
  1077. return (
  1078. <div className="user-content">
  1079. {this.state.resVisible ? (
  1080. <ResolutionDetail
  1081. cancel={this.resCancel}
  1082. detail={this.state.resRecord}
  1083. visible={this.state.resVisible}
  1084. id={this.state.resRecord.orderNo}
  1085. />
  1086. ) : (
  1087. ""
  1088. )}
  1089. <ShowModalDiv ShowModal={this.state.showModal} />
  1090. <div className="content-title">
  1091. <span>工时数据统计</span>
  1092. </div>
  1093. <div className="user-search">
  1094. <Tabs
  1095. defaultActiveKey="1"
  1096. onChange={this.callback}
  1097. className="test"
  1098. >
  1099. <TabPane tab="搜索" key="1">
  1100. <Input
  1101. placeholder="客户名称"
  1102. style={{
  1103. width: "150px",
  1104. marginBottom: "10px",
  1105. marginTop: 10,
  1106. marginLeft: 10,
  1107. marginRight: 10,
  1108. }}
  1109. value={this.state.customerName}
  1110. onChange={(e) => {
  1111. this.setState({ customerName: e.target.value });
  1112. }}
  1113. />
  1114. <Input
  1115. placeholder="任务编号"
  1116. style={{ width: "150px", marginRight: 10 }}
  1117. value={this.state.idSearch}
  1118. onChange={(e) => {
  1119. this.setState({ idSearch: e.target.value });
  1120. }}
  1121. />
  1122. <Input
  1123. placeholder="订单编号"
  1124. style={{ width: "150px", marginRight: 10 }}
  1125. value={this.state.orderNoSearch}
  1126. onChange={(e) => {
  1127. this.setState({
  1128. orderNoSearch: e.target.value,
  1129. });
  1130. }}
  1131. />
  1132. <Input
  1133. placeholder="合同编号"
  1134. style={{ width: "150px", marginRight: 10 }}
  1135. value={this.state.contractNoSearch}
  1136. onChange={(e) => {
  1137. this.setState({
  1138. contractNoSearch: e.target.value,
  1139. });
  1140. }}
  1141. />
  1142. <Select
  1143. placeholder="订单部门"
  1144. style={{ width: 150, marginRight: 10 }}
  1145. value={this.state.departmenttList}
  1146. onChange={(e) => {
  1147. this.setState({ departmenttList: e });
  1148. }}
  1149. >
  1150. {departmentArr.map(function (item) {
  1151. return (
  1152. <Select.Option key={item.id}>{item.name}</Select.Option>
  1153. );
  1154. })}
  1155. </Select>
  1156. <Select
  1157. placeholder="项目类别"
  1158. style={{ width: "150", marginRight: "10px" }}
  1159. value={this.state.cid}
  1160. onChange={(e) => {
  1161. this.setState({ cid: e });
  1162. }}
  1163. notFoundContent="未获取到上级品类列表"
  1164. >
  1165. {this.state.contactsOption}
  1166. </Select>
  1167. <Select
  1168. placeholder="是否外包"
  1169. style={{ width: "150", marginRight: "10px" }}
  1170. value={this.state.outsourceSearch}
  1171. onChange={(e) => {
  1172. this.setState({ outsourceSearch: e });
  1173. }}
  1174. >
  1175. {isWai.map(function (item) {
  1176. return (
  1177. <Select.Option key={item.id}>{item.name}</Select.Option>
  1178. );
  1179. })}
  1180. </Select>
  1181. <span style={{ marginRight: "10px" }}>合同签订时间 :</span>
  1182. <RangePicker
  1183. value={[
  1184. this.state.releaseDate[0]
  1185. ? moment(this.state.releaseDate[0])
  1186. : null,
  1187. this.state.releaseDate[1]
  1188. ? moment(this.state.releaseDate[1])
  1189. : null,
  1190. ]}
  1191. onChange={(data, dataString) => {
  1192. this.setState({ releaseDate: dataString });
  1193. }}
  1194. />
  1195. <Button
  1196. type="primary"
  1197. onClick={this.search}
  1198. style={{ marginLeft: "10px", marginRight: 10 }}
  1199. >
  1200. 搜索
  1201. </Button>
  1202. <Button onClick={this.reset}>重置</Button>
  1203. </TabPane>
  1204. <TabPane tab="导出" key="2">
  1205. <Button
  1206. type="primary"
  1207. onClick={this.exportExec}
  1208. style={{ margin: "10px" }}
  1209. >
  1210. 导出工时数据
  1211. </Button>
  1212. </TabPane>
  1213. <TabPane tab="更改表格显示数据" key="3">
  1214. <div style={{ marginLeft: 10 }}>
  1215. <ChooseList
  1216. columns={this.state.columns}
  1217. changeFn={this.changeList}
  1218. changeList={this.state.changeList}
  1219. top={55}
  1220. margin={11}
  1221. />
  1222. </div>
  1223. </TabPane>
  1224. </Tabs>
  1225. <div className="patent-table">
  1226. <Spin spinning={this.state.loadingA}>
  1227. <Table
  1228. columns={
  1229. this.state.changeList
  1230. ? this.state.changeList
  1231. : this.state.columns
  1232. }
  1233. dataSource={this.state.dataSource}
  1234. pagination={this.state.pagination}
  1235. onRowClick={this.tableRowClick.bind(this)}
  1236. scroll={{ x: "max-content", y: 0 }}
  1237. bordered
  1238. size="small"
  1239. />
  1240. </Spin>
  1241. </div>
  1242. </div>
  1243. <Modal
  1244. className="customeDetails"
  1245. footer=""
  1246. title="项目概况"
  1247. width="900px"
  1248. visible={this.state.visible}
  1249. onOk={this.visitOk}
  1250. onCancel={this.visitCancel}
  1251. >
  1252. <Form
  1253. layout="horizontal"
  1254. onSubmit={this.handleSubmit}
  1255. id="demand-form"
  1256. style={{ paddingBottom: "00px" }}
  1257. >
  1258. <Spin spinning={this.state.loading}>
  1259. <div className="clearfix">
  1260. <div className="clearfix">
  1261. <FormItem
  1262. className="half-item"
  1263. {...formItemLayout}
  1264. label="项目状态"
  1265. >
  1266. <span>{getProjectName(parseInt(this.state.projectStatus))}</span>
  1267. <Button
  1268. type="primary"
  1269. size="small"
  1270. style={{ marginTop: '5px', position: 'absolute' }}
  1271. onClick={this.caozuorizhi}
  1272. >
  1273. 操作日志
  1274. </Button>
  1275. </FormItem>
  1276. <FormItem
  1277. className="half-item"
  1278. {...formItemLayout}
  1279. label="合同编号"
  1280. >
  1281. <span>{this.state.contractNo}</span>
  1282. </FormItem>
  1283. </div>
  1284. <div className="clearfix">
  1285. <FormItem
  1286. className="half-item"
  1287. {...formItemLayout}
  1288. label="是否特批"
  1289. >
  1290. <span>{getApproval(this.state.approval)}</span>
  1291. </FormItem>
  1292. <FormItem
  1293. className="half-item"
  1294. {...formItemLayout}
  1295. label="结算状态"
  1296. >
  1297. <span>
  1298. {getLiquidationStatus(this.state.liquidationStatus)}
  1299. </span>
  1300. </FormItem>
  1301. <FormItem
  1302. className="half-item"
  1303. {...formItemLayout}
  1304. label="流程状态"
  1305. >
  1306. <span>{getProcessStatus(this.state.processStatus)}</span>
  1307. </FormItem>
  1308. <FormItem
  1309. className="half-item"
  1310. {...formItemLayout}
  1311. label="订单编号"
  1312. >
  1313. <span>{this.state.orderNo}</span>
  1314. </FormItem>
  1315. </div>
  1316. <div className="clearfix">
  1317. <FormItem
  1318. className="half-item"
  1319. {...formItemLayout}
  1320. label="满意度表格"
  1321. >
  1322. <span>
  1323. {utils.getSatisfaction(this.state.formRetrieve)}
  1324. </span>
  1325. </FormItem>
  1326. {
  1327. <FormItem
  1328. className="half-item"
  1329. {...formItemLayout}
  1330. label="(满意度)备注"
  1331. >
  1332. <span>{this.state.retrieveContent}</span>
  1333. </FormItem>
  1334. }
  1335. {/*<FormItem*/}
  1336. {/* className="half-item"*/}
  1337. {/* {...formItemLayout}*/}
  1338. {/* label="退单"*/}
  1339. {/*>*/}
  1340. {/* <span>{utils.getChargeback(this.state.taskRefund)}</span>*/}
  1341. {/*</FormItem>*/}
  1342. </div>
  1343. <div className="clearfix">
  1344. <div style={{
  1345. paddingLeft: '8%',
  1346. }}>
  1347. <div style={{color:'#000',fontWeight:500}}>
  1348. 特别说明
  1349. <span style={{color: '#58a3ff',}}>(针对项目的特殊情况说明)</span>
  1350. </div>
  1351. <div style={{
  1352. display:'flex',
  1353. }}>
  1354. <span style={{paddingRight:'10px',whiteSpace:"nowrap"}}>备注:</span>
  1355. <span style={{
  1356. flex: 1,
  1357. wordBreak: 'break-all',
  1358. }}>{this.state.specialComment}</span>
  1359. </div>
  1360. </div>
  1361. {
  1362. // <FormItem
  1363. // className="half-item"
  1364. // {...formItemLayout}
  1365. // label="(退单)备注"
  1366. // >
  1367. // <span>{this.state.refundContent}</span>
  1368. // </FormItem>
  1369. }
  1370. </div>
  1371. <div className="clearfix">
  1372. <h3 className="sub-title">任务信息</h3>
  1373. {/*0通用 1专利 2软著 3审计 4双软 5高新 6商标*/}
  1374. {/*高新与贯标需要显示*/}
  1375. {
  1376. this.state.bpType === 5 || this.state.isIso ?
  1377. <div>
  1378. <FormItem
  1379. className="half-item"
  1380. {...formItemLayout}
  1381. label="认证费"
  1382. >
  1383. <span>
  1384. {
  1385. this.state.ifCertificationFee === 1 ? '包含' : '不包含'
  1386. }
  1387. </span>
  1388. </FormItem>
  1389. {this.state.ifCertificationFee === 1 ?<FormItem
  1390. className="half-item"
  1391. {...formItemLayout}
  1392. label="认证费(万元)"
  1393. >
  1394. <span>
  1395. {
  1396. this.state.certificationFee
  1397. }
  1398. </span>
  1399. </FormItem> : null}
  1400. {this.state.ifCertificationFee === 1 ? <FormItem
  1401. className="half-item"
  1402. {...formItemLayout}
  1403. label=""
  1404. /> : null}
  1405. {this.state.ifCertificationFee === 1 ? <FormItem
  1406. className="half-item"
  1407. {...formItemLayout}
  1408. label="付款公司名称"
  1409. >
  1410. <span>
  1411. {this.state.certificationCorporate}
  1412. </span>
  1413. </FormItem>:null}
  1414. </div> : null
  1415. }
  1416. <FormItem
  1417. className="half-item"
  1418. {...formItemLayout}
  1419. label="任务编号"
  1420. >
  1421. <span>
  1422. {this.state.splitStatus == 2
  1423. ? this.state.splitSuper + "-" + this.state.splitId
  1424. : this.state.id}
  1425. </span>
  1426. </FormItem>
  1427. <FormItem
  1428. className="half-item"
  1429. {...formItemLayout}
  1430. label="任务名称"
  1431. >
  1432. <span>{this.state.taskName}</span>
  1433. </FormItem>
  1434. <FormItem
  1435. className="half-item"
  1436. {...formItemLayout}
  1437. label="任务状态"
  1438. >
  1439. <span>{getTaskStatus(this.state.taskStatus)}</span>
  1440. </FormItem>
  1441. <FormItem
  1442. className="half-item"
  1443. {...formItemLayout}
  1444. label="任务类别"
  1445. >
  1446. <span>{this.state.cname}</span>
  1447. </FormItem>
  1448. <FormItem
  1449. className="half-item"
  1450. {...formItemLayout}
  1451. label="证书编号"
  1452. >
  1453. <span>{this.state.certificateNumber}</span>
  1454. </FormItem>
  1455. </div>
  1456. {/*{this.state.outsource === 1 ? (*/}
  1457. {/* <div className="clearfix">*/}
  1458. {/* <h3 className="sub-title">外包信息</h3>*/}
  1459. {/* <FormItem*/}
  1460. {/* className="half-item"*/}
  1461. {/* {...formItemLayout}*/}
  1462. {/* label="外包公司"*/}
  1463. {/* >*/}
  1464. {/* <span>{this.state.outsourceName}</span>*/}
  1465. {/* </FormItem>*/}
  1466. {/* <FormItem*/}
  1467. {/* className="half-item"*/}
  1468. {/* {...formItemLayout}*/}
  1469. {/* label="外包成本(万元)"*/}
  1470. {/* >*/}
  1471. {/* <span>{this.state.outsourcePrice}</span>*/}
  1472. {/* </FormItem>*/}
  1473. {/* </div>*/}
  1474. {/*) : (*/}
  1475. {/* ""*/}
  1476. {/*)}*/}
  1477. {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/}
  1478. <div className="clearfix">
  1479. <h3 className="sub-title">联系信息</h3>
  1480. <FormItem
  1481. className="half-item"
  1482. {...formItemLayout}
  1483. label="客户名称"
  1484. >
  1485. <span>{this.state.userName}</span>
  1486. </FormItem>
  1487. <FormItem
  1488. className="half-item"
  1489. {...formItemLayout}
  1490. label="企业法人"
  1491. >
  1492. <span>{this.state.legalPerson}</span>
  1493. </FormItem>
  1494. <FormItem
  1495. className="half-item"
  1496. {...formItemLayout}
  1497. label="法人电话"
  1498. >
  1499. <span>{this.state.legalPersonTel}</span>
  1500. </FormItem>
  1501. <FormItem
  1502. className="half-item"
  1503. {...formItemLayout}
  1504. label="客户联系人"
  1505. >
  1506. <span>{this.state.contacts}</span>
  1507. </FormItem>
  1508. <FormItem
  1509. className="half-item"
  1510. {...formItemLayout}
  1511. label="联系人电话"
  1512. >
  1513. <span>{this.state.contactMobile}</span>
  1514. </FormItem>
  1515. <FormItem
  1516. className="half-item"
  1517. {...formItemLayout}
  1518. label="企业地址"
  1519. >
  1520. <span>
  1521. {getprovince(this.state.locationProvince)}/
  1522. {getprovince(this.state.locationCity)}/
  1523. {getprovince(this.state.locationArea)}
  1524. </span>
  1525. </FormItem>
  1526. <FormItem
  1527. className="half-item"
  1528. {...formItemLayout}
  1529. label=""
  1530. ></FormItem>
  1531. <FormItem
  1532. className="half-item"
  1533. {...formItemLayout}
  1534. label="详细地址"
  1535. >
  1536. <span>{this.state.postalAddress}</span>
  1537. </FormItem>
  1538. </div>
  1539. {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/}
  1540. <div className="clearfix">
  1541. <h3 className="sub-title">订单负责人信息</h3>
  1542. <FormItem
  1543. className="half-item"
  1544. {...formItemLayout}
  1545. label="负责人"
  1546. >
  1547. <span>
  1548. {this.state.salesmanName +
  1549. "(" +
  1550. this.state.depName +
  1551. ")"}
  1552. </span>
  1553. </FormItem>
  1554. <FormItem
  1555. className="half-item"
  1556. {...formItemLayout}
  1557. label="负责人电话"
  1558. >
  1559. <span>{this.state.salesmanMobile}</span>
  1560. </FormItem>
  1561. <FormItem
  1562. className="half-item"
  1563. {...formItemLayout}
  1564. label="当前财务负责人"
  1565. >
  1566. <span>{this.state.nowFinance}</span>
  1567. </FormItem>
  1568. <FormItem
  1569. className="half-item"
  1570. {...formItemLayout}
  1571. label="当前财务负责人电话"
  1572. >
  1573. <span>{this.state.nowFinanceMobile}</span>
  1574. </FormItem>
  1575. <FormItem
  1576. className="half-item"
  1577. {...formItemLayout}
  1578. style={{ opacity: ".5" }}
  1579. label="原负责人"
  1580. >
  1581. <span>{this.state.oldSalesmanName}</span>
  1582. </FormItem>
  1583. <FormItem
  1584. className="half-item"
  1585. {...formItemLayout}
  1586. style={{ opacity: ".5" }}
  1587. label="原负责人电话"
  1588. >
  1589. <span>{this.state.oldSalesmanMobile}</span>
  1590. </FormItem>
  1591. <FormItem
  1592. className="half-item"
  1593. {...formItemLayout}
  1594. style={{ opacity: ".5" }}
  1595. label="实际财务操作人"
  1596. >
  1597. <span>{this.state.financeName}</span>
  1598. </FormItem>
  1599. <FormItem
  1600. className="half-item"
  1601. {...formItemLayout}
  1602. style={{ opacity: ".5" }}
  1603. label="实际财务操作人电话"
  1604. >
  1605. <span>{this.state.financeMobile}</span>
  1606. </FormItem>
  1607. <FormItem
  1608. className="half-item"
  1609. {...formItemLayout}
  1610. label="订单留言"
  1611. >
  1612. <span>{this.state.orderRemarks}</span>
  1613. </FormItem>
  1614. <FormItem
  1615. className="half-item"
  1616. {...formItemLayout}
  1617. label=""
  1618. >
  1619. <Button onClick={this.getOrderLog}>查看订单日志</Button>
  1620. </FormItem>
  1621. <OrderRiZi
  1622. dataSourcerizhi={this.state.dataSourceY}
  1623. closeOrderLog={this.closeOrderLog}
  1624. visible={this.state.avisible}
  1625. loading={this.state.loading}
  1626. />
  1627. </div>
  1628. <div className="clearfix">
  1629. <h3 className="sub-title">申报系统账户信息</h3>
  1630. {/*<span style={{color:'red'}}>注:仅技术部可见</span>*/}
  1631. <FormItem
  1632. className="half-item"
  1633. {...formItemLayout}
  1634. label="用户名"
  1635. >
  1636. <span>{this.state.declareUser ? "*" : ""}</span>
  1637. </FormItem>
  1638. <FormItem
  1639. className="half-item"
  1640. {...formItemLayout}
  1641. label="密码"
  1642. >
  1643. <span>{this.state.declarePwd ? "*" : ""}</span>
  1644. </FormItem>
  1645. </div>
  1646. <div className="clearfix">
  1647. <h3 className="sub-title">项目申报进度</h3>
  1648. <DeclarationProgress
  1649. timeRecordparse={this.state.timeRecordparse}
  1650. startDate={this.state.startDate}
  1651. list={[
  1652. {id:4,name:'完成时间',value:this.state.endDate},
  1653. {id:6,name:'受理时间',value:this.state.acceptDate},
  1654. {id:8,name:'公示时间',value:this.state.publicityDate},
  1655. {id:10,name:'发证时间',value:this.state.licenceDate},
  1656. {id:15,name:'立项金额',value:this.state.setUpAmount}
  1657. ]}/>
  1658. {/*专利显示 bpType: 0 正常 1专利 2软著 3审计 4双软 5高新 6商标*/}
  1659. {
  1660. this.state.bpType === 1 || this.state.bpType === 6 ?
  1661. <div>
  1662. <FormItem
  1663. labelCol={{ span: 3 }}
  1664. wrapperCol={{ span: 16 }}
  1665. label="是否高新企业"
  1666. >
  1667. <span>
  1668. {
  1669. this.state.highTechStatus === 1 ? '是':
  1670. this.state.highTechStatus === 0 ? '否' : ''
  1671. }
  1672. </span>
  1673. </FormItem>
  1674. <FormItem/>
  1675. <PatentSchedule
  1676. readOnly
  1677. bpType={this.state.bpType}
  1678. taskId={this.state.id}
  1679. acceptCount={this.state.acceptCount}
  1680. certificatesCount={this.state.certificatesCount}
  1681. rejectCount={this.state.rejectCount}
  1682. commodityQuantity={this.state.commodityQuantity}
  1683. />
  1684. </div> :
  1685. <div>
  1686. {/*高新显示 bpType: 0 正常 1专利 2软著 3审计 4双软 5高新 6商标*/}
  1687. {this.state.bpType === 5 ? <FormItem
  1688. className="half-item"
  1689. {...formItemLayout}
  1690. label="是否抽查">
  1691. {
  1692. this.state.spotCheckStatus === 0 ? '否':
  1693. this.state.spotCheckStatus === 1 ? '是,未通过':
  1694. this.state.spotCheckStatus === 2 ? '是,通过': ''
  1695. }
  1696. </FormItem> : null}
  1697. <FormItem/>
  1698. {this.state.bpType === 5 ? <FormItem
  1699. className="half-item"
  1700. {...formItemLayout}
  1701. label="是否立项"
  1702. >
  1703. {
  1704. this.state.setUpStatus === 1 ? '是' :
  1705. this.state.setUpStatus === 0 ? '否' : ''
  1706. }
  1707. </FormItem> : null}
  1708. {this.state.bpType === 5 ? <FormItem
  1709. className="half-item"
  1710. {...formItemLayout}
  1711. label={this.state.setUpStatus === 1 ? "立项时间" : ''}
  1712. >
  1713. {this.state.setUpStatus === 1 ?this.state.setUpTime : null }
  1714. </FormItem> : null}
  1715. <FormItem
  1716. className="half-item"
  1717. {...formItemLayout}
  1718. label="申报批次"
  1719. >
  1720. <span>{this.state.declarationBatch}</span>
  1721. </FormItem>
  1722. <FormItem
  1723. className="half-item"
  1724. {...formItemLayout}
  1725. label="是否到款"
  1726. >
  1727. <span>
  1728. {this.state.arrivalMoney ? "已到企业" : "未到企业"}
  1729. </span>
  1730. </FormItem>
  1731. </div>}
  1732. </div>
  1733. {this.state.bpType !== 1 && this.state.bpType !== 6 ? <div className="clearfix">
  1734. <FormItem
  1735. labelCol={{ span: 3 }}
  1736. wrapperCol={{ span: 18 }}
  1737. label="附件"
  1738. >
  1739. <Upload
  1740. className="demandDetailShow-upload"
  1741. listType="picture-card"
  1742. fileList={this.state.attachmentUrl}
  1743. onPreview={(file) => {
  1744. this.setState({
  1745. previewImage: file.url || file.thumbUrl,
  1746. previewVisible: true,
  1747. });
  1748. }}
  1749. />
  1750. <Modal
  1751. maskClosable={false}
  1752. footer={null}
  1753. visible={this.state.previewVisible}
  1754. onCancel={() => {
  1755. this.setState({ previewVisible: false });
  1756. }}
  1757. >
  1758. <img
  1759. alt=""
  1760. style={{ width: "100%" }}
  1761. src={this.state.previewImage || ""}
  1762. />
  1763. </Modal>
  1764. </FormItem>
  1765. </div> : null}
  1766. {this.state.bpType !== 1 && this.state.bpType !== 6 ? <div className="clearfix">
  1767. <FormItem
  1768. labelCol={{ span: 3 }}
  1769. wrapperCol={{ span: 16 }}
  1770. label="项目说明"
  1771. >
  1772. <span>{this.state.taskComment}</span>
  1773. </FormItem>
  1774. </div> : null}
  1775. <div>
  1776. <h3 className="sub-title">项目业务</h3>
  1777. {this.state.processStatus == 0 ? (
  1778. <Button
  1779. type="primary"
  1780. onClick={this.addDetailed}
  1781. style={{
  1782. float: "right",
  1783. marginRight: "50px",
  1784. marginBottom: "15px",
  1785. }}
  1786. >
  1787. 添加项目明细
  1788. </Button>
  1789. ) : (
  1790. ""
  1791. )}
  1792. </div>
  1793. <div className="patent-table">
  1794. <Spin spinning={this.state.loading}>
  1795. <Table
  1796. columns={this.state.columnsX}
  1797. dataSource={this.state.dataSourceX}
  1798. size="small"
  1799. bordered
  1800. pagination={this.state.paginations}
  1801. onRowClick={this.tableRowClickX}
  1802. />
  1803. </Spin>
  1804. </div>
  1805. </div>
  1806. </Spin>
  1807. </Form>
  1808. </Modal>
  1809. <Modal
  1810. maskClosable={false}
  1811. visible={this.state.addnextVisible}
  1812. onOk={this.nextCancel}
  1813. onCancel={this.nextCancel}
  1814. width="900px"
  1815. title="项目任务详情"
  1816. footer=""
  1817. className="admin-desc-content"
  1818. >
  1819. <Form
  1820. layout="horizontal"
  1821. onSubmit={this.nextSubmit}
  1822. id="demand-form"
  1823. >
  1824. <Spin spinning={this.state.loading}>
  1825. <div className="clearfix">
  1826. <FormItem
  1827. className="half-item"
  1828. {...formItemLayout}
  1829. label="项目名称"
  1830. >
  1831. <span>{this.state.commodityName}</span>
  1832. </FormItem>
  1833. <FormItem
  1834. className="half-item"
  1835. {...formItemLayout}
  1836. label="项目数量"
  1837. >
  1838. <span>{this.state.commodityQuantity}</span>
  1839. </FormItem>
  1840. <FormItem
  1841. className="half-item"
  1842. {...formItemLayout}
  1843. label="金额(万元)"
  1844. >
  1845. <span>{this.state.commodityPrice}</span>
  1846. </FormItem>
  1847. <FormItem
  1848. className="half-item"
  1849. {...formItemLayout}
  1850. label="主要项目"
  1851. >
  1852. <span>{getboutique(this.state.main)}</span>
  1853. </FormItem>
  1854. <div className="clearfix">
  1855. <FormItem
  1856. labelCol={{ span: 4 }}
  1857. wrapperCol={{ span: 16 }}
  1858. label="服务说明"
  1859. >
  1860. <span>{this.state.taskComment}</span>
  1861. </FormItem>
  1862. </div>
  1863. </div>
  1864. </Spin>
  1865. </Form>
  1866. </Modal>
  1867. <Modal
  1868. width="800px"
  1869. title="操作日志"
  1870. footer=""
  1871. className="admin-desc-content"
  1872. >
  1873. <div className="patent-table patent-table-center">
  1874. <Spin spinning={this.state.loading}>
  1875. <Table columns={this.state.columnsY} />
  1876. </Spin>
  1877. </div>
  1878. </Modal>
  1879. <Modal
  1880. maskClosable={false}
  1881. visible={this.state.speVisible}
  1882. onOk={this.visitOk}
  1883. onCancel={this.visitCancel}
  1884. width="900px"
  1885. title="项目概况"
  1886. footer=""
  1887. className="admin-desc-content"
  1888. >
  1889. <div className="clearfix">
  1890. <FormItem
  1891. className="half-item"
  1892. {...formItemLayout}
  1893. label="项目状态"
  1894. >
  1895. <span>{getProjectName(parseInt(this.state.projectStatus))}</span>
  1896. <Button
  1897. type="primary"
  1898. size="small"
  1899. style={{ marginTop: '5px', position: 'absolute' }}
  1900. onClick={this.caozuorizhi}
  1901. >
  1902. 操作日志
  1903. </Button>
  1904. </FormItem>
  1905. <FormItem
  1906. className="half-item"
  1907. {...formItemLayout}
  1908. label="合同编号"
  1909. >
  1910. <span>{this.state.contractNo}</span>
  1911. </FormItem>
  1912. </div>
  1913. <div className="clearfix">
  1914. <FormItem
  1915. className="half-item"
  1916. {...formItemLayout}
  1917. label="是否特批"
  1918. >
  1919. <span>{getApproval(this.state.approval)}</span>
  1920. </FormItem>
  1921. <FormItem
  1922. className="half-item"
  1923. {...formItemLayout}
  1924. label="结算状态"
  1925. >
  1926. <span>
  1927. {getLiquidationStatus(this.state.liquidationStatus)}
  1928. </span>
  1929. </FormItem>
  1930. <FormItem
  1931. className="half-item"
  1932. {...formItemLayout}
  1933. label="流程状态"
  1934. >
  1935. <span>{getProcessStatus(this.state.processStatus)}</span>
  1936. </FormItem>
  1937. <FormItem
  1938. className="half-item"
  1939. {...formItemLayout}
  1940. label="订单编号"
  1941. >
  1942. <span>{this.state.orderNo}</span>
  1943. </FormItem>
  1944. </div>
  1945. <div className="clearfix">
  1946. <FormItem
  1947. className="half-item"
  1948. {...formItemLayout}
  1949. label="满意度表格"
  1950. >
  1951. <span>{utils.getSatisfaction(this.state.formRetrieve)}</span>
  1952. </FormItem>
  1953. {
  1954. <FormItem
  1955. className="half-item"
  1956. {...formItemLayout}
  1957. label="(满意度)备注"
  1958. >
  1959. <span>{this.state.retrieveContent}</span>
  1960. </FormItem>
  1961. }
  1962. {/*<FormItem className="half-item" {...formItemLayout} label="退单">*/}
  1963. {/* <span>{utils.getChargeback(this.state.taskRefund)}</span>*/}
  1964. {/*</FormItem>*/}
  1965. </div>
  1966. {/*软著显示 bpType: 0 正常 1专利 2软著 3审计 4双软 5高新 6商标*/}
  1967. {this.state.bpType === 2 ? <div className="clearfix">
  1968. <FormItem
  1969. className="half-item"
  1970. {...formItemLayout}
  1971. label="加急天数"
  1972. >
  1973. {
  1974. this.state.urgentDay === 1 ? '是' :
  1975. this.state.urgentDay === 0 ? '否' : ''
  1976. }
  1977. </FormItem>
  1978. <FormItem
  1979. className="half-item"
  1980. {...formItemLayout}
  1981. label="有无材料"
  1982. >
  1983. {
  1984. this.state.ifMaterial === 1 ? '是':
  1985. this.state.ifMaterial === 0 ? '否': ''
  1986. }
  1987. </FormItem>
  1988. </div> : null}
  1989. <div className="clearfix">
  1990. <div style={{
  1991. paddingLeft: '8%',
  1992. }}>
  1993. <div style={{color:'#000',fontWeight:500}}>
  1994. 特别说明
  1995. <span style={{color: '#58a3ff',}}>(针对项目的特殊情况说明)</span>
  1996. </div>
  1997. <div style={{
  1998. display:'flex',
  1999. }}>
  2000. <span style={{paddingRight:'10px',whiteSpace:"nowrap"}}>备注:</span>
  2001. <span style={{
  2002. flex: 1,
  2003. wordBreak: 'break-all',
  2004. }}>{this.state.specialComment}</span>
  2005. </div>
  2006. </div>
  2007. {
  2008. // <FormItem
  2009. // className="half-item"
  2010. // {...formItemLayout}
  2011. // label="(退单)备注"
  2012. // >
  2013. // <span>{this.state.refundContent}</span>
  2014. // </FormItem>
  2015. }
  2016. </div>
  2017. <div className="clearfix">
  2018. <h3 className="sub-title">任务信息</h3>
  2019. <FormItem
  2020. className="half-item"
  2021. {...formItemLayout}
  2022. label="任务编号"
  2023. >
  2024. <span>
  2025. {this.state.splitStatus == 2
  2026. ? this.state.splitSuper + "-" + this.state.splitId
  2027. : this.state.id}
  2028. </span>
  2029. </FormItem>
  2030. <FormItem
  2031. className="half-item"
  2032. {...formItemLayout}
  2033. label="任务名称"
  2034. >
  2035. <span>{this.state.taskName}</span>
  2036. </FormItem>
  2037. <FormItem
  2038. className="half-item"
  2039. {...formItemLayout}
  2040. label="任务状态"
  2041. >
  2042. <span>{getTaskStatus(this.state.taskStatus)}</span>
  2043. </FormItem>
  2044. <FormItem
  2045. className="half-item"
  2046. {...formItemLayout}
  2047. label="任务类别"
  2048. >
  2049. <span>{this.state.cname}</span>
  2050. </FormItem>
  2051. <FormItem
  2052. className="half-item"
  2053. {...formItemLayout}
  2054. label="证书编号"
  2055. >
  2056. <span>{this.state.certificateNumber}</span>
  2057. </FormItem>
  2058. </div>
  2059. {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/}
  2060. <div className="clearfix">
  2061. <h3 className="sub-title">联系信息</h3>
  2062. <FormItem
  2063. className="half-item"
  2064. {...formItemLayout}
  2065. label="客户名称"
  2066. >
  2067. <span>{this.state.userName}</span>
  2068. </FormItem>
  2069. <FormItem
  2070. className="half-item"
  2071. {...formItemLayout}
  2072. label="企业法人"
  2073. >
  2074. <span>{this.state.legalPerson}</span>
  2075. </FormItem>
  2076. <FormItem
  2077. className="half-item"
  2078. {...formItemLayout}
  2079. label="法人电话"
  2080. >
  2081. <span>{this.state.legalPersonTel}</span>
  2082. </FormItem>
  2083. <FormItem
  2084. className="half-item"
  2085. {...formItemLayout}
  2086. label="客户联系人"
  2087. >
  2088. <span>{this.state.contacts}</span>
  2089. </FormItem>
  2090. <FormItem
  2091. className="half-item"
  2092. {...formItemLayout}
  2093. label="联系人电话"
  2094. >
  2095. <span>{this.state.contactMobile}</span>
  2096. </FormItem>
  2097. <FormItem
  2098. className="half-item"
  2099. {...formItemLayout}
  2100. label="企业地址"
  2101. >
  2102. <span>
  2103. {getprovince(this.state.locationProvince)}/
  2104. {getprovince(this.state.locationCity)}/
  2105. {getprovince(this.state.locationArea)}
  2106. </span>
  2107. </FormItem>
  2108. <FormItem
  2109. className="half-item"
  2110. {...formItemLayout}
  2111. label=""
  2112. ></FormItem>
  2113. <FormItem className="half-item" {...formItemLayout} label="">
  2114. <span style={{ paddingLeft: "12em" }}>
  2115. {this.state.postalAddress}
  2116. </span>
  2117. </FormItem>
  2118. </div>
  2119. {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/}
  2120. <div className="clearfix">
  2121. <h3 className="sub-title">订单负责人信息</h3>
  2122. <FormItem
  2123. className="half-item"
  2124. {...formItemLayout}
  2125. label="负责人"
  2126. >
  2127. <span>
  2128. {this.state.salesmanName + "(" + this.state.depName + ")"}
  2129. </span>
  2130. </FormItem>
  2131. <FormItem
  2132. className="half-item"
  2133. {...formItemLayout}
  2134. label="负责人电话"
  2135. >
  2136. <span>{this.state.salesmanMobile}</span>
  2137. </FormItem>
  2138. <FormItem
  2139. className="half-item"
  2140. {...formItemLayout}
  2141. label="财务负责人"
  2142. >
  2143. <span>{this.state.financeName}</span>
  2144. </FormItem>
  2145. <FormItem
  2146. className="half-item"
  2147. {...formItemLayout}
  2148. label="财务负责人电话"
  2149. >
  2150. <span>{this.state.financeMobile}</span>
  2151. </FormItem>
  2152. <FormItem
  2153. className="half-item"
  2154. {...formItemLayout}
  2155. label="订单留言"
  2156. >
  2157. <span>{this.state.orderRemarks}</span>
  2158. </FormItem>
  2159. <FormItem className="half-item" {...formItemLayout} label="">
  2160. <Button onClick={this.getOrderLog}>查看订单日志</Button>
  2161. </FormItem>
  2162. <OrderRiZi
  2163. dataSourcerizhi={this.state.dataSourceY}
  2164. closeOrderLog={this.closeOrderLog}
  2165. visible={this.state.avisible}
  2166. loading={this.state.loading}
  2167. />
  2168. </div>
  2169. <div className="clearfix" style={{ marginTop: "10px" }}>
  2170. <FormItem
  2171. labelCol={{ span: 3 }}
  2172. wrapperCol={{ span: 18 }}
  2173. label="附件"
  2174. >
  2175. <Upload
  2176. className="demandDetailShow-upload"
  2177. listType="picture-card"
  2178. fileList={this.state.attachmentUrl}
  2179. onPreview={(file) => {
  2180. this.setState({
  2181. previewImage: file.url || file.thumbUrl,
  2182. previewVisible: true,
  2183. });
  2184. }}
  2185. ></Upload>
  2186. <Modal
  2187. maskClosable={false}
  2188. footer={null}
  2189. visible={this.state.previewVisible}
  2190. onCancel={() => {
  2191. this.setState({ previewVisible: false });
  2192. }}
  2193. >
  2194. <img
  2195. alt=""
  2196. style={{ width: "100%" }}
  2197. src={this.state.previewImage || ""}
  2198. />
  2199. </Modal>
  2200. </FormItem>
  2201. </div>
  2202. <div className="clearfix">
  2203. <FormItem
  2204. labelCol={{ span: 3 }}
  2205. wrapperCol={{ span: 16 }}
  2206. label="备注"
  2207. >
  2208. <span>{this.state.taskComment}</span>
  2209. </FormItem>
  2210. </div>
  2211. <div className="clearfix">
  2212. <h3 className="sub-title">项目申报进度</h3>
  2213. <DeclarationProgress
  2214. timeRecordparse={this.state.timeRecordparse}
  2215. startDate={this.state.startDate}
  2216. list={[
  2217. {id:4,name:'完成时间',value:this.state.endDate},
  2218. {id:6,name:'受理时间',value:this.state.acceptDate},
  2219. {id:8,name:'公示时间',value:this.state.publicityDate},
  2220. {id:10,name:'发证时间',value:this.state.licenceDate},
  2221. {id:15,name:'立项金额',value:this.state.setUpAmount}
  2222. ]}/>
  2223. <FormItem
  2224. className="half-item"
  2225. {...formItemLayout}
  2226. label="申报批次"
  2227. >
  2228. <span>{this.state.declarationBatch}</span>
  2229. </FormItem>
  2230. <FormItem
  2231. className="half-item"
  2232. {...formItemLayout}
  2233. label="软著派单数量"
  2234. >
  2235. <span>{this.state.commodityQuantity}</span>
  2236. </FormItem>
  2237. <div className="patent-table patent-table-center">
  2238. <Spin spinning={this.state.loading}>
  2239. <Table
  2240. columns={this.state.ContactsLists}
  2241. dataSource={this.state.contactList}
  2242. pagination={false}
  2243. />
  2244. </Spin>
  2245. </div>
  2246. </div>
  2247. <div className="clearfix">
  2248. <h3 className="sub-title">项目业务</h3>
  2249. <div className="patent-table">
  2250. <Spin spinning={this.state.loading}>
  2251. <Table
  2252. columns={this.state.columnsX}
  2253. dataSource={this.state.dataSourceX}
  2254. pagination={this.state.paginations}
  2255. onRowClick={this.tableRowClickX}
  2256. />
  2257. </Spin>
  2258. </div>
  2259. </div>
  2260. </Modal>
  2261. <Modal
  2262. width="800px"
  2263. visible={this.state.visibleA}
  2264. onCancel={this.visitCancelA}
  2265. title="操作日志"
  2266. footer=""
  2267. className="admin-desc-content"
  2268. >
  2269. <div className="patent-table patent-table-center">
  2270. <Spin spinning={this.state.loading}>
  2271. <Table
  2272. columns={this.state.columnsA}
  2273. dataSource={this.state.dataSourceA}
  2274. pagination={false}
  2275. />
  2276. </Spin>
  2277. </div>
  2278. </Modal>
  2279. </div>
  2280. );
  2281. }
  2282. })
  2283. );
  2284. export default IntentionCustomer;