import React, { Component } from 'react';
import { Row, Col, Button, Tabs, Table, Space } from 'antd';
import {
  ContainerOutlined,
  CarryOutOutlined,
  SmileOutlined,
  TagsOutlined,
  GlobalOutlined,
  SearchOutlined,
} from '@ant-design/icons';
import { stores_Context } from '../config';
import { Line } from '@ant-design/charts';
import SiteSelect from '../components/search/SiteSelect';
import { observer } from 'mobx-react';
import DatePickerCharts from '../components/search/DatePickerCharts';
import DateGroupRadio from '../components/DateGroupRadio';

class Orders extends Component {
  static contextType = stores_Context;

  constructor(props) {
    super(props);
  }

  // componentDidMount() {
  //     const {orders_store} = this.context;
  //     orders_store.getOrderCount();
  //     orders_store.onChange_Tabs(orders_store.active_tab_key);
  // }

  render() {
    const { dashboard_store } = this.context;
    const orders_data = dashboard_store.orders_data;
    const line_config = {
      data: orders_data.data,
      padding: 'auto',
      xField: 'ApplyDate',
      yField: 'orderCount',
      seriesField: 'WebCode',
      // xAxis: {
      //   type: 'timeCat',
      // },
      smooth: true,
      legend: {
        position: 'right-top',
        title: {
          text: '总合计 ' + orders_data.data.reduce((a, b) => a + b.orderCount, 0),
        },
        itemMarginBottom: 12, // 垂直间距
        itemValue: {
          formatter: (text, item) => {
            const items = orders_data.data.filter((d) => d.WebCode === item.value); // 按站点筛选
            return items.length ? items.reduce((a, b) => a + b.orderCount, 0) : ''; // 计算总数
          },
        },
      },
    };

    return (
      <div>
        <h2>全网站订单数统计</h2>
        <div>
          <Space>
            <DatePickerCharts hide_vs={true} />
            <Button
              type="primary"
              icon={<SearchOutlined />}
              loading={orders_data.loading}
              onClick={() => {
                orders_data.getOrderCount_all();
              }}
            >
              统计
            </Button>
          </Space>
        <div style={{textAlign: 'right'}}>
          <DateGroupRadio
            visible={true}
            dataRaw={dashboard_store.ordersCountDataRaw}
            onChange={dashboard_store.onChangeDateGroup}
            defaultValue={'day'}
            dataMapper={dashboard_store.orderCountDataMapper}
            fieldMapper={dashboard_store.orderCountDataFieldMapper}
          />
        </div>
        </div>
        <br />
        <Line {...line_config} />
      </div>
    );
  }
}

export default observer(Orders);
