import React, { Component } from 'react';
import {
  AutoComplete,
  Button,
  Cascader,
  DatePicker,
  Icon,
  Input,
  message,
  Modal,
  Select,
  Spin,
  Table,
  Tabs,
  Tag, Tooltip
} from "antd";
import { citySelect, provinceList } from '@/NewDicProvinceList';
import { getSocialAttribute, ShowModal } from "@/tools.js";
import ShowModalDiv from "@/showModal.jsx";
import moment from "moment";
import $ from "jquery/src/ajax";
import IntentionDetail from "../../NEW/intentionCustomer/intentionDetail/intentionDetail";
import { ChooseList } from "../../../order/orderNew/chooseList";
const { TabPane } = Tabs;
const { RangePicker } = DatePicker;
class CustomerFollow extends Component {
  constructor(props) {
    super(props);
    this.state = {
      nameSearch: '',
      provinceSearch: undefined,
      addressSearch: '',
      level: undefined,
      releaseDate: [],
      selectedRowKeys: [],
      sortType: 0,
      filteredInfo: null,
      sortedInfo: null,
      columns: [
        {
          title: "客户名称",
          dataIndex: "name",
          key: "name",
          render: text => {
            return (
              
                {text}
              
            )
          }
        },
        {
          title: "地区",
          dataIndex: "locationProvince",
          key: "locationProvince",
        },
        // {
        //     title: "联系人",
        //     dataIndex: "contacts",
        //     key: "contacts",
        // },
        // {
        //     title: "联系电话",
        //     dataIndex: "contactMobile",
        //     key: "contactMobile",
        // },
        {
          title: "社会性质",
          dataIndex: "societyTag",
          key: "societyTag",
          render: (text) => {
            return getSocialAttribute(text);
          },
        },
        {
          title: "客户初始时间",
          dataIndex: "transferTime",
          key: "transferTime",
        },
        // {
        //     title: "剩余私有天数",
        //     dataIndex: "surplusFollowTime",
        //     key: "surplusFollowTime",
        // },
        // {
        //     title: "剩余签单天数",
        //     dataIndex: "surplusSignTime",
        //     key: "surplusSignTime",
        // },
        {
          title: "最新跟进时间",
          dataIndex: "lastFollowTime",
          key: "lastFollowTime",
          //0无 1转换倒序 2转换正序
          sorter: true,
          sortOrder: (this.sortedInfo || {}).columnKey === 'lastFollowTime' && (this.sortedInfo || {}).order,
          filteredValue: (this.filteredInfo || {}).lastFollowTime || null,
        },
        {
          title: "客户等级",
          dataIndex: "level",
          key: "level",
          render: (text) => {
            if (text === 0) {
              return 一般客户;
            } else if (text === 1) {
              return 意向客户;
            } else if (text === 2) {
              return 重点客户;
            } else {
              return "";
            }
          },
        },
        {
          title: "跟进人",
          dataIndex: "aName",
          key: "aName",
        },
        {
          title: "跟进操作",
          dataIndex: "abc",
          key: "abc",
          render: (text, record, index) => {
            return (
              
                
              
            );
          },
        },
      ],
      provinces: [],
      dataSource: [],
      categoryArr: [],
      modalName: '',
      modalVisible: false,
      basicState: false,
      contactState: false,
      rowData: {},
      pagination: {
        defaultCurrent: 1,
        defaultPageSize: 10,
        showQuickJumper: true,
        pageSize: 10,
        onChange: function (page) {
          this.loadData(page);
        }.bind(this),
        showTotal: function (total) {
          return "共" + total + "条数据";
        },
      },
      loading: false,
      ispage: 1,
      guidance: '',
      tabsKey: '',
    };
    this.callback = this.callback.bind(this);
    this.loadData = this.loadData.bind(this);
    this.reset = this.reset.bind(this);
    this.tableRowClick = this.tableRowClick.bind(this);
    this.closeDesc = this.closeDesc.bind(this);
    this.releaseGuidance = this.releaseGuidance.bind(this);
    this.changeList = this.changeList.bind(this);
  }
  componentDidMount() {
    this.loadData();
    this.category();
    //城市
    let Province = [];
    provinceList.map(function (item) {
      let id = String(item.id);
      Province.push(
        
          {item.name}
        
      );
    });
    this.setState({
      provinces: Province
    })
  }
  callback() {
  }
  loadData(pageNo) {
    this.setState({
      loading: true,
    });
    let api = '/api/admin/customer/listFollowManagement';
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + api,
      data: {
        pageNo: pageNo || 1,
        pageSize: this.state.pagination.pageSize,
        level: this.state.level ? this.state.level : undefined,
        name: this.state.nameSearch,
        province: !this.state.addressSearch.length
          ? this.state.provinceSearch
          : this.state.addressSearch[0],
        city: !this.state.addressSearch.length
          ? ""
          : this.state.addressSearch[1],
        startDate: this.state.releaseDate[0],
        endDate: this.state.releaseDate[1],
        sortType: this.state.sortType,
      },
      success: function (data) {
        ShowModal(this);
        let theArr = [];
        if (data.error.length !== 0) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
        } else {
          for (let i = 0; i < data.data.list.length; i++) {
            let thisdata = data.data.list[i];
            let diqu =
              (thisdata.province == null ? "" : thisdata.province) +
              (thisdata.city == null ? "" : "-" + thisdata.city) +
              (thisdata.area == null ? "" : "-" + thisdata.area);
            thisdata.key = i;
            thisdata.id = thisdata.uid;
            thisdata.lastFollowTime = thisdata.lastFollowTime && thisdata.lastFollowTime.split(" ")[0];
            thisdata.transferTime = thisdata.transferTime && thisdata.transferTime.split(" ")[0];
            thisdata.surplusFollowTime = thisdata.surplusFollowTime && thisdata.surplusFollowTime.split(" ")[0];
            thisdata.surplusSignTime = thisdata.surplusSignTime && thisdata.surplusSignTime.split(" ")[0];
            thisdata.locationProvince = diqu;
            theArr.push(thisdata);
          }
          this.state.pagination.current = data.data.pageNo;
          this.state.pagination.total = data.data.totalCount;
          if (data.data && data.data.list && !data.data.list.length) {
            this.state.pagination.current = 0;
            this.state.pagination.total = 0;
          }
          this.setState({
            ispage: data.data.pageNo,
            dataSource: theArr,
            pagination: this.state.pagination,
          });
        }
      }.bind(this),
    }).always(
      function () {
        this.setState({
          loading: false,
        });
      }.bind(this)
    );
  };
  reset() {
    this.setState({
      nameSearch: '',
      provinceSearch: undefined,
      addressSearch: '',
      level: undefined,
      releaseDate: [],
      selectedRowKeys: [],
      sortType: 0,
      filteredInfo: null,
      sortedInfo: null,
    }, () => {
      this.loadData();
    });
  };
  //品类数据获取
  category() {
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/Varieties/getSuperList",
      data: {},
      success: function (data) {
        let thedata = data.data;
        let theArr = [];
        if (!thedata) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
        } else {
          thedata.map(function (item, index) {
            theArr.push({
              value: item.id,
              key: item.cname,
            });
          });
        }
        this.setState({
          categoryArr: theArr,
        });
      }.bind(this),
    });
  }
  tableRowClick(record) {      //key 控制弹窗初始显示第几级
    this.setState({
      selectedRowKeys: [],
      modalVisible: true,
      basicState: true,
      contactState: true,
      modalName: record.name,
      rowData: record,
    });
  };
  closeDesc(e, s) {
    this.setState({
      basicState: e,
      visitModul: e,
      modalVisible: e,
      showDesc: e,
      tabsKey: '',
    })
    if (s) {
      this.loadData(this.state.ispage);
    }
  }
  //发布指导意见
  releaseGuidance() {
    if (!this.state.guidance) {
      message.info('指导意见不能为空')
      return;
    }
    this.setState({
      loading: true,
    });
    let _this = this;
    $.ajax({
      method: "get",
      dataType: "json",
      crossDomain: false,
      url: globalConfig.context + "/api/admin/customer/pushReleaseUser",
      data: {
        guidance: this.state.guidance,
      },
      success: function (data) {
        let thedata = data.data;
        if (!thedata) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
        } else {
          message.success("发布成功");
          _this.loadData(this.state.ispage);
        }
      }.bind(this),
    }).always(
      function () {
        this.setState({
          loading: false,
        });
      }.bind(this)
    );
  }
  changeList(arr) {
    const newArr = [];
    this.state.columns.forEach(item => {
      arr.forEach(val => {
        if (val === item.title) {
          newArr.push(item);
        }
      });
    });
    this.setState({
      changeList: newArr
    });
  }
  render() {
    let { sortedInfo, filteredInfo, columns } = this.state;
    return (
      
         { this.setState({ showModal: false }) }} />
        
          指导意见
        
        
          
            
               {
                  this.setState({ nameSearch: e.target.value });
                }}
              />
              
              
                 {
                    this.setState({ addressSearch: e });
                  }}
                />
              
              
               {
                  this.setState({ releaseDate: dataString });
                }}
              />
              
              
            
          
          
            
              
            
          
        
        
          
             {
                //0 正序 1倒序
                if (sorter.order === 'ascend') {              //倒序
                  this.setState({
                    sortType: 1
                  }, () => {
                    this.loadData(pagination.current)
                  });
                } else if (sorter.order === 'descend') {      //正序
                  this.setState({
                    sortType: 0
                  }, () => {
                    this.loadData(pagination.current)
                  });
                } else if (typeof sorter.order === 'undefined') {       //正常
                  this.setState({
                    sortType: 0
                  }, () => {
                    this.loadData(pagination.current)
                  });
                }
                this.setState({
                  filteredInfo: filters,
                  sortedInfo: sorter,
                });
              }
              }
            />
          
        
        
         {
            this.setState({
              guidanceVisible: false,
              guidance: '',
            }, () => {
              this.loadData(this.state.ispage);
            })
          }}
          onCancel={() => {
            this.setState({
              guidanceVisible: false,
              guidance: '',
            }, () => {
              this.loadData(this.state.ispage);
            })
          }}
          footer=''
        >
          
            
               {
                  this.setState({
                    guidance: e.target.value,
                  })
                }}
              />
              
            
          
        
      
    )
  }
}
export default CustomerFollow;