changeDetailJsjl.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828
  1. import React, { Component } from "react";
  2. import { Form, Upload, Modal, Input, Button, message, Select, Table } from "antd";
  3. import AgreeButton from "./agreeButton.js";
  4. import Rizhi from "./rizhi.js";
  5. import { getProcessStatusNew, changeColor } from "@/tools.js";
  6. import { shenghePeo } from "@/tools.js";
  7. import $ from "jquery/src/ajax";
  8. import tongguo from "../../../../../../image/tongguo.png";
  9. import quxiao from "../../../../../../image/quxiao.png";
  10. import ProAndCuiList from "./proAndCuiList.jsx";
  11. import "./xButton.less";
  12. import Refund from "./refund.js"
  13. // import ReactToPrint from "react-to-print";
  14. const formItemLayout = {
  15. labelCol: { span: 8 },
  16. wrapperCol: { span: 14 }
  17. };
  18. const changeType = [
  19. {
  20. value: "0",
  21. key: "退单退款"
  22. },
  23. {
  24. value: "1",
  25. key: "项目及金额变更"
  26. },
  27. {
  28. value: "2",
  29. key: "仅项目变更"
  30. },
  31. {
  32. value: "3",
  33. key: "仅金额变更"
  34. },
  35. {
  36. value: "4",
  37. key: "重报"
  38. },
  39. {
  40. value: "5",
  41. key: "赠送"
  42. }
  43. ];
  44. const getChangeType = function (e) {
  45. if (e || e == 0) {
  46. let str = e.toString();
  47. let theType = "";
  48. changeType.map(function (item) {
  49. if (item.value == str) {
  50. theType = item.key;
  51. }
  52. });
  53. return theType;
  54. }
  55. };
  56. class Itemlist extends Component {
  57. constructor(props) {
  58. super(props);
  59. }
  60. render() {
  61. let pageData = this.props.pageData;
  62. return (
  63. <div className="clearfix">
  64. <Form.Item
  65. label={pageData.labelA}
  66. {...pageData.formItemLayoutA}
  67. className="half-item"
  68. >
  69. <p style={{ width: 350, wordWrap: "break-word" }}>{pageData.dataA}</p>
  70. </Form.Item>
  71. <Form.Item
  72. label={pageData.labelB}
  73. {...pageData.formItemLayoutB}
  74. className="half-item"
  75. >
  76. <span>{pageData.dataB}</span>
  77. </Form.Item>
  78. </div>
  79. );
  80. }
  81. }
  82. class ChangeDetail extends Component {
  83. constructor(props) {
  84. super(props);
  85. this.state = {
  86. previewVisible: false,
  87. buttonStatus: true,
  88. changeType: 1,
  89. dataSource: [],
  90. reason: "",
  91. // 累计回收退票
  92. refundInvoice: 0,
  93. // 退票数组
  94. contactList: [],
  95. rejectState: 0,
  96. // 收款信息
  97. proceedsData: [],
  98. proceedsTotal: this.props.proceedsTotal,
  99. // 开票信息
  100. invoiceData: [],
  101. invoiceTotal: this.props.invoiceTotal,
  102. cost: 10,
  103. refund: 8,
  104. // 测试添加退票
  105. contactList: this.props.contactList,
  106. ContactsLists: [
  107. {
  108. title: "金额(万元)",
  109. dataIndex: "amount",
  110. key: "amount",
  111. render: (text, record) => {
  112. return (
  113. <div>
  114. 实际回收退票(万元)
  115. <Input
  116. value={record.amount}
  117. placeholder="请输入金额(必填项)"
  118. disabled={record.load}
  119. key={record.id}
  120. required="required"
  121. onChange={e => {
  122. record.amount = e.target.value;
  123. this.setState({ contactList: this.state.contactList });
  124. }}
  125. style={{ width: "120px" }}
  126. />
  127. </div>
  128. );
  129. }
  130. },
  131. {
  132. title: "时间",
  133. dataIndex: "createTimes",
  134. key: "createTimes",
  135. render: (text, record) => {
  136. return <div>{record.createTimes}</div>;
  137. }
  138. }
  139. ]
  140. };
  141. this.getOrgCodeUrl = this.getOrgCodeUrl.bind(this);
  142. this.changeButtonStatus = this.changeButtonStatus.bind(this);
  143. this.moneyOld = this.moneyOld.bind(this);
  144. }
  145. componentWillReceiveProps(nextProps) {
  146. this.setState({
  147. projectState: nextProps.data.projectState,
  148. zxsCost: nextProps.data.zxsCost,
  149. zxsRemarks: nextProps.data.zxsRemarks,
  150. paymentTimes: nextProps.data.paymentTimes,
  151. paymentAmount: nextProps.data.paymentAmount,
  152. invoiceTimes: nextProps.data.invoiceTimes,
  153. invoiceAmount: nextProps.data.invoiceAmount,
  154. cwCost: nextProps.data.cwCost,
  155. refundableAmount: nextProps.data.refundableAmount,
  156. cwRemarks: nextProps.data.cwRemarks,
  157. contactList: nextProps.contactList,
  158. refundInvoice: nextProps.data.refundInvoice
  159. });
  160. }
  161. getOrgCodeUrl(e) {
  162. this.setState({
  163. orgCodeUrl: e
  164. });
  165. }
  166. //同意拒绝按钮的有无
  167. changeButtonStatus() {
  168. this.setState({
  169. buttonStatus: !this.state.buttonStatus
  170. });
  171. window.setTimeout(() => {
  172. this.setState({
  173. reason: ""
  174. });
  175. }, 100);
  176. }
  177. // loadData() {
  178. // $.ajax({
  179. // method: "get",
  180. // dataType: "json",
  181. // async: false,
  182. // crossDomain: false,
  183. // url: globalConfig.context + "/api/admin/orderChange/orderChangeLogList",
  184. // data: {
  185. // changeId: this.props.data.id
  186. // },
  187. // success: function(data) {
  188. // if (data.error.length || data.data.list == "") {
  189. // if (data.error && data.error.length) {
  190. // message.warning(data.error[0].message);
  191. // }
  192. // } else {
  193. // this.setState({
  194. // dataSource: data.data
  195. // });
  196. // }
  197. // }.bind(this)
  198. // });
  199. // }
  200. // componentDidMount() {
  201. // // this.loadData();
  202. // window.setTimeout(() => {
  203. // this.loadData();
  204. // }, 10);
  205. // console.log(this.props.processState);
  206. // }
  207. moneyOld(str, money) {
  208. if (money) {
  209. return (
  210. <span style={{ color: "red", fontWeight: 900, fontSize: 16 }}>
  211. {str}(原合同金额{money}万元)
  212. </span>
  213. );
  214. } else {
  215. return (
  216. <span style={{ color: "red", fontWeight: 900, fontSize: 16 }}>
  217. {str}
  218. </span>
  219. );
  220. }
  221. }
  222. render() {
  223. const pageData = [
  224. {
  225. labelA: "客户名称",
  226. formItemLayoutA: formItemLayout,
  227. dataA: this.props.data.userName,
  228. labelB: "合同编号",
  229. formItemLayoutB: formItemLayout,
  230. dataB: this.props.data.contractNo
  231. },
  232. {
  233. labelA: "时间",
  234. formItemLayoutA: formItemLayout,
  235. dataA: this.props.data.createTimes,
  236. labelB: "发起人",
  237. formItemLayoutB: formItemLayout,
  238. dataB: this.props.data.applicant
  239. },
  240. {
  241. labelA: "当前进度",
  242. formItemLayoutA: formItemLayout,
  243. // 当前是咨询师以及咨询师经理时使用shenhePeo函数,其他流程正常显示
  244. dataA:
  245. this.props.data.processState == 2 || this.props.data.processState == 3
  246. ? shenghePeo(
  247. this.props.data.processState == 2
  248. ? this.props.data.consultantExamine
  249. : this.props.data.managerExamine,
  250. this.props.data.processState
  251. )
  252. : getProcessStatusNew(
  253. this.props.data.processState,
  254. this.props.data.status
  255. ),
  256. labelB: "变更类型",
  257. formItemLayoutB: formItemLayout,
  258. dataB: getChangeType(this.props.data.type)
  259. },
  260. {
  261. labelA: "合同额(万元)",
  262. formItemLayoutA: formItemLayout,
  263. dataA: this.moneyOld(this.props.data.totalAmount, this.props.money),
  264. labelB: "已收款(万元)",
  265. formItemLayoutB: formItemLayout,
  266. dataB: changeColor(this.props.data.settlementAmount)
  267. },
  268. {
  269. labelA: "欠款(万元)",
  270. formItemLayoutA: formItemLayout,
  271. dataA: changeColor(this.props.data.arrears),
  272. labelB: "申请退款(万元)",
  273. formItemLayoutB: formItemLayout,
  274. dataB: changeColor(this.props.data.changeAmount)
  275. },
  276. {
  277. labelA: "变更原因",
  278. formItemLayoutA: formItemLayout,
  279. dataA: this.props.data.remarks
  280. }
  281. ];
  282. const planData = [
  283. {
  284. labelA: "项目进度",
  285. formItemLayoutA: formItemLayout,
  286. dataA: this.props.data.projectState,
  287. onChangeA: value => {
  288. this.setState({
  289. projectState: value
  290. });
  291. },
  292. labelB: "发生成本费用(万元)",
  293. formItemLayoutB: formItemLayout,
  294. dataB: this.props.data.zxsCost,
  295. onChangeB: value => {
  296. this.setState({
  297. zxsCost: value
  298. });
  299. }
  300. },
  301. {
  302. labelA: "备注",
  303. formItemLayoutA: formItemLayout,
  304. dataA: this.props.data.zxsRemarks,
  305. onChangeA: value => {
  306. this.setState({
  307. zxsRemarks: value
  308. });
  309. }
  310. }
  311. ];
  312. const financeData = [
  313. {
  314. labelA: "发生成本(万元)",
  315. formItemLayoutA: formItemLayout,
  316. dataA: this.props.data.cwCost,
  317. labelB: "应退金额(万元)",
  318. formItemLayoutB: formItemLayout,
  319. dataB: this.props.data.refundableAmount
  320. }
  321. ];
  322. const buttonData = [
  323. {
  324. name: "同意",
  325. title: "理由",
  326. placeholder: "请输入理由",
  327. type: "primary",
  328. status: 2,
  329. onChange: value => {
  330. this.setState({
  331. remarks: value
  332. });
  333. }
  334. },
  335. {
  336. name: "拒绝",
  337. title: "理由",
  338. placeholder: "请输入理由",
  339. type: "danger",
  340. status: 3,
  341. onChange: value => {
  342. this.setState({
  343. remarks: value
  344. });
  345. }
  346. }
  347. ];
  348. const orgCodeUrl = this.props.pictureUrl;
  349. return (
  350. <div className="clearfix changeDetail">
  351. <div
  352. className="clearfix"
  353. ref={(e) => {
  354. this.refs = e;
  355. }}
  356. >
  357. <div
  358. style={{
  359. borderRadius: "50%",
  360. width: 300,
  361. height: 300,
  362. position: "absolute",
  363. top: 230,
  364. left: 525,
  365. transform: "rotate(-5deg)",
  366. zIndex: 1,
  367. display:
  368. (this.props.data.processState == 7 ||
  369. this.props.data.processState == 8) &&
  370. this.props.data.status == 4
  371. ? "block"
  372. : "none",
  373. }}
  374. >
  375. {/* <span
  376. style={{
  377. fontSize: 29,
  378. position: "absolute",
  379. left: "50%",
  380. top: "50%",
  381. transform: "translate(-50%,-50%)",
  382. color: "red"
  383. }}
  384. >
  385. 通过
  386. </span> */}
  387. <img src={tongguo} style={{ width: "100%" }} />
  388. </div>
  389. <div
  390. style={{
  391. borderRadius: "50%",
  392. width: 300,
  393. height: 300,
  394. position: "absolute",
  395. top: 284,
  396. left: 586,
  397. transform: "rotate(-5deg)",
  398. zIndex: 1,
  399. display: this.props.data.status == 5 ? "block" : "none",
  400. }}
  401. >
  402. <img src={quxiao} style={{ width: "63%" }} />
  403. </div>
  404. <h2 style={{ textAlign: "center", marginBottom: 10 }}>
  405. 合同变更记录
  406. </h2>
  407. {pageData.map((item, index) => {
  408. return <Itemlist key={index} pageData={item} />;
  409. })}
  410. <Form.Item
  411. label="变更凭证"
  412. labelCol={{ span: 4 }}
  413. wrapperCol={{ span: 18 }}
  414. >
  415. <Upload
  416. className="demandDetailShow-upload"
  417. listType="picture-card"
  418. fileList={orgCodeUrl}
  419. onPreview={(file) => {
  420. this.setState({
  421. previewImage: file.url || file.thumbUrl,
  422. previewVisible: true,
  423. });
  424. }}
  425. />
  426. <Modal
  427. maskClosable={false}
  428. footer={null}
  429. visible={this.state.previewVisible}
  430. onCancel={() => {
  431. this.setState({ previewVisible: false });
  432. }}
  433. >
  434. <img
  435. alt=""
  436. style={{ width: "100%" }}
  437. src={this.state.previewImage || ""}
  438. />
  439. </Modal>
  440. <Rizhi changeId={this.props.id} />
  441. </Form.Item>
  442. <ul
  443. style={{
  444. width: "868px",
  445. overflow: "hidden",
  446. paddingLeft: "90px",
  447. position: "relative",
  448. bottom: "0px",
  449. }}
  450. >
  451. {/* <span>操作人:</span> */}
  452. {this.props.dataSource.map((item, index) => {
  453. if (item.status == 0) {
  454. item.status = "发起";
  455. } else if (item.status == 1) {
  456. item.status = "审核中";
  457. } else if (item.status == 2) {
  458. item.status = "通过";
  459. } else if (item.status == 3) {
  460. item.status = "驳回";
  461. } else if (item.status == 4) {
  462. item.status = "完成";
  463. }
  464. return (
  465. <li
  466. key={index}
  467. style={{
  468. width: "100%",
  469. height: "auto",
  470. wordBreak: "break-all",
  471. marginBottom: "10px",
  472. }}
  473. >
  474. {item.aname + ":" + "(" + item.status + ")" + item.remarks}
  475. </li>
  476. );
  477. })}
  478. </ul>
  479. <ProAndCuiList id={this.props.id} />
  480. <div className="clearfix">
  481. <h3 style={{ marginLeft: 20, fontWeight: 800, marginBottom: 10 }}>
  482. 收款情况
  483. </h3>
  484. <div style={{ marginLeft: "90px" }}>
  485. <ul>
  486. {(this.props.proceedsData.bill || []).map((item, index) => (
  487. <li key={index}>
  488. {item.payTime +
  489. " " +
  490. item.aName +
  491. " 收款:" +
  492. item.transactionAmount +
  493. "万元"}
  494. </li>
  495. ))}
  496. </ul>
  497. <div>收款总计:{this.props.proceedsTotal}万元</div>
  498. </div>
  499. <br />
  500. <div style={{ marginLeft: "90px" }}>
  501. <ul>
  502. {(this.props.proceedsData.invoice || []).map((item, index) => (
  503. <li key={index}>
  504. {item.createTime + " " + " 开票:" + item.amount + "万元"}
  505. </li>
  506. ))}
  507. </ul>
  508. <div>开票总计:{this.props.invoiceTotal}万元</div>
  509. </div>
  510. <p style={{ marginLeft: "90px", color: "red" }}>
  511. 系统预估 产生成本(万元):
  512. {this.props.data.estimateCost
  513. ? this.props.data.estimateCost
  514. : "0"}{" "}
  515. &nbsp;应退金额(万元):
  516. {this.props.data.estimateRefundable
  517. ? this.props.data.estimateRefundable
  518. : "0"}
  519. </p>
  520. </div>
  521. {/* {this.props.data.type === 0 ? (
  522. <div>
  523. <h3 style={{ marginLeft: 10, fontWeight: 800, marginBottom: 10 }}>
  524. 当前项目进度(咨询师经理填写)
  525. </h3>
  526. {planData.map((item, index) => {
  527. return <Itemlist key={index} pageData={item} />;
  528. })}
  529. </div>
  530. ) : (
  531. ""
  532. )} */}
  533. <div
  534. style={{
  535. display:
  536. (this.props.data.processState == 8 ||
  537. this.props.data.processState == 7) &&
  538. (this.props.data.status == 2 || this.props.data.status == 4)
  539. ? "block"
  540. : "none",
  541. }}
  542. >
  543. <h3 style={{ marginLeft: 20, fontWeight: 800, marginBottom: 10 }}>
  544. 回收退票
  545. </h3>
  546. <Table
  547. pagination={false}
  548. bordered
  549. columns={this.state.ContactsLists}
  550. dataSource={this.state.contactList}
  551. />
  552. </div>
  553. <div
  554. style={{
  555. display: this.props.data.processState > 5 ? "block" : "none",
  556. }}
  557. >
  558. <h3 style={{ marginLeft: 20, fontWeight: 800, marginBottom: 10 }}>
  559. 当前财务状态(财务填写)
  560. </h3>
  561. {financeData.map((item, index) => {
  562. return <Itemlist key={index} pageData={item} />;
  563. })}
  564. </div>
  565. {/*
  566. (
  567. <div>
  568. <h3 style={{ marginLeft: 10, fontWeight: 800, marginBottom: 10 }}>
  569. 当前项目进度(咨询师经理填写)
  570. </h3>
  571. {planData.map((item, index) => {
  572. return <Itemlist key={index} pageData={item} />;
  573. })}
  574. </div>
  575. )
  576. */}
  577. {/* {this.props.data.processState >= 4 ? (
  578. ""
  579. ) : (
  580. <div style={{ marginBottom: 10 }}>
  581. <div className="clearfix">
  582. <h3
  583. style={{ marginLeft: 10, fontWeight: 800, marginBottom: 10 }}
  584. >
  585. 当前项目进度(咨询师经理填写)
  586. </h3>
  587. <Form.Item
  588. className="half-item"
  589. label="项目进度"
  590. labelCol={{ span: 8 }}
  591. wrapperCol={{ span: 14 }}
  592. >
  593. <Input
  594. style={{ width: 160 }}
  595. value={this.state.projectState}
  596. placeholder="请输入项目进度"
  597. onChange={e => {
  598. this.setState({
  599. projectState: e.target.value
  600. });
  601. }}
  602. />
  603. </Form.Item>
  604. <Form.Item
  605. className="half-item"
  606. label="发生成本费用(万元)"
  607. labelCol={{ span: 8 }}
  608. wrapperCol={{ span: 14 }}
  609. >
  610. <Input
  611. style={{ width: 160 }}
  612. value={this.state.zxsCost}
  613. placeholder="请输入发生成本费用"
  614. onChange={e => {
  615. this.setState({
  616. zxsCost: e.target.value
  617. });
  618. }}
  619. />
  620. </Form.Item>
  621. </div>
  622. </div>
  623. )} */}
  624. {/* {this.props.data.processState >= 5 ? (
  625. <div>
  626. <h3 style={{ marginLeft: 10, fontWeight: 800, marginBottom: 10 }}>
  627. 当前财务状态(财务填写)
  628. </h3>
  629. {financeData.map((item, index) => {
  630. return <Itemlist key={index} pageData={item} />;
  631. })}
  632. </div>
  633. ) : (
  634. ""
  635. )} */}
  636. <div
  637. style={{
  638. display:
  639. (this.props.data.processState == 7 ||
  640. this.props.data.processState == 8) &&
  641. this.props.data.status == 4 &&
  642. this.props.data.refundStatus
  643. ? "block"
  644. : "none",
  645. }}
  646. >
  647. <Refund data={this.props.data} id={this.props.id} />
  648. </div>
  649. </div>
  650. {this.props.processState == this.props.data.processState ? (
  651. 1 ? (
  652. <div
  653. style={{
  654. display: this.props.data.isExamine == 0 ? "block" : "none",
  655. }}
  656. >
  657. <div style={{ marginBottom: "10px" }}>
  658. <Form.Item
  659. label="备注"
  660. labelCol={{ span: 4 }}
  661. wrapperCol={{ span: 14 }}
  662. >
  663. <Input.TextArea
  664. value={this.state.reason}
  665. rows={4}
  666. placeholder="请输入备注"
  667. onChange={(e) => {
  668. let reason = e.target.value;
  669. this.setState({ reason });
  670. }}
  671. />
  672. </Form.Item>
  673. </div>
  674. <div
  675. className="clearfix"
  676. style={{ display: "flex", justifyContent: "space-around" }}
  677. >
  678. {buttonData.map((item, index) => {
  679. return (
  680. <AgreeButton
  681. data={item}
  682. key={index}
  683. backData={this.props.data}
  684. processState={this.props.processState}
  685. visible={this.changeButtonStatus}
  686. loadData={this.props.loadData}
  687. reason={this.state.reason}
  688. ajaxData={this.state}
  689. rejectState={this.state.rejectState}
  690. onCancel={this.props.onCancel}
  691. />
  692. );
  693. })}
  694. </div>
  695. <Select
  696. defaultValue="0"
  697. style={{
  698. width: 120,
  699. float: "left",
  700. position: "relative",
  701. bottom: "28px",
  702. right: "-600px",
  703. }}
  704. onChange={(val) => {
  705. this.setState({ rejectState: val });
  706. }}
  707. >
  708. <Option
  709. value="0"
  710. style={{
  711. display: this.props.processState >= 1 ? "block" : "none",
  712. }}
  713. >
  714. 营销员
  715. </Option>
  716. <Option
  717. value="1"
  718. style={{
  719. display: this.props.processState >= 2 ? "block" : "none",
  720. }}
  721. >
  722. 营销管理员
  723. </Option>
  724. <Option
  725. value="2"
  726. style={{
  727. display: this.props.processState >= 3 ? "block" : "none",
  728. }}
  729. >
  730. 咨询师
  731. </Option>
  732. <Option
  733. value="3"
  734. style={{
  735. display: this.props.processState >= 4 ? "block" : "none",
  736. }}
  737. >
  738. 咨询师经理
  739. </Option>
  740. <Option
  741. value="4"
  742. style={{
  743. display: this.props.processState >= 5 ? "block" : "none",
  744. }}
  745. >
  746. 咨询师总监
  747. </Option>
  748. <Option
  749. value="5"
  750. style={{
  751. display: this.props.processState >= 6 ? "block" : "none",
  752. }}
  753. >
  754. 财务专员(退单)
  755. </Option>
  756. <Option
  757. value="6"
  758. style={{
  759. display: this.props.processState >= 7 ? "block" : "none",
  760. }}
  761. >
  762. 财务总监
  763. </Option>
  764. <Option
  765. value="7"
  766. style={{
  767. display: this.props.processState >= 8 ? "block" : "none",
  768. }}
  769. >
  770. 总裁
  771. </Option>
  772. </Select>
  773. </div>
  774. ) : (
  775. ""
  776. )
  777. ) : (
  778. ""
  779. )}
  780. {/* <ReactToPrint
  781. trigger={() => (
  782. <div className="clearfix">
  783. <Button type="primary" style={{ float: "right", marginTop: 10 }}>
  784. 打印
  785. </Button>
  786. </div>
  787. )}
  788. content={() => this.refs}
  789. /> */}
  790. </div>
  791. );
  792. }
  793. }
  794. export { ChangeDetail };