myprojectvip.jsx 25 KB

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