import React from 'react';
import $ from 'jquery/src/ajax';
import { Form,Button, Input, Spin, message, Modal, Upload } from 'antd';
import {getNewOrderStatus,getLiquidationStatus,splitUrl} from '@/tools.js';
import ImgList from "../../../common/imgList";

const Examine=React.createClass({
    loadData(record) {
        this.state.data = [];
        this.setState({
            loading: true
        });
        $.ajax({
            method: "get",
            dataType: "json",
            crossDomain: false,
            url: globalConfig.context + '/api/admin/newOrder/orderRefundDetail',
            data: {
            	id:record?record.id:this.props.data.id
            },
            success: function (data) {
                if (!data.data) {
                    if (data.error && data.error.length) {
                        message.warning(data.error[0].message);
                    };
                } else {
                    let thisdata=data.data;
                    this.setState({
                        id:thisdata.id,
                        data:thisdata,
                        orderNo:thisdata.orderNo,
                        orgCodeUrl: thisdata.contractUrl ? splitUrl(thisdata.contractUrl, ',', globalConfig.avatarHost + '/upload') : [],
                        orgCodeUrlNo: thisdata.applicationUrl ? splitUrl(thisdata.applicationUrl, ',', globalConfig.avatarHost + '/upload') : [],
                    });
                   }
            }.bind(this),
        }).always(function () {
            this.setState({
                loading: false
            });
        }.bind(this));
    },
    getInitialState() {
        return {
            loading: false,
            visible:false,
            showDesc:false,
        };
    },
    //保存
    handleSubmit(e,index){
        e.preventDefault();
        if(index=='2'&&!this.state.remarks){
            message.warning('请填写拒绝退单的原因');
            return false;
        }
        this.setState({
            loading: true
        });
        $.ajax({
            method: "post",
            dataType: "json",
            async:true,
            url:  globalConfig.context + '/api/admin/financial/changeRefund',
            data: index=='2'?{
                id: this.props.data.id,
                refundStatus:index,
                remarks:this.state.remarks
            }:{
                id: this.props.data.id,
                refundStatus:index, 
            }
        }).done(function (data) {
            this.setState({
                loading: false
            });
            if (!data.error.length) {
                message.success('操作成功!');
                this.onShow(index);
            } else {
                message.warning(data.error[0].message);
            }
        }.bind(this));
    },
    onCancel(){
    	this.setState({
    		visible:false
        })
        this.props.closeDesc(false,false);
    },
    onShow(index) {
		this.setState({
			visible: false,
		});
		this.props.closeDesc(false, true,index);
	},
    componentWillMount() {
        this.setState({
            remarks:''
        })
    },
    componentWillReceiveProps(nextProps) {
        if(nextProps.data.orderNo){
            this.loadData(nextProps.data);
        }
        this.state.visible=nextProps.showDesc;
        this.setState({
            remarks:''
        })
    },
    render() {
        const theData = this.state.data || {};
        const FormItem = Form.Item;
        const formItemLayout = {
            labelCol: { span: 10 },
            wrapperCol: { span: 12 },
		};
        return (
            <div className="user-content" >
	            <Modal maskClosable={false} visible={this.state.visible}
                        onOk={this.onShow} onCancel={this.onCancel}
                        width='800px'
                        title='退单审核'                     
                        footer=''
                        className="admin-desc-content">
			            <Form layout="horizontal" onSubmit={(e)=>{this.handleSubmit(e,1)}} >
			                <Spin spinning={this.state.loading}>
                                <div className="clearfix">
                                    <FormItem className="half-item" {...formItemLayout} label="退单编号">
                                        <span>{theData.id}</span>
                                    </FormItem>
                                    <FormItem className="half-item" {...formItemLayout} label="退单时间">
							            <span>{theData.createDate}</span>
                                    </FormItem>
                                    <FormItem className="half-item" {...formItemLayout} label="订单编号">
                                        <span>{theData.orderNo}</span>
                                    </FormItem>
                                    <FormItem className="half-item" {...formItemLayout} label="订单状态">
                                        <span>{getNewOrderStatus(theData.orderStatus)}</span>
                                    </FormItem>
                                    <FormItem className="half-item" {...formItemLayout} label="结算状态">
                                        <span>{getLiquidationStatus(theData.liquidationStatus)}</span>
                                    </FormItem>
                                    <div className="clearfix">
                                        <FormItem labelCol={{ span:5 }} wrapperCol={{ span: 17 }} label="终止合同">
                                            <Upload className="demandDetailShow-upload"
                                                listType="picture-card"
                                                fileList={this.state.orgCodeUrl}
                                                onPreview={(file) => {
                                                    this.setState({
                                                        previewImage: file.url || file.thumbUrl,
                                                        previewVisible: true,
                                                    });
                                                }} />
                                            {/*<div style={{paddingTop:'10px',paddingBottom:'10px'}}>*/}
                                            {/*    <ImgList fileList={this.state.orgCodeUrl} ItemWidth={'96px'}/>*/}
                                            {/*</div>*/}
                                            <Modal maskClosable={false} footer={null}
                                                visible={this.state.previewVisible}
                                                onCancel={() => { this.setState({ previewVisible: false }) }}>
                                                <img alt="" style={{ width: '100%' }} src={this.state.previewImage || ''} />
                                            </Modal>
                                        </FormItem>
                                    </div>
                                    <div className="clearfix">
                                        <FormItem labelCol={{ span:5 }} wrapperCol={{ span: 17 }} label="退单申请表">
                                            <Upload className="demandDetailShow-upload"
                                                listType="picture-card"
                                                fileList={this.state.orgCodeUrlNo}
                                                onPreview={(file) => {
                                                    this.setState({
                                                        previewImage: file.url || file.thumbUrl,
                                                        previewVisible: true,
                                                    });
                                                }} />
                                            {/*<div style={{paddingTop:'10px',paddingBottom:'10px'}}>*/}
                                            {/*    <ImgList fileList={this.state.orgCodeUrlNo} ItemWidth={'96px'}/>*/}
                                            {/*</div>*/}
                                            <Modal maskClosable={false} footer={null}
                                                visible={this.state.previewVisible}
                                                onCancel={() => { this.setState({ previewVisible: false }) }}>
                                                <img alt="" style={{ width: '100%' }} src={this.state.previewImage || ''} />
                                            </Modal>
                                        </FormItem>  
                                    </div>
                                    <FormItem labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label="退单原因">
                                        <span>{theData.reason}</span>
                                    </FormItem>
                                    <FormItem labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label="拒绝原因">
                                        <Input
                                            type="textarea"
                                            rows={4}
                                            placeholder="若拒绝,请输入拒绝退单原因"
                                            value={this.state.remarks}
                                            onChange={(e) => {
                                                this.setState({ remarks: e.target.value });
                                            }}
                                        />
                                    </FormItem>
                                    <FormItem wrapperCol={{ span: 12, offset:5 }}>  
                                        <Button type="primary" htmlType="submit"  style={{marginRight:20}}>同意退单</Button>
                                        <Button type="primary" onClick={(e)=>{this.handleSubmit(e,2)}}  style={{marginRight:20}}>拒绝退单</Button>
                                        <Button type="default" onClick={()=>{this.onCancel()}}>取消</Button>
                                    </FormItem>  
                                </div>
			                </Spin>
			            </Form>
			    </Modal>
            </div>
        );
    }
});

export default Form.create()(Examine);