myTaskCount.jsx 74 KB

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