changeDetailJsjl.js 27 KB

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