enterpriseProjectQuery.jsx 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728
  1. import React, { Component } from 'react';
  2. import { Button, DatePicker, AutoComplete, Input, message, Select, Spin, Table, Tabs } from "antd";
  3. import { ChooseList } from "../../order/orderNew/chooseList";
  4. import $ from "jquery/src/ajax";
  5. import {
  6. ShowModal,
  7. getProjectName,
  8. download,
  9. } from "@/tools";
  10. import moment from "moment";
  11. import ProjectDetails from "../summary/projectDetails";
  12. const { TabPane } = Tabs;
  13. const { RangePicker } = DatePicker;
  14. const { Option } = Select;
  15. class EnterpriseProjectQuery extends Component {
  16. constructor(props) {
  17. super(props);
  18. this.state = {
  19. visible: false,
  20. dataSource: [],
  21. departmentArr: [],
  22. page: 1,
  23. pagination: {
  24. defaultCurrent: 1,
  25. defaultPageSize: 10,
  26. showQuickJumper: true,
  27. pageSize: 10,
  28. onChange: function (page) {
  29. this.loadData(page);
  30. }.bind(this),
  31. showTotal: function (total) {
  32. return "共" + total + "条数据";
  33. },
  34. },
  35. columns: [
  36. {
  37. title: "序号",
  38. dataIndex: "id",
  39. key: "id",
  40. },
  41. {
  42. title: "派单时间",
  43. dataIndex: "taskDistributionTime",
  44. key: "taskDistributionTime",
  45. },
  46. {
  47. title: "派单省份",
  48. dataIndex: "provinceName",
  49. key: "provinceName",
  50. },
  51. {
  52. title: '订单部门',
  53. dataIndex: 'depName',
  54. key: 'depName',
  55. },
  56. {
  57. title: "营销员",
  58. dataIndex: "salesmanName",
  59. key: "salesmanName",
  60. },
  61. {
  62. title: "合同编号",
  63. dataIndex: "contractNo",
  64. key: "contractNo",
  65. },
  66. {
  67. title: "订单编号",
  68. dataIndex: "orderNo",
  69. key: "orderNo",
  70. },
  71. {
  72. title: "签单客户",
  73. dataIndex: "userName",
  74. key: "userName",
  75. },
  76. {
  77. title: "项目类型",
  78. dataIndex: "cname",
  79. key: "cname",
  80. },
  81. {
  82. title: "项目名称",
  83. dataIndex: "commodityName",
  84. key: "commodityName",
  85. },
  86. {
  87. title: "数量",
  88. dataIndex: "commodityQuantity",
  89. key: "commodityQuantity",
  90. },
  91. {
  92. title: "负责部门",
  93. dataIndex: "techDepName",
  94. key: "techDepName",
  95. },
  96. {
  97. title: "咨询师/咨询经理",
  98. dataIndex: "techName",
  99. key: "techName",
  100. },
  101. {
  102. title: "项目状态",
  103. dataIndex: "projectStatus",
  104. key: "projectStatus",
  105. render: (value) => (
  106. getProjectName(parseInt(value))
  107. )
  108. },
  109. {
  110. title: "项目金额",
  111. dataIndex: "commodityPrice",
  112. key: "commodityPrice",
  113. },
  114. {
  115. title: "特别说明",
  116. dataIndex: "specialComment",
  117. key: "specialComment",
  118. },
  119. ],
  120. releaseDate: [],
  121. searchOrderNo: '',
  122. searchContractNo: '',
  123. searchEnterpriseName: '',
  124. declarationBatch: '',
  125. projectSituation: '',
  126. projectAmount: '',
  127. depId: '',
  128. thchDepId: '',
  129. projectType: '',
  130. projectStatus: '',
  131. contactsOption: [],
  132. contactsOptionData: [],
  133. }
  134. this.changeList = this.changeList.bind(this);
  135. this.resetAll = this.resetAll.bind(this);
  136. this.exportPending = this.exportPending.bind(this);
  137. this.supervisor = this.supervisor.bind(this);
  138. this.httpChange = this.httpChange.bind(this);
  139. this.selectAuto = this.selectAuto.bind(this);
  140. this.blurChange = this.blurChange.bind(this);
  141. }
  142. changeList(arr) {
  143. const newArr = [];
  144. this.state.columns.forEach(item => {
  145. arr.forEach(val => {
  146. if (val === item.title) {
  147. newArr.push(item);
  148. }
  149. });
  150. });
  151. this.setState({
  152. changeList: newArr
  153. });
  154. }
  155. loadData(pageNo) {
  156. this.setState({
  157. loading: true,
  158. });
  159. $.ajax({
  160. method: "get",
  161. dataType: "json",
  162. crossDomain: false,
  163. url: globalConfig.context + "/api/admin/orderProject/managerSelect",
  164. data: {
  165. pageNo: pageNo || 1,
  166. pageSize: this.state.pagination.pageSize || 10,
  167. startTime: this.state.releaseDate.length > 0 ? this.state.releaseDate[0] : undefined, //开始时间
  168. endTime: this.state.releaseDate.length > 0 ? this.state.releaseDate[1] : undefined, //结束时间
  169. depId: this.state.depId || undefined,//部门ID
  170. techDepId: this.state.thchDepId || undefined,//责任部门ID
  171. cid: this.state.projectStatus || undefined,//项目类别
  172. projectType: typeof this.state.projectType === 'number' ? this.state.projectType : undefined,//项目分类
  173. orderNo: this.state.searchOrderNo || undefined,//订单编号
  174. contractNo: this.state.searchContractNo || undefined,//合同编号
  175. name: this.state.searchEnterpriseName || undefined,//企业名称
  176. declarationBatch: this.state.declarationBatch || undefined,//申报批次
  177. // projectSituation: typeof this.state.projectSituation === 'number' ? this.state.projectSituation : undefined,//项目分类
  178. commodityPrice: this.state.projectAmount || undefined,//项目金额
  179. thchId: this.state.thchId || undefined, //咨询师/咨询经理id
  180. },
  181. success: function (data) {
  182. ShowModal(this);
  183. let theArr = [];
  184. if (!data.data || !data.data.list) {
  185. if (data.error && data.error.length) {
  186. message.warning(data.error[0].message);
  187. }
  188. } else {
  189. for (let i = 0; i < data.data.list.length; i++) {
  190. let thisdata = data.data.list[i];
  191. theArr.push(thisdata);
  192. }
  193. this.state.pagination.current = data.data.pageNo;
  194. this.state.pagination.total = data.data.totalCount;
  195. if (data.data && data.data.list && !data.data.list.length) {
  196. this.state.pagination.current = 0;
  197. this.state.pagination.total = 0;
  198. }
  199. this.setState({
  200. dataSource: theArr,
  201. page: data.data.pageNo,
  202. pagination: this.state.pagination,
  203. });
  204. }
  205. }.bind(this),
  206. }).always(
  207. function () {
  208. this.setState({
  209. loading: false,
  210. });
  211. }.bind(this)
  212. );
  213. }
  214. //部门
  215. departmentList() {
  216. this.setState({
  217. departmentListloading: true,
  218. });
  219. $.ajax({
  220. method: "get",
  221. dataType: "json",
  222. crossDomain: false,
  223. url: globalConfig.context + "/api/admin/organization/selectSuperId",
  224. data: {},
  225. success: function (data) {
  226. let thedata = data.data;
  227. let theArr = [];
  228. if (!thedata) {
  229. if (data.error && data.error.length) {
  230. message.warning(data.error[0].message);
  231. }
  232. thedata = {};
  233. } else {
  234. thedata.map(function (item, index) {
  235. theArr.push({
  236. key: index,
  237. name: item.name,
  238. id: item.id,
  239. });
  240. });
  241. }
  242. this.setState({
  243. departmentArr: theArr,
  244. });
  245. }.bind(this),
  246. }).always(
  247. function () {
  248. this.setState({
  249. departmentListloading: false,
  250. });
  251. }.bind(this)
  252. );
  253. }
  254. resetAll() {
  255. this.setState({
  256. releaseDate: [],
  257. searchOrderNo: '',
  258. searchContractNo: '',
  259. searchEnterpriseName: '',
  260. declarationBatch: '',
  261. projectSituation: '',
  262. projectAmount: '',
  263. projectType: '',
  264. depId: '',
  265. thchDepId: '',
  266. projectStatus: '',
  267. thchId: "",
  268. auto: ""
  269. }, () => {
  270. this.loadData();
  271. })
  272. }
  273. //项目类别
  274. selectSuperId() {
  275. $.ajax({
  276. method: "get",
  277. dataType: "json",
  278. crossDomain: false,
  279. url: globalConfig.context + "/api/admin/ProjectSize/getAllCname",
  280. data: {
  281. flag: 0
  282. },
  283. success: function (data) {
  284. let theArr = [];
  285. let thedata = data.data;
  286. if (!thedata) {
  287. if (data.error && data.error.length) {
  288. message.warning(data.error[0].message);
  289. }
  290. }
  291. for (let i = 0; i < data.data.length; i++) {
  292. let theData = data.data[i];
  293. theArr.push(
  294. <Select.Option value={theData.id} key={theData.cname}>
  295. {theData.cname}
  296. </Select.Option>
  297. );
  298. }
  299. this.setState({
  300. contactsOption: theArr,
  301. contactsOptionData: data.data,
  302. });
  303. }.bind(this)
  304. }).always(
  305. );
  306. }
  307. exportPending() {
  308. $.ajax({
  309. method: "get",
  310. dataType: "json",
  311. crossDomain: false,
  312. url: globalConfig.context + "/api/admin/orderProject/exportManagerSelect",
  313. data: {
  314. pageNo: 1,
  315. pageSize: 99999,
  316. startTime: this.state.releaseDate.length > 0 ? this.state.releaseDate[0] : undefined, //开始时间
  317. endTime: this.state.releaseDate.length > 0 ? this.state.releaseDate[1] : undefined, //结束时间
  318. depId: this.state.depId || undefined,//部门ID
  319. techDepId: this.state.thchDepId || undefined,//责任部门ID
  320. cid: this.state.projectStatus || undefined,//项目类别
  321. projectType: typeof this.state.projectType === 'number' ? this.state.projectType : undefined,//项目分类
  322. orderNo: this.state.searchOrderNo || undefined,//订单编号
  323. contractNo: this.state.searchContractNo || undefined,//合同编号
  324. name: this.state.searchEnterpriseName || undefined,//企业名称
  325. declarationBatch: this.state.declarationBatch || undefined,//申报批次
  326. commodityPrice: this.state.projectAmount || undefined,//项目金额
  327. thchId: this.state.thchId || undefined, //咨询师/咨询经理id
  328. },
  329. success: function (data) {
  330. ShowModal(this);
  331. if (data.error && data.error.length) {
  332. message.warning(data.error[0].message);
  333. } else {
  334. download(data.data, true);
  335. }
  336. }.bind(this),
  337. }).always(
  338. function () {
  339. this.setState({
  340. loading: false,
  341. });
  342. }.bind(this)
  343. );
  344. }
  345. // 查询用户
  346. supervisor(e) {
  347. $.ajax({
  348. method: "get",
  349. dataType: "json",
  350. crossDomain: false,
  351. url: globalConfig.context + "/api/admin/customer/listAdminByName",
  352. data: {
  353. adminName: e,
  354. },
  355. success: function (data) {
  356. let thedata = data.data;
  357. if (!thedata) {
  358. if (data.error && data.error.length) {
  359. message.warning(data.error[0].message);
  360. }
  361. thedata = {};
  362. }
  363. this.setState({
  364. customerArr: thedata,
  365. });
  366. }.bind(this),
  367. }).always(
  368. function () {
  369. }.bind(this)
  370. );
  371. }
  372. // 输入触发
  373. httpChange(e) {
  374. if (e.length >= 1) {
  375. this.supervisor(e);
  376. }
  377. this.setState({
  378. auto: e,
  379. });
  380. }
  381. // 选中
  382. selectAuto(value, options) {
  383. let thchId = ""
  384. let contactLists = this.state.customerArr || [];
  385. if (value) {
  386. contactLists.map(function (item) {
  387. if (item.name == value.toString()) {
  388. thchId = item.id;
  389. }
  390. });
  391. }
  392. this.setState({
  393. auto: value,
  394. thchId: thchId,
  395. });
  396. }
  397. // 失去焦点
  398. blurChange(e) {
  399. let thchId = ""
  400. let contactLists = this.state.customerArr || [];
  401. if (e) {
  402. contactLists.map(function (item) {
  403. if (item.name == e.toString()) {
  404. thchId = item.id;
  405. }
  406. });
  407. }
  408. this.setState({
  409. thchId: thchId,
  410. });
  411. }
  412. componentDidMount() {
  413. this.departmentList();
  414. this.selectSuperId();
  415. this.loadData();
  416. }
  417. // 暂停项目 颜色
  418. suspendColor(record) {
  419. if (record.projectStatus == 29) {
  420. return 'light'
  421. } else {
  422. return 'dark'
  423. }
  424. }
  425. render() {
  426. const dataSources = this.state.customerArr || [];
  427. const options = dataSources.map((group) => (
  428. <Select.Option key={group.id} value={group.name}>
  429. {group.name}
  430. </Select.Option>
  431. ));
  432. return (
  433. <div className="user-content">
  434. <div className="content-title">
  435. <span style={{ fontWeight: 900, fontSize: 16 }}>企业项目派单查询</span>
  436. </div>
  437. <Tabs defaultActiveKey="1" onChange={this.callback} className="test">
  438. <TabPane tab="搜索" key="1">
  439. <div className="user-search" style={{
  440. marginTop: '10px',
  441. marginLeft: '10px',
  442. marginRight: '10px'
  443. }}>
  444. <Input
  445. placeholder="订单编号"
  446. style={{ width: 200, marginRight: '10px', marginBottom: '10px' }}
  447. value={this.state.searchOrderNo}
  448. onChange={e => {
  449. this.setState({ searchOrderNo: e.target.value });
  450. }}
  451. />
  452. <Input
  453. placeholder="合同编号"
  454. style={{ width: 200, marginRight: '10px', marginBottom: '10px' }}
  455. value={this.state.searchContractNo}
  456. onChange={e => {
  457. this.setState({ searchContractNo: e.target.value });
  458. }}
  459. />
  460. <Input
  461. placeholder="企业名称"
  462. style={{ width: 200, marginRight: '10px', marginBottom: '10px' }}
  463. value={this.state.searchEnterpriseName}
  464. onChange={e => {
  465. this.setState({ searchEnterpriseName: e.target.value });
  466. }}
  467. />
  468. <span style={{ display: "inline-block", marginRight: '10px', marginBottom: '10px' }}>
  469. <Spin spinning={this.state.departmentListloading}>
  470. <span>订单部门:</span>
  471. <Select
  472. placeholder="请选择部门"
  473. style={{ width: 200, marginRight: '10px', marginLeft: '10px', marginBottom: '10px' }}
  474. value={this.state.depId || undefined}
  475. onChange={e => {
  476. this.setState({ depId: e });
  477. }}
  478. >
  479. {
  480. this.state.departmentArr.map(function (item) {
  481. return <Select.Option key={item.id} value={item.id}>{item.name}</Select.Option>
  482. })
  483. }
  484. </Select>
  485. </Spin>
  486. </span>
  487. <span style={{ display: "inline-block", marginRight: '10px', marginBottom: '10px' }}>
  488. <span>负责部门:</span>
  489. <Select
  490. placeholder="请选择部门"
  491. style={{ width: 200, marginRight: '10px', marginLeft: '10px', marginBottom: '10px' }}
  492. value={this.state.thchDepId || undefined}
  493. onChange={e => {
  494. this.setState({ thchDepId: e });
  495. }}
  496. >
  497. {
  498. this.state.departmentArr.map(function (item) {
  499. return <Select.Option key={item.id} value={item.id}>{item.name}</Select.Option>
  500. })
  501. }
  502. </Select>
  503. </span>
  504. <span style={{ display: "inline-block", marginRight: '10px', marginBottom: '10px' }}>
  505. <span>咨询师/经理:</span>
  506. <AutoComplete
  507. className="certain-category-search"
  508. dropdownClassName="certain-category-search-dropdown"
  509. dropdownMatchSelectWidth={false}
  510. style={{ width: "200px", marginLeft: '10px' }}
  511. dataSource={options}
  512. placeholder='请输入姓名'
  513. value={this.state.auto}
  514. onChange={this.httpChange}
  515. filterOption={true}
  516. onBlur={this.blurChange}
  517. onSelect={this.selectAuto}
  518. >
  519. <Input />
  520. </AutoComplete>
  521. </span>
  522. <span style={{ display: "inline-block" }}>
  523. <span style={{ marginRight: '10px', marginBottom: '10px' }}>项目类别 :</span>
  524. <Select
  525. value={this.state.projectStatus || undefined}
  526. placeholder="请选择项目类别"
  527. notFoundContent="未获取到上级品类列表"
  528. style={{ width: 150, marginRight: '10px', marginBottom: '10px' }}
  529. onChange={(e) => {
  530. let infor = this.state.contactsOptionData.filter((v) => v.id === e);
  531. this.setState({
  532. projectStatus: e,
  533. })
  534. }}
  535. >
  536. {this.state.contactsOption}
  537. </Select>
  538. </span>
  539. <span style={{ display: "inline-block" }}>
  540. <span style={{ marginRight: '10px', marginBottom: '10px' }}>项目分类 :</span>
  541. <Select
  542. value={typeof this.state.projectType === 'number' ? this.state.projectType : undefined}
  543. placeholder="请选择项目分类"
  544. style={{ width: 150, marginRight: '10px', marginBottom: '10px' }}
  545. onChange={(e) => {
  546. this.setState({
  547. projectType: e,
  548. })
  549. }}
  550. >
  551. {/*0通用 1专利 2软著 3审计 4双软 5高新*/}
  552. <Option value={0}>通用</Option>
  553. <Option value={1}>专利</Option>
  554. <Option value={2}>软著</Option>
  555. <Option value={3}>审计</Option>
  556. <Option value={4}>双软</Option>
  557. <Option value={5}>高新</Option>
  558. <Option value={6}>商标</Option>
  559. <Option value={7}>会员</Option>
  560. </Select>
  561. </span>
  562. <span style={{ display: "inline-block" }}>
  563. <span style={{ marginRight: '10px', marginBottom: '10px' }}>申报批次 :</span>
  564. <Select
  565. value={this.state.declarationBatch || undefined}
  566. placeholder="请选择批次"
  567. style={{ width: 150, marginRight: '10px', marginBottom: '10px' }}
  568. onChange={(e) => {
  569. this.setState({
  570. declarationBatch: e,
  571. });
  572. }}
  573. >
  574. <Option value={1}>第一批</Option>
  575. <Option value={2}>第二批</Option>
  576. <Option value={3}>第三批</Option>
  577. <Option value={4}>第四批</Option>
  578. </Select>
  579. </span>
  580. <span style={{ display: "inline-block" }}>
  581. <span style={{ marginRight: '10px', marginBottom: '10px' }}>项目金额 :</span>
  582. <Select
  583. value={this.state.projectAmount || undefined}
  584. placeholder="请选择项目金额"
  585. style={{ width: 150, marginRight: '10px', marginBottom: '10px' }}
  586. onChange={(e) => {
  587. this.setState({
  588. projectAmount: e,
  589. });
  590. }}
  591. >
  592. <Option value={1}>0~0.5万</Option>
  593. <Option value={2}>0.5~1万</Option>
  594. <Option value={3}>1~2万</Option>
  595. <Option value={4}>2~5万</Option>
  596. <Option value={5}>5~10万</Option>
  597. <Option value={6}>10~30万</Option>
  598. <Option value={7}>30~50万</Option>
  599. <Option value={8}>50~80万</Option>
  600. <Option value={9}>80万上</Option>
  601. </Select>
  602. </span>
  603. {/*<span style={{display:"inline-block"}}>*/}
  604. {/* <span style={{marginRight:'10px',marginBottom:'10px'}}>项目情况 :</span>*/}
  605. {/* <Select*/}
  606. {/* value={typeof this.state.projectSituation === 'number' ? this.state.projectSituation : undefined}*/}
  607. {/* placeholder="请选择项目情况"*/}
  608. {/* style={{ width: 200,marginRight:'10px',marginBottom:'10px' }}*/}
  609. {/* onChange={(e) => {*/}
  610. {/* this.setState({*/}
  611. {/* projectSituation: e,*/}
  612. {/* });*/}
  613. {/* }}*/}
  614. {/* >*/}
  615. {/* <Option value={0}>未开始</Option>*/}
  616. {/* <Option value={1}>进行中</Option>*/}
  617. {/* <Option value={2}>已暂停</Option>*/}
  618. {/* <Option value={3}>已驳回(专利、软著项目编写)</Option>*/}
  619. {/* <Option value={4}>已完成</Option>*/}
  620. {/* <Option value={5}>项目已完成 已退单</Option>*/}
  621. {/* <Option value={6}>项目未完成 已退单</Option>*/}
  622. {/* </Select>*/}
  623. {/*</span>*/}
  624. <span style={{ display: "inline-block" }}>
  625. <span style={{ marginRight: '10px', marginBottom: '10px' }}>派单时间 :</span>
  626. <RangePicker
  627. style={{ marginRight: '10px', marginBottom: '10px' }}
  628. value={[
  629. this.state.releaseDate[0]
  630. ? moment(this.state.releaseDate[0])
  631. : null,
  632. this.state.releaseDate[1]
  633. ? moment(this.state.releaseDate[1])
  634. : null,
  635. ]}
  636. onChange={(data, dataString) => {
  637. this.setState({ releaseDate: dataString });
  638. }}
  639. />
  640. </span>
  641. <Button type="primary" onClick={() => { this.loadData(); }} style={{ marginRight: '10px', marginBottom: '10px' }}>搜索</Button>
  642. <Button onClick={this.resetAll} style={{ marginRight: '10px', marginBottom: '10px' }}>重置</Button>
  643. </div>
  644. </TabPane>
  645. <TabPane tab="更改表格显示数据" key="2">
  646. <div style={{ marginLeft: 10 }}>
  647. <ChooseList
  648. columns={this.state.columns}
  649. changeFn={this.changeList}
  650. changeList={this.state.changeList}
  651. top={55}
  652. margin={11}
  653. />
  654. </div>
  655. </TabPane>
  656. <TabPane tab="导出EXCEL" key="3">
  657. <Button type="primary" style={{ margin: '10px' }} onClick={this.exportPending}>导出</Button>
  658. </TabPane>
  659. </Tabs>
  660. <div className="patent-table">
  661. <Spin spinning={this.state.loading}>
  662. <Table
  663. scroll={{ x: 1200, y: 0 }}
  664. columns={
  665. this.state.changeList
  666. ? this.state.changeList
  667. : this.state.columns
  668. }
  669. dataSource={this.state.dataSource}
  670. pagination={this.state.pagination}
  671. style={{
  672. cursor: 'pointer',
  673. }}
  674. onRowClick={(record) => {
  675. this.setState({
  676. projectdetailsId: record.id,
  677. projectdetailsOrderNo: record.orderNo,
  678. commodityName: record.commodityName,
  679. visible: true,
  680. })
  681. }}
  682. bordered
  683. size="middle"
  684. rowClassName={this.suspendColor}
  685. />
  686. </Spin>
  687. </div>
  688. {this.state.visible ? <ProjectDetails
  689. visible={this.state.visible}
  690. id={this.state.projectdetailsId}
  691. orderNo={this.state.projectdetailsOrderNo}
  692. taskName={this.state.commodityName}
  693. visitOk={() => {
  694. this.setState({
  695. visible: false,
  696. });
  697. }}
  698. visitCancel={() => {
  699. this.setState({
  700. visible: false,
  701. });
  702. }}
  703. /> : null}
  704. </div>
  705. )
  706. }
  707. }
  708. export default EnterpriseProjectQuery;