import React from 'react';
import ReactDom from 'react-dom';
import ajax from 'jquery/src/ajax/xhr.js';
import $ from 'jquery/src/ajax';
import moment from 'moment';
import '../content.less';
import { Form,Radio, Icon, Button, Input, Select, Spin, Table, Switch, message, DatePicker, Modal, Upload,Popconfirm,TimePicker } from 'antd';
import {categoryState} from '../../../dataDic.js';
import {getCategoryState,splitUrl} from '../../../tools.js';
//图片组件
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; 
    },
    render() {
        const { previewVisible, previewImage, fileList } = this.state;
        const uploadButton = (
            
        );
        return (
            
                
                    {fileList.length >= 1 ? null : uploadButton}
                
                
                     
                
             
        );
    }
});
const BusinessCategory=Form.create()(React.createClass({
	//搜索功能和初始列表加载
	loadData(pageNo, apiUrl) {
        this.state.data = [];
        this.setState({
            loading: true,
            ispage:pageNo,
        });
        let nameText=this.state.SuperArr;
		let superText=(this.state.superId)?nameText[parseInt(this.state.superId)].id:"";
        $.ajax({
            method: "post",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + '/api/admin/Varieties/vtList',
            data: {
                pageNo: pageNo || 1,
                pageSize: this.state.pagination.pageSize,
                cname:this.state.cname, //品类名称
                superId:superText,//上级品类编号
                layer:this.state.layer,//组织层级
                status:this.state.status,//品类状态
            },
            success: function (data) {
                let theArr = [];
                if (!data.data || !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
                            sort:thisdata.sort,//品类序号
                            cid: thisdata.cid,//品类编号
                            cname: thisdata.cname,//品类名称
                            layer: thisdata.layer,//品类层级
                            superName: thisdata.superName,//上级品类
                            status: thisdata.status,//上级品类状态
                        });
                    };
                    this.state.pagination.current = data.data.pageNo;
                    this.state.pagination.total = data.data.totalCount;
                };
                this.setState({
                    dataSource: theArr,
                    pagination: this.state.pagination
                });
            }.bind(this),
        }).always(function () {
            this.setState({
                loading: false
            });
        }.bind(this));
    },
    getInitialState() {
        return {
            searchMore: true,
            selectedRowKeys: [],
            selectedRows: [],
            loading: false,
            orgCodeUrl: [],
			companyLogoUrl: [],
            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: 'sort',
                    key: 'sort',
                },{
                    title: '品类编号',
                    dataIndex: 'cid',
                    key: 'cid',
                }, {
                    title: '品类名称',
                    dataIndex: 'cname',
                    key: 'cname',
                },  {
                    title: '品类层级',
                    dataIndex: 'layer',
                    key: 'layer',
                    //render: text => { return getAchievementCategory(text); }
                }, {
                    title: '上级品类',
                    dataIndex: 'superName',
                    key: 'superName',
                },{
                    title: '品类状态',
                    dataIndex: 'status',
                    key: 'status',
                    render: text => { return getCategoryState(text) }
                }
            ],
            dataSource: [],
        };
    },
    componentWillMount() {
       this.selectSuperId();
    },
    //获取上级品类
    selectSuperId() {  
    	this.state.data = []
         $.ajax({
                method: "get",
                dataType: "json",
                crossDomain: false,
                url: globalConfig.context + "/api/admin/Varieties/getSuperList",
                data:{
                  flag:1,
                },
                success: function (data) { 
                		let theArr = [];
					    let thedata=data.data;
					    if (!thedata) {
		                    if (data.error && data.error.length) {
		                        message.warning(data.error[0].message);
		                    };	
		                    thedata = {}; 
		              };   
					    var contactIds=[];
				        //for (let item in data.data) {
				        	for(var i=0;i{theData.cname}
		                    );
		                };
						this.setState({	
							SuperArr:thedata,
		                    contactsOption: theArr, 
		                    orderStatusOptions:data.data,
	                    });
	                    
					}.bind(this),
				}).always(function () {
				this.loadData(this.state.ispage);
	            this.setState({
	                loading: false
	            });
	        }.bind(this));
	},
	//编辑部门,保存
    edithandleSubmit(e){
    	e.preventDefault();	
    	//上级组织字典
        let nameText=this.state.SuperArr
        let superText=this.state.editSuperName;
        let superIdText=this.state.editSuperId;
    	let superOne=this.state.editDataSource[0].editSuperName;
    	let isStatus=this.state.editStatus;
    	let theorgCodeUrl = [];
			if(this.state.orgCodeUrl.length) {
				let picArr = [];
				this.state.orgCodeUrl.map(function(item) {
					picArr.push(item.response.data);
				});
				theorgCodeUrl = picArr.join(",");
			};
			let thecompanyLogoUrl = [];
			if(this.state.companyLogoUrl.length) {
				let picArr = [];
				this.state.companyLogoUrl.map(function(item) {
					picArr.push(item.response.data);
				});
				thecompanyLogoUrl = picArr.join(",");
			};
    	if(isStatus==1){
    		if(confirm('是否要停用该品类?')){
    			if(!(superOne==superText)){
		    		let changeSuper=nameText[parseInt(this.state.editSuperName)].id;
		    		if(confirm('上级品类已修改,是否保存?')){
			        $.ajax({
			            method: "post",
			            dataType: "json",
			            crossDomain: false,
			            url:globalConfig.context + '/api/admin/Varieties/editVarieties',
			            data:{
			            	id:this.state.editId,//品类ID
			            	cname:this.state.editName,//品类名称
			            	superId:changeSuper,//上级品类
			            	status:this.state.editStatus,//品类状态 
			            	varietiesLogo:theorgCodeUrl,
			            }
			        }).done(function (data) { 
			            this.setState({
			                loading: false
			            });
			            if (!data.error.length) {
			                message.success('保存成功!'); 
			                this.edithandleCancel();
			                this.selectSuperId();
			            } else {
			                message.warning(data.error[0].message);
			            }
			        }.bind(this));
			        return false
		        	}
		    	}else {
		        	$.ajax({
			            method: "post",
			            dataType: "json",
			            crossDomain: false,
			            url:globalConfig.context + '/api/admin/Varieties/editVarieties',
			            data:{
			            	id:this.state.editId,//品类ID
			            	cname:this.state.editName,//品类名称
			            	superId:superIdText,//上级品类
			            	status:this.state.editStatus,//品类状态 
			            	varietiesLogo:theorgCodeUrl,
			            }
			        }).done(function (data) { 
			            this.setState({
			                loading: false
			            });
			            if (!data.error.length) {
			                message.success('保存成功!'); 
			                this.edithandleCancel();
			               this.selectSuperId();
			            } else {
			                message.warning(data.error[0].message);
			            }
			        }.bind(this));
		        } 	
    		}
    	}else{
    		if(!(superOne==superText)){
		    		let changeSuper=nameText[parseInt(this.state.editSuperName)].id;
		    		if(confirm('上级组织已修改,是否保存?')){
			        $.ajax({
			            method: "post",
			            dataType: "json",
			            crossDomain: false,
			            url:globalConfig.context + '/api/admin/Varieties/editVarieties',
			            data:{
			                id:this.state.editId,//品类ID
			            	cname:this.state.editName,//品类名称
			            	superId:changeSuper,//上级品类
			            	status:this.state.editStatus,//品类状态 
			            	varietiesLogo:theorgCodeUrl,
			            }
			        }).done(function (data) { 
			            this.setState({
			                loading: false
			            });
			            if (!data.error.length) {
			                message.success('保存成功!'); 
			                this.edithandleCancel();
			                this.selectSuperId();
			            } else {
			                message.warning(data.error[0].message);
			            }
			        }.bind(this));
			        return false
		        	}
		    	}else {
		        	$.ajax({
			            method: "post",
			            dataType: "json",
			            crossDomain: false,
			            url:globalConfig.context + '/api/admin/Varieties/editVarieties',
			            data:{
			            	id:this.state.editId,//品类ID
			            	cname:this.state.editName,//品类名称
			            	superId:superIdText,//上级品类
			            	status:this.state.editStatus,//品类状态 
			            	varietiesLogo:theorgCodeUrl,
			            }
			        }).done(function (data) { 
			            this.setState({
			                loading: false
			            });
			            if (!data.error.length) {
			                message.success('保存成功!'); 
			                this.edithandleCancel();
			                this.selectSuperId();
			            } else {
			                message.warning(data.error[0].message);
			            }
			        }.bind(this));
		        } 
    	}
    },  
    //整行点击
    tableRowClick(record, index) {
    	this.selectSuperId();
        this.state.RowData = record;
        this.setState({
            editvisible: true,
            selectedRowKeys:[],
        	rowId:record.businessId,
        });
         $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context +"/api/admin/Varieties/detailVarieties" ,
            data: {
               id: record.id
            },
            success: function (data) {
                let theArr = [];
                let thisdata = data.data;
                if (!data) {
                    if (data.error && data.error.length) {
                        message.warning(data.error[0].message);
                    };
                } else {
                    theArr.push({
                         editId: thisdata.id,//每一条记录的ID
                         editName:thisdata.cname,//品类名称
                         editStatus:thisdata.status,//品类状态 
                         editSuperName:thisdata.superName,//上级品类
                         editlayer:thisdata.layer,//品类层级
                         editCid: thisdata.cid,//品类编号
                         editSort: thisdata.sort,//品类序号
                         editCreateName:thisdata.createName,//创建人
                         editTime:thisdata.createTimeFormattedDate,//创建时间
                         orgCodeUrl: thisdata.varietiesLogo ? splitUrl(thisdata.varietiesLogo, ',', globalConfig.avatarHost + '/upload') : [],
                    }); 
                };
                this.setState({
                	 editId: thisdata.id,//每一条记录的ID
                     editName:thisdata.cname,//品类名称
                     editStatus:thisdata.status,//品类状态 
                     editSuperName:thisdata.superName,//上级品类
                     editSuperId:thisdata.superId,//上级品类
                     editlayer:thisdata.layer,//品类层级
                     editCid: thisdata.cid,//品类编号
                     editSort: thisdata.sort,//品类序号
                     editCreateName:thisdata.createName,//创建人
                     editTime:thisdata.createTimeFormattedDate,//创建时间
                     orgCodeUrl: thisdata.varietiesLogo ? splitUrl(thisdata.varietiesLogo, ',', globalConfig.avatarHost + '/upload') : [],
                     editDataSource: theArr,
                });
            }.bind(this),
        }).always(function () {
            this.setState({
                loading: false
            });
        }.bind(this));
    },
    //左侧图片地址
    getOrgCodeUrl(e) {
		this.setState({ orgCodeUrl: e });
	},
    //新增一个品类,保存
    addhandleSubmit(e){
    	e.preventDefault();	
    	if(!this.state.categoryName){
    		message.warning('请输入品类名称');
    		return false;
    	}
    	if(!this.state.upCategory){
    		message.warning('请选择上级品类');
    		return false;
    	}
		this.props.form.validateFields((err, values) => {                                 
            if (!err) {
                this.setState({
                    loading: true
                }); 
                //上级组织字典
                let nameText=this.state.SuperArr;
                let superText=nameText[parseInt(this.state.upCategory)].id;
                $.ajax({
                    method: "get",
                    dataType: "json",
                    crossDomain: false,
                    url:globalConfig.context + '/api/admin/Varieties/addVarieties',
                    data:{
                    	cname:this.state.categoryName,//组织名称
                    	superId:superText,//上级组织
                    	}
                }).done(function (data) { 
                    this.setState({
                        loading: false
                    });
                    if (!data.error.length) {
                        message.success('新增品类成功!'); 
                        this.handleCancel();
                        this.selectSuperId();
                    } else {
                        message.warning(data.error[0].message);
                    }
                }.bind(this));
            }
        });
    },
    //整行删除
    delectRow() {
        let deletedIds = '';
        for (let idx = 0; idx < this.state.selectedRows.length; idx++) {
            let rowItem = this.state.selectedRows[idx];
            if (rowItem.id) {
                deletedIds=rowItem.id;
            };
        };
        this.setState({
            selectedRowKeys: [],
            loading: deletedIds.length > 0
        });
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/Varieties/deleteState",
            data: {
                id: deletedIds
            }
        }).done(function (data) {
            if (!data.error.length) {
                message.success('删除成功!');
                this.setState({
                    loading: false,
                });
            } else {
                message.warning(data.error[0].message);
            };
            this.selectSuperId();
        }.bind(this));
    },
    //整行停用
    blockRow() {
        let deletedIds = '';
        for (let idx = 0; idx < this.state.selectedRows.length; idx++) {
            let rowItem = this.state.selectedRows[idx];
            if (rowItem.id) {
                deletedIds=rowItem.id;
            };
        };
        this.setState({
            selectedRowKeys: [],
            loading: deletedIds.length > 0
        });
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/Varieties/updateStatus",
            data: {
                id: deletedIds
            }
        }).done(function (data) {
            if (!data.error.length) {
                message.success('该品类已成功停用!');
                this.setState({
                    loading: false,
                });
            } else {
                message.warning(data.error[0].message);
            };
            this.selectSuperId();
        }.bind(this));
    },
    //品类上移
    upClick() {
        let deletedIds = '';
        let upSort = '';
        for (let idx = 0; idx < this.state.selectedRows.length; idx++) {
            let rowItem = this.state.selectedRows[idx];
            if (rowItem.id) {
                deletedIds=rowItem.id;
                upSort=rowItem.sort;
            };
        };
        console.log(upSort);
        console.log(deletedIds);
        this.setState({
            selectedRowKeys: [],
            loading: deletedIds.length > 0
        });
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/Varieties/locationChange",
            data: {
                id: deletedIds,
                sort:upSort,
                flag:'1',
            }
        }).done(function (data) {
            if (!data.error.length) {
                message.success('该品类已成功上移!');
                this.setState({
                    loading: false,
                });
            } else {
                message.warning(data.error[0].message);
            };
            this.selectSuperId();
        }.bind(this));
    },
    //品类下移
    downClick() {
        let deletedIds = '';
        let upSort = '';
        for (let idx = 0; idx < this.state.selectedRows.length; idx++) {
            let rowItem = this.state.selectedRows[idx];
            if (rowItem.id) {
                deletedIds=rowItem.id;
                upSort=rowItem.sort;
            };
        };
        this.setState({
            selectedRowKeys: [],
            loading: deletedIds.length > 0
        });
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + "/api/admin/Varieties/locationChange",
            data: {
                id: deletedIds,
                sort:upSort,
                flag:'0',
            }
        }).done(function (data) {
            if (!data.error.length) {
                message.success('该品类已成功下移!');
                this.setState({
                    loading: false,
                });
            } else {
                message.warning(data.error[0].message);
            };
            this.selectSuperId();
        }.bind(this));
    },
    addClick() {
        this.state.RowData = {};
        this.addReset();
        this.setState({
            visible: true
        });
    },
    editClick() {
        this.state.RowData = {};
        this.setState({
            editvisible: true
        });
    },
   	handleCancel() {
        this.setState({ visible: false })
    },
    edithandleCancel() {
        this.setState({ editvisible: false })
    },
    search() {
        this.loadData();
    },
    reset() {
        this.state.cname = '';//品类名称清零
        this.state.layer = undefined;//品类层级清零
        this.state.status = undefined;//品类状态清零
        this.state.superId = undefined;//上级品类清零
        this.loadData();       
    },
    addReset() {
        this.state.categoryName = '';//品类名称清零
        this.state.upCategory = undefined;//上级品类清零      
    },
    searchSwitch() {
        this.setState({
            searchMore: !this.state.searchMore
        });
    },
    render() {
    	const FormItem = Form.Item
        const rowSelection = {
            selectedRowKeys: this.state.selectedRowKeys,
            onChange: (selectedRowKeys, selectedRows) => {
                this.setState({
                    selectedRows: selectedRows.slice(-1),
                    selectedRowKeys: selectedRowKeys.slice(-1)
                });
            }
        };
         const formItemLayout = {
            labelCol: { span: 8 },
            wrapperCol: { span: 14 },
       };
       	const { getFieldDecorator } = this.props.form;
        const hasSelected = this.state.selectedRowKeys.length > 0;
        const { RangePicker } = DatePicker;
        
        return (
            
        );
    }
}));
export default BusinessCategory;