import React, { Component } from 'react';
import './index.less';
import { Popover } from 'antd';
import { Carousel } from 'antd-mobile';
import Assets from '@src/components/Assets';
import { formatDate } from '@src/services/Tools';
import Button from '../Button';
import Tabs from '../Tabs';
import { User } from '../../stores/user';

export class CommentFalls extends Component {
  createLayout() {
    const msnry = new Masonry('.comment-falls', {
      itemSelector: '.grid-item',
    });
    msnry.layout();
  }

  render() {
    const { list = [] } = this.props;
    return (
      <div className="comment-falls">
        {list.map(row => {
          return (
            <div className="grid-item">
              <div className="item">
                <div className="item-header">
                  <Assets src={row.user ? row.user.avatar : row.avatar} />
                  <div className="name">{row.user ? row.user.nickname : row.nickname}</div>
                  <div className="date">{formatDate(row.createTime, 'yyyy年mm月dd日')}</div>
                </div>
                <div className="item-body">{row.content}</div>
              </div>
            </div>
          );
        })}
      </div>
    );
  }
}

export class AnswerCarousel extends Component {
  constructor(props) {
    super(props);
    this.state = { index: 1 };
  }

  onNext() {
    const index = this.state.index + 1;
    const { list = [] } = this.props;
    if (index >= list.length - 1) return;
    this.setState({ index });
  }

  onPrev() {
    const index = this.state.index - 1;
    if (index < 1) return;
    this.setState({ index });
  }

  render() {
    const { onFaq, tabActive, tabs = [], onTabChange } = this.props;
    const { index } = this.state;
    const { list = [], hideBtn = false } = this.props;
    return (
      <div className="other-answer-carousel">
        <div className="body">
          {tabs.length > 0 && (
            <Tabs
              type="tag"
              theme="white"
              tabs={tabs}
              space={6}
              width={86}
              active={tabActive}
              onChange={key => onTabChange && onTabChange(key)}
            />
          )}
          {list.length > 0 && (
            <Carousel selectedIndex={index} cellSpacing={40} dots={false} slideWidth={'350px'}>
              {list.map(item => {
                return (
                  <div className="item">
                    <div className="item-block">
                      <Assets name="question" />
                      {item.content}
                    </div>
                    <div className="item-block">
                      <Assets name="answer" />
                      {item.answer}
                    </div>
                  </div>
                );
              })}
            </Carousel>
          )}
          <div className="fixed" />
          <Assets name="footer_next_highlight_1" className="next" onClick={() => this.onNext()} />
          <Assets name="footer_previous_highlight_1" className="prev" onClick={() => this.onPrev()} />
        </div>
        {!hideBtn && (
          <Button size="lager" radius onClick={() => User.needLogin().then(() => onFaq())}>
            <Assets name="kf" className="m-r-5" />
            立即咨询
          </Button>
        )}
      </div>
    );
  }
}

export class Consultation extends Component {
  render() {
    const { data = {} } = this.props;
    return (
      <div className="other-consultation">
        <div className="list">
          <div className="item">
            <Assets name="call" />
          </div>
          <div className="item">
            <Assets name="mail" />
          </div>
          <div className="item">
            <Assets name="wechat_1" />
          </div>
        </div>
        <div className="line" />
        <div className="list">
          <div className="item">
            <div className="t-1 t-s-16 m-b-10">电话咨询</div>
            <div className="t-1 t-s-16 t-w-b">{data.phone}</div>
          </div>
          <div className="item">
            <div className="t-1 t-s-16 m-b-10">邮件咨询</div>
            <div className="t-1 t-s-16 t-w-b">{data.email}</div>
          </div>
          <div className="item">
            <div className="t-1 t-s-16 m-b-10">微信咨询</div>
            <div className="t-1 t-s-16 t-w-b">
              <Popover content={<Assets name="qrcode" />}>
                <span>
                  <Assets src={data.wechatImage} />
                </span>
              </Popover>
            </div>
          </div>
        </div>
      </div>
    );
  }
}

export class Contact extends Component {
  render() {
    const { data = {} } = this.props;
    return (
      <div className="other-contact">
        <div className="body">
          <div className="step-list">
            <div className="step">
              <div className="title">工作机会</div>
              <Assets name="logo2" />
            </div>
            <div className="step" style={{ paddingLeft: 80 }}>
              <div className="title">联系我们</div>
              <div className="desc">{data.phone}</div>
              <div className="desc">{data.email}</div>
              <div className="desc">{data.wechat}</div>
            </div>
            <div className="step" style={{ paddingLeft: 140 }}>
              <div className="title">关注我们</div>
              <div className="qrcode">
                <Assets src={data.wechatImage} />
              </div>
            </div>
          </div>
        </div>
      </div>
    );
  }
}

export class Comment extends Component {
  render() {
    const { data } = this.props;
    return (
      <div className="comment-item">
        <Assets className="m-r-1" src={data.user ? data.user.avatar : data.avatar} />
        <div className="d-i-b">
          <div className="t-1 t-s-18">{data.user ? data.user.nickname : data.nickname}</div>
          <div className="t-3">{formatDate(data.createTime, 'YYYY-MM-DD')}</div>
        </div>
        <div className="t-1 t-s-18 m-t-1">{data.content}</div>
      </div>
    );
  }
}