highTech.jsx 28 KB

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