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 moment from 'moment';
import {boutique } from '@/dataDic.js';
import { getLiquidationStatus,getApprovedState,getProcessStatus,splitUrl,getjiedian,getboutique,getNewOrderStatus,getProjectStatus} 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/dunOrderNewList",
			data: {
				pageNo: pageNo || 1,
				pageSize: this.state.pagination.pageSize,
				name: this.state.customerName,//名称
				orderNo: this.state.orderNo,//订单编号
				depId: this.state.departmenttSearch,//订单部门
				adminName:this.state.adminName,//责任人名称
				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];
						theArr.push({
							 key: i,
							 id:thisdata.id,//ID
							 orderNo: thisdata.orderNo,//订单编号
	                         totalAmount:thisdata.totalAmount,//签单金额
	                         settlementAmount:thisdata.settlementAmount,//已收款
	                         accountsReceivable:thisdata.accountsReceivable,//应收款
	                         uncollectedAmount:thisdata.uncollectedAmount,//应收款
	                         orderStatus:thisdata.orderStatus,//订单状态
	                         projectStatus:thisdata.projectStatus,//项目状态
	                         liquidationStatus:thisdata.liquidationStatus,//结算状态
	                         signDate:thisdata.signDate,//签单时间
	                          userName:thisdata.userName,//客户名称
	                         salesmanName:thisdata.salesmanName,//营销员名称
	                         dunSubject:thisdata.dunSubject,//催收科目
	                         startDate:thisdata.startDate,//催收启动时间
	                         depName:thisdata.depName,//部门名称
	                        
						});
					};
				    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));
	},
	loadDatas(dunId) {
		this.setState({
			loading: true,
		});
		$.ajax({
			method: "get",
			dataType: "json",
			crossDomain: false,
			url: globalConfig.context +"/api/admin/newOrder/selectDunLogList",
			data: {
				dunId:dunId,
			},
			success: function(data) {
				let theArr = [];
				if(data.error.length || data.data == "") {
					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,//ID
							 dunId: thisdata.dunId,//催款ID
	                         dumBy:thisdata.dumBy,//催款人
	                         dumTime:thisdata.dumDate,//催款时间
	                         remarks:thisdata.remarks,//备注
						});
					};
				};
				this.setState({
					dataSources: theArr,
				});
			}.bind(this),
		}).always(function() {
			this.setState({
				loading: false
			});
		}.bind(this));
	},
	getInitialState() {
		return {
			page:1,
			releaseDate: [],
			selectedRowKeys: [],
			orgCodeUrl:[],
			departmentArr: [],
			paginations:false,
			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: 'orderNo',
                    key: 'orderNo'
                }, {
                    title: '签单时间',
                    dataIndex: 'signDate',
                    key: 'signDate'
                },{
                    title: '客户名称',
                    dataIndex: 'userName',
                    key: 'userName',
                    render:(text)=>{
                    	return (text&&text.length>9?text.substr(0,9)+'...':text)
                    }
                },{
                    title: '订单状态',
                    dataIndex: 'orderStatus',
                    key: 'orderStatus',
                    render:text=>{return getNewOrderStatus(text)}
                }, {
                    title: '签单金额(万元)',
                    dataIndex: 'totalAmount',
                    key: 'totalAmount'
                },{
                    title: '项目状态',
                    dataIndex: 'projectStatus',
                    key: 'projectStatus',
                    render:text=>{return getProjectStatus(text)}
                },{
                    title: '结算状态',
                    dataIndex: 'liquidationStatus',
                    key: 'liquidationStatus',
                    render:text=>{return getLiquidationStatus(text)}
                }, {
                    title: '应收款(万)',
                    dataIndex: 'accountsReceivable',
                    key: 'accountsReceivable'
                }, {
                    title: '已收款(万)',
                    dataIndex: 'settlementAmount',
                    key: 'settlementAmount'
                }, {
                    title: '未收款(万)',
                    dataIndex: 'uncollectedAmount',
                    key: 'uncollectedAmount'
                },{
                    title: '订单负责人',
                    dataIndex: 'salesmanName',
                    key: 'salesmanName'
                },{
                    title: '订单部门',
                    dataIndex: 'depName',
                    key: 'depName'
                },{
                    title: '催收科目',
                    dataIndex: 'dunSubject',
                    key: 'dunSubject',
                    render: text=>{return getjiedian(text)}
                },{
                    title: '催款启动日期',
                    dataIndex: 'startDate',
                    key: 'startDate'
                }, {
					title: '催收操作',
					dataIndex: 'abc',
					key: 'abc',
					render: (text, record, index) => {
						return 
                                                        							    
                        
					}
				}
			],
			data: [],
			dataSource: [],
			columnsX: [
				{
                    title: '催款人',
                    dataIndex: 'dumBy',
                    key: 'dumBy'
                }, {
                    title: '催款时间',
                    dataIndex: 'dumTime',
                    key: 'dumTime',
                    
                },{
                    title: '催款情况',
                    dataIndex: 'remarks',
                    key: 'remarks'
                }
			],
			dataSources: [],
			
		}
	},
	
	//页面加载函数
	componentWillMount() {
		this.departmentList();
		this.loadData();
	},
	//进入新增拜访记录
	visit(record) {
		this.setState({
			visible:true,
			dunId:record.id
		})
	},
//	//整行点击
	tableRowClick(record, index) {
		this.setState({
			visibles:true,
		});
		this.loadDatas(record.id);
	},	
	
    
	
	//新增催款记录
	examOk(){
		$.ajax({
			method: "post",
			dataType: "json",
			crossDomain: false,
			url: globalConfig.context +"/api/admin/newOrder/createDunLog",
			data: {
				dunId:this.state.dunId,
				dumTime:this.state.dumTime,
				remarks:this.state.remarks,
			},
			success: function(data) {
				if(data.error.length || data.data.list == "") {
					if(data.error && data.error.length) {
						message.warning(data.error[0].message);
					};
				} else {
					message.success("新增催款记录成功~");
					this.setState({
						visible:false,
					});
					this.loadData();
					this.resets();
				};
				
			}.bind(this),
		}).always(function() {
			this.setState({
				loading: false
			});
		}.bind(this));
	},
	
	
	//关闭输入理由框
	noCancel(){
		this.setState({
			noVisible:false
		})
	},
	//搜索
	search() {
    	this.setState({
    		//signBillVisible:false
    	})
        this.loadData();
    },
    //重置
    reset() {
    	this.setState({
    		signBillVisible:false
    	})
    	this.state.orderNo='';
    	this.state.customerName='';
    	this.state.adminName='';
    	this.state.departmenttSearch=undefined;
    	this.state.releaseDate[0] = undefined;
		this.state.releaseDate[1] = undefined;
        this.loadData();       
    },
    resets(){
    	this.state.orderNo='';
    	this.state.customerName='';
    	this.state.adminName='';
    	this.state.departmenttSearch=undefined;
    	this.state.releaseDate[0] = undefined;
		this.state.releaseDate[1] = undefined;
    },
	getOrgCodeUrl(e) {
        this.setState({ orgCodeUrl: e });
    },
	//关闭详情
	visitCancel(e){
		this.setState({
			visible:false
		})
		this.resets();
	},
	visitOk(e){
		this.setState({
			visible:false
		})
		this.resets();
	},
	//关闭详情
	visitCancels(e){
		this.setState({
			visibles:false
		})
		this.resets();
	},
	//导出
    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,//订单编号
            starTime: this.state.releaseDate[0]?this.state.releaseDate[0]:undefined,
            endTime: this.state.releaseDate[1]?this.state.releaseDate[1]:undefined,
        }
        window.location.href=(globalConfig.context+'/api/admin/newOrder/exportOrderDunData?'+$.param(data));
    },
	visitOks(e){
		this.setState({
			visibles:false
		})
		this.resets();
	},
	 //部门
	departmentList() {
		this.setState({
			loading: true
		});
		$.ajax({
			method: "get",
			dataType: "json",
			crossDomain: false,
			url: globalConfig.context + "/api/admin/organization/selectSuperId",
			data: {
			},
			success: function(data) {
				let thedata = data.data;
				let theArr = [];
				if(!thedata) {
					if(data.error && data.error.length) {
						message.warning(data.error[0].message);
					};
					thedata = {};
				} else {
					thedata.map(function(item, index) {
						theArr.push({
							key: index,
							name: item.name,
							id: item.id,
						})
					})
				}
				this.setState({
					departmentArr: theArr,
				})
			}.bind(this),
		}).always(function() {
			this.setState({
				loading: 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)
				});
			},
			onSelect: (recordt, selected, selectedRows) => {
				this.setState({
					modalVisible:false,
					recordt: recordt.id
				})
			},
		};
		let departmentArr = this.state.departmentArr || [];
		const hasSelected = this.state.selectedRowKeys.length > 0;
		return(
			
			);
	}
}));
export default IntentionCustomer;