taskQuery.jsx 58 KB

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