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/views/Orders.js

106 lines
4.5 KiB
JavaScript

3 years ago
import React, {Component} from 'react';
import {Row, Col, Button, Tabs, Table} from 'antd';
3 years ago
import {
ContainerOutlined, CarryOutOutlined,
SmileOutlined, TagsOutlined, GlobalOutlined,
3 years ago
SearchOutlined,
} from '@ant-design/icons';
import {stores_Context} from '../config'
import {Line} from "@ant-design/charts";
import SiteSelect from "../charts/SiteSelect";
import {observer} from 'mobx-react';
import DatePickerCharts from '../charts/DatePickerCharts'
3 years ago
class Orders extends Component {
3 years ago
static contextType = stores_Context;
3 years ago
constructor(props) {
super(props);
}
// componentDidMount() {
// const {orders_store} = this.context;
// orders_store.getOrderCount();
// orders_store.onChange_Tabs(orders_store.active_tab_key);
// }
3 years ago
3 years ago
render() {
3 years ago
const {orders_store} = this.context;
const data_source = orders_store.orderCountData ? orders_store.orderCountData : [];
3 years ago
const config = {
data: data_source,
padding: 'auto',
xField: 'xField',
yField: 'yField',
seriesField: 'seriesField',
3 years ago
xAxis: {
type: 'timeCat',
},
// tooltip: {
// customContent: (title, items) => {
// const data = items[0]?.data || {};
// return `<div>${title}</div><div>${data.seriesField} ${data.yField}</div>`;
// }
// },
smooth: false,
3 years ago
};
3 years ago
return (
<div>
3 years ago
<Row>
<Col span={14}>
</Col>
<Col span={2}>
<SiteSelect store={orders_store}/>
</Col>
3 years ago
<Col span={6}>
<DatePickerCharts/>
3 years ago
</Col>
<Col span={2}>
3 years ago
<Button type="primary" icon={<SearchOutlined/>} loading={orders_store.loading} onClick={() => {
orders_store.getOrderCount();
orders_store.onChange_Tabs(orders_store.active_tab_key);
3 years ago
}}>统计</Button>
</Col>
</Row>
<Row gutter={[16, {xs: 8, sm: 16, md: 24, lg: 32}]}>
<Col className="gutter-row" span={24}>
<Line {...config} />
</Col>
<Col className="gutter-row" span={24}>
<Tabs activeKey={orders_store.active_tab_key}
onChange={(active_key) => orders_store.onChange_Tabs(active_key)}>
<Tabs.TabPane tab={<span><ContainerOutlined/>来源类型</span>} key="Form">
<Table dataSource={orders_store.orderCountData_Form.dataSource}
columns={orders_store.orderCountData_Form.columns} size="small"/>
</Tabs.TabPane>
<Tabs.TabPane tab={<span><CarryOutOutlined/>产品类型</span>} key="Product">
<Table dataSource={orders_store.orderCountData_Form.dataSource}
columns={orders_store.orderCountData_Form.columns} size="small"/>
</Tabs.TabPane>
<Tabs.TabPane tab={<span><SmileOutlined/>国籍</span>} key="Country">
<Table dataSource={orders_store.orderCountData_Form.dataSource}
columns={orders_store.orderCountData_Form.columns} size="small"/>
</Tabs.TabPane>
<Tabs.TabPane tab={<span><TagsOutlined/>线路</span>} key="line">
<Table dataSource={orders_store.orderCountData_Form.dataSource}
columns={orders_store.orderCountData_Form.columns} size="small"/>
</Tabs.TabPane>
<Tabs.TabPane tab={<span><GlobalOutlined/>目的地</span>} key="city">
<Table dataSource={orders_store.orderCountData_Form.dataSource}
columns={orders_store.orderCountData_Form.columns} size="small"/>
</Tabs.TabPane>
</Tabs>
3 years ago
</Col>
</Row>
3 years ago
</div>
);
}
}
3 years ago
export default observer(Orders);