import React from 'react';
import { Icon, message, Button, Spin, Checkbox } from 'antd';
import './create.less';
import ajax from 'jquery/src/ajax/xhr.js'
import $ from 'jquery/src/ajax';
import Steps from './steps';

const CreateEvaluate = React.createClass({
  getInitialState() {
    return {
      title: '',
      id: '',
      checked: false,
      loading: false,
      announce: ''
    };
  },
  theLoad(){
    this.setState({
      loading: true
    })
    $.ajax({
      url: globalConfig.context + '/open/html/get/evaluation_announcement'
    }).done(function (res) {
      if (res) {
        this.setState({
          loading: true,
          announce: res
        })
      }
    }.bind(this)).always(function () {
      this.setState({
        loading: false
      })
    }.bind(this));
  },
  
  returnList() {
    if (this.props.handlekey) {
      this.props.handlekey('evaluate');
    }
  },
  announce() {
    return {
      __html: this.state.announce
    }
  },
  agree() {
    $.ajax({
      url: globalConfig.context + '/api/user/evaluate/create'
    }).done(function (res) {
      if (res && res.data) {
        this.setState({
          loading: true,
          id: res.data
        })
      }
    }.bind(this)).always(function () {
      this.setState({
        loading: false
      })
    }.bind(this));
  },
  onChanged(e) {
    this.setState({
      checked: e.target.checked
    });
  },
  titleChanged(title) {
    this.setState({
      title: title
    });
  },
  componentWillMount() {
    if (this.props.data.id) {
      this.state.id = this.props.data.id;
    } else {
      this.state.id='';
      this.state.title='';
      this.theLoad();
    }
  },
  componentWillReceiveProps(nextProps) {
    if (!this.props.visible && nextProps.visible) {
        if (nextProps.data.id) {
            this.state.id = nextProps.data.id;
        } else {
            this.setState({id:'',title:''});
            this.theLoad();
        };
    };
},
  renderBody() {
    if (this.state.id) {
      return <Steps id={this.state.id} title={this.titleChanged} visible={this.props.visible} />
    } else {
      return <div>
        <div className="announce-head">
          本系统使用说明
          <p>使用本系统之前,请您务必仔细阅读并透彻理解本声明。当您使用本系统,将视为您认可本声明内容。</p>
        </div>
        <div className="announce-body" dangerouslySetInnerHTML={this.announce()} />
        <div className="announce-foot">
          <Checkbox checked={this.state.checked} onChange={this.onChanged}>我同意以上声明</Checkbox>
          <Button type="primary" onClick={this.agree} disabled={!this.state.checked}>继续</Button>
        </div>
      </div>
    }
  },
  render() {
    return (
      <Spin spinning={this.state.loading}>
        <div className="content-container">
          <div className="content-title">
            科技评估 {this.state.title ? '- ' + this.state.title : ''}
          </div>
          <div className="content-body">
            {this.renderBody()}
          </div>
        </div>
      </Spin>
    )
  },
});

export default CreateEvaluate;