pressList.jsx 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967
  1. import React from "react";
  2. import {
  3. Button,
  4. Input,
  5. Select,
  6. Spin,
  7. Table,
  8. message,
  9. DatePicker,
  10. Form,
  11. Modal,
  12. Tabs,
  13. Tooltip,
  14. Tag,
  15. } from "antd";
  16. import $ from "jquery/src/ajax";
  17. import moment from "moment";
  18. import {
  19. getLiquidationStatus,
  20. getjiedian,
  21. getNewOrderStatus,
  22. getProjectStatus,
  23. } from "@/tools.js";
  24. import "./customer.less";
  25. import { ChooseList } from "./chooseList";
  26. import { getProjectName } from "../../../tools";
  27. import { salesList } from "@/dataDic.js"
  28. import DepartmentList from "../../../common/departmentList";
  29. import OrderItemStatus from "../../../common/orderItemStatus";
  30. import OrderDesc from "../../financialManage/orderDetail/orderDesc";
  31. import Cascaders from "../../../common/cascaders";
  32. const IntentionCustomer = Form.create()(
  33. React.createClass({
  34. loadData(pageNo) {
  35. this.setState({
  36. visitModul: false,
  37. loading: true,
  38. ispage: pageNo,
  39. modalVisible: false,
  40. });
  41. $.ajax({
  42. method: "get",
  43. dataType: "json",
  44. crossDomain: false,
  45. url: globalConfig.context + "/api/admin/newOrder/dunOrderNewList",
  46. data: {
  47. pageNo: pageNo || 1,
  48. pageSize: this.state.pagination.pageSize,
  49. name: this.state.customerName, //名称
  50. orderNo: this.state.orderNo, //订单编号
  51. contractNo: this.state.contractNo,
  52. deps: this.state.departmenttSearch, //订单部门
  53. adminName: this.state.adminName, //责任人名称
  54. starTime: this.state.releaseDate[0], //开始时间
  55. endTime: this.state.releaseDate[1], //结束时间
  56. newStatus: this.state.newStatus,
  57. amountStatus: this.state.amountStatus,//签单金额
  58. approval: this.state.approval,//是否特批
  59. memberType: this.state.memberType,//会员
  60. },
  61. success: function (data) {
  62. let theArr = [];
  63. if (data.error.length || data.data.list == "") {
  64. if (data.error && data.error.length) {
  65. message.warning(data.error[0].message);
  66. }
  67. } else {
  68. for (let i = 0; i < data.data.list.length; i++) {
  69. let thisdata = data.data.list[i];
  70. theArr.push({
  71. key: i + 1,
  72. id: thisdata.id, //ID
  73. contractNo: thisdata.contractNo,
  74. orderNo: thisdata.orderNo, //订单编号
  75. totalAmount: thisdata.totalAmount, //签单金额
  76. settlementAmount: thisdata.settlementAmount, //已收款
  77. accountsReceivable: thisdata.accountsReceivable, //应收款
  78. uncollectedAmount: thisdata.uncollectedAmount, //应收款
  79. appropriationRatio: thisdata.appropriationRatio, //拨款比例
  80. orderStatus: thisdata.orderStatus, //订单状态
  81. projectStatus: thisdata.projectStatus, //项目状态
  82. liquidationStatus: thisdata.liquidationStatus, //结算状态
  83. signDate: thisdata.signDate, //签单时间
  84. userName: thisdata.userName, //客户名称
  85. salesmanName: thisdata.salesmanName, //营销员名称
  86. dunSubject: thisdata.dunSubject, //催收科目
  87. startDate: thisdata.startDate, //催收启动时间
  88. depName: thisdata.depName, //部门名称
  89. dunStatus: thisdata.dunStatus == 0 ? "未触发" : "已触发",
  90. commodityName: thisdata.commodityName,
  91. approval: thisdata.approval, //特批状态
  92. memberType: thisdata.memberType, //会员状态
  93. deleteSign: thisdata.deleteSign,//变更状态
  94. });
  95. }
  96. this.state.pagination.total = data.data.totalCount;
  97. this.state.pagination.current = data.data.pageNo;
  98. }
  99. if (data.data && data.data.list && !data.data.list.length) {
  100. this.state.pagination.total = 0;
  101. }
  102. this.setState({
  103. dataSource: theArr,
  104. pageNo: pageNo,
  105. pagination: this.state.pagination,
  106. selectedRowKeys: [],
  107. });
  108. }.bind(this),
  109. }).always(
  110. function () {
  111. this.setState({
  112. loading: false,
  113. });
  114. }.bind(this)
  115. );
  116. },
  117. loadDatas(dunId) {
  118. this.setState({
  119. loading: true,
  120. });
  121. $.ajax({
  122. method: "get",
  123. dataType: "json",
  124. crossDomain: false,
  125. url: globalConfig.context + "/api/admin/newOrder/selectDunLogList",
  126. data: {
  127. dunId: dunId,
  128. },
  129. success: function (data) {
  130. let theArr = [];
  131. if (data.error.length || data.data == "") {
  132. if (data.error && data.error.length) {
  133. message.warning(data.error[0].message);
  134. }
  135. } else {
  136. for (let i = 0; i < data.data.length; i++) {
  137. let thisdata = data.data[i];
  138. theArr.push({
  139. key: i,
  140. id: thisdata.id, //ID
  141. dunId: thisdata.dunId, //催款ID
  142. dumBy: thisdata.dumBy, //催款人
  143. dumTime: thisdata.dumDate, //催款时间
  144. remarks: thisdata.remarks, //备注
  145. });
  146. }
  147. }
  148. this.setState({
  149. dataSources: theArr,
  150. });
  151. }.bind(this),
  152. }).always(
  153. function () {
  154. this.setState({
  155. loading: false,
  156. });
  157. }.bind(this)
  158. );
  159. },
  160. getInitialState() {
  161. return {
  162. showDesc: false,
  163. newStatus: 1,
  164. page: 1,
  165. releaseDate: [],
  166. selectedRowKeys: [],
  167. orgCodeUrl: [],
  168. paginations: false,
  169. pagination: {
  170. defaultCurrent: 1,
  171. defaultPageSize: 10,
  172. showQuickJumper: true,
  173. pageSize: 10,
  174. onChange: function (page) {
  175. this.loadData(page);
  176. }.bind(this),
  177. showTotal: function (total) {
  178. return "共" + total + "条数据";
  179. },
  180. },
  181. columns: [
  182. {
  183. title: "合同编号",
  184. dataIndex: "contractNo",
  185. key: "contractNo",
  186. render: (text, record) => {
  187. return (
  188. <Tooltip
  189. title={
  190. <Button
  191. type="primary"
  192. onClick={(e) => {
  193. e.stopPropagation();
  194. let input = document.getElementById("copyText");
  195. input.value = text;
  196. input.select();
  197. document.execCommand("copy");
  198. message.success("复制成功");
  199. }}
  200. >
  201. 复制
  202. </Button>
  203. }
  204. >
  205. <div>
  206. {text}
  207. <div style={{ display: "flex" }}>
  208. <OrderItemStatus deleteSign={record.deleteSign} />
  209. {
  210. record.approval == 1
  211. ? <Tag color="#faa755">特批待审</Tag> : record.approval == 2
  212. ? <Tag color="#ff0000">特批通过</Tag> : record.approval == 4
  213. ? <Tag color="#faa755">特批待审</Tag> : record.approval == 5
  214. ? <Tag color="#ff0000">特批通过</Tag> : ""
  215. }
  216. </div>
  217. </div>
  218. </Tooltip>
  219. );
  220. },
  221. },
  222. {
  223. title: "订单编号",
  224. dataIndex: "orderNo",
  225. key: "orderNo",
  226. render: (text, record) => {
  227. return (
  228. <Tooltip
  229. title={
  230. <Button
  231. type="primary"
  232. onClick={(e) => {
  233. e.stopPropagation();
  234. let input = document.getElementById("copyText");
  235. input.value = text;
  236. input.select();
  237. document.execCommand("copy");
  238. message.success("复制成功");
  239. }}
  240. >
  241. 复制
  242. </Button>
  243. }
  244. >
  245. <div>
  246. {text}
  247. <div>
  248. {record.totalAmount >= 10 && <Tag color="#ef7207">大客户</Tag>}
  249. {record.memberType == 1 && <Tag color="rgb(22, 155, 213)">会员</Tag>}
  250. </div>
  251. </div>
  252. </Tooltip>
  253. );
  254. },
  255. },
  256. {
  257. title: "客户名称",
  258. dataIndex: "userName",
  259. key: "userName",
  260. width: 150,
  261. render: (text) => {
  262. return (
  263. <Tooltip title={text}>
  264. <div
  265. style={{
  266. maxWidth: "150px",
  267. overflow: "hidden",
  268. textOverflow: "ellipsis",
  269. whiteSpace: "nowrap",
  270. }}
  271. >
  272. {text}
  273. </div>
  274. </Tooltip>
  275. );
  276. },
  277. },
  278. {
  279. title: "订单负责人",
  280. dataIndex: "salesmanName",
  281. key: "salesmanName",
  282. },
  283. {
  284. title: "订单部门",
  285. dataIndex: "depName",
  286. key: "depName",
  287. },
  288. {
  289. title: "订单状态",
  290. dataIndex: "orderStatus",
  291. key: "orderStatus",
  292. render: (text) => {
  293. return getNewOrderStatus(text);
  294. },
  295. },
  296. {
  297. title: "项目名称",
  298. dataIndex: "commodityName",
  299. key: "commodityName",
  300. },
  301. {
  302. title: "项目状态",
  303. dataIndex: "projectStatus",
  304. key: "projectStatus",
  305. render: (text) => {
  306. return getProjectName(text);
  307. },
  308. },
  309. {
  310. title: "签单金额(万元)",
  311. dataIndex: "totalAmount",
  312. key: "totalAmount",
  313. },
  314. {
  315. title: "已收款(万元)",
  316. dataIndex: "settlementAmount",
  317. key: "settlementAmount",
  318. },
  319. {
  320. title: "未收款(万元)",
  321. dataIndex: "uncollectedAmount",
  322. key: "uncollectedAmount",
  323. },
  324. {
  325. title: "拨款比例",
  326. dataIndex: "appropriationRatio",
  327. key: "appropriationRatio",
  328. },
  329. {
  330. title: "结算状态",
  331. dataIndex: "liquidationStatus",
  332. key: "liquidationStatus",
  333. render: (text) => {
  334. return getLiquidationStatus(text);
  335. },
  336. },
  337. {
  338. title: "催收科目",
  339. dataIndex: "dunSubject",
  340. key: "dunSubject",
  341. // render: text => {
  342. // return getjiedian(text);
  343. // }
  344. },
  345. {
  346. title: "应收款(万元)",
  347. dataIndex: "accountsReceivable",
  348. key: "accountsReceivable",
  349. },
  350. {
  351. title: "催款状态",
  352. dataIndex: "dunStatus",
  353. key: "dunStatus",
  354. },
  355. {
  356. title: "催款启动日期",
  357. dataIndex: "startDate",
  358. key: "startDate",
  359. },
  360. {
  361. title: "签单时间",
  362. dataIndex: "signDate",
  363. key: "signDate",
  364. },
  365. {
  366. title: "催收操作",
  367. dataIndex: "abc",
  368. key: "abc",
  369. render: (text, record) => {
  370. return (
  371. <div>
  372. <Button
  373. onClick={(e) => {
  374. e.stopPropagation(),
  375. this.visit(record);
  376. }}
  377. type="primary"
  378. >
  379. 添加催款记录
  380. </Button>
  381. <Button
  382. style={{ marginLeft: 5 }}
  383. onClick={(e) => {
  384. e.stopPropagation(),
  385. this.setState({
  386. visibles: true,
  387. });
  388. }}
  389. type="primary"
  390. >
  391. 查看催款记录
  392. </Button>
  393. </div>
  394. );
  395. },
  396. },
  397. ],
  398. data: [],
  399. dataSource: [],
  400. columnsX: [
  401. {
  402. title: "催款人",
  403. dataIndex: "dumBy",
  404. key: "dumBy",
  405. },
  406. {
  407. title: "催款时间",
  408. dataIndex: "dumTime",
  409. key: "dumTime",
  410. },
  411. {
  412. title: "催款情况",
  413. dataIndex: "remarks",
  414. key: "remarks",
  415. },
  416. ],
  417. dataSources: [],
  418. };
  419. },
  420. //页面加载函数
  421. componentWillMount() {
  422. this.loadData();
  423. },
  424. //进入新增拜访记录
  425. visit(record) {
  426. this.setState({
  427. visible: true,
  428. dunId: record.id,
  429. });
  430. },
  431. // 整行点击
  432. tableRowClick(record) {
  433. this.state.RowData = record;
  434. this.setState({
  435. showDesc: true,
  436. });
  437. },
  438. //新增催款记录
  439. examOk() {
  440. $.ajax({
  441. method: "post",
  442. dataType: "json",
  443. crossDomain: false,
  444. url: globalConfig.context + "/api/admin/newOrder/createDunLog",
  445. data: {
  446. dunId: this.state.dunId,
  447. dumTime: this.state.dumTime,
  448. remarks: this.state.remarks,
  449. },
  450. success: function (data) {
  451. if (data.error.length || data.data.list == "") {
  452. if (data.error && data.error.length) {
  453. message.warning(data.error[0].message);
  454. }
  455. } else {
  456. message.success("新增催款记录成功~");
  457. this.setState({
  458. visible: false,
  459. });
  460. this.loadData();
  461. this.resets();
  462. }
  463. }.bind(this),
  464. }).always(
  465. function () {
  466. this.setState({
  467. loading: false,
  468. });
  469. }.bind(this)
  470. );
  471. },
  472. //关闭输入理由框
  473. noCancel() {
  474. this.setState({
  475. noVisible: false,
  476. });
  477. },
  478. //搜索
  479. search() {
  480. this.setState({
  481. //signBillVisible:false
  482. });
  483. this.loadData();
  484. },
  485. //重置
  486. reset() {
  487. this.setState({
  488. signBillVisible: false,
  489. });
  490. this.state.orderNo = undefined;
  491. this.state.contractNo = undefined;
  492. this.state.customerName = undefined;
  493. this.state.adminName = undefined;
  494. this.state.departmenttSearch = undefined;
  495. this.state.releaseDate[0] = undefined;
  496. this.state.releaseDate[1] = undefined;
  497. this.state.amountStatus = undefined;
  498. this.state.approval = undefined;
  499. this.state.memberType = undefined;
  500. this.Cascaders.empty();
  501. this.loadData();
  502. },
  503. resets() {
  504. this.state.orderNo = "";
  505. this.state.contractNo = "";
  506. this.state.customerName = "";
  507. this.state.adminName = "";
  508. this.state.departmenttSearch = undefined;
  509. this.state.releaseDate[0] = undefined;
  510. this.state.releaseDate[1] = undefined;
  511. this.state.amountStatus = undefined;
  512. this.state.approval = undefined;
  513. this.state.memberType = undefined;
  514. },
  515. getOrgCodeUrl(e) {
  516. this.setState({ orgCodeUrl: e });
  517. },
  518. //关闭详情
  519. visitCancel() {
  520. this.setState({
  521. visible: false,
  522. });
  523. this.resets();
  524. },
  525. visitOk() {
  526. this.setState({
  527. visible: false,
  528. });
  529. this.resets();
  530. },
  531. //关闭详情
  532. visitCancels() {
  533. this.setState({
  534. visibles: false,
  535. });
  536. this.resets();
  537. },
  538. // 关闭订单详情
  539. closeDesc(e, s) {
  540. this.state.showDesc = e;
  541. if (s) {
  542. this.loadData(this.state.page);
  543. }
  544. },
  545. //导出
  546. exportExec() {
  547. message.config({
  548. duration: 20,
  549. });
  550. let loading = message.loading("下载中...");
  551. this.setState({
  552. exportPendingLoading: true,
  553. });
  554. let data = {
  555. pageSize: 9999999,
  556. name: this.state.customerName, //名称
  557. orderNo: this.state.orderNo, //订单编号
  558. contractNo: this.state.contractNo,
  559. deps: this.state.departmenttSearch, //订单部门
  560. adminName: this.state.adminName, //责任人名称
  561. starTime: this.state.releaseDate[0], //开始时间
  562. endTime: this.state.releaseDate[1], //结束时间
  563. newStatus: this.state.newStatus,
  564. amountStatus: this.state.amountStatus,//签单金额
  565. approval: this.state.approval,//是否特批
  566. memberType: this.state.memberType,//会员
  567. };
  568. $.ajax({
  569. method: "get",
  570. dataType: "json",
  571. crossDomain: false,
  572. url: "/api/admin/newOrder/exportOrderDunData",
  573. data,
  574. success: function (data) {
  575. if (data.error.length === 0) {
  576. this.download(data.data);
  577. } else {
  578. message.warning(data.error[0].message);
  579. }
  580. }.bind(this),
  581. }).always(
  582. function () {
  583. loading();
  584. this.setState({
  585. exportPendingLoading: false,
  586. });
  587. }.bind(this)
  588. );
  589. },
  590. // 下载
  591. download(fileName) {
  592. window.location.href =
  593. globalConfig.context + "/open/download?fileName=" + fileName;
  594. },
  595. visitOks() {
  596. this.setState({
  597. visibles: false,
  598. });
  599. this.resets();
  600. },
  601. changeList(arr) {
  602. const newArr = [];
  603. this.state.columns.forEach((item) => {
  604. arr.forEach((val) => {
  605. if (val === item.title) {
  606. newArr.push(item);
  607. }
  608. });
  609. });
  610. this.setState({
  611. changeList: newArr,
  612. });
  613. },
  614. render() {
  615. const formItemLayout = {
  616. labelCol: { span: 8 },
  617. wrapperCol: { span: 14 },
  618. };
  619. const FormItem = Form.Item;
  620. const { RangePicker } = DatePicker;
  621. const rowSelection = {
  622. selectedRowKeys: this.state.selectedRowKeys,
  623. onChange: (selectedRowKeys, selectedRows) => {
  624. this.setState({
  625. modalVisible: false,
  626. selectedRows: selectedRows.slice(-1),
  627. selectedRowKeys: selectedRowKeys.slice(-1),
  628. });
  629. },
  630. onSelect: (recordt) => {
  631. this.setState({
  632. modalVisible: false,
  633. recordt: recordt.id,
  634. });
  635. },
  636. };
  637. const { TabPane } = Tabs;
  638. return (
  639. <div className="user-content">
  640. <div className="content-title" style={{ marginBottom: 10 }}>
  641. <span style={{ fontWeight: 900, fontSize: 16 }}>催款节点统计</span>
  642. </div>
  643. <Tabs
  644. defaultActiveKey="1"
  645. onChange={this.callback}
  646. className="test"
  647. >
  648. <TabPane tab="导出催款列表" key="2">
  649. <Button
  650. type="primary"
  651. onClick={this.exportExec}
  652. style={{
  653. float: "left",
  654. marginTop: 10,
  655. marginBottom: 10,
  656. marginLeft: 10,
  657. marginRight: 10,
  658. }}
  659. >
  660. 导出催款列表
  661. </Button>
  662. </TabPane>
  663. <TabPane tab="搜索" key="1">
  664. <div className="user-search" style={{ padding: "0 10px" }}>
  665. <Input
  666. placeholder="客户名称"
  667. style={{
  668. width: 170,
  669. marginBottom: 10,
  670. marginRight: 15,
  671. }}
  672. value={this.state.customerName}
  673. onChange={(e) => {
  674. this.setState({ customerName: e.target.value });
  675. }}
  676. />
  677. <Input
  678. placeholder="营销员名称"
  679. style={{
  680. width: 170,
  681. marginBottom: 10,
  682. marginRight: 15,
  683. }}
  684. value={this.state.adminName}
  685. onChange={(e) => {
  686. this.setState({ adminName: e.target.value });
  687. }}
  688. />
  689. <Input
  690. placeholder="订单编号"
  691. style={{
  692. width: 170,
  693. marginBottom: 10,
  694. marginRight: 15,
  695. }}
  696. value={this.state.orderNo}
  697. onChange={(e) => {
  698. this.setState({ orderNo: e.target.value });
  699. }}
  700. />
  701. <Input
  702. placeholder="合同编号"
  703. style={{
  704. width: 170,
  705. marginBottom: 10,
  706. marginRight: 15,
  707. }}
  708. value={this.state.contractNo}
  709. onChange={(e) => {
  710. this.setState({ contractNo: e.target.value });
  711. }}
  712. />
  713. <Cascaders
  714. ref={node => this.Cascaders = node}
  715. placeholder="订单部门"
  716. id="id"
  717. name="name"
  718. children="list"
  719. height={28}
  720. onSel={(e) => {
  721. this.setState({
  722. departmenttSearch: JSON.stringify(e),
  723. });
  724. }}
  725. />
  726. {/* <DepartmentList
  727. value={this.state.departmenttSearch}
  728. onChange={(e) => {
  729. this.setState({ departmenttSearch: e });
  730. }}
  731. /> */}
  732. <Select
  733. placeholder="选择催款节点类型"
  734. style={{ width: 170, marginRight: 15, marginLeft: 5 }}
  735. value={
  736. this.state.newStatus == 0 ? "旧催款节点" : "新催款节点"
  737. }
  738. onChange={(e) => {
  739. this.setState({ newStatus: e });
  740. }}
  741. >
  742. <Select.Option key={0}>{"旧催款节点"}</Select.Option>
  743. <Select.Option key={1}>{"新催款节点"}</Select.Option>
  744. </Select>
  745. <Select
  746. style={{ width: 170, marginRight: 15 }}
  747. placeholder="签单金额"
  748. value={this.state.amountStatus}
  749. onChange={(e) => {
  750. this.setState({
  751. amountStatus: e,
  752. });
  753. }}
  754. >
  755. <Option value="0">10万元以下</Option>
  756. <Option value="1">10~20万元</Option>
  757. <Option value="2">20~30万元</Option>
  758. <Option value="3">30~40万元</Option>
  759. <Option value="4">40万元以上</Option>
  760. </Select>
  761. <Select
  762. style={{ width: 170, marginRight: 15 }}
  763. placeholder="特批状态"
  764. value={this.state.approval}
  765. onChange={(e) => {
  766. this.setState({
  767. approval: e,
  768. });
  769. }}
  770. >
  771. <Option value="0">非特批</Option>
  772. <Option value="1">特批待审</Option>
  773. <Option value="2">特批通过</Option>
  774. <Option value="4">全部特批</Option>
  775. </Select>
  776. <Select
  777. style={{ width: 170, marginRight: 15 }}
  778. placeholder="会员"
  779. value={this.state.memberType}
  780. onChange={(e) => {
  781. this.setState({
  782. memberType: e,
  783. });
  784. }}
  785. >
  786. <Option value="0">否</Option>
  787. <Option value="1">是</Option>
  788. </Select>
  789. <span style={{ marginRight: 15, }}>下单时间 :</span>
  790. <RangePicker
  791. value={[
  792. this.state.releaseDate[0]
  793. ? moment(this.state.releaseDate[0])
  794. : null,
  795. this.state.releaseDate[1]
  796. ? moment(this.state.releaseDate[1])
  797. : null,
  798. ]}
  799. onChange={(data, dataString) => {
  800. this.setState({ releaseDate: dataString });
  801. }}
  802. />
  803. <Button
  804. type="primary"
  805. onClick={this.search}
  806. style={{ marginLeft: 15, marginRight: 15, marginBottom: 10 }}
  807. >
  808. 搜索
  809. </Button>
  810. <Button onClick={this.reset}>重置</Button>
  811. </div>
  812. </TabPane>
  813. <TabPane tab="更改表格显示数据" key="3">
  814. <div style={{ marginLeft: 10 }}>
  815. <ChooseList
  816. columns={this.state.columns}
  817. changeFn={this.changeList}
  818. changeList={this.state.changeList}
  819. top={55}
  820. margin={11}
  821. />
  822. </div>
  823. </TabPane>
  824. </Tabs>
  825. <div className="patent-table">
  826. <Spin spinning={this.state.loading}>
  827. <Table
  828. columns={
  829. this.state.changeList
  830. ? this.state.changeList
  831. : this.state.columns
  832. }
  833. dataSource={this.state.dataSource}
  834. pagination={this.state.pagination}
  835. scroll={{ x: "max-content", y: 0 }}
  836. onRowDoubleClick={this.tableRowClick}
  837. bordered
  838. size="small"
  839. />
  840. </Spin>
  841. <Modal
  842. maskClosable={false}
  843. className="customeDetails"
  844. footer=""
  845. title="新增催款记录"
  846. width="500px"
  847. visible={this.state.visible}
  848. onOk={this.visitOk}
  849. onCancel={this.visitCancel}
  850. >
  851. <Form
  852. layout="horizontal"
  853. onSubmit={this.handleSubmit}
  854. id="demand-form"
  855. style={{ paddingBottom: "40px" }}
  856. >
  857. <Spin spinning={this.state.loading}>
  858. <div className="clearfix">
  859. <div className="clearfix">
  860. <FormItem
  861. className="half-item"
  862. {...formItemLayout}
  863. label="催款时间"
  864. >
  865. <DatePicker
  866. style={{
  867. marginTop: "2px",
  868. width: "240px",
  869. height: "27px",
  870. }}
  871. showTime
  872. format="YYYY-MM-DD"
  873. onOk={() => { }}
  874. value={
  875. this.state.dumTime
  876. ? moment(this.state.dumTime)
  877. : null
  878. }
  879. onChange={(data, dataString) => {
  880. this.setState({ dumTime: dataString });
  881. }}
  882. />
  883. </FormItem>
  884. </div>
  885. <div className="clearfix">
  886. <FormItem
  887. labelCol={{ span: 4 }}
  888. wrapperCol={{ span: 16 }}
  889. label="催款情况"
  890. >
  891. <Input
  892. type="textarea"
  893. placeholder="请输入催款情况"
  894. rows={4}
  895. value={this.state.remarks}
  896. onChange={(e) => {
  897. this.setState({ remarks: e.target.value });
  898. }}
  899. />
  900. </FormItem>
  901. </div>
  902. <div className="clearfix">
  903. <Button
  904. className="cancel"
  905. type="primary"
  906. onClick={this.examOk}
  907. style={{ marginLeft: "50px" }}
  908. htmlType="submit"
  909. >
  910. 添加
  911. </Button>
  912. <Button
  913. className="cancel"
  914. type="ghost"
  915. onClick={this.visitCancel}
  916. style={{ marginLeft: "50px" }}
  917. >
  918. 取消
  919. </Button>
  920. </div>
  921. </div>
  922. </Spin>
  923. </Form>
  924. </Modal>
  925. <Modal
  926. maskClosable={false}
  927. className="customeDetails"
  928. footer=""
  929. title="催款记录查看"
  930. width="500px"
  931. visible={this.state.visibles}
  932. onOk={this.visitOks}
  933. onCancel={this.visitCancels}
  934. >
  935. <div className="user-content">
  936. <div className="patent-table">
  937. <Spin spinning={this.state.loading}>
  938. <Table
  939. columns={this.state.columnsX}
  940. dataSource={this.state.dataSources}
  941. rowSelection={rowSelection}
  942. pagination={this.state.paginations}
  943. />
  944. </Spin>
  945. </div>
  946. </div>
  947. </Modal>
  948. </div>
  949. <textarea id="copyText" style={{ opacity: 0 }} />
  950. {/* 订单详情 */}
  951. <OrderDesc
  952. data={this.state.RowData}
  953. showDesc={this.state.showDesc}
  954. closeDesc={this.closeDesc.bind(this)}
  955. />
  956. </div>
  957. );
  958. },
  959. })
  960. );
  961. export default IntentionCustomer;