/**
 * 徐祥健<xuxj@hugeinfo.com.cn>
 * 2018年8月28日 10:41
 *
 */


import React from 'react';

import HeadView from '../view/HeadView';
import TableBtnView from '../view/TableBtnView';
import LinkView from '../view/LinkView';
import { Input, Button, DatePicker, Divider,  Row, Col, message, Modal, Popconfirm, Badge } from 'antd';
import moment from 'moment';
import Fetch from '../fetch';
import TableView from '../view/TableView';

export default class BusList extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      data: [],
      formdata: {},
      key: 0,
      type: this.props.type,
      loading: false,
      msgType: ''
    };
  }

  componentDidMount() {
    document.title = '投诉建议管理';
    // Fetch.getSpecialPerson()
    //   .then(res => {
    //     this.setState({
    //       data: res
    //     });
    //   });
    const { type } = this.state;
    var msgType;
    switch(type){
      case 'onlineAdvice':
        msgType = 1;
        break;
      case 'onlineComplaints':
        msgType = 2;
        break;
      case 'onlineLetter':
        msgType = 3;
        break;
      case 'another':
        msgType = 4;
        break;
      default:
          break;
    }
    this.setState({ loading: true,msgType });
    Fetch.getComSugges({msgType, businessType: 22}).then( res => {
      for(var i=0;i<res.length;i++){
        res[i]['index'] = i+1; 
      }
      this.setState({
        data: res,
        loading: false
      })
    })
  }

  onTimeChange = (date, dateString) => {
    const formdata = {
      ...this.state.formdata,
      createTime: dateString
    };
    this.setState({ formdata });
  }
  onInputChange = ({ target: { value, name } }) => {
    if (name === 'reset') {
      this.setState({ formdata: {} });
      this.onReset();
    } else {
      const formdata = {
        ...this.state.formdata,
        [name]: value
      };
      this.setState({ formdata });
    }
  }
  
  onReset = () => {
    this.setState(prev => ({
      key: prev.key + 1
    }));
    this.setState({
      resetKey: Date.now(),
      formdata: {}
    }, this.onTableChange);
  }

  onSubmit = e => {
    e.preventDefault();
    this.onTableChange();
  }

  onTableChange = () => {
    this.setState({ loading: true });
    const { msgType } = this.state;
    Fetch.getComSugges({msgType,...this.state.formdata}).then( res => {
      for(var i=0;i<res.length;i++){
        res[i]['index'] = i+1; 
      }
      this.setState({
        data: res,
        loading: false
      })
    })
  }

  onDetail = (_text, _record) =>{
    const { type } = this.state;
    this.props.history.push('/busDetail/' + _text.businessType + '/' + _text.businessId + '/' + _text.createId  + '/' + 'detail' + '/' + type);
  }

  onDo = (_text, _record) =>{
    const { type } = this.state;
    this.props.history.push('/busDetail/' + _text.businessType + '/' + _text.businessId + '/' + _text.createId  + '/' + 'com' + '/' + type);
  }
  
  onDel = (_text, _record) => {
    Fetch.businessDel({businessId:  _text.businessId}).then( res => {
      if(res.code == 0){
        message.warning('正在更新列表');
        this.onTableChange();
      }
      }, err => {
        message.error(err);
    });
  }

  render() {
    const columns = [{
      title: '序号',
      dataIndex: 'index',
      key: 'index',
    },{
      title: '发送人',
      dataIndex: 'userName',
      key: 'userName',
    }, {
      title: '消息内容',
      dataIndex: 'content',
      key: 'content',
    }, {
      title: '发送时间',
      dataIndex: 'createTime',
      key: 'createTime',
      render: text => <span>{moment(text).format("YYYY-MM-DD HH:mm")}</span>
    }, {
      title: '状态',
      dataIndex: 'status',
      key: 'status',
      render: text => (
        text == "待审" ? 
        <Badge count={'待回复'} /> : <Badge count={'已回复'} style={{ backgroundColor: '#52c41a' }} />
      )
    },{
      title: '操作',
      key: 'action',
      render: (text, record) => (
        <span>
          {
            record.status == "待审" ? <label onClick={()=>{this.onDo(text, record)}} className="theme-color">处理</label>
            :<label onClick={()=>{this.onDetail(text, record)}} className="theme-color">详情</label>
          }
          
          <Divider type="vertical" />
          <Popconfirm placement="topRight" title={'你确定要删除该条记录吗'} onConfirm={()=>{this.onDel(text, record)}} okText="确定" cancelText="取消">
            <label className="theme-color">删除</label>
          </Popconfirm>
        </span>
      ),
    }];
    const { data, loading } = this.state;
    const { title, local, type, total, notRead, contact, sed } = this.props;
    return (
      <div className="app-page">
        <HeadView history={this.props.history} />
        <LinkView local={local} sed={sed} />
        <TableBtnView name={local} btnName='新建人员' key={this.state.key}>
          <Input placeholder="根据发送人模糊查询" style={{ width: "200px" }} name='userName' onChange={this.onInputChange} onPressEnter={this.onSubmit}/>
          <Input placeholder="根据消息内容模糊查询" style={{ width: "200px" }} name='content' onChange={this.onInputChange} onPressEnter={this.onSubmit}/>
          {/* <Input placeholder="根据状态模糊查询" style={{ width: "200px" }} name='status' onChange={this.onInputChange} onPressEnter={this.onSubmit}/> */}
          <DatePicker onChange={this.onTimeChange} placeholder="发送日期"/>
          <Button type="primary" onClick={this.onSubmit}>查询</Button>
          <Button name="reset" onClick={this.onInputChange}>重置</Button>
        </TableBtnView>
        <TableView columns={columns} data={data} pageSize='10' size='default' loading={loading}/>
        {/* <FormSearch /> */}
      </div>
    );
  }

}
