myprojectvip.jsx 25 KB

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