import React from 'react';
import { Button, Input, Spin, Table, message,DatePicker, Tooltip, Form ,Modal,Col,Tabs, Tag} from 'antd';
import $ from 'jquery/src/ajax';
import Picture from '@/manageCenter/publicComponent/picture';
import ResolutionDetail from "@/resolutionDetail";
import moment from 'moment';
import {
  getLiquidationStatus,
  getApprovedState,
  getProcessStatus,
  splitUrl,
  getjiedian,
  getNewOrderStatus,
  getRefundStatus,
  getCuikuan,
  ShowModal
} from "@/tools.js";
import './customer.less';
import ShowModalDiv from "@/showModal.jsx";
import OrderRiZi from "@/orderRiZi.jsx";
import ImgList from "../../../common/imgList";
import {ChooseList} from "./chooseList";
import OrderItemStatus from "../../../common/orderItemStatus";
import EnterpriseNameChange from "../../../common/enterpriseNameChange";
import OrderDetail from './changeComponent/orderDetail';
const IntentionCustomer = 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/orderRefundList",
        data: {
          pageNo: pageNo || 1,
          pageSize: this.state.pagination.pageSize,
          name: this.state.customerName, //名称
          orderNo: this.state.orderNo, //订单编号
          starTime: this.state.releaseDate[0], //开始时间
          endTime: this.state.releaseDate[1], //结束时间
        },
        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];
              theArr.push({
                key: i,
                id: thisdata.id, //用户ID
                orderNo: thisdata.orderNo, //订单编号
                userName: thisdata.userName, //客户名称
                orderStatus: thisdata.orderStatus, //订单状态
                refundStatus: thisdata.refundStatus, //退单状态
                reason: thisdata.reason, //退单原因
                createDate: thisdata.createDate, //退单时间
                liquidationStatus: thisdata.liquidationStatus, //结算状态
              });
            }
            this.state.pagination.total = data.data.totalCount;
          }
          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 {
        orderNos:'',
        rotateDeg: 0,
        page: 1,
        resVisible: false,
        releaseDate: [],
        selectedRowKeys: [],
        orgCodeUrl: [],
        customerArr: [],
        applicationUrl: [],
        contractUrl: [],
        pagination: {
          defaultCurrent: 1,
          defaultPageSize: 10,
          showQuickJumper: true,
          pageSize: 10,
          onChange: function (page) {
            this.loadData(page);
          }.bind(this),
          showTotal: function (total) {
            return "共" + total + "条数据";
          },
        },
        columns: [
          {
            title: "退单编号",
            dataIndex: "id",
            key: "id",
          },
          {
            title: "退单日期",
            dataIndex: "createDate",
            key: "createDate",
          },
          {
            title: "客户名称",
            dataIndex: "userName",
            key: "userName",
            render: (text) => {
              return (
                  
                    {text}
                  
              );
            },
          },
          {
            title: "订单编号",
            dataIndex: "orderNo",
            key: "orderNo",
          },
          {
            title: "订单状态",
            dataIndex: "orderStatus",
            key: "orderStatus",
            render: (text) => {
              return getNewOrderStatus(text);
            },
          },
          {
            title: "结算状态",
            dataIndex: "liquidationStatus",
            key: "liquidationStatus",
            render: (text) => {
              return getLiquidationStatus(text);
            },
          },
          {
            title: "退单状态",
            dataIndex: "refundStatus",
            key: "refundStatus",
            render: (text) => {
              return getRefundStatus(text);
            },
          },
          {
            title: "退单原因",
            dataIndex: "reason",
            key: "reason",
            render: (text) => {
              return text && text.length > 18
                ? text.substr(0, 18) + "..."
                : text;
            },
          },
          {
            title: "操作",
            dataIndex: "abc",
            key: "abc",
            render: (text, record) => {
              return (
                
                  
                
              );
            },
          },
        ],
        data: [],
        dataSource: [],
        columnsX: [
          {
            title: "业务项目名称",
            dataIndex: "commodityName",
            key: "commodityName",
            render: (text, record) => {
              return text + "-" + record.id
            }
          },
          {
            title: "项目类别",
            dataIndex: "cname",
            key: "cname",
          },
          {
            title: "项目数量",
            dataIndex: "commodityQuantity",
            key: "commodityQuantity",
            render: (text, record) => {
              if (record.splitStatus == 1) {
                return (
                  
                    {text}{" "}
                     {
                        e.stopPropagation();
                        this.showRes(record);
                      }}
                    >
                      已拆
                    
                  
                );
              } else {
                return text;
              }
            },
          },
          {
            title: "金额(万元)",
            dataIndex: "commodityPrice",
            key: "commodityPrice",
          },
          {
            title: "负责人",
            dataIndex: "contacts",
            key: "contacts",
          },
          {
            title: "负责人电话",
            dataIndex: "contactsMobile",
            key: "contactsMobile",
          },
          {
            title: "主要项目",
            dataIndex: "main",
            key: "main",
            render: (text) => {
              return text ? "是" : "否";
            },
          },
          {
            title: "项目说明",
            dataIndex: "taskComment",
            key: "taskComment",
            render: (text) => {
              return text && text.length > 8 ? text.substr(0, 8) + "…" : text;
            },
          },
        ],
        columnsrizhi: [
          {
            title: "流程",
            dataIndex: "processName",
            key: "processName",
          },
          {
            title: "操作人",
            dataIndex: "adminName",
            key: "adminName",
          },
          {
            title: "时间",
            dataIndex: "createDate",
            key: "createDate",
          },
        ],
        dataSourceX: [],
        ContactsListsNew: [
          {
            title: "项目名称",
            dataIndex: "commodityName",
            key: "commodityName",
            render: (text, record) => {
              return {text + "-" + record.tid};
            },
          },
          {
            title: "项目分类",
            dataIndex: "projectType",
            key: "projectType",
            render: (text) => {
              let arr = this.state.dataSourceX || [];
              let str = "";
              for (let i = 0; i < arr.length; i++) {
                if (this.state.dataSourceX[i].sort == text) {
                  str = this.state.dataSourceX[i].cname;
                  return {str};
                }
              }
            },
          },
          {
            title: "催款科目",
            dataIndex: "dunTypeName",
            key: "dunTypeName",
            render: (text) => {
              if(record.customizeName) {
                return text + record.customizeName;
              }
              return {text};
            },
          },
          {
            title: "时间(天)",
            dataIndex: "waitDay",
            key: "waitDay",
            render: (text, record) => {
              if (record.dunTypeName) {
                if (record.customizeTimes) {
                  return record.customizeTimes;
                }
                return {text};
              }
            },
          },
          {
            title: "金额(万元)",
            dataIndex: "money",
            key: "money",
            render: (text, record) => {
              if (record.dunTypeName) {
                if (record.appropriationRatio) {
                  return {record.appropriationRatio}(拨款比例);
                } else {
                  return {text};
                }
              }
            },
          },
          {
            title: "服务年限",
            dataIndex: "startDate",
            key: "startDate",
            render: (text, record) => {
              if (record.dunTypeName) {
                return {text};
              }
            },
          },
          {
            title: "催款状态",
            dataIndex: "status",
            key: "status",
            render: (text) => {
              return {text == 1 ? "已启动" : "未启动"};
            },
          },
        ],
        ContactsLists: [
          {
            title: "催款科目",
            dataIndex: "dunSubject",
            key: "dunSubject",
            render: (text) => {
              return getjiedian(text);
            },
          },
          {
            title: "金额(万元)",
            dataIndex: "money",
            key: "money",
          },
          {
            title: "催款状态",
            dataIndex: "dunStatus",
            key: "dunStatus",
            render: (text) => {
              return getCuikuan(text);
            },
          },
        ],
      };
    },
    //进入新增拜访记录
    visit(record) {
      this.setState({
        addnextVisible: true,
      });
      this.tuidanxiangqing(record.id);
    },
    //退单详情
    tuidanxiangqing(id) {
      this.setState({
        loading: true,
      });
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/newOrder/orderRefundDetail",
        data: {
          id: id,
        },
      }).done(
        function (data) {
          if (data.error.length || data.data.list == "") {
            if (data.error && data.error.length) {
              message.warning(data.error[0].message);
            }
          } else {
            let thisdata = data.data;
            this.setState({
              id: thisdata.id,
              createDate: thisdata.createDate, //退单时间
              orderNo: thisdata.orderNo, //订单编号
              orderStatus: thisdata.orderStatus, //订单状态
              refundStatus: thisdata.refundStatus, //退单状态
              applicationUrl: thisdata.applicationUrl
                ? splitUrl(
                    thisdata.applicationUrl,
                    ",",
                    globalConfig.avatarHost + "/upload"
                  )
                : [], //申请表附件
              contractUrl: thisdata.contractUrl
                ? splitUrl(
                    thisdata.contractUrl,
                    ",",
                    globalConfig.avatarHost + "/upload"
                  )
                : [], //合同附件
              reason: thisdata.reason, //退单原因
              liquidationStatus: thisdata.liquidationStatus, //结算状态
            });
            this.setState({
              loading: false,
            });
          }
        }.bind(this)
      );
    },
    // 拆分详细
    showRes(record) {
      this.setState({
        resVisible: true,
        resRecord: record,
      });
    },
    resCancel() {
      this.setState({
        resVisible: false,
      });
    },
    //点击确认退单
    tuidanOk() {
      let contractUrls = [];
      let applicationUrls = [];
      if (this.state.contractUrl.length) {
        let picArr = [];
        this.state.contractUrl.map(function (item) {
          if (
            item.response &&
            item.response.data &&
            item.response.data.length
          ) {
            picArr.push(item.response.data);
          }
        });
        contractUrls = picArr.join(",");
      }
      if (this.state.applicationUrl.length) {
        let picArr = [];
        this.state.applicationUrl.map(function (item) {
          if (
            item.response &&
            item.response.data &&
            item.response.data.length
          ) {
            picArr.push(item.response.data);
          }
        });
        applicationUrls = picArr.join(",");
      }
      $.ajax({
        method: "POST",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/newOrder/updateOrderRefund",
        data: {
          id: this.state.id, //订单编号
          contractUrl: contractUrls.length ? contractUrls : "", //终止合同
          applicationUrl: applicationUrls.length ? applicationUrls : "", //退单申请表
          reason: this.state.reason, //退单原因
        },
      }).done(
        function (data) {
          this.setState({
            loading: false,
          });
          if (!data.error.length) {
            message.success("退单成功!");
            this.nextCancel();
            this.handleCancel();
          } else {
            message.warning(data.error[0].message);
          }
        }.bind(this)
      );
    },
    //页面加载函数
    componentWillMount() {
      this.loadData();
    },
    //整行点击
    tableRowClick(record) {
      this.setState({
        visible: true,
        orderNos:record.orderNo
      });
      this.xiangqing(record.orderNo);
      this.xiangmu(record.orderNo);
      this.jiedian(record.orderNo);
      this.jiedianNew(record.orderNo);
    },
    rizhi() {
      console.log(this.state.orderNo);
      this.setState({
        loading: true,
      });
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: "/api/admin/newOrder/selectOrderLog",
        data: {
          orderNo: this.state.orderNo,
        },
        success: function (data) {
          let theArr = [];
          let thisData = data.data;
          if (!thisData.length) {
            if (data.error && data.error.length) {
              message.warning(data.error[0].message);
            }
            thisData = {};
          } else {
            for (let i = 0; i < data.data.length; i++) {
              let thisdata = data.data[i];
              theArr.push({
                processName: thisdata.processName,
                adminName: thisdata.adminName,
                createDate: thisdata.createDate,
                remarks: thisdata.remarks,
              });
            }
          }
          this.setState({
            dataSourcerizhi: theArr,
          });
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loading: false,
          });
        }.bind(this)
      );
    },
    //查看订单日志
    getOrderLog() {
      this.setState({
        rizhivisible: true,
      });
      this.rizhi();
    },
    closeOrderLog() {
      this.setState({
        rizhivisible: false,
      });
    },
    //详情关闭
    nextCancel() {
      this.setState({
        addnextVisible: false,
      });
      this.resets();
    },
    //订单详情
    xiangqing(orderNos) {
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
        data: {
          orderNo: orderNos,
        },
        success: function (data) {
          if (data.error.length || data.data.list == "") {
            if (data.error && data.error.length) {
              message.warning(data.error[0].message);
            }
          } else {
            let thisdata = data.data;
            this.setState({
              orderUid: thisdata.uid,
              id: thisdata.id,
              kehuId: thisdata.buyerId,
              orderNo: thisdata.orderNo, //订单编号
              contractNo: thisdata.contractNo, //合同编号
              userName: thisdata.userName, //客户名称
              signDate: thisdata.signDate, //签单时间
              processStatus: thisdata.processStatus, //流程状态
              liquidationStatus: thisdata.liquidationStatus, //结算状态
              contacts: thisdata.contacts, //企业联系人
              contactMobile: thisdata.contactMobile, //联系人电话
              legalPerson: thisdata.legalPerson, //法人
              legalPersonTel: thisdata.legalPersonTel, //法人电话
              firstAmount: thisdata.firstAmount, //签单金额
              totalAmount: thisdata.totalAmount, //首付金额
              settlementAmount: thisdata.settlementAmount, //已收款项
              orderRemarks: thisdata.orderRemarks, //订单留言
              orgCodeUrl: thisdata.contractPictureUrl
                ? splitUrl(
                    thisdata.contractPictureUrl,
                    ",",
                    globalConfig.avatarHost + "/upload"
                  )
                : [], //图片地址
              replenishUrl: thisdata.agreementUrl
                ? splitUrl(
                    thisdata.agreementUrl,
                    ",",
                    globalConfig.avatarHost + "/upload"
                  )
                : [],
              salesmanName: thisdata.salesmanName, //营销员名称
              salesmanMobile: thisdata.salesmanMobile, //营销员电话
              oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
              oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
              financeName: thisdata.financeName, //财务名称
              financeMobile: thisdata.financeMobile, //财务电话
              nowFinance: thisdata.nowFinance, //财务名称
              nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
              approval: thisdata.approval.toString(), //特批状态
              //approval:thisdata.approval==0?thisdata.approval.toString():thisdata.approval,//特批状态
              deleteSign:thisdata.deleteSign,
            });
          }
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loading: false,
          });
        }.bind(this)
      );
    },
    //项目列表
    xiangmu(orderNos) {
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/newOrder/getOrderTask",
        data: {
          orderNo: orderNos,
        },
        success: function (data) {
          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.length; i++) {
              let thisdata = data.data[i];
              thisdata.key = i;
              thisdata.sort = thisdata.cSort;
              theArr.push(thisdata);
            }
          }
          this.setState({
            dataSourceX: theArr,
            paginations: false,
          });
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loading: false,
          });
        }.bind(this)
      );
    },
    //节点列表
    jiedian(orderNos) {
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
        data: {
          orderNo: orderNos,
        },
        success: function (data) {
          let theArr = [];
          let thisData = [];
          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.length; i++) {
              thisData = data.data[i];
              theArr.push({
                key: i,
                dunSubject: thisData.dunSubject
                  ? thisData.dunSubject.toString()
                  : "", //催款科目
                id: thisData.id, //节点Id
                money: thisData.money, //催款金额
                dunStatus: thisData.dunStatus, //催款状态
                orderNo: thisData.orderNo,
              });
            }
            this.setState({
              contactList: theArr,
            });
          }
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loading: false,
          });
        }.bind(this)
      );
    },
    //查看催款节点
    jiedianNew(orderNos) {
      $.ajax({
        method: "get",
        dataType: "json",
        crossDomain: false,
        url:
          globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun",
        data: {
          orderNo: orderNos,
        },
        success: function (data) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          } else {
            let theArr = [];
            let thisData = [];
            let arr = data.data || [];
            let totalCui = 0;
            for (let i = 0; i < arr.length; i++) {
              thisData = arr[i];
              totalCui += +thisData.money;
              theArr.push({
                key: i,
                dunSubject: thisData.dunSubject
                  ? thisData.dunSubject.toString()
                  : "", //催款科目
                id: thisData.id, //节点Id
                money: thisData.money, //催款金额
                // orderNo: record ? record.orderNo : this.props.datauser.orderNo,
                commodityName: thisData.commodityName,
                projectType: thisData.projectType,
                dunTypeName: thisData.dunTypeName,
                status: thisData.status,
                waitDay: thisData.waitDay,
                effectiveCount: thisData.effectiveCount,
                startDate: thisData.startDate,
                dunType: thisData.dunType,
                appropriationRatio: thisData.appropriationRatio,
                customizeTimes: thisData.customizeTimes,
                customizeName: thisData.customizeName,
                tid: thisData.tid,
              });
            }
            if (!totalCui) {
              totalCui = 0;
            }
            totalCui = (Math.round(totalCui * 1000000) / 1000000).toFixed(6);
            this.setState({
              contactListNew: theArr,
              totalCui,
            });
          }
        }.bind(this),
      }).always(
        function () {
          this.setState({
            loading: false,
          });
        }.bind(this)
      );
    },
    downImg() {
      let num = 0;
      for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
        if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
          num = i;
        }
      }
      if (num == this.state.orgCodeUrl.length - 1) {
        return message.warning("已经是最后一张了哦");
      }
      this.state.previewImage = this.state.orgCodeUrl[num + 1].url;
      this.setState({
        previewImage: this.state.previewImage,
        rotateDeg: 0,
      });
    },
    upImg() {
      let num = 0;
      for (let i = 0; i < this.state.orgCodeUrl.length; i++) {
        if (this.state.orgCodeUrl[i].url == this.state.previewImage) {
          num = i;
        }
      }
      if (num == 0) {
        return message.warning("已经是第一张了哦");
      }
      this.state.previewImage = this.state.orgCodeUrl[num - 1].url;
      this.setState({
        previewImage: this.state.previewImage,
        rotateDeg: 0,
      });
    },
    rotate() {
      let rotateDeg = this.state.rotateDeg + 90;
      this.setState({
        rotateDeg,
      });
    },
    downImgs() {
      let num = 0;
      for (let i = 0; i < this.state.replenishUrl.length; i++) {
        if (this.state.replenishUrl[i].url == this.state.previewImage) {
          num = i;
        }
      }
      if (num == this.state.replenishUrl.length - 1) {
        return message.warning("已经是最后一张了哦");
      }
      this.state.previewImage = this.state.replenishUrl[num + 1].url;
      this.setState({
        previewImage: this.state.previewImage,
        rotateDeg: 0,
      });
    },
    upImgs() {
      let num = 0;
      for (let i = 0; i < this.state.replenishUrl.length; i++) {
        if (this.state.replenishUrl[i].url == this.state.previewImage) {
          num = i;
        }
      }
      if (num == 0) {
        return message.warning("已经是第一张了哦");
      }
      this.state.previewImage = this.state.replenishUrl[num - 1].url;
      this.setState({
        previewImage: this.state.previewImage,
        rotateDeg: 0,
      });
    },
    rotates() {
      let rotateDeg = this.state.rotateDeg + 90;
      this.setState({
        rotateDeg,
      });
    },
    resets() {
      this.state.orderNo = "";
      this.state.customerName = "";
      this.state.releaseDate[0] = undefined;
      this.state.releaseDate[1] = undefined;
    },
    reset() {
      this.state.orderNo = "";
      this.state.customerName = "";
      this.state.releaseDate[0] = undefined;
      this.state.releaseDate[1] = undefined;
      this.loadData();
    },
    //搜索
    search() {
      this.setState({
        //signBillVisible:false
      });
      this.loadData();
    },
    getOrgCodeUrl(e) {
      this.setState({ orgCodeUrl: e });
    },
    getReplenishUrl(e) {
      this.setState({ replenishUrl: e });
    },
    //关闭详情
    visitCancel() {
      this.setState({
        visible: false,
      });
      this.resets();
    },
    visitOk() {
      this.setState({
        visible: false,
      });
      this.resets();
    },
    changeList(arr) {
      const newArr = [];
      this.state.columns.forEach(item => {
        arr.forEach(val => {
          if (val === item.title) {
            newArr.push(item);
          }
        });
      });
      this.setState({
        changeList: newArr
      });
    },
    render() {
      const formItemLayout = {
        labelCol: { span: 8 },
        wrapperCol: { span: 14 },
      };
      const FormItem = Form.Item;
      const { RangePicker } = DatePicker;
      const cuiDataList = this.state.contactList || [];
      const rowSelection = {
        selectedRowKeys: this.state.selectedRowKeys,
        onChange: (selectedRowKeys, selectedRows) => {
          this.setState({
            modalVisible: false,
            selectedRows: selectedRows.slice(-1),
            selectedRowKeys: selectedRowKeys.slice(-1),
          });
        },
        onSelect: (recordt) => {
          this.setState({
            modalVisible: false,
            recordt: recordt.id,
          });
        },
      };
      const { TabPane } = Tabs;
      return (
        
          {this.state.resVisible ? (
            
          ) : (
            ""
          )}
          
          
            退单管理
          
          
            
              
                 {
                    this.setState({ customerName: e.target.value });
                  }}
                />
                 {
                    this.setState({ orderNo: e.target.value });
                  }}
                />
                下单时间 :
                 {
                    this.setState({ releaseDate: dataString });
                  }}
                />
                
                
              
              
                
                  
                
              
            
            
            {this.state.visible ? 
              
             : 
}
            {this.state.addnextVisible ? 
              
             : 
}