import React from 'react';
import { Radio, Icon, Button, AutoComplete,Cascader,Input, Select, Spin, Popconfirm, Table, Switch, message,Calendar , DatePicker, Upload, Form ,Modal,Tabs,Card ,Col} from 'antd';
import ajax from 'jquery/src/ajax/xhr.js';
import $ from 'jquery/src/ajax';
import Jquery from 'jquery/dist/jquery.js';
import Picture from '@/manageCenter/publicComponent/picture';
import moment from 'moment';
import {boutique ,tepi,jiedian} from '@/dataDic.js';
import { getLiquidationStatus,getApprovedState,getProcessStatus,splitUrl,getjiedian,getboutique,getNewOrderStatus,getRefundStatus} from '@/tools.js';
import './customer.less';
const TabPane = Tabs.TabPane;
const Dragger = Upload.Dragger;
//图片组件
const PicturesWall = React.createClass({
	getInitialState() {
		return {
			previewVisible: false,
			previewImage: '',
			fileList: [],
		}
	},
	handleCancel() {
		this.setState({
			previewVisible: false
		})
	},
	handlePreview(file) {
		this.setState({
			previewImage: file.url || file.thumbUrl,
			previewVisible: true,
		});
	},
	handleChange(info) {
		let fileList = info.fileList;
		this.setState({
			fileList
		});
		this.props.fileList(fileList);
	},
	componentWillReceiveProps(nextProps) {
		this.state.fileList = nextProps.pictureUrl;
		this.state.pojectApplicationUrl = undefined;
	},
	render() {
		const {
			previewVisible,
			previewImage,
			fileList
		} = this.state;
		const uploadButton = (
			
		);
		return(
			
                
                    {fileList.length >= 1 ? null : uploadButton}
                
                
                    
                
             
		);
	}
});
const IntentionCustomer = Form.create()(React.createClass({
	loadData(pageNo, apiUrl) {
		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.name,//名称
				orderNo: this.state.orderNo,//订单编号
				starTime: this.state.releaseDate[0],//开始时间
				endTime: this.state.releaseDate[1],//结束时间
			},
			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.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);
						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 {
			page:1,
			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&&text.length>9?text.substr(0,9)+'...':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, index) => {
						return 
                            
                        
					}
				}
			],
			data: [],
			dataSource: [],
			columnsX: [
				{
                    title: '业务项目名称',
                    dataIndex: 'commodityName',
                    key: 'commodityName'
                }, {
                    title: '项目类别',
                    dataIndex: 'cname',
                    key: 'cname',
                    
                },{
                    title: '项目数量',
                    dataIndex: 'commodityQuantity',
                    key: 'commodityQuantity'
                }, {
                    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)
					}
                }
			],
			dataSourceX: [],
			ContactsLists: [{
					title: '催款科目',
					dataIndex: 'dunSubject',
					key: 'dunSubject',
					render: text=>{return getjiedian(text)}
				},{
					title: '金额(万)',
					dataIndex: 'money',
					key: 'money',
				}, {
					title: '催款状态',
					dataIndex: 'dunStatus',
					key: 'dunStatus',
					render: (text) => {
						return 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) {
            let theArr = [];
				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));
    },
    //点击确认退单
	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, index) {
		this.setState({
			visible:true,
		});
		this.xiangqing(record.orderNo);
		this.xiangmu(record.orderNo);
		this.jiedian(record.orderNo);
	},	
	
    //详情关闭
    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) {
				let theArr = [];
				
				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,
						 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') : [],//图片地址
	                     salesmanName:thisdata.salesmanName,//营销员名称
	                     salesmanMobile:thisdata.salesmanMobile,//营销员电话
	                     financeName:thisdata.financeName,//财务名称
	                     financeMobile:thisdata.financeMobile,//财务电话
	                     approval:thisdata.approval.toString(),//特批状态
	                     //approval:thisdata.approval==0?thisdata.approval.toString():thisdata.approval,//特批状态
					})
				};
				
			}.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];
                        theArr.push({
                             key: i,
                             id:thisdata.id,
                             orderNo:thisdata.orderNo,//订单编号
                              commodityId:thisdata.commodityId,//项目ID
                             commodityName:thisdata.commodityName,//项目名称
                             cname:thisdata.cname,//项目类别
                             commodityPrice:thisdata.commodityPrice,//项目价格
                             commodityQuantity:thisdata.commodityQuantity,//项目数量
                             main:thisdata.main,//是否为主要任务
                             taskComment:thisdata.taskComment,//任务说明
                             contacts:thisdata.contacts,//联系人
                             contactsMobile:thisdata.contactsMobile,//联系人电话
                        });
                    };
				};
				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));
	},
	
	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 });
    },
	//关闭详情
	visitCancel(e){
		this.setState({
			visible:false
		})
		this.resets();
	},
	visitOk(e){
		this.setState({
			visible:false
		})
		this.resets();
	},
	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)
				});
			},
			onSelect: (recordt, selected, selectedRows) => {
				this.setState({
					modalVisible:false,
					recordt: recordt.id
				})
			},
		};
		const dataSources=this.state.customerArr || [];
		const options = this.state.states?dataSources.map((group,index) =>
				      {group.name}
				     ):dataSources.map((group,index) =>
				      {group.bname}
				     )
		const hasSelected = this.state.selectedRowKeys.length > 0;
		return(
			
			);
	}
}));
export default IntentionCustomer;