taskQuery.jsx 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317
  1. import React from 'react';
  2. import $ from 'jquery';
  3. import '@/manageCenter/financialManage/distribute/public.less';
  4. import { Button, Form, Input, Select, Upload,Spin, Table, message, Modal} from 'antd';
  5. import Assign from '@/manageCenter/publicComponent/assign';
  6. import './table.less';
  7. import {getProcessStatus,getApproval,getTaskStatus,getLiquidationStatus,splitUrl,getProjectStatus,getboutique,getprovince} from '@/tools';
  8. const FormItem =Form.Item;
  9. const Task = React.createClass({
  10. loadData(pageNo) {
  11. this.state.data = [];
  12. this.setState({
  13. page:pageNo,
  14. loading: true
  15. });
  16. $.ajax({
  17. method: "get",
  18. dataType: "json",
  19. crossDomain: false,
  20. url: globalConfig.context + "/api/admin/orderProject/selectTaskList",
  21. data: {
  22. pageNo: pageNo || 1,
  23. pageSize: this.state.pagination.pageSize,
  24. specially:1,//经理
  25. name: this.state.nameSearch,//客户名称
  26. orderNo:this.state.orderNoSearch,//订单编号
  27. depId: this.state.departmenttSearch,//订单部门
  28. taskId:this.state.taskId, //任务编号
  29. adminName:this.state.adminName,//任务受理人
  30. },
  31. success: function (data) {
  32. let theArr = [];
  33. if (!data.data || !data.data.list) {
  34. if (data.error && data.error.length) {
  35. message.warning(data.error[0].message);
  36. };
  37. } else {
  38. for (let i = 0; i < data.data.list.length; i++) {
  39. let thisdata = data.data.list[i];
  40. theArr.push({
  41. key: i,
  42. orderNo: thisdata.orderNo,//订单编号
  43. id:thisdata.id,//任务ID
  44. taskName:thisdata.taskName,//名称
  45. cname:thisdata.cname,//项目品类
  46. receiverName:thisdata.receiverName,//受理人
  47. projectStatus:thisdata.projectStatus,//项目状态
  48. taskStatus:thisdata.taskStatus,//任务状态
  49. taskDate:thisdata.taskDate,//分配时间
  50. commodityQuantity:thisdata.commodityQuantity,//软著数量
  51. alreadyNumber:thisdata.alreadyNumber,//下证数量
  52. userName:thisdata.taskName.substring(0,5) === '软件著作权'?thisdata.userName+'('+thisdata.commodityQuantity.toString()+'/'+thisdata.alreadyNumber+')':thisdata.userName,//用户名
  53. depName:thisdata.depName,//部门名称
  54. receiverName:thisdata.receiverName,//任务责任人
  55. });
  56. };
  57. }
  58. this.state.pagination.current = data.data.pageNo;
  59. this.state.pagination.total = data.data.totalCount;
  60. if(data.data&&data.data.list&&!data.data.list.length){
  61. this.state.pagination.current=0
  62. this.state.pagination.total=0
  63. }
  64. this.setState({
  65. dataSource: theArr,
  66. pagination: this.state.pagination
  67. });
  68. }.bind(this),
  69. }).always(function () {
  70. this.setState({
  71. loading: false
  72. });
  73. }.bind(this));
  74. },
  75. getInitialState() {
  76. return {
  77. searchMore: true,
  78. assignVisible:false,
  79. releaseDate: [],
  80. roleName:'',
  81. testFlag:true,
  82. departmentArr: [],
  83. boHuivisible:false,
  84. selectedRowKeys: [],
  85. selectedRows: [],
  86. paginations:false,
  87. loading: false,
  88. pagination: {
  89. defaultCurrent: 1,
  90. defaultPageSize: 10,
  91. showQuickJumper: true,
  92. pageSize: 10,
  93. onChange: function (page) {
  94. this.loadData(page);
  95. }.bind(this),
  96. showTotal: function (total) {
  97. return '共' + total + '条数据';
  98. }
  99. },
  100. columns: [
  101. {
  102. title: '任务编号',
  103. dataIndex: 'id',
  104. key: 'id',
  105. }, {
  106. title: '任务名称',
  107. dataIndex: 'taskName',
  108. key: 'taskName',
  109. className: 'taskName'
  110. }, {
  111. title: '订单编号',
  112. dataIndex: 'orderNo',
  113. key: 'orderNo',
  114. },
  115. {
  116. title: '业务类别',
  117. dataIndex: 'cname',
  118. key: 'cname',
  119. },
  120. {
  121. title: '客户名称',
  122. dataIndex: 'userName',
  123. key: 'userName',
  124. className: 'userName'
  125. },
  126. {
  127. title: '任务状态',
  128. dataIndex: 'taskStatus',
  129. key: 'taskStatus',
  130. render: text => { return getTaskStatus(text)}
  131. },
  132. {
  133. title: '项目状态',
  134. dataIndex: 'projectStatus',
  135. key: 'projectStatus',
  136. render: text => { return getProjectStatus(text)}
  137. },
  138. {
  139. title: '分配时间',
  140. dataIndex: 'taskDate',
  141. key: 'taskDate'
  142. },
  143. {
  144. title: '任务数量',
  145. dataIndex: 'commodityQuantity',
  146. key: 'commodityQuantity'
  147. },
  148. {
  149. title: '任务责任人',
  150. dataIndex: 'receiverName',
  151. key: 'receiverName'
  152. },{
  153. title: '订单部门',
  154. dataIndex: 'depName',
  155. key: 'depName'
  156. }
  157. ],
  158. dataSource: [],
  159. searchTime: [],
  160. columnsX: [
  161. {
  162. title: '业务项目名称',
  163. dataIndex: 'commodityName',
  164. key: 'commodityName'
  165. }, {
  166. title: '项目类别',
  167. dataIndex: 'cname',
  168. key: 'cname',
  169. },{
  170. title: '项目数量',
  171. dataIndex: 'commodityQuantity',
  172. key: 'commodityQuantity'
  173. }, {
  174. title: '金额(万元)',
  175. dataIndex: 'commodityPrice',
  176. key: 'commodityPrice'
  177. }, {
  178. title: '负责人',
  179. dataIndex: 'contacts',
  180. key: 'contacts'
  181. }, {
  182. title: '负责人电话',
  183. dataIndex: 'contactsMobile',
  184. key: 'contactsMobile'
  185. }, {
  186. title: '主要项目',
  187. dataIndex: 'main',
  188. key: 'main',
  189. render:(text)=>{
  190. return (text?'是':'否')
  191. }
  192. }, {
  193. title: '项目说明',
  194. dataIndex: 'taskComment',
  195. key: 'taskComment',
  196. render:(text)=>{
  197. return (text&&text.length>8?text.substr(0,8)+'…':text)
  198. }
  199. }
  200. ],
  201. columnsA: [
  202. {
  203. title: '流程',
  204. dataIndex: 'content',
  205. key: 'content',
  206. align:'center'
  207. }, {
  208. title: '操作人',
  209. dataIndex: 'aName',
  210. key: 'aName',
  211. align:'center'
  212. }, {
  213. title: '时间',
  214. dataIndex: 'createTimes',
  215. key: 'createTimes',
  216. align:'center'
  217. }
  218. ],
  219. dataSourceX: [],
  220. dataSourceA: [],
  221. ContactsLists: [{
  222. title: '批次',
  223. dataIndex: 'num',
  224. key: 'num',
  225. },{
  226. title: '下证时间',
  227. dataIndex: 'licenceTimes',
  228. key: 'licenceTimes',
  229. }, {
  230. title: '下证数量',
  231. dataIndex: 'alreadyNumber',
  232. key: 'alreadyNumber',
  233. },
  234. {
  235. title: '未下证数量',
  236. dataIndex: 'notCount',
  237. key: 'notCount',
  238. }
  239. ],
  240. }
  241. },
  242. /* 分派 */
  243. evaluate(record,nub){
  244. this.state.assignData=record;
  245. this.setState({
  246. nub,
  247. assignVisible:true
  248. })
  249. },
  250. componentDidMount(){
  251. this.setColor()
  252. },
  253. componentWillMount() {
  254. this.departmentList();
  255. this.loadData();
  256. },
  257. tableRowClick(record) {
  258. this.state.RowData = record;
  259. if(record.taskName.substring(0,5) === '软件著作权'){
  260. this.setState({
  261. speVisible: true,
  262. id: record.id,
  263. dataArr:record,
  264. commodityQuantity:record.commodityQuantity
  265. });
  266. }else{
  267. this.setState({
  268. visible: true,
  269. });
  270. }
  271. this.xiangqing(record.id,record.taskName);
  272. this.xiangqings(record.orderNo);
  273. this.xiangmu(record.orderNo);
  274. this.loaduserss(record);
  275. },
  276. //订单详情
  277. xiangqing(id) {
  278. $.ajax({
  279. method: "get",
  280. dataType: "json",
  281. crossDomain: false,
  282. url: globalConfig.context +"/api/admin/orderProject/orderTaskDetail",
  283. data: {
  284. id:id
  285. },
  286. success: function(data) {
  287. if(data.error.length || data.data.list == "") {
  288. if(data.error && data.error.length) {
  289. message.warning(data.error[0].message);
  290. };
  291. } else {
  292. let thisdata=data.data;
  293. this.setState({
  294. id: thisdata.id,//ID
  295. orderNo: thisdata.orderNo,//订单编号
  296. userName:thisdata.userName,//客户名称
  297. taskName: thisdata.taskName,//任务名称
  298. cname:thisdata.cname,//项目品类
  299. contractNo:thisdata.contractNo,//合同编号
  300. projectStatus:thisdata.projectStatus,//项目状态
  301. taskStatus:thisdata.taskStatus,//任务状态
  302. taskDate:thisdata.taskDate,//分配时间
  303. taskComment:thisdata.taskComment,//说明
  304. attachmentUrl: thisdata.attachmentUrl ? splitUrl(thisdata.attachmentUrl, ',', globalConfig.avatarHost + '/upload') : [],//图片地址
  305. salesmanName:thisdata.salesmanName,//订单负责人
  306. startDate:thisdata.startDate,//启动日期
  307. endDate:thisdata.endDate,//结束日期
  308. acceptDate:thisdata.acceptDate,//受理日期
  309. reviewDate:thisdata.reviewDate,//评审日期
  310. publicityDate:thisdata.publicityDate,//公示日期
  311. licenceDate:thisdata.licenceDate,//发证日期
  312. contacts:thisdata.contacts,//联系人
  313. contactMobile:thisdata.contactMobile,//联系人电话
  314. legalPerson:thisdata.legalPerson,//法人
  315. legalPersonTel:thisdata.legalPersonTel,//法人电话
  316. certificateNumber:thisdata.certificateNumber,//证书编号
  317. status:thisdata.status,//状态
  318. formRetrieve:thisdata.formRetrieve,//满意度表格
  319. taskRefund:thisdata.taskRefund,//退单
  320. refundContent:thisdata.refundContent,//退单信息
  321. retrieveContent:thisdata.retrieveContent,//回收信息
  322. arrivalMoney:thisdata.arrivalMoney,//是否到款
  323. setUpAmount:thisdata.setUpAmount,//立项金额
  324. declareUser:thisdata.declareUser,//账号
  325. declarePwd:thisdata.declarePwd,//密码
  326. depName:thisdata.depName,//订单部门
  327. outsourceName:thisdata.outsourceName,//外包公司名称
  328. outsourcePrice:thisdata.outsourcePrice,//外包价格
  329. })
  330. };
  331. }.bind(this),
  332. }).always(function() {
  333. this.setState({
  334. loading: false
  335. });
  336. }.bind(this));
  337. },
  338. //订单详情
  339. xiangqings(orderNos) {
  340. $.ajax({
  341. method: "get",
  342. dataType: "json",
  343. crossDomain: false,
  344. url: globalConfig.context +"/api/admin/newOrder/getOrderNewDetail",
  345. data: {
  346. orderNo:orderNos
  347. },
  348. success: function(data) {
  349. let thisdata=data.data;
  350. let ProvinceCityArr = [];
  351. let ProvinceS = thisdata.locationProvince; //省
  352. let citys = thisdata.locationCity;//市
  353. let Areas = thisdata.locationArea;//区
  354. ProvinceCityArr.push(ProvinceS, citys, Areas);
  355. if(data.error.length || data.data.list == "") {
  356. if(data.error && data.error.length) {
  357. message.warning(data.error[0].message);
  358. };
  359. } else {
  360. this.setState({
  361. processStatus: thisdata.processStatus, //流程状态
  362. liquidationStatus: thisdata.liquidationStatus, //结算状态
  363. approval: thisdata.approval, //特批状态
  364. orderRemarks: thisdata.orderRemarks, //订单留言
  365. salesmanName: thisdata.salesmanName, //营销员名称
  366. salesmanMobile: thisdata.salesmanMobile, //营销员电话
  367. oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
  368. oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
  369. financeName: thisdata.financeName, //财务名称
  370. financeMobile: thisdata.financeMobile, //财务电话
  371. nowFinance: thisdata.nowFinance, //财务名称
  372. nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
  373. depName: thisdata.depName, //订单部门
  374. locationProvince: thisdata.locationProvince,
  375. locationCity: thisdata.locationCity,
  376. locationArea: thisdata.locationArea,
  377. ProvinceCity: ProvinceCityArr,
  378. postalAddress: thisdata.postalAddress, //详细地址
  379. outsource: thisdata.outsource
  380. });
  381. };
  382. }.bind(this),
  383. }).always(function() {
  384. this.setState({
  385. loading: false
  386. });
  387. }.bind(this));
  388. },
  389. //查看下证信息
  390. loaduserss(record){
  391. $.ajax({
  392. method: "get",
  393. dataType: "json",
  394. crossDomain: false,
  395. url: globalConfig.context + '/api/admin/orderProject/selectTaskProgress',
  396. data: {
  397. tid:record.id
  398. },
  399. success: function (data) {
  400. let theArr=[];
  401. let thisData=[];
  402. if (!thisData) {
  403. if (data.error && data.error.length) {
  404. message.warning(data.error[0].message);
  405. };
  406. thisData = {};
  407. }else{
  408. for(let i = 0; i < data.data.length; i++) {
  409. thisData= data.data[i];
  410. theArr.push({
  411. num:i+1,
  412. key:i,
  413. id:thisData.id,//编号
  414. alreadyNumber:thisData.alreadyNumber,//下证数
  415. licenceTimes:thisData.licenceTimes,//下证时间
  416. notCount:thisData.notCount,//未下证数
  417. flag:true
  418. })
  419. }
  420. this.setState({
  421. contactList:theArr
  422. })
  423. };
  424. }.bind(this),
  425. }).always(function () {
  426. this.setState({
  427. loading: false
  428. });
  429. }.bind(this));
  430. },
  431. //项目列表
  432. xiangmu(orderNos) {
  433. $.ajax({
  434. method: "get",
  435. dataType: "json",
  436. crossDomain: false,
  437. url: globalConfig.context +"/api/admin/newOrder/getOrderTask",
  438. data: {
  439. orderNo:orderNos
  440. },
  441. success: function(data) {
  442. let theArr = [];
  443. if(data.error.length || data.data.list == "") {
  444. if(data.error && data.error.length) {
  445. message.warning(data.error[0].message);
  446. };
  447. } else {
  448. for (let i = 0; i < data.data.length; i++) {
  449. let thisdata = data.data[i];
  450. theArr.push({
  451. key: i,
  452. id:thisdata.id,
  453. orderNo:thisdata.orderNo,//订单编号
  454. commodityId:thisdata.commodityId,//项目ID
  455. commodityName:thisdata.commodityName,//项目名称
  456. cname:thisdata.cname,//项目类别
  457. commodityPrice:thisdata.commodityPrice,//项目价格
  458. commodityQuantity:thisdata.commodityQuantity,//项目数量
  459. main:thisdata.main,//是否为主要任务
  460. taskComment:thisdata.taskComment,//任务说明
  461. contacts:thisdata.contacts,//联系人
  462. contactsMobile:thisdata.contactsMobile,//联系人电话
  463. taskStatus:thisdata.taskStatus,//是否分配
  464. });
  465. };
  466. };
  467. this.setState({
  468. dataSourceX: theArr,
  469. });
  470. }.bind(this),
  471. }).always(function() {
  472. this.setState({
  473. loading: false
  474. });
  475. }.bind(this));
  476. },
  477. caozuorizhi(){
  478. this.setState({
  479. visibleA:true
  480. })
  481. $.ajax({
  482. method: "get",
  483. dataType: "json",
  484. crossDomain: false,
  485. url: globalConfig.context +"/api/admin/orderProject/TaskLogList",
  486. data: {
  487. id:this.state.id
  488. },
  489. success: function(data) {
  490. let theArr = [];
  491. if(data.error.length || data.data.list == "") {
  492. if(data.error && data.error.length) {
  493. message.warning(data.error[0].message);
  494. };
  495. } else {
  496. for (let i = 0; i < data.data.length; i++) {
  497. let thisdata = data.data[i];
  498. theArr.push({
  499. key: i,
  500. id:thisdata.id,//日志ID
  501. content:thisdata.content,//流程
  502. taskId:thisdata.taskId,//任务ID
  503. aName:thisdata.aName,//负责人
  504. createTimes:thisdata.createTimes,//时间
  505. });
  506. };
  507. };
  508. this.setState({
  509. dataSourceA: theArr,
  510. });
  511. }.bind(this),
  512. }).always(function() {
  513. this.setState({
  514. loading: false
  515. });
  516. }.bind(this));
  517. },
  518. //关闭操作工时
  519. visitCancelA(){
  520. this.setState({
  521. visibleA:false
  522. })
  523. },
  524. //关闭详情
  525. visitCancel(){
  526. this.setState({
  527. visible:false,
  528. speVisible:false,
  529. })
  530. this.reset();
  531. },
  532. visitOk(){
  533. this.setState({
  534. visible:false
  535. })
  536. this.reset();
  537. },
  538. setColor(){
  539. $(".userName span").after("(<span class='ruanzhu'>软著数</span>/<span class='xiazheng'>下证数</span>)")
  540. },
  541. closeDesc(e, s) {
  542. this.state.showDesc = e;
  543. if (s) {
  544. this.loadData(this.state.page);
  545. };
  546. },
  547. closeAssign(e, s) {
  548. this.state.roleName='';
  549. this.state.assignVisible = e;
  550. if (s) {
  551. this.loadData(this.state.page);
  552. };
  553. },
  554. nextCancel() {
  555. this.setState({
  556. addnextVisible: false
  557. })
  558. },
  559. //点击打卡项目详情
  560. tableRowClickX(record) {
  561. this.setState({
  562. jid:record.id,//项目ID
  563. kid:record.commodityId,//商品ID
  564. commodityName:record.commodityName,//金额
  565. commodityPrice:record.commodityPrice,//金额
  566. commodityQuantity:record.commodityQuantity,//数量
  567. taskComment:record.taskComment,//备注
  568. main:record.main.toString(),//是否为主要
  569. addnextVisible:true,
  570. addState:0,
  571. });
  572. },
  573. search() {
  574. this.loadData();
  575. },
  576. reset() {
  577. this.state.nameSearch = '';
  578. this.state.releaseDate = [];
  579. this.state.orderNoSearch='';
  580. this.state.taskNoSearch='';
  581. this.state.departmenttSearch=undefined;
  582. this.loadData(this.state.page);
  583. },
  584. searchSwitch() {
  585. this.setState({
  586. searchMore: !this.state.searchMore
  587. });
  588. },
  589. //部门
  590. departmentList() {
  591. this.setState({
  592. loading: true
  593. });
  594. $.ajax({
  595. method: "get",
  596. dataType: "json",
  597. crossDomain: false,
  598. url: globalConfig.context + "/api/admin/organization/selectSuperId",
  599. data: {
  600. },
  601. success: function(data) {
  602. let thedata = data.data;
  603. let theArr = [];
  604. if(!thedata) {
  605. if(data.error && data.error.length) {
  606. message.warning(data.error[0].message);
  607. };
  608. thedata = {};
  609. } else {
  610. thedata.map(function(item, index) {
  611. theArr.push({
  612. key: index,
  613. name: item.name,
  614. id: item.id,
  615. })
  616. })
  617. }
  618. this.setState({
  619. departmentArr: theArr,
  620. })
  621. }.bind(this),
  622. }).always(function() {
  623. this.setState({
  624. loading: false
  625. });
  626. }.bind(this));
  627. },
  628. render() {
  629. const utils = {
  630. getSatisfaction:function(num){
  631. switch(num){
  632. case 0:
  633. return '未收回';
  634. case 1:
  635. return '已收回';
  636. default:
  637. return '其它';
  638. }
  639. },
  640. getChargeback:function(num){
  641. switch(num){
  642. case 0:
  643. return '已完成';
  644. case 1:
  645. return '未完成';
  646. default:
  647. return '其它';
  648. }
  649. }
  650. }
  651. const formItemLayout = {
  652. labelCol: { span: 8 },
  653. wrapperCol: { span: 14 },
  654. };
  655. let departmentArr = this.state.departmentArr || [];
  656. return ( <div className="user-content">
  657. <div className="content-title">
  658. <span>任务查询</span>
  659. </div>
  660. <div className="user-search">
  661. <Input placeholder="客户名称"
  662. value={this.state.nameSearch}
  663. onChange={(e) => { this.setState({ nameSearch: e.target.value }); }} />
  664. <Input placeholder="订单编号"
  665. value={this.state.orderNoSearch}
  666. onChange={(e) => { this.setState({ orderNoSearch: e.target.value }); }} />
  667. <Input placeholder="任务编号"
  668. value={this.state.taskNoSearch}
  669. onChange={(e) => { this.setState({ taskNoSearch: e.target.value }); }} />
  670. <Select placeholder="选择部门"
  671. style={{ width: 150 ,marginRight:'10px'}}
  672. value={this.state.departmenttSearch}
  673. onChange={(e) => { this.setState({ departmenttSearch: e }) }}>
  674. {
  675. departmentArr.map(function (item) {
  676. return <Select.Option key={item.id} >{item.name}</Select.Option>
  677. })
  678. }
  679. </Select>
  680. <Button type="primary" onClick={this.search}>搜索</Button>
  681. <Button onClick={this.reset}>重置</Button>
  682. {/* <span>更多搜索<Switch defaultChecked={false} onChange={this.searchSwitch.bind(this)} /></span>
  683. <div className="search-more" style={this.state.searchMore ? { display: 'none' } : {}}>
  684. <span>订单时间 :</span>
  685. <RangePicker
  686. value={[this.state.releaseDate[0] ? moment(this.state.releaseDate[0]) : null,
  687. this.state.releaseDate[1] ? moment(this.state.releaseDate[1]) : null]}
  688. onChange={(data, dataString) => { this.setState({ releaseDate: dataString }); }} />
  689. </div> */}
  690. </div>
  691. <div className="patent-table">
  692. <Spin spinning={this.state.loading}>
  693. <Table columns={this.state.columns}
  694. dataSource={this.state.dataSource}
  695. onHeaderRow={(column) =>{console.log(column.index)}}
  696. pagination={this.state.pagination}
  697. onRowClick={this.tableRowClick.bind(this)} />
  698. </Spin>
  699. </div>
  700. <Assign
  701. title="任务"
  702. selApi={"/api/admin/orderProject/projectDistribution"}
  703. data={this.state.assignData}
  704. showDesc={this.state.assignVisible}
  705. closeDesc={this.closeAssign.bind(this)}
  706. fenpaiData={8}
  707. specially={0}
  708. roleName={this.state.nub}
  709. />
  710. <Modal
  711. className="customeDetails"
  712. footer=''
  713. title="项目概况"
  714. width='900px'
  715. visible={this.state.visible}
  716. onOk={this.visitOk}
  717. onCancel={this.visitCancel}
  718. >
  719. <Form layout="horizontal" onSubmit={this.handleSubmit} id="demand-form" style={{paddingBottom:'00px'}} >
  720. <Spin spinning={this.state.loading}>
  721. <div className="clearfix">
  722. <div className="clearfix">
  723. <FormItem className="half-item"
  724. {...formItemLayout}
  725. label="当前项目情况">
  726. <span>{this.state.status?'暂停':'开启'}</span>
  727. <Button type='primary' size='small' style={{marginTop:'5px',position:'absolute'}} onClick={this.caozuorizhi}>操作日志</Button>
  728. </FormItem>
  729. <FormItem className="half-item"
  730. {...formItemLayout}
  731. label="合同编号">
  732. <span>{this.state.contractNo}</span>
  733. </FormItem>
  734. </div>
  735. <div className="clearfix">
  736. <FormItem className="half-item"
  737. {...formItemLayout}
  738. label="项目状态">
  739. <span>{getProcessStatus(this.state.projectStatus)}</span>
  740. </FormItem>
  741. <FormItem className="half-item"
  742. {...formItemLayout}
  743. label="是否特批">
  744. <span>{getApproval(this.state.approval)}</span>
  745. </FormItem>
  746. <FormItem className="half-item"
  747. {...formItemLayout}
  748. label="结算状态">
  749. <span>{getLiquidationStatus(this.state.liquidationStatus)}</span>
  750. </FormItem>
  751. <FormItem className="half-item"
  752. {...formItemLayout}
  753. label="流程状态">
  754. <span>{getProcessStatus(this.state.processStatus)}</span>
  755. </FormItem>
  756. <FormItem className="half-item"
  757. {...formItemLayout}
  758. label="订单编号">
  759. <span>{this.state.orderNo}</span>
  760. </FormItem>
  761. </div>
  762. <div className="clearfix">
  763. <FormItem className="half-item"
  764. {...formItemLayout}
  765. label="满意度表格">
  766. <span>{utils.getSatisfaction(this.state.formRetrieve)}</span>
  767. </FormItem>
  768. <FormItem className="half-item"
  769. {...formItemLayout}
  770. label="退单">
  771. <span>{utils.getChargeback(this.state.taskRefund)}</span>
  772. </FormItem>
  773. </div>
  774. <div className="clearfix">
  775. {<FormItem className='half-item'
  776. {...formItemLayout}
  777. label="(满意度)备注">
  778. <span>{this.state.retrieveContent}</span>
  779. </FormItem>}
  780. {<FormItem className='half-item'
  781. {...formItemLayout}
  782. label="(退单)备注">
  783. <span>{this.state.refundContent}</span>
  784. </FormItem>}
  785. </div>
  786. <div className="clearfix">
  787. <h3 className='sub-title'>任务信息</h3>
  788. <FormItem className="half-item"
  789. {...formItemLayout}
  790. label="任务编号">
  791. <span>{this.state.id}</span>
  792. </FormItem>
  793. <FormItem className="half-item"
  794. {...formItemLayout}
  795. label="任务名称">
  796. <span>{this.state.taskName}</span>
  797. </FormItem>
  798. <FormItem className="half-item"
  799. {...formItemLayout}
  800. label="任务状态">
  801. <span>{getTaskStatus(this.state.taskStatus)}</span>
  802. </FormItem>
  803. <FormItem className="half-item"
  804. {...formItemLayout}
  805. label="任务类别">
  806. <span>{this.state.cname}</span>
  807. </FormItem>
  808. <FormItem className="half-item"
  809. {...formItemLayout}
  810. label="证书编号" >
  811. <span>{this.state.certificateNumber}</span>
  812. </FormItem>
  813. </div>
  814. {this.state.outsource === 1?<div className="clearfix">
  815. <h3 className='sub-title'>外包信息</h3>
  816. <FormItem className="half-item"
  817. {...formItemLayout}
  818. label="外包公司">
  819. <span>{this.state.outsourceName}</span>
  820. </FormItem>
  821. <FormItem className="half-item"
  822. {...formItemLayout}
  823. label="外包成本(万元)">
  824. <span>{this.state.outsourcePrice}</span>
  825. </FormItem>
  826. </div>:''}
  827. {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/}
  828. <div className="clearfix">
  829. <h3 className='sub-title'>联系信息</h3>
  830. <FormItem className="half-item"
  831. {...formItemLayout}
  832. label="客户名称">
  833. <span>{this.state.userName}</span>
  834. </FormItem>
  835. <FormItem className="half-item"
  836. {...formItemLayout}
  837. label="企业法人">
  838. <span>{this.state.legalPerson}</span>
  839. </FormItem>
  840. <FormItem className="half-item"
  841. {...formItemLayout}
  842. label="法人电话">
  843. <span>{this.state.legalPersonTel}</span>
  844. </FormItem>
  845. <FormItem className="half-item"
  846. {...formItemLayout}
  847. label="客户联系人">
  848. <span>{this.state.contacts}</span>
  849. </FormItem>
  850. <FormItem className="half-item"
  851. {...formItemLayout}
  852. label="联系人电话">
  853. <span>{this.state.contactMobile}</span>
  854. </FormItem>
  855. <FormItem className="half-item"
  856. {...formItemLayout}
  857. label="企业地址">
  858. <span>{getprovince(this.state.locationProvince)}/{getprovince(this.state.locationCity)}/{getprovince(this.state.locationArea)}</span>
  859. </FormItem>
  860. <FormItem className="half-item"
  861. {...formItemLayout}
  862. label="">
  863. </FormItem>
  864. <FormItem className="half-item"
  865. {...formItemLayout}>
  866. <span style={{paddingLeft:'12em'}}>{this.state.postalAddress}</span>
  867. </FormItem>
  868. </div>
  869. {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/}
  870. <div className="clearfix">
  871. <h3 className='sub-title'>订单负责人信息</h3>
  872. <FormItem className="half-item"
  873. {...formItemLayout}
  874. label="负责人">
  875. <span>{this.state.salesmanName+'('+this.state.depName+')'}</span>
  876. </FormItem>
  877. <FormItem className="half-item"
  878. {...formItemLayout}
  879. label="负责人电话">
  880. <span>{this.state.salesmanMobile}</span>
  881. </FormItem>
  882. <FormItem className="half-item"
  883. {...formItemLayout}
  884. label="当前财务负责人">
  885. <span>{this.state.nowFinance}</span>
  886. </FormItem>
  887. <FormItem className="half-item"
  888. {...formItemLayout}
  889. label="当前财务负责人电话">
  890. <span>{this.state.nowFinanceMobile}</span>
  891. </FormItem>
  892. <FormItem className="half-item"
  893. {...formItemLayout}
  894. style={{ opacity: ".5" }}
  895. label="原负责人">
  896. <span>{this.state.oldSalesmanName}</span>
  897. </FormItem>
  898. <FormItem className="half-item"
  899. {...formItemLayout}
  900. style={{ opacity: ".5" }}
  901. label="原负责人电话">
  902. <span>{this.state.oldSalesmanMobile}</span>
  903. </FormItem>
  904. <FormItem className="half-item"
  905. {...formItemLayout}
  906. style={{ opacity: ".5" }}
  907. label="实际财务操作人">
  908. <span>{this.state.financeName}</span>
  909. </FormItem>
  910. <FormItem className="half-item"
  911. {...formItemLayout}
  912. style={{ opacity: ".5" }}
  913. label="实际财务操作人电话">
  914. <span>{this.state.financeMobile}</span>
  915. </FormItem>
  916. </div>
  917. <div className="clearfix">
  918. <h3 className='sub-title'>申报系统账户信息</h3>
  919. {/*<span style={{color:'red'}}>注:仅技术部可见</span>*/}
  920. <FormItem className="half-item"
  921. {...formItemLayout}
  922. label="用户名" >
  923. <span>{this.state.declareUser?'*':''}</span>
  924. </FormItem>
  925. <FormItem className="half-item"
  926. {...formItemLayout}
  927. label="密码" >
  928. <span>{this.state.declarePwd?'*':''}</span>
  929. </FormItem>
  930. </div>
  931. <div className="clearfix">
  932. <h3 className='sub-title'>项目申报进度</h3>
  933. <FormItem className="half-item" {...formItemLayout} label="启动时间">
  934. <span>{this.state.startDate}</span>
  935. </FormItem>
  936. <FormItem className="half-item" {...formItemLayout} label="完成时间">
  937. <span>{this.state.endDate}</span>
  938. </FormItem>
  939. <FormItem className="half-item" {...formItemLayout} label="受理时间">
  940. <span>{this.state.acceptDate}</span>
  941. </FormItem>
  942. <FormItem className="half-item" {...formItemLayout} label="评审时间">
  943. <span>{this.state.reviewDate}</span>
  944. </FormItem>
  945. <FormItem className="half-item" {...formItemLayout} label="公示时间">
  946. <span>{this.state.publicityDate}</span>
  947. </FormItem>
  948. <FormItem className="half-item" {...formItemLayout} label="发证时间">
  949. <span>{this.state.licenceDate}</span>
  950. </FormItem>
  951. <FormItem className="half-item"
  952. {...formItemLayout}
  953. label="立项金额(万元)" >
  954. <span>{this.state.setUpAmount}</span>
  955. </FormItem>
  956. <FormItem className="half-item"
  957. {...formItemLayout}
  958. label="是否到款">
  959. <span>{this.state.arrivalMoney?'已到企业':'未到企业'}</span>
  960. </FormItem>
  961. </div>
  962. <div className='clearfix'>
  963. <FormItem
  964. labelCol={{ span: 3 }}
  965. wrapperCol={{ span: 18 }}
  966. label='附件'
  967. >
  968. <Upload className="demandDetailShow-upload"
  969. listType="picture-card"
  970. fileList={this.state.attachmentUrl}
  971. onPreview={(file) => {
  972. this.setState({
  973. previewImage: file.url || file.thumbUrl,
  974. previewVisible: true,
  975. });
  976. }} >
  977. </Upload>
  978. <Modal maskClosable={false} footer={null}
  979. visible={this.state.previewVisible}
  980. onCancel={() => { this.setState({ previewVisible: false }) }}>
  981. <img alt="" style={{ width: '100%' }} src={this.state.previewImage || ''} />
  982. </Modal>
  983. </FormItem>
  984. </div>
  985. <div className='clearfix'>
  986. <FormItem
  987. labelCol={{ span: 3 }}
  988. wrapperCol={{ span: 16 }}
  989. label="备注" >
  990. <span>{this.state.taskComment}</span>
  991. </FormItem>
  992. </div>
  993. <div>
  994. <h3 className='sub-title'>项目业务</h3>
  995. {this.state.processStatus==0?<Button type='primary' onClick={this.addDetailed} style={{float:'right',marginRight:'50px',marginBottom:'15px'}}>添加项目明细</Button>:""}
  996. </div>
  997. <div className="patent-table">
  998. <Spin spinning={this.state.loading}>
  999. <Table columns={this.state.columnsX}
  1000. dataSource={this.state.dataSourceX}
  1001. pagination={this.state.paginations}
  1002. onRowClick={this.tableRowClickX}
  1003. />
  1004. </Spin>
  1005. </div>
  1006. </div>
  1007. </Spin>
  1008. </Form>
  1009. </Modal>
  1010. <Modal maskClosable={false} visible={this.state.addnextVisible}
  1011. onOk={this.nextCancel} onCancel={this.nextCancel}
  1012. width='900px'
  1013. title='项目任务详情'
  1014. footer=''
  1015. className="admin-desc-content">
  1016. <Form layout="horizontal" onSubmit={this.nextSubmit} id="demand-form">
  1017. <Spin spinning={this.state.loading}>
  1018. <div className='clearfix'>
  1019. <FormItem className="half-item"
  1020. {...formItemLayout}
  1021. label="项目名称" >
  1022. <span>{this.state.commodityName}</span>
  1023. </FormItem>
  1024. <FormItem className="half-item"
  1025. {...formItemLayout}
  1026. label="项目数量" >
  1027. <span>{this.state.commodityQuantity}</span>
  1028. </FormItem>
  1029. <FormItem className="half-item"
  1030. {...formItemLayout}
  1031. label="金额(万元)" >
  1032. <span>{this.state.commodityPrice}</span>
  1033. </FormItem>
  1034. <FormItem className="half-item"
  1035. {...formItemLayout}
  1036. label="主要项目" >
  1037. <span>{getboutique(this.state.main)}</span>
  1038. </FormItem>
  1039. <div className='clearfix'>
  1040. <FormItem
  1041. labelCol={{ span: 4 }}
  1042. wrapperCol={{ span: 16 }}
  1043. label="服务说明" >
  1044. <span>{this.state.taskComment}</span>
  1045. </FormItem>
  1046. </div>
  1047. </div>
  1048. </Spin>
  1049. </Form >
  1050. </Modal>
  1051. <Modal width='800px'
  1052. title='操作日志'
  1053. footer=''
  1054. className="admin-desc-content">
  1055. <div className="patent-table patent-table-center">
  1056. <Spin spinning={this.state.loading}>
  1057. <Table columns={this.state.columnsY}/>
  1058. </Spin>
  1059. </div>
  1060. </Modal>
  1061. <Modal maskClosable={false} visible={this.state.speVisible}
  1062. onOk={this.visitOk} onCancel={this.visitCancel}
  1063. width='900px'
  1064. title='项目概况'
  1065. footer=''
  1066. className="admin-desc-content">
  1067. <div className="clearfix">
  1068. <FormItem className="half-item"
  1069. {...formItemLayout}
  1070. label="当前项目情况">
  1071. <span>{this.state.status?'暂停':'开启'}</span>
  1072. <Button type='primary' size='small' style={{marginTop:'5px',position:'absolute'}} onClick={this.caozuorizhi}>操作日志</Button>
  1073. </FormItem>
  1074. <FormItem className="half-item"
  1075. {...formItemLayout}
  1076. label="合同编号">
  1077. <span>{this.state.contractNo}</span>
  1078. </FormItem>
  1079. </div>
  1080. <div className="clearfix">
  1081. <FormItem className="half-item"
  1082. {...formItemLayout}
  1083. label="项目状态">
  1084. <span>{getProcessStatus(this.state.projectStatus)}</span>
  1085. </FormItem>
  1086. <FormItem className="half-item"
  1087. {...formItemLayout}
  1088. label="是否特批">
  1089. <span>{getApproval(this.state.approval)}</span>
  1090. </FormItem>
  1091. <FormItem className="half-item"
  1092. {...formItemLayout}
  1093. label="结算状态">
  1094. <span>{getLiquidationStatus(this.state.liquidationStatus)}</span>
  1095. </FormItem>
  1096. <FormItem className="half-item"
  1097. {...formItemLayout}
  1098. label="流程状态">
  1099. <span>{getProcessStatus(this.state.processStatus)}</span>
  1100. </FormItem>
  1101. <FormItem className="half-item"
  1102. {...formItemLayout}
  1103. label="订单编号">
  1104. <span>{this.state.orderNo}</span>
  1105. </FormItem>
  1106. </div>
  1107. <div className="clearfix">
  1108. <FormItem className="half-item"
  1109. {...formItemLayout}
  1110. label="满意度表格">
  1111. <span>{utils.getSatisfaction(this.state.formRetrieve)}</span>
  1112. </FormItem>
  1113. <FormItem className="half-item"
  1114. {...formItemLayout}
  1115. label="退单">
  1116. <span>{utils.getChargeback(this.state.taskRefund)}</span>
  1117. </FormItem>
  1118. </div>
  1119. <div className="clearfix">
  1120. {<FormItem className='half-item'
  1121. {...formItemLayout}
  1122. label="(满意度)备注">
  1123. <span>{this.state.retrieveContent}</span>
  1124. </FormItem>}
  1125. {<FormItem className='half-item'
  1126. {...formItemLayout}
  1127. label="(退单)备注">
  1128. <span>{this.state.refundContent}</span>
  1129. </FormItem>}
  1130. </div>
  1131. <div className="clearfix">
  1132. <h3 className='sub-title'>任务信息</h3>
  1133. <FormItem className="half-item"
  1134. {...formItemLayout}
  1135. label="任务编号">
  1136. <span>{this.state.id}</span>
  1137. </FormItem>
  1138. <FormItem className="half-item"
  1139. {...formItemLayout}
  1140. label="任务名称">
  1141. <span>{this.state.taskName}</span>
  1142. </FormItem>
  1143. <FormItem className="half-item"
  1144. {...formItemLayout}
  1145. label="任务状态">
  1146. <span>{getTaskStatus(this.state.taskStatus)}</span>
  1147. </FormItem>
  1148. <FormItem className="half-item"
  1149. {...formItemLayout}
  1150. label="任务类别">
  1151. <span>{this.state.cname}</span>
  1152. </FormItem>
  1153. <FormItem className="half-item"
  1154. {...formItemLayout}
  1155. label="证书编号" >
  1156. <span>{this.state.certificateNumber}</span>
  1157. </FormItem>
  1158. </div>
  1159. {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/}
  1160. <div className="clearfix">
  1161. <h3 className='sub-title'>联系信息</h3>
  1162. <FormItem className="half-item"
  1163. {...formItemLayout}
  1164. label="客户名称">
  1165. <span>{this.state.userName}</span>
  1166. </FormItem>
  1167. <FormItem className="half-item"
  1168. {...formItemLayout}
  1169. label="企业法人">
  1170. <span>{this.state.legalPerson}</span>
  1171. </FormItem>
  1172. <FormItem className="half-item"
  1173. {...formItemLayout}
  1174. label="法人电话">
  1175. <span>{this.state.legalPersonTel}</span>
  1176. </FormItem>
  1177. <FormItem className="half-item"
  1178. {...formItemLayout}
  1179. label="客户联系人">
  1180. <span>{this.state.contacts}</span>
  1181. </FormItem>
  1182. <FormItem className="half-item"
  1183. {...formItemLayout}
  1184. label="联系人电话">
  1185. <span>{this.state.contactMobile}</span>
  1186. </FormItem>
  1187. <FormItem className="half-item"
  1188. {...formItemLayout}
  1189. label="企业地址">
  1190. <span>{getprovince(this.state.locationProvince)}/{getprovince(this.state.locationCity)}/{getprovince(this.state.locationArea)}</span>
  1191. </FormItem>
  1192. <FormItem className="half-item"
  1193. {...formItemLayout}
  1194. label="">
  1195. </FormItem>
  1196. <FormItem className="half-item"
  1197. {...formItemLayout}
  1198. label="">
  1199. <span style={{paddingLeft:'12em'}}>{this.state.postalAddress}</span>
  1200. </FormItem>
  1201. </div>
  1202. {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/}
  1203. <div className="clearfix">
  1204. <h3 className='sub-title'>订单负责人信息</h3>
  1205. <FormItem className="half-item"
  1206. {...formItemLayout}
  1207. label="负责人">
  1208. <span>{this.state.salesmanName+'('+this.state.depName+')'}</span>
  1209. </FormItem>
  1210. <FormItem className="half-item"
  1211. {...formItemLayout}
  1212. label="负责人电话">
  1213. <span>{this.state.salesmanMobile}</span>
  1214. </FormItem>
  1215. <FormItem className="half-item"
  1216. {...formItemLayout}
  1217. label="财务负责人">
  1218. <span>{this.state.financeName}</span>
  1219. </FormItem>
  1220. <FormItem className="half-item"
  1221. {...formItemLayout}
  1222. label="财务负责人电话">
  1223. <span>{this.state.financeMobile}</span>
  1224. </FormItem>
  1225. </div>
  1226. <div className="clearfix" style={{marginTop:'10px'}}>
  1227. <FormItem
  1228. labelCol={{ span: 3 }}
  1229. wrapperCol={{ span: 18 }}
  1230. label='附件'
  1231. >
  1232. <Upload className="demandDetailShow-upload"
  1233. listType="picture-card"
  1234. fileList={this.state.attachmentUrl}
  1235. onPreview={(file) => {
  1236. this.setState({
  1237. previewImage: file.url || file.thumbUrl,
  1238. previewVisible: true,
  1239. });
  1240. }} >
  1241. </Upload>
  1242. <Modal maskClosable={false} footer={null}
  1243. visible={this.state.previewVisible}
  1244. onCancel={() => { this.setState({ previewVisible: false }) }}>
  1245. <img alt="" style={{ width: '100%' }} src={this.state.previewImage || ''} />
  1246. </Modal>
  1247. </FormItem>
  1248. </div>
  1249. <div className="clearfix">
  1250. <FormItem
  1251. labelCol={{ span: 3 }}
  1252. wrapperCol={{ span: 16 }}
  1253. label="备注">
  1254. <span>{this.state.taskComment}</span>
  1255. </FormItem>
  1256. </div>
  1257. <div className="clearfix">
  1258. <h3 className='sub-title'>项目申报进度</h3>
  1259. <FormItem className="half-item"
  1260. {...formItemLayout}
  1261. label="启动时间">
  1262. <span>{this.state.startDate}</span>
  1263. </FormItem>
  1264. <FormItem className="half-item"
  1265. {...formItemLayout}
  1266. label="软著派单数量">
  1267. <span>{this.state.commodityQuantity}</span>
  1268. </FormItem>
  1269. <div className="patent-table patent-table-center">
  1270. <Spin spinning={this.state.loading}>
  1271. <Table columns={this.state.ContactsLists}
  1272. dataSource={this.state.contactList}
  1273. pagination={false}/>
  1274. </Spin>
  1275. </div>
  1276. </div>
  1277. <div className="clearfix">
  1278. <h3 className='sub-title'>项目业务</h3>
  1279. <div className="patent-table">
  1280. <Spin spinning={this.state.loading}>
  1281. <Table columns={this.state.columnsX}
  1282. dataSource={this.state.dataSourceX}
  1283. pagination={this.state.paginations}
  1284. onRowClick={this.tableRowClickX}
  1285. />
  1286. </Spin>
  1287. </div>
  1288. </div>
  1289. </Modal>
  1290. <Modal width='800px' visible={this.state.visibleA}
  1291. onCancel={this.visitCancelA}
  1292. title='操作日志'
  1293. footer=''
  1294. className="admin-desc-content">
  1295. <div className="patent-table patent-table-center">
  1296. <Spin spinning={this.state.loading}>
  1297. <Table columns={this.state.columnsA}
  1298. dataSource={this.state.dataSourceA}
  1299. pagination={false}/>
  1300. </Spin>
  1301. </div>
  1302. </Modal>
  1303. </div> )
  1304. }
  1305. })
  1306. export default Task;