taskQuery.jsx 90 KB

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