customerDetails.jsx 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. import React,{Component} from 'react';
  2. import {message, Modal, Spin, Table} from "antd";
  3. import PropTypes from 'prop-types';
  4. import $ from "jquery/src/ajax";
  5. class CustomerDetails extends Component{
  6. constructor(props) {
  7. super(props);
  8. this.state={
  9. loading:false,
  10. columns: [{
  11. title: '客户名称',
  12. dataIndex: 'name',
  13. key: 'name'
  14. }, {
  15. title: '来源',
  16. dataIndex: 'sourceName',
  17. key: 'sourceName'
  18. }, {
  19. title: '联系人',
  20. dataIndex: 'contacts',
  21. key: 'contacts'
  22. }, {
  23. title: '联系人电话',
  24. dataIndex: 'contactMobile',
  25. key: 'contactMobile'
  26. }, {
  27. title: '创建时间',
  28. dataIndex: 'createTime',
  29. key: 'createTime',
  30. }, {
  31. title: '跟进时间',
  32. dataIndex: 'followTime',
  33. key: 'followTime',
  34. }],
  35. pagination: {
  36. defaultCurrent: 1,
  37. defaultPageSize: 10,
  38. showQuickJumper: true,
  39. pageSize: 10,
  40. onChange: function(page) {
  41. this.loadData(page);
  42. }.bind(this),
  43. showTotal: function(total) {
  44. return '共' + total + '条数据';
  45. }
  46. }
  47. }
  48. this.loadData = this.loadData.bind(this);
  49. }
  50. componentDidMount() {
  51. this.loadData();
  52. }
  53. loadData(pageNo) {
  54. this.setState({
  55. loading:true
  56. })
  57. $.ajax({
  58. method: "get",
  59. dataType: "json",
  60. crossDomain: false,
  61. url: globalConfig.context +"/api/admin/customer/selectAdminCustomerList",
  62. data: {
  63. pageNo:pageNo || 1,
  64. pageSize:this.state.pagination.pageSize,
  65. aid:this.props.aid,
  66. type:this.props.type, //0 所有 1新增 2领取 3已签 4面谈
  67. },
  68. success: function(data) {
  69. let theArr = [];
  70. if(data.error.length || data.data.list == "") {
  71. if(data.error && data.error.length) {
  72. message.warning(data.error[0].message);
  73. };
  74. } else {
  75. for (let i = 0; i < data.data.list.length; i++) {
  76. let thisdata = data.data.list[i];
  77. thisdata.key = i;
  78. theArr.push(thisdata);
  79. };
  80. this.state.pagination.current = pageNo;
  81. this.state.pagination.total = data.data.totalCount;
  82. };
  83. if(!data.data.list.length) {
  84. this.state.pagination.current = 0
  85. this.state.pagination.total = 0
  86. }
  87. this.setState({
  88. dataSource: theArr,
  89. pagination: this.state.pagination,
  90. });
  91. }.bind(this),
  92. }).always(function() {
  93. this.setState({
  94. loading: false
  95. });
  96. }.bind(this));
  97. }
  98. render() {
  99. return (
  100. <div>
  101. <Modal
  102. maskClosable={true}
  103. visible={this.props.visible}
  104. onOk={this.props.onCancel}
  105. onCancel={this.props.onCancel}
  106. width='1000px'
  107. title='客户详情'
  108. footer=''
  109. className="admin-desc-content">
  110. <div className="patent-table">
  111. <Spin spinning={this.state.loading}>
  112. <Table
  113. columns={this.state.columns}
  114. dataSource={this.state.dataSource}
  115. pagination={this.state.pagination}
  116. />
  117. </Spin>
  118. </div>
  119. </Modal>
  120. </div>
  121. );
  122. }
  123. }
  124. CustomerDetails.propTypes={
  125. visible: PropTypes.bool,
  126. onCancel: PropTypes.func,
  127. aid: PropTypes.number, //员工ID
  128. type: PropTypes.number, //列表类型 客户总数 成交客户总数 新增客户数等等
  129. }
  130. CustomerDetails.defaultProps={
  131. visible: false,
  132. onCancel: ()=>{}
  133. }
  134. export default CustomerDetails;