You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dashboard/src/charts/Orders.jsx

84 lines
2.2 KiB
React

2 years ago
import React, { Component } from 'react';
import { Row, Col, Button, Tabs, Table, Space } from 'antd';
import {
2 years ago
ContainerOutlined,
CarryOutOutlined,
SmileOutlined,
TagsOutlined,
GlobalOutlined,
SearchOutlined,
} from '@ant-design/icons';
2 years ago
import { stores_Context } from '../config';
import { Line } from '@ant-design/charts';
import SiteSelect from './SiteSelect';
import { observer } from 'mobx-react';
import DatePickerCharts from './DatePickerCharts';
class Orders extends Component {
2 years ago
static contextType = stores_Context;
2 years ago
constructor(props) {
super(props);
}
2 years ago
// componentDidMount() {
// const {orders_store} = this.context;
// orders_store.getOrderCount();
// orders_store.onChange_Tabs(orders_store.active_tab_key);
// }
2 years ago
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) : ''; // 计算总数
},
},
},
};
2 years ago
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>
<br />
<Line {...line_config} />
</div>
);
}
}
export default observer(Orders);