myTaskCount.jsx 76 KB

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