import React from "react";
import {
  Button,
  Input,
  Select,
  Spin,
  Table,
  message,
  DatePicker,
  Form,
  Modal,
  Tabs, Tooltip,
} from "antd";
import $ from "jquery/src/ajax";
import moment from "moment";
import ShowModalDiv from "@/showModal.jsx";
import {
  getLiquidationStatus,
  getjiedian,
  getNewOrderStatus,
  getProjectStatus,
  ShowModal,
} from "@/tools.js";
import "./customer.less";
import {ChooseList} from "./chooseList";
import {getProjectName} from "../../../tools";
import DepartmentList from "../../../common/departmentList";
const ArrearsList = Form.create()(
  React.createClass({
    loadData(pageNo) {
      this.setState({
        visitModul: false,
        loading: true,
        ispage: pageNo,
        modalVisible: false,
      });
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/newOrder/arrearsDunList",
        data: {
          pageNo: pageNo || 1,
          pageSize: this.state.pagination.pageSize,
          name: this.state.customerName, //名称
          orderNo: this.state.orderNo, //订单编号
          contractNo: this.state.contractNo,
          depId: this.state.departmenttSearch, //订单部门
          starTime: this.state.releaseDate[0], //开始时间
          endTime: this.state.releaseDate[1], //结束时间
          tStarTime: this.state.chufaDate[0], //开始时间
          tEndTime: this.state.chufaDate[1], //结束时间
          adminName: this.state.adminName,
        },
        success: function (data) {
          ShowModal(this);
          let theArr = [];
          if (data.error.length || data.data.list == "") {
            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 obj = thisdata;
              obj.key = i + 1;
              theArr.push(obj);
            }
            this.state.pagination.total = data.data.totalCount;
            this.state.pagination.current = data.data.pageNo;
          }
          if (data.data && data.data.list && !data.data.list.length) {
            this.state.pagination.total = 0;
          }
          this.setState({
            dataSource: theArr,
            pageNo: pageNo,
            pagination: this.state.pagination,
            selectedRowKeys: [],
          });
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loading: false,
          });
        }.bind(this)
      );
    },
    getInitialState() {
      return {
        releaseDate: [],
        chufaDate: [],
        pagination: {
          defaultCurrent: 1,
          defaultPageSize: 10,
          showQuickJumper: true,
          pageSize: 10,
          modalVisible:false,
          onChange: function (page) {
            this.loadData(page);
          }.bind(this),
          showTotal: function (total) {
            return "共" + total + "条数据";
          },
        },
        columns: [
          {
            title: "序号",
            dataIndex: "key",
            key: "key",
          },
          {
            title: "合同编号",
            dataIndex: "contractNo",
            key: "contractNo",
          },
          {
            title: "订单编号",
            dataIndex: "orderNo",
            key: "orderNo",
          },
          {
            title: "客户名称",
            dataIndex: "userName",
            key: "userName",
            render: text => {
              return (
                  
                    {text}
                  
              )
            }
          },
          {
            title: "订单负责人",
            dataIndex: "salesmanName",
            key: "salesmanName",
          },
          {
            title: "订单部门",
            dataIndex: "depName",
            key: "depName",
          },
          {
            title: "订单状态",
            dataIndex: "orderStatus",
            key: "orderStatus",
            render: (text) => {
              return getNewOrderStatus(text);
            },
          },
          {
            title: "项目名称",
            dataIndex: "commodityName",
            key: "commodityName",
          },
          {
            title: "项目状态",
            dataIndex: "projectStatus",
            key: "projectStatus",
            render: (text) => {
              return getProjectName(text);
            },
          },
          {
            title: "签单金额(万元)",
            dataIndex: "totalAmount",
            key: "totalAmount",
          },
          {
            title: "已收款(万元)",
            dataIndex: "settlementAmount",
            key: "settlementAmount",
          },
          {
            title: "应收款(万元)",
            dataIndex: "orderReceivables",
            key: "orderReceivables",
          },
          {
            title: "欠款(万元)",
            dataIndex: "orderArrears",
            key: "orderArrears",
          },
          {
            title: "结算状态",
            dataIndex: "liquidationStatus",
            key: "liquidationStatus",
            render: (text) => {
              return getLiquidationStatus(text);
            },
          },
            {
              title: "催收科目",
              dataIndex: "type",
              key: "type",
                render: text => {
                  if(text == 0) {
                    return "按时触发应收欠款"
                  }
                }
            },
          {
            title: "催款状态",
            dataIndex: "dunStatus",
            key: "dunStatus",
            render: (text) => {
              if (text == 0) {
                return "未启动";
              } else if (text == 1) {
                return "催款中";
              } else if (text == 2) {
                return "已完成";
              } else if (text == 3) {
                return "已停止";
              }
            },
          },
          {
            title: "催款启动日期",
            dataIndex: "startDate",
            key: "startDate",
          },
          {
            title: "下单时间",
            dataIndex: "signDate",
            key: "signDate",
          },
          {
            title: "移交法务",
            dataIndex: "legalTimes",
            key: "legalTimes",
          },
        ],
        legalColumns:[
          {
            title: "序号",
            dataIndex: "key",
            key: "key",
            width: 45,
          },
          {
            title: "操作人名称",
            dataIndex: "adminName",
            key: "adminName",
            width: 80,
          },
          {
            title: "客户名称",
            dataIndex: "userName",
            key: "userName",
            width: 140,
          },
          {
            title: "法务时间",
            dataIndex: "operationDate",
            key: "operationDate",
            width: 140,
          },
          {
            title: "详细",
            dataIndex: "remarks",
            key: "remarks",
            width: 140,
          },
          {
            title: "法务类型",
            dataIndex: "type",
            key: "type",
            width: 140,
            render:(text,data) => {
              let status;
              if (data.status == 0) {
                status = "否";
              } else if (data.status == 1) {
                status = "已回款";
              } else if (data.status == 2) {
                status = "已诉讼";
              } else if (data.status == 3) {
                status = "已坏账处理";
              }
              //
              if (data.type == 0) {
                return "法务催收中";
              } else if (data.type == 1) {
                return "延期法务";
              } else if (data.type == 2) {
                return `已完成法务/${status}`;
              } else if (data.type == 3) {
                return "自动转交";
              } else if (data.type == 4) {
                return "营销转交";
              }
            }
          },
          {
            title: "操作时间",
            dataIndex: "createDate",
            key: "createDate",
            width: 140,
          },
        ],
        legalDataSource:[],
        legalPagination:{
          defaultCurrent: 1,
          defaultPageSize: 10,
          showQuickJumper: true,
          pageSize: 10,
          onChange: function (page) {
            this.linkList(page);
            this.setState({
              selectedRowKeys: [],
            });
          }.bind(this),
          showTotal: function (total) {
            return "共" + total + "条数据";
          },
        },
        dataSource: [],
      };
    },
    //页面加载函数
    componentWillMount() {
      this.loadData();
    },
    //搜索
    search() {
      this.setState({
        //signBillVisible:false
      });
      this.loadData();
    },
    //导出
    exportExec() {
      var data = {
        name: this.state.customerName ? this.state.customerName : undefined, //客户名称
        adminName: this.state.adminName ? this.state.adminName : undefined, //订单负责人
        orderNo: this.state.orderNo ? this.state.orderNo : undefined, //订单编号
        contractNo: this.state.contractNo ? this.state.contractNo : undefined,
        starTime: this.state.releaseDate[0]
          ? this.state.releaseDate[0]
          : undefined,
        endTime: this.state.releaseDate[1]
          ? this.state.releaseDate[1]
          : undefined,
        tStarTime: this.state.chufaDate[0]
          ? this.state.chufaDate[0]
          : undefined,
        tEndTime: this.state.chufaDate[1] ? this.state.chufaDate[1] : undefined,
        depId: this.state.departmenttSearch,
        pageSize: 9999999,
      };
      window.location.href =
        globalConfig.context +
        "/api/admin/newOrder/exportArrearsDunListData?" +
        $.param(data);
    },
    //重置
    reset() {
      this.state.orderNo = "";
      this.state.contractNo = '';
      this.state.customerName = "";
      this.state.adminName = "";
      this.state.departmenttSearch = undefined;
      this.state.releaseDate[0] = undefined;
      this.state.releaseDate[1] = undefined;
      this.state.chufaDate[1] = undefined;
      this.state.chufaDate[0] = undefined;
      this.loadData();
    },
    changeList(arr) {
      const newArr = [];
      this.state.columns.forEach(item => {
        arr.forEach(val => {
          if (val === item.title) {
            newArr.push(item);
          }
        });
      });
      this.setState({
        changeList: newArr
      });
    },
    viewLegal(){
      console.log(this.state.rowkey);
      if(this.state.recordt == undefined || this.state.recordt == [] || this.state.rowkey.length == 0  ) {
        message.info("请选择查看的单号")
        return
      }
      this.setState({
        modalVisible:true
      })
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/lagalAffairs/lagalAffairsLogList",
        data: {
          pageNo:  1,
          pageSize: 10,
          orderNo:this.state.recordt
        },
        success: function (data) {
          let theArr = []
          if (data.error.length) {
            this.setState({
              loadLegal: false,
            });
            message.warning(data.error[0].message);
          } else {
            for (let i = 0; i < data.data.length; i++) {
              let thisdata = data.data[i];
              let obj = thisdata;
              obj.key = i + 1;
              theArr.push(obj);
            }
            this.setState({
              legalDataSource: theArr,
              legalPagination: this.state.legalPagination
            });
            this.state.legalPagination.total = data.data.totalCount;
              this.state.legalPagination.current = data.data.pageNo;
            }
            if (data.data && data.data.list && !data.data.list.length) {
              this.state.legalPagination.total = 0;
            }  
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loadLegal: false,
          });
        }.bind(this)
      );
    },
    render() {
      const formItemLayout = {
        labelCol: { span: 8 },
        wrapperCol: { span: 14 },
      };
      const FormItem = Form.Item;
      const { RangePicker } = DatePicker;
      const rowSelection = {
        selectedRowKeys: this.state.selectedRowKeys,
        onChange: (selectedRowKeys, selectedRows) => {
          this.setState({
            modalVisible: false,
            selectedRows: selectedRows.slice(-1),
            selectedRowKeys: selectedRowKeys.slice(-1),
          },() =>{
            this.setState({
              rowkey:this.state.selectedRowKeys
            })
          });
         
        },
        onSelect: (recordt) => {
          this.setState({
            modalVisible: false,
            recordt: recordt.orderNo,
          });
        },
      };
      const { TabPane } = Tabs;
      return (
        
      );
    },
  })
);
export default ArrearsList;