taskQuery.jsx 59 KB

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