project.jsx 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910
  1. import React from "react";
  2. import $ from "jquery";
  3. import { Spin, Button, Tabs, Table, message, Modal, Form, Upload } from "antd";
  4. import {
  5. getProcessStatus,
  6. getApproval,
  7. getTaskStatus,
  8. getLiquidationStatus,
  9. splitUrl,
  10. getProjectStatus,
  11. getboutique,
  12. getprovince,
  13. ShowModal
  14. } from "@/tools";
  15. const FormItem = Form.Item;
  16. const project = React.createClass({
  17. getInitialState() {
  18. return {
  19. visible: false,
  20. record: this.props.record,
  21. paginations: false,
  22. columnsX: [
  23. {
  24. title: "业务项目名称",
  25. dataIndex: "commodityName",
  26. key: "commodityName"
  27. },
  28. {
  29. title: "项目类别",
  30. dataIndex: "cname",
  31. key: "cname"
  32. },
  33. {
  34. title: "项目数量",
  35. dataIndex: "commodityQuantity",
  36. key: "commodityQuantity"
  37. },
  38. {
  39. title: "金额(万元)",
  40. dataIndex: "commodityPrice",
  41. key: "commodityPrice"
  42. },
  43. {
  44. title: "负责人",
  45. dataIndex: "contacts",
  46. key: "contacts"
  47. },
  48. {
  49. title: "负责人电话",
  50. dataIndex: "contactsMobile",
  51. key: "contactsMobile"
  52. },
  53. {
  54. title: "主要项目",
  55. dataIndex: "main",
  56. key: "main",
  57. render: text => {
  58. return text ? "是" : "否";
  59. }
  60. },
  61. {
  62. title: "项目说明",
  63. dataIndex: "taskComment",
  64. key: "taskComment",
  65. render: text => {
  66. return text && text.length > 8 ? text.substr(0, 8) + "…" : text;
  67. }
  68. }
  69. ],
  70. columnsA: [
  71. {
  72. title: '流程',
  73. dataIndex: 'content',
  74. key: 'content',
  75. align:'center'
  76. }, {
  77. title: '操作人',
  78. dataIndex: 'aName',
  79. key: 'aName',
  80. align:'center'
  81. }, {
  82. title: '时间',
  83. dataIndex: 'createTimes',
  84. key: 'createTimes',
  85. align:'center'
  86. }
  87. ],
  88. };
  89. },
  90. componentWillReceiveProps(nextProps) {
  91. console.log(nextProps.visible);
  92. this.setState({
  93. visible: nextProps.visible,
  94. record: nextProps.record
  95. });
  96. if (nextProps.record) {
  97. this.xiangqing(nextProps.record.id);
  98. this.xiangqings(nextProps.record.orderNo);
  99. this.xiangmu(nextProps.record.orderNo);
  100. this.loaduserss(nextProps.record);
  101. }
  102. },
  103. // handleOk() {
  104. // this.setState({
  105. // newVisible: false
  106. // });
  107. // // window.setTimeout( () => {
  108. // // this.setState({
  109. // // newVisible: true
  110. // // });
  111. // // },)
  112. // },
  113. componentDidMount() {},
  114. xiangqing(id) {
  115. $.ajax({
  116. method: "get",
  117. dataType: "json",
  118. crossDomain: false,
  119. url: globalConfig.context + "/api/admin/orderProject/orderTaskDetail",
  120. data: {
  121. id: id
  122. },
  123. success: function(data) {
  124. if (data.error.length || data.data.list == "") {
  125. if (data.error && data.error.length) {
  126. message.warning(data.error[0].message);
  127. }
  128. } else {
  129. let thisdata = data.data;
  130. this.setState({
  131. id: thisdata.id, //ID
  132. orderNo: thisdata.orderNo, //订单编号
  133. userName: thisdata.userName, //客户名称
  134. taskName: thisdata.taskName, //任务名称
  135. cname: thisdata.cname, //项目品类
  136. contractNo: thisdata.contractNo, //合同编号
  137. projectStatus: thisdata.projectStatus, //项目状态
  138. taskStatus: thisdata.taskStatus, //任务状态
  139. taskDate: thisdata.taskDate, //分配时间
  140. taskComment: thisdata.taskComment, //说明
  141. attachmentUrl: thisdata.attachmentUrl
  142. ? splitUrl(
  143. thisdata.attachmentUrl,
  144. ",",
  145. globalConfig.avatarHost + "/upload"
  146. )
  147. : [], //图片地址
  148. salesmanName: thisdata.salesmanName, //订单负责人
  149. startDate: thisdata.startDate, //启动日期
  150. endDate: thisdata.endDate, //结束日期
  151. acceptDate: thisdata.acceptDate, //受理日期
  152. reviewDate: thisdata.reviewDate, //评审日期
  153. publicityDate: thisdata.publicityDate, //公示日期
  154. licenceDate: thisdata.licenceDate, //发证日期
  155. contacts: thisdata.contacts, //联系人
  156. contactMobile: thisdata.contactMobile, //联系人电话
  157. legalPerson: thisdata.legalPerson, //法人
  158. legalPersonTel: thisdata.legalPersonTel, //法人电话
  159. certificateNumber: thisdata.certificateNumber, //证书编号
  160. status: thisdata.status, //状态
  161. formRetrieve: thisdata.formRetrieve, //满意度表格
  162. taskRefund: thisdata.taskRefund, //退单
  163. refundContent: thisdata.refundContent, //退单信息
  164. retrieveContent: thisdata.retrieveContent, //回收信息
  165. arrivalMoney: thisdata.arrivalMoney, //是否到款
  166. setUpAmount: thisdata.setUpAmount, //立项金额
  167. declareUser: thisdata.declareUser, //账号
  168. declarePwd: thisdata.declarePwd, //密码
  169. depName: thisdata.depName, //订单部门
  170. outsourceName: thisdata.outsourceName, //外包公司名称
  171. outsourcePrice: thisdata.outsourcePrice //外包价格
  172. });
  173. }
  174. }.bind(this)
  175. }).always(
  176. function() {
  177. this.setState({
  178. loading: false
  179. });
  180. }.bind(this)
  181. );
  182. },
  183. //订单详情
  184. xiangqings(orderNos) {
  185. $.ajax({
  186. method: "get",
  187. dataType: "json",
  188. crossDomain: false,
  189. url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
  190. data: {
  191. orderNo: orderNos
  192. },
  193. success: function(data) {
  194. let thisdata = data.data;
  195. let ProvinceCityArr = [];
  196. let ProvinceS = thisdata.locationProvince; //省
  197. let citys = thisdata.locationCity; //市
  198. let Areas = thisdata.locationArea; //区
  199. ProvinceCityArr.push(ProvinceS, citys, Areas);
  200. if (data.error.length || data.data.list == "") {
  201. if (data.error && data.error.length) {
  202. message.warning(data.error[0].message);
  203. }
  204. } else {
  205. this.setState({
  206. processStatus: thisdata.processStatus, //流程状态
  207. liquidationStatus: thisdata.liquidationStatus, //结算状态
  208. approval: thisdata.approval, //特批状态
  209. orderRemarks: thisdata.orderRemarks, //订单留言
  210. salesmanName: thisdata.salesmanName, //营销员名称
  211. salesmanMobile: thisdata.salesmanMobile, //营销员电话
  212. oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
  213. oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
  214. financeName: thisdata.financeName, //财务名称
  215. financeMobile: thisdata.financeMobile, //财务电话
  216. nowFinance: thisdata.nowFinance, //财务名称
  217. nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
  218. depName: thisdata.depName, //订单部门
  219. locationProvince: thisdata.locationProvince,
  220. locationCity: thisdata.locationCity,
  221. locationArea: thisdata.locationArea,
  222. ProvinceCity: ProvinceCityArr,
  223. postalAddress: thisdata.postalAddress, //详细地址
  224. outsource: thisdata.outsource
  225. });
  226. }
  227. }.bind(this)
  228. }).always(
  229. function() {
  230. this.setState({
  231. loading: false
  232. });
  233. }.bind(this)
  234. );
  235. },
  236. //查看下证信息
  237. loaduserss(record) {
  238. $.ajax({
  239. method: "get",
  240. dataType: "json",
  241. crossDomain: false,
  242. url: globalConfig.context + "/api/admin/orderProject/selectTaskProgress",
  243. data: {
  244. tid: record.id
  245. },
  246. success: function(data) {
  247. let theArr = [];
  248. let thisData = [];
  249. if (!thisData) {
  250. if (data.error && data.error.length) {
  251. message.warning(data.error[0].message);
  252. }
  253. thisData = {};
  254. } else {
  255. for (let i = 0; i < data.data.length; i++) {
  256. thisData = data.data[i];
  257. theArr.push({
  258. num: i + 1,
  259. key: i,
  260. id: thisData.id, //编号
  261. alreadyNumber: thisData.alreadyNumber, //下证数
  262. licenceTimes: thisData.licenceTimes, //下证时间
  263. notCount: thisData.notCount, //未下证数
  264. flag: true
  265. });
  266. }
  267. this.setState({
  268. contactList: theArr
  269. });
  270. }
  271. }.bind(this)
  272. }).always(
  273. function() {
  274. this.setState({
  275. loading: false
  276. });
  277. }.bind(this)
  278. );
  279. },
  280. //项目列表
  281. xiangmu(orderNos) {
  282. $.ajax({
  283. method: "get",
  284. dataType: "json",
  285. crossDomain: false,
  286. url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
  287. data: {
  288. orderNo: orderNos
  289. },
  290. success: function(data) {
  291. let theArr = [];
  292. if (data.error.length || data.data.list == "") {
  293. if (data.error && data.error.length) {
  294. message.warning(data.error[0].message);
  295. }
  296. } else {
  297. for (let i = 0; i < data.data.length; i++) {
  298. let thisdata = data.data[i];
  299. theArr.push({
  300. key: i,
  301. id: thisdata.id,
  302. orderNo: thisdata.orderNo, //订单编号
  303. commodityId: thisdata.commodityId, //项目ID
  304. commodityName: thisdata.commodityName, //项目名称
  305. cname: thisdata.cname, //项目类别
  306. commodityPrice: thisdata.commodityPrice, //项目价格
  307. commodityQuantity: thisdata.commodityQuantity, //项目数量
  308. main: thisdata.main, //是否为主要任务
  309. taskComment: thisdata.taskComment, //任务说明
  310. contacts: thisdata.contacts, //联系人
  311. contactsMobile: thisdata.contactsMobile, //联系人电话
  312. taskStatus: thisdata.taskStatus //是否分配
  313. });
  314. }
  315. }
  316. this.setState({
  317. dataSourceX: theArr
  318. });
  319. }.bind(this)
  320. }).always(
  321. function() {
  322. this.setState({
  323. loading: false
  324. });
  325. }.bind(this)
  326. );
  327. },
  328. tableRowClickX(record) {
  329. this.setState({
  330. jid: record.id, //项目ID
  331. kid: record.commodityId, //商品ID
  332. commodityName: record.commodityName, //金额
  333. commodityPrice: record.commodityPrice, //金额
  334. commodityQuantity: record.commodityQuantity, //数量
  335. taskComment: record.taskComment, //备注
  336. main: record.main.toString(), //是否为主要
  337. addnextVisible: true,
  338. addState: 0
  339. });
  340. },
  341. caozuorizhi() {
  342. this.setState({
  343. visibleA: true
  344. });
  345. $.ajax({
  346. method: "get",
  347. dataType: "json",
  348. crossDomain: false,
  349. url: globalConfig.context + "/api/admin/orderProject/TaskLogList",
  350. data: {
  351. id: this.state.id
  352. },
  353. success: function(data) {
  354. let theArr = [];
  355. if (data.error.length || data.data.list == "") {
  356. if (data.error && data.error.length) {
  357. message.warning(data.error[0].message);
  358. }
  359. } else {
  360. for (let i = 0; i < data.data.length; i++) {
  361. let thisdata = data.data[i];
  362. theArr.push({
  363. key: i,
  364. id: thisdata.id, //日志ID
  365. content: thisdata.content, //流程
  366. taskId: thisdata.taskId, //任务ID
  367. aName: thisdata.aName, //负责人
  368. createTimes: thisdata.createTimes //时间
  369. });
  370. }
  371. }
  372. this.setState({
  373. dataSourceA: theArr
  374. });
  375. }.bind(this)
  376. }).always(
  377. function() {
  378. this.setState({
  379. loading: false
  380. });
  381. }.bind(this)
  382. );
  383. }, //关闭操作工时
  384. visitCancelA() {
  385. this.setState({
  386. visibleA: false
  387. });
  388. },
  389. render() {
  390. const formItemLayout = {
  391. labelCol: { span: 8 },
  392. wrapperCol: { span: 14 }
  393. };
  394. const utils = {
  395. getSatisfaction: function(num) {
  396. switch (num) {
  397. case 0:
  398. return "未收回";
  399. case 1:
  400. return "已收回";
  401. default:
  402. return "其它";
  403. }
  404. },
  405. getChargeback: function(num) {
  406. switch (num) {
  407. case 0:
  408. return "已完成";
  409. case 1:
  410. return "未完成";
  411. default:
  412. return "其它";
  413. }
  414. }
  415. };
  416. return (
  417. <Modal
  418. className="customeDetails"
  419. footer=""
  420. title="项目概况"
  421. width="900px"
  422. visible={this.state.visible}
  423. // onOk={this.visitOk}
  424. onCancel={e => {
  425. this.props.cancel()
  426. }}
  427. >
  428. <Form
  429. layout="horizontal"
  430. onSubmit={this.handleSubmit}
  431. id="demand-form"
  432. style={{ paddingBottom: "0px" }}
  433. >
  434. <Spin spinning={this.state.loading}>
  435. <div className="clearfix">
  436. <div className="clearfix">
  437. <FormItem
  438. className="half-item"
  439. {...formItemLayout}
  440. label="当前项目情况"
  441. >
  442. <span>{this.state.status ? "暂停" : "开启"}</span>
  443. <Button
  444. type="primary"
  445. size="small"
  446. style={{ marginTop: "5px", position: "absolute" }}
  447. onClick={this.caozuorizhi}
  448. >
  449. 操作日志
  450. </Button>
  451. </FormItem>
  452. <FormItem
  453. className="half-item"
  454. {...formItemLayout}
  455. label="合同编号"
  456. >
  457. <span>{this.state.contractNo}</span>
  458. </FormItem>
  459. </div>
  460. <div className="clearfix">
  461. <FormItem
  462. className="half-item"
  463. {...formItemLayout}
  464. label="项目状态"
  465. >
  466. <span>{getProcessStatus(this.state.projectStatus)}</span>
  467. </FormItem>
  468. <FormItem
  469. className="half-item"
  470. {...formItemLayout}
  471. label="是否特批"
  472. >
  473. <span>{getApproval(this.state.approval)}</span>
  474. </FormItem>
  475. <FormItem
  476. className="half-item"
  477. {...formItemLayout}
  478. label="结算状态"
  479. >
  480. <span>
  481. {getLiquidationStatus(this.state.liquidationStatus)}
  482. </span>
  483. </FormItem>
  484. <FormItem
  485. className="half-item"
  486. {...formItemLayout}
  487. label="流程状态"
  488. >
  489. <span>{getProcessStatus(this.state.processStatus)}</span>
  490. </FormItem>
  491. <FormItem
  492. className="half-item"
  493. {...formItemLayout}
  494. label="订单编号"
  495. >
  496. <span>{this.state.orderNo}</span>
  497. </FormItem>
  498. <FormItem
  499. className="half-item"
  500. {...formItemLayout}
  501. label="是否外包"
  502. >
  503. <span>{this.state.outsource == 0 ? "否" : "是"}</span>
  504. </FormItem>
  505. </div>
  506. <div className="clearfix">
  507. <FormItem
  508. className="half-item"
  509. {...formItemLayout}
  510. label="满意度表格"
  511. >
  512. <span>{utils.getSatisfaction(this.state.formRetrieve)}</span>
  513. </FormItem>
  514. <FormItem
  515. className="half-item"
  516. {...formItemLayout}
  517. label="退单"
  518. >
  519. <span>{utils.getChargeback(this.state.taskRefund)}</span>
  520. </FormItem>
  521. </div>
  522. <div className="clearfix">
  523. {
  524. <FormItem
  525. className="half-item"
  526. {...formItemLayout}
  527. label="(满意度)备注"
  528. >
  529. <span>{this.state.retrieveContent}</span>
  530. </FormItem>
  531. }
  532. {
  533. <FormItem
  534. className="half-item"
  535. {...formItemLayout}
  536. label="(退单)备注"
  537. >
  538. <span>{this.state.refundContent}</span>
  539. </FormItem>
  540. }
  541. </div>
  542. <div className="clearfix">
  543. <h3 className="sub-title">任务信息</h3>
  544. <FormItem
  545. className="half-item"
  546. {...formItemLayout}
  547. label="任务编号"
  548. >
  549. <span>{this.state.id}</span>
  550. </FormItem>
  551. <FormItem
  552. className="half-item"
  553. {...formItemLayout}
  554. label="任务名称"
  555. >
  556. <span>{this.state.taskName}</span>
  557. </FormItem>
  558. <FormItem
  559. className="half-item"
  560. {...formItemLayout}
  561. label="任务状态"
  562. >
  563. <span>{getTaskStatus(this.state.taskStatus)}</span>
  564. </FormItem>
  565. <FormItem
  566. className="half-item"
  567. {...formItemLayout}
  568. label="任务类别"
  569. >
  570. <span>{this.state.cname}</span>
  571. </FormItem>
  572. <FormItem
  573. className="half-item"
  574. {...formItemLayout}
  575. label="证书编号"
  576. >
  577. <span>{this.state.certificateNumber}</span>
  578. </FormItem>
  579. </div>
  580. {this.state.outsource === 1 ? (
  581. <div className="clearfix">
  582. <h3 className="sub-title">外包信息</h3>
  583. <FormItem
  584. className="half-item"
  585. {...formItemLayout}
  586. label="外包公司"
  587. >
  588. <span>{this.state.outsourceName}</span>
  589. </FormItem>
  590. <FormItem
  591. className="half-item"
  592. {...formItemLayout}
  593. label="外包成本(万元)"
  594. >
  595. <span>{this.state.outsourcePrice}</span>
  596. </FormItem>
  597. </div>
  598. ) : (
  599. ""
  600. )}
  601. {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/}
  602. <div className="clearfix">
  603. <h3 className="sub-title">联系信息</h3>
  604. <FormItem
  605. className="half-item"
  606. {...formItemLayout}
  607. label="客户名称"
  608. >
  609. <span>{this.state.userName}</span>
  610. </FormItem>
  611. <FormItem
  612. className="half-item"
  613. {...formItemLayout}
  614. label="企业法人"
  615. >
  616. <span>{this.state.legalPerson}</span>
  617. </FormItem>
  618. <FormItem
  619. className="half-item"
  620. {...formItemLayout}
  621. label="法人电话"
  622. >
  623. <span>{this.state.legalPersonTel}</span>
  624. </FormItem>
  625. <FormItem
  626. className="half-item"
  627. {...formItemLayout}
  628. label="客户联系人"
  629. >
  630. <span>{this.state.contacts}</span>
  631. </FormItem>
  632. <FormItem
  633. className="half-item"
  634. {...formItemLayout}
  635. label="联系人电话"
  636. >
  637. <span>{this.state.contactMobile}</span>
  638. </FormItem>
  639. <FormItem
  640. className="half-item"
  641. {...formItemLayout}
  642. label="企业地址"
  643. >
  644. <span>
  645. {getprovince(this.state.locationProvince)}/
  646. {getprovince(this.state.locationCity)}/
  647. {getprovince(this.state.locationArea)}
  648. </span>
  649. </FormItem>
  650. <FormItem
  651. className="half-item"
  652. {...formItemLayout}
  653. label=""
  654. ></FormItem>
  655. <FormItem className="half-item" {...formItemLayout}>
  656. <span style={{ paddingLeft: "12em" }}>
  657. {this.state.postalAddress}
  658. </span>
  659. </FormItem>
  660. </div>
  661. {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/}
  662. <div className="clearfix">
  663. <h3 className="sub-title">订单负责人信息</h3>
  664. <FormItem
  665. className="half-item"
  666. {...formItemLayout}
  667. label="负责人"
  668. >
  669. <span>
  670. {this.state.salesmanName + "(" + this.state.depName + ")"}
  671. </span>
  672. </FormItem>
  673. <FormItem
  674. className="half-item"
  675. {...formItemLayout}
  676. label="负责人电话"
  677. >
  678. <span>{this.state.salesmanMobile}</span>
  679. </FormItem>
  680. <FormItem
  681. className="half-item"
  682. {...formItemLayout}
  683. label="当前财务负责人"
  684. >
  685. <span>{this.state.nowFinance}</span>
  686. </FormItem>
  687. <FormItem
  688. className="half-item"
  689. {...formItemLayout}
  690. label="当前财务负责人电话"
  691. >
  692. <span>{this.state.nowFinanceMobile}</span>
  693. </FormItem>
  694. <FormItem
  695. className="half-item"
  696. {...formItemLayout}
  697. style={{ opacity: ".5" }}
  698. label="原负责人"
  699. >
  700. <span>{this.state.oldSalesmanName}</span>
  701. </FormItem>
  702. <FormItem
  703. className="half-item"
  704. {...formItemLayout}
  705. style={{ opacity: ".5" }}
  706. label="原负责人电话"
  707. >
  708. <span>{this.state.oldSalesmanMobile}</span>
  709. </FormItem>
  710. <FormItem
  711. className="half-item"
  712. {...formItemLayout}
  713. style={{ opacity: ".5" }}
  714. label="实际财务操作人"
  715. >
  716. <span>{this.state.financeName}</span>
  717. </FormItem>
  718. <FormItem
  719. className="half-item"
  720. {...formItemLayout}
  721. style={{ opacity: ".5" }}
  722. label="实际财务操作人电话"
  723. >
  724. <span>{this.state.financeMobile}</span>
  725. </FormItem>
  726. </div>
  727. <div className="clearfix">
  728. <h3 className="sub-title">申报系统账户信息</h3>
  729. {/*<span style={{color:'red'}}>注:仅技术部可见</span>*/}
  730. <FormItem
  731. className="half-item"
  732. {...formItemLayout}
  733. label="用户名"
  734. >
  735. <span>{this.state.declareUser ? "****" : ""}</span>
  736. </FormItem>
  737. <FormItem
  738. className="half-item"
  739. {...formItemLayout}
  740. label="密码"
  741. >
  742. <span>{this.state.declarePwd ? "****" : ""}</span>
  743. </FormItem>
  744. </div>
  745. <div className="clearfix">
  746. <h3 className="sub-title">项目申报进度</h3>
  747. <FormItem
  748. className="half-item"
  749. {...formItemLayout}
  750. label="启动时间"
  751. >
  752. <span>{this.state.startDate}</span>
  753. </FormItem>
  754. <FormItem
  755. className="half-item"
  756. {...formItemLayout}
  757. label="完成时间"
  758. >
  759. <span>{this.state.endDate}</span>
  760. </FormItem>
  761. <FormItem
  762. className="half-item"
  763. {...formItemLayout}
  764. label="受理时间"
  765. >
  766. <span>{this.state.acceptDate}</span>
  767. </FormItem>
  768. <FormItem
  769. className="half-item"
  770. {...formItemLayout}
  771. label="评审时间"
  772. >
  773. <span>{this.state.reviewDate}</span>
  774. </FormItem>
  775. <FormItem
  776. className="half-item"
  777. {...formItemLayout}
  778. label="公示时间"
  779. >
  780. <span>{this.state.publicityDate}</span>
  781. </FormItem>
  782. <FormItem
  783. className="half-item"
  784. {...formItemLayout}
  785. label="发证时间"
  786. >
  787. <span>{this.state.licenceDate}</span>
  788. </FormItem>
  789. <FormItem
  790. className="half-item"
  791. {...formItemLayout}
  792. label="立项金额(万元)"
  793. >
  794. <span>{this.state.setUpAmount}</span>
  795. </FormItem>
  796. <FormItem
  797. className="half-item"
  798. {...formItemLayout}
  799. label="是否到款"
  800. >
  801. <span>
  802. {this.state.arrivalMoney ? "已到企业" : "未到企业"}
  803. </span>
  804. </FormItem>
  805. </div>
  806. <div className="clearfix">
  807. <FormItem
  808. labelCol={{ span: 3 }}
  809. wrapperCol={{ span: 18 }}
  810. label="附件"
  811. >
  812. <Upload
  813. className="demandDetailShow-upload"
  814. listType="picture-card"
  815. fileList={this.state.attachmentUrl}
  816. onPreview={file => {
  817. this.setState({
  818. previewImage: file.url || file.thumbUrl,
  819. previewVisible: true
  820. });
  821. }}
  822. ></Upload>
  823. <Modal
  824. maskClosable={false}
  825. footer={null}
  826. visible={this.state.previewVisible}
  827. onCancel={() => {
  828. this.setState({ previewVisible: false });
  829. }}
  830. >
  831. <img
  832. alt=""
  833. style={{ width: "100%" }}
  834. src={this.state.previewImage || ""}
  835. />
  836. </Modal>
  837. </FormItem>
  838. </div>
  839. <div className="clearfix">
  840. <FormItem
  841. labelCol={{ span: 3 }}
  842. wrapperCol={{ span: 16 }}
  843. label="备注"
  844. >
  845. <span>{this.state.taskComment}</span>
  846. </FormItem>
  847. </div>
  848. <div>
  849. <h3 className="sub-title">项目业务</h3>
  850. {/* {this.state.processStatus == 0 ? (
  851. <Button
  852. type="primary"
  853. onClick={this.addDetailed}
  854. style={{
  855. float: "right",
  856. marginRight: "50px",
  857. marginBottom: "15px"
  858. }}
  859. >
  860. 添加项目明细
  861. </Button>
  862. ) : (
  863. ""
  864. )} */}
  865. </div>
  866. <div className="patent-table">
  867. <Spin spinning={this.state.loading}>
  868. <Table
  869. columns={this.state.columnsX}
  870. dataSource={this.state.dataSourceX}
  871. pagination={this.state.paginations}
  872. onRowClick={this.tableRowClickX}
  873. bordered
  874. size="small"
  875. />
  876. </Spin>
  877. </div>
  878. </div>
  879. </Spin>
  880. </Form>
  881. <Modal
  882. width="800px"
  883. visible={this.state.visibleA}
  884. onCancel={this.visitCancelA}
  885. title="操作日志"
  886. footer=""
  887. className="admin-desc-content"
  888. >
  889. <div className="patent-table patent-table-center">
  890. <Spin spinning={this.state.loading}>
  891. <Table
  892. columns={this.state.columnsA}
  893. dataSource={this.state.dataSourceA}
  894. pagination={false}
  895. bordered
  896. size="small"
  897. />
  898. </Spin>
  899. </div>
  900. </Modal>
  901. </Modal>
  902. );
  903. }
  904. });
  905. export default project;