myprojectvip.jsx 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842
  1. import React from "react";
  2. import $ from "jquery/src/ajax";
  3. import { AutoComplete, Button, Input, Spin, Table, Select, message, Tabs, Tag, Tooltip, Modal } from "antd";
  4. import OrderDesc from "../../financialManage/orderDetail/orderDesc"
  5. import ResolutionDetail from "@/resolutionDetail";
  6. import { ChooseList } from "../../order/orderNew/chooseList"
  7. import ReactToPrint from "react-to-print";
  8. import OrderItemStatus from "../../../common/orderItemStatus";
  9. import { salesList } from "@/dataDic.js";
  10. import ProjectOperationVip from ".././../../common/projectOperation/vip";
  11. import ShowModalDiv from "@/showModal.jsx";
  12. import VipLogs from "../../../common/logPopup/viplogs";//会员日志
  13. import { splitUrl } from "@/tools";
  14. import ImgList from "../../../common/imgList";
  15. const { TabPane } = Tabs;
  16. //我的会员项目列表
  17. const MyProjectVip = React.createClass({
  18. //
  19. getInitialState() {
  20. return {
  21. dvisible: false,
  22. pageNo: 1,
  23. totalPage: 0,
  24. searchValues: {},//查询条件
  25. loading: false,
  26. changeList: undefined,// 子组件改变的表格title数组
  27. pagination: {
  28. defaultCurrent: 1,
  29. defaultPageSize: 10,
  30. showQuickJumper: true,
  31. pageSize: 10,
  32. onChange: function (page) {
  33. this.setState({
  34. pageNo: page,
  35. });
  36. this.loadData(page);
  37. }.bind(this),
  38. showTotal: function (total) {
  39. return "共" + total + "条数据";
  40. },
  41. },
  42. columns: [
  43. {
  44. title: "销售类型",
  45. dataIndex: "salesType",
  46. key: "salesType",
  47. render: (text, record) => {
  48. return (
  49. <Tooltip
  50. title={salesList[text] + ((text == 3 || text == 4 || text == 5) ? (!record.other ? "" : "," + record.other) : "")}
  51. >
  52. <span>
  53. {salesList[text]}
  54. </span>
  55. </Tooltip>
  56. );
  57. },
  58. },
  59. {
  60. title: "合同编号",
  61. dataIndex: "contractNo",
  62. key: "contractNo",
  63. width: 160,
  64. render: (text, record) => {
  65. return (
  66. <Tooltip
  67. title={
  68. <Button
  69. type="primary"
  70. onClick={(e) => {
  71. e.stopPropagation();
  72. let input = document.getElementById("copyText");
  73. input.value = text;
  74. input.select();
  75. document.execCommand("copy");
  76. message.success("复制成功");
  77. }}
  78. >
  79. 复制
  80. </Button>
  81. }
  82. >
  83. <div>
  84. {text}
  85. <div style={{ display: "flex" }}>
  86. <OrderItemStatus deleteSign={record.deleteSign} />
  87. {
  88. record.approval == 1
  89. ? <Tag color="#faa755">特批待审</Tag> :
  90. record.approval == 2 && <Tag color="#ff0000">特批通过</Tag>
  91. }
  92. </div>
  93. </div>
  94. </Tooltip>
  95. );
  96. },
  97. },
  98. {
  99. title: "客户名称",
  100. dataIndex: "userName",
  101. key: "userName",
  102. width: 200,
  103. render: text => {
  104. return (
  105. <Tooltip title={text}>
  106. <div>{text}</div>
  107. </Tooltip>
  108. )
  109. }
  110. },
  111. {
  112. title: "订单编号",
  113. dataIndex: "orderNo",
  114. key: "orderNo",
  115. width: 140,
  116. render: (text, record) => {
  117. return (
  118. <Tooltip
  119. title={
  120. <Button
  121. type="primary"
  122. onClick={(e) => {
  123. e.stopPropagation();
  124. let input = document.getElementById("copyText");
  125. input.value = text;
  126. input.select();
  127. document.execCommand("copy");
  128. message.success("复制成功");
  129. }}
  130. >
  131. 复制
  132. </Button>
  133. }
  134. >
  135. <div>
  136. {text}
  137. <div>
  138. {record.totalAmount >= 10 && <Tag color="#ef7207">大客户</Tag>}
  139. {record.projectType == 1 && <Tag color="rgb(22, 155, 213)">会员</Tag>}
  140. </div>
  141. </div>
  142. </Tooltip>
  143. );
  144. },
  145. },
  146. {
  147. title: "订单部门",
  148. dataIndex: "depName",
  149. key: "depName",
  150. className: "title-table",
  151. },
  152. {
  153. title: "订单负责人",
  154. dataIndex: "salesmanName",
  155. key: "salesmanName",
  156. className: "title-table",
  157. },
  158. {
  159. title: "财务负责人",
  160. dataIndex: "financeName",
  161. key: "financeName",
  162. className: "title-table",
  163. },
  164. {
  165. title: "会员项目",
  166. dataIndex: "projectName",
  167. key: "projectName",
  168. className: "title-table",
  169. render: (text, record) => {
  170. return (
  171. <div>
  172. {text}
  173. {(record.memberType == 1 || record.memberType == 2) && <Tag color="#ff0000">特批项目</Tag>}
  174. </div>
  175. )
  176. }
  177. },
  178. {
  179. title: "数量",
  180. dataIndex: "commodityQuantity",
  181. key: "commodityQuantity",
  182. className: "title-table",
  183. },
  184. {
  185. title: "项目说明",
  186. dataIndex: "taskComment",
  187. key: "taskComment",
  188. className: "title-table",
  189. width: 300,
  190. },
  191. {
  192. title: "状态",
  193. dataIndex: "status",
  194. key: "status",
  195. className: "title-table",
  196. render: (text) => {
  197. return (
  198. <div style={{ maxWidth: 115, color: text == 4 && "red" }}>
  199. {["", "财务审核", "特批审核", "通过", "驳回"][text]}
  200. </div>
  201. );
  202. }
  203. },
  204. {
  205. title: "操作",
  206. dataIndex: "pictureUrl",
  207. key: "pictureUrl",
  208. className: "title-table",
  209. render: (text, recard) => {
  210. return (
  211. <div>
  212. {
  213. recard.status == 4 &&
  214. <Button
  215. style={{ margin: 5 }}
  216. type="primary"
  217. onClick={() => {
  218. this.setState({
  219. vipVisible: true,
  220. dataInfor: recard,
  221. })
  222. }}
  223. >
  224. 重新提交
  225. </Button>
  226. }
  227. <Button
  228. type="primary"
  229. style={{ margin: 5 }}
  230. onClick={(e) => {
  231. e.stopPropagation();
  232. let arr = text || [];
  233. this.setState({
  234. pictureUrlArr: splitUrl(arr, ",", globalConfig.avatarHost + "/upload"),
  235. }, () => {
  236. this.setState({
  237. imgListVisible: true,
  238. })
  239. })
  240. }}
  241. >
  242. 查看附件
  243. </Button>
  244. <VipLogs id={recard.id} />
  245. </div>
  246. );
  247. },
  248. },
  249. ],
  250. dataSource: [],
  251. fjlist: [],// 营销员列表
  252. checkOrderNo: "",//操作订单编号
  253. checkData: "",//操作描述
  254. checkVisible: "",//审核弹窗开关
  255. checkId: "",//会员项目编号
  256. result: -1,//1同意 0驳回
  257. vipVisible: false,//编辑弹窗
  258. dataInfor: {},//编辑的数据
  259. imgListVisible: false,//附件弹窗
  260. pictureUrlArr: [],//附件
  261. };
  262. },
  263. componentWillMount() {
  264. this.loadData();
  265. this.departmentList();
  266. },
  267. // 关闭编辑弹窗
  268. vipClose() {
  269. this.setState({
  270. vipVisible: false
  271. }, () => {
  272. this.loadData(this.state.pageNo);
  273. })
  274. },
  275. // 获取订单部门
  276. departmentList() {
  277. $.ajax({
  278. method: "get",
  279. dataType: "json",
  280. crossDomain: false,
  281. url: globalConfig.context + "/api/admin/organization/selectSuperId",
  282. data: {},
  283. success: function (data) {
  284. let thedata = data.data;
  285. let theArr = [];
  286. if (!thedata) {
  287. if (data.error && data.error.length) {
  288. message.warning(data.error[0].message);
  289. }
  290. } else {
  291. thedata.map(function (item, index) {
  292. theArr.push({
  293. key: index,
  294. name: item.name,
  295. id: item.id,
  296. });
  297. });
  298. }
  299. this.setState({
  300. departmentArr: theArr,
  301. });
  302. }.bind(this),
  303. }).always(
  304. function () {
  305. }.bind(this)
  306. );
  307. },
  308. // 列表数据
  309. loadData(pageNo, pageSize) {
  310. const { searchValues, pagination } = this.state
  311. this.setState({
  312. loading: true,
  313. });
  314. let datas = Object.assign(searchValues, {
  315. pageNo: pageNo || 1,
  316. pageSize: pageSize || 10,
  317. shiroType: 1, //营销员
  318. });
  319. $.ajax({
  320. method: "get",
  321. dataType: "json",
  322. crossDomain: false,
  323. url: globalConfig.context + "/api/admin/orderProject/memberList",
  324. data: datas,
  325. success: function (data) {
  326. this.setState({
  327. loading: false,
  328. });
  329. if (data.error && data.error.length === 0) {
  330. if (data.data.list) {
  331. pagination.current = data.data.pageNo;
  332. pagination.total = data.data.totalCount;
  333. if (data.data && data.data.list && !data.data.list.length) {
  334. pagination.current = 0;
  335. pagination.total = 0;
  336. }
  337. this.setState({
  338. dataSource: data.data.list,
  339. pagination: this.state.pagination,
  340. pageNo: data.data.pageNo,
  341. totalPage: data.data.totalPage,
  342. });
  343. } else {
  344. this.setState({
  345. dataSource: data.data,
  346. pagination: false,
  347. });
  348. }
  349. } else {
  350. message.warning(data.error[0].message);
  351. }
  352. }.bind(this),
  353. }).always(
  354. function () {
  355. this.setState({
  356. loading: false,
  357. });
  358. }.bind(this)
  359. );
  360. },
  361. // 点击行
  362. tableRowClick(record) {
  363. this.state.RowData = record;
  364. this.setState({
  365. showDesc: true,
  366. });
  367. },
  368. // 关闭
  369. closeDesc(e, s) {
  370. this.state.showDesc = e;
  371. if (s) {
  372. this.loadData(this.state.pageNo);
  373. }
  374. },
  375. // 搜索
  376. search() {
  377. this.setState({
  378. selectedRowKeys: []
  379. })
  380. this.loadData();
  381. },
  382. // 重置
  383. reset() {
  384. this.setState({
  385. searchValues: JSON.parse(JSON.stringify({})),
  386. }, () => {
  387. this.loadData();
  388. })
  389. },
  390. // 更改表格显示数据
  391. changeList(arr) {
  392. const newArr = [];
  393. this.state.columns.forEach((item) => {
  394. arr.forEach((val) => {
  395. if (val === item.title) {
  396. newArr.push(item);
  397. }
  398. });
  399. });
  400. this.setState({
  401. changeList: newArr,
  402. });
  403. },
  404. // 导出当前列表
  405. exportAll() {
  406. message.config({
  407. duration: 20,
  408. });
  409. let loading = message.loading("下载中...");
  410. this.setState({
  411. exportPendingLoading: true,
  412. });
  413. let data = {
  414. shiroType: 1, //我的
  415. };
  416. let obj1 = JSON.parse(JSON.stringify(this.state.searchValues));
  417. data = Object.assign(data, obj1);
  418. $.ajax({
  419. method: "get",
  420. dataType: "json",
  421. crossDomain: false,
  422. url: "/api/admin/orderProject/memberList/export",
  423. data,
  424. success: function (data) {
  425. if (data.error.length === 0) {
  426. this.download(data.data);
  427. } else {
  428. message.warning(data.error[0].message);
  429. }
  430. }.bind(this),
  431. }).always(
  432. function () {
  433. loading();
  434. this.setState({
  435. exportPendingLoading: false,
  436. });
  437. }.bind(this)
  438. );
  439. },
  440. // 打印
  441. printAll() {
  442. this.setState({
  443. dvisible: true,
  444. });
  445. this.loadData(1, 9999999);
  446. },
  447. // 下载
  448. download(fileName) {
  449. window.location.href =
  450. globalConfig.context + "/open/download?fileName=" + fileName;
  451. },
  452. // 查询订单负责人列表
  453. followUp(e) {
  454. const { searchValues } = this.state;
  455. this.setState({
  456. searchValues: Object.assign(searchValues, {
  457. aname: e,
  458. }),
  459. });
  460. $.ajax({
  461. method: "get",
  462. dataType: "json",
  463. crossDomain: false,
  464. url: globalConfig.context + "/api/admin/customer/listAdminByName",
  465. data: {
  466. adminName: e,
  467. },
  468. success: function (data) {
  469. let thedata = data.data;
  470. if (!thedata) {
  471. if (data.error && data.error.length) {
  472. message.warning(data.error[0].message);
  473. }
  474. thedata = {};
  475. }
  476. this.setState({
  477. fjlist: thedata,
  478. });
  479. }.bind(this),
  480. }).always(
  481. function () {
  482. this.setState({
  483. loading: false,
  484. });
  485. }.bind(this)
  486. );
  487. },
  488. // 选中订单负责人
  489. selectF(value) {
  490. const { searchValues, fjlist } = this.state;
  491. const newdataSources = JSON.stringify(fjlist) == "{}" ? [] : fjlist;
  492. this.setState({
  493. searchValues: Object.assign(searchValues, {
  494. salesmanId: newdataSources.find((item) => item.name == value).id,
  495. }),
  496. });
  497. },
  498. // 失去焦点
  499. blurChange(e) {
  500. let theType = "";
  501. let contactLists = this.state.customerArr || [];
  502. if (e) {
  503. contactLists.map(function (item) {
  504. if (item.name == e.toString()) {
  505. theType = item.id;
  506. }
  507. });
  508. }
  509. this.setState({
  510. theTypes: theType,
  511. });
  512. },
  513. // 删除数组最后一项(删除操作列)
  514. truncate(arr) {
  515. return arr.filter(function (v, i, ar) {
  516. return i !== ar.length - 1
  517. })
  518. },
  519. render() {
  520. const { TextArea } = Input
  521. const { searchValues, departmentArr = [] } = this.state
  522. const dataSources = this.state.fjlist || [];
  523. const options = dataSources.map((group) => (
  524. <Select.Option key={group.id} value={group.name}>
  525. {group.name}
  526. </Select.Option>
  527. ));
  528. return (
  529. <div className="user-content">
  530. <ShowModalDiv ShowModal={this.state.showModal} />
  531. <div className="content-title" style={{ marginBottom: 10 }}>
  532. <span style={{ fontWeight: 900, fontSize: 16 }}>我的会员项目</span>
  533. </div>
  534. <Tabs defaultActiveKey="2" onChange={this.callback} className="test">
  535. <TabPane tab="更改表格显示数据" key="1">
  536. <div style={{ marginLeft: 10 }}>
  537. <ChooseList
  538. columns={this.state.columns}
  539. changeFn={this.changeList}
  540. changeList={this.state.changeList}
  541. top={55}
  542. margin={11}
  543. />
  544. </div>
  545. </TabPane>
  546. <TabPane tab="搜索" key="2">
  547. <div className="user-search" style={{ marginLeft: 10 }}>
  548. <Input
  549. placeholder="订单编号"
  550. value={searchValues["orderNo"]
  551. ? searchValues["orderNo"]
  552. : ""}
  553. onChange={(e) => {
  554. searchValues["orderNo"] = e.target.value;
  555. this.setState({
  556. searchValues: searchValues,
  557. });
  558. }}
  559. />
  560. <Input
  561. placeholder="客户名称"
  562. value={searchValues["userName"]
  563. ? searchValues["userName"]
  564. : ""}
  565. onChange={(e) => {
  566. searchValues["userName"] = e.target.value;
  567. this.setState({
  568. searchValues: searchValues,
  569. });
  570. }}
  571. />
  572. <Select
  573. placeholder="订单部门"
  574. style={{ width: 200, marginRight: 10 }}
  575. value={searchValues["depId"]
  576. ? searchValues["depId"]
  577. : undefined}
  578. onChange={(e) => {
  579. searchValues["depId"] = e;
  580. this.setState({
  581. searchValues: searchValues,
  582. });
  583. }}
  584. >
  585. {departmentArr.map(function (item) {
  586. return (
  587. <Select.Option key={item.id}>{item.name}</Select.Option>
  588. );
  589. })}
  590. </Select>
  591. <Input
  592. placeholder="合同编号"
  593. value={searchValues["contractNo"]
  594. ? searchValues["contractNo"]
  595. : ""}
  596. onChange={(e) => {
  597. searchValues["contractNo"] = e.target.value;
  598. this.setState({
  599. searchValues: searchValues,
  600. });
  601. }}
  602. />
  603. <AutoComplete
  604. className="certain-category-search"
  605. dropdownClassName="certain-category-search-dropdown"
  606. dropdownMatchSelectWidth={false}
  607. style={{ width: "120px" }}
  608. dataSource={options}
  609. placeholder="订单负责人"
  610. value={searchValues.aname || undefined}
  611. onChange={this.followUp.bind(this)}
  612. filterOption={true}
  613. onSelect={this.selectF.bind(this)}
  614. >
  615. <Input />
  616. </AutoComplete>
  617. <Input
  618. placeholder="项目名称"
  619. value={searchValues["projectName"]
  620. ? searchValues["projectName"]
  621. : ""}
  622. onChange={(e) => {
  623. searchValues["projectName"] = e.target.value;
  624. this.setState({
  625. searchValues: searchValues,
  626. });
  627. }}
  628. />
  629. <Select
  630. style={{ width: 120 }}
  631. placeholder="签单金额"
  632. value={searchValues["amountStatus"]
  633. ? searchValues["amountStatus"]
  634. : undefined}
  635. onChange={(e) => {
  636. searchValues["amountStatus"] = e;
  637. this.setState({
  638. searchValues: searchValues,
  639. });
  640. }}
  641. >
  642. <Option value="0">10万元以下</Option>
  643. <Option value="1">10~20万元</Option>
  644. <Option value="2">20~30万元</Option>
  645. <Option value="3">30~40万元</Option>
  646. <Option value="4">40万元以上</Option>
  647. </Select>
  648. <Select
  649. style={{ width: 120 }}
  650. placeholder="特批状态"
  651. value={searchValues["approval"]
  652. ? searchValues["approval"]
  653. : undefined}
  654. onChange={(e) => {
  655. searchValues["approval"] = e;
  656. this.setState({
  657. searchValues: searchValues,
  658. });
  659. }}
  660. >
  661. <Option value="0">非特批</Option>
  662. <Option value="1">特批待审</Option>
  663. <Option value="2">特批通过</Option>
  664. <Option value="4">全部特批</Option>
  665. </Select>
  666. <Select
  667. style={{ width: 120 }}
  668. placeholder="审核状态"
  669. value={searchValues["status"]
  670. ? searchValues["status"]
  671. : undefined}
  672. onChange={(e) => {
  673. searchValues["status"] = e;
  674. this.setState({
  675. searchValues: searchValues,
  676. });
  677. }}
  678. >
  679. <Option value="1">财务审核</Option>
  680. <Option value="2">特批审核</Option>
  681. <Option value="3">通过</Option>
  682. <Option value="4">驳回</Option>
  683. <Option value="5">全部</Option>
  684. </Select>
  685. <Button
  686. type="primary"
  687. onClick={this.search}
  688. style={{ marginLeft: 10 }}
  689. disabled={this.state.loading ? true : false}
  690. >
  691. 搜索
  692. </Button>
  693. <Button onClick={this.reset}>重置</Button>
  694. </div>
  695. </TabPane>
  696. <TabPane tab="打印" key="3">
  697. <Button
  698. type="primary"
  699. style={{ margin: "11px 0px 10px 10px" }}
  700. onClick={this.printAll}
  701. >
  702. 打印当前列表
  703. </Button>
  704. </TabPane>
  705. <TabPane tab="导出Excel" key="4">
  706. <Button
  707. type="primary"
  708. style={{ margin: "11px 0px 10px 10px" }}
  709. onClick={this.exportAll}
  710. >
  711. 导出当前列表
  712. </Button>
  713. </TabPane>
  714. </Tabs>
  715. <div className="patent-table">
  716. <Spin spinning={this.state.loading}>
  717. <Table
  718. bordered
  719. columns={
  720. this.state.changeList == undefined
  721. ? this.state.columns
  722. : this.state.changeList
  723. }
  724. dataSource={this.state.dataSource}
  725. pagination={this.state.pagination}
  726. onRowDoubleClick={this.tableRowClick.bind(this)}
  727. size="small"
  728. />
  729. </Spin>
  730. </div>
  731. <textarea id="copyText" style={{ opacity: 0 }} />
  732. {/* 订单详情 */}
  733. <OrderDesc
  734. data={this.state.RowData}
  735. showDesc={this.state.showDesc}
  736. closeDesc={this.closeDesc.bind(this)}
  737. />
  738. {
  739. //打印预览
  740. this.state.dvisible &&
  741. <Modal
  742. visible={this.state.dvisible}
  743. footer=""
  744. title="所有列表信息"
  745. className="admin-desc-content"
  746. width="1300px"
  747. onCancel={() => {
  748. this.loadData();
  749. this.setState({
  750. dvisible: false,
  751. });
  752. }}
  753. >
  754. <Spin spinning={this.state.loading}>
  755. <div
  756. className="patent-table"
  757. style={{
  758. padding: "25px 0 30px 30px",
  759. }}
  760. ref={(e) => {
  761. this.refs.all = e;
  762. }}
  763. >
  764. <Table
  765. columns={this.truncate(this.state.columns)}
  766. dataSource={this.state.dataSource}
  767. pagination={false}
  768. bordered
  769. size="small"
  770. />
  771. </div>
  772. </Spin>
  773. <ReactToPrint
  774. trigger={() => (
  775. <Button
  776. type="primary"
  777. style={{
  778. float: "right",
  779. marginTop: 10,
  780. position: "absolute",
  781. top: 0,
  782. right: 30,
  783. }}
  784. >
  785. 打印
  786. </Button>
  787. )}
  788. content={() => this.refs.all}
  789. />
  790. </Modal>
  791. }
  792. {
  793. // 会员项目添加编辑
  794. this.state.vipVisible &&
  795. <ProjectOperationVip
  796. readOnly={false}
  797. orderNo={this.state.dataInfor.orderNo}
  798. visible={this.state.vipVisible}
  799. dataInfor={this.state.dataInfor}
  800. onCancel={this.vipClose}
  801. />
  802. }
  803. {
  804. //查看附件
  805. this.state.imgListVisible &&
  806. <Modal
  807. maskClosable={false}
  808. visible={this.state.imgListVisible}
  809. onOk={() => {
  810. this.setState({
  811. imgListVisible: false,
  812. });
  813. }}
  814. onCancel={() => {
  815. this.setState({
  816. imgListVisible: false,
  817. });
  818. }}
  819. width="600px"
  820. title="附件"
  821. footer=""
  822. >
  823. <div>
  824. <ImgList
  825. fileList={this.state.pictureUrlArr}
  826. domId="publicStatistics"
  827. />
  828. </div>
  829. </Modal>
  830. }
  831. </div>
  832. );
  833. },
  834. });
  835. export default MyProjectVip;