taskQuery.jsx 93 KB

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