perf: 商务: 默认参数

main
Lei OT 5 months ago
parent ac2980e603
commit 046e48810e

@ -10,7 +10,8 @@ import {
CoffeeOutlined, DesktopOutlined,
WhatsAppOutlined,
ShoppingCartOutlined,
GiftOutlined
GiftOutlined,
RocketOutlined
} from '@ant-design/icons';
import { Layout, Menu, Button } from 'antd';
import { BrowserRouter, Route, Routes, NavLink } from 'react-router-dom';
@ -103,7 +104,7 @@ const App = () => {
],
},
{
key: 20, label: '商旅市场', icon: <ShoppingCartOutlined />,
key: 20, label: '商务市场', icon: <RocketOutlined />,
children: [
{ key: 201, label: <NavLink to="/biz_orders">订单数据</NavLink> },
{ key: 202, label: <NavLink to="/trains">TrainsUpsell</NavLink> },

@ -61,6 +61,11 @@ export const groupsMappedByCode = groups.reduce((a, c) => ({ ...a, [String(c.cod
export const groupsMappedByKey = groups.reduce((a, c) => ({ ...a, [String(c.key)]: c }), {});
export const leafGroup = groups.slice(3);
export const overviewGroup = groups.slice(0, 3); // todo: 花梨鹰 APP Trippest
export const groupsCTplus = [
// { value: '10,18', key: '10,18', label: 'CT商旅', code: 'CT+', children: [10, 18,] };
{ value: '18', key: '18', label: 'CT', code: 'CT', children: [] },
{ value: '10', key: '10', label: '商旅', code: '', children: [] },
];
/**
* 来源
*/

@ -1,7 +1,7 @@
import { useContext } from 'react';
import { Row, Col, Tabs, Table, Divider, Spin } from 'antd';
import { Row, Col, Tabs, Table, Divider, Spin, Checkbox, Space } from 'antd';
import { ContainerOutlined, BlockOutlined, SmileOutlined, MobileOutlined, CustomerServiceOutlined } from '@ant-design/icons';
import { Line } from '@ant-design/charts';
import { Line, Pie } from '@ant-design/charts';
import { NavLink } from 'react-router-dom';
import * as comm from '../../utils/commons';
import DateGroupRadio from '../../components/DateGroupRadio';
@ -94,7 +94,27 @@ const BizOrder = observer(() => {
return ret;
},
},
smooth: true,
// smooth: true,
};
const pieConfig = {
appendPadding: 10,
data: [],
angleField: 'OrderCount',
colorField: 'OrderType',
radius: 0.8,
label: {
type: 'outer',
content: '{name} {value} \n {percentage}',
},
legend: false, //
interactions: [
{
type: 'element-selected',
},
{
type: 'element-active',
},
],
};
const tableProps = {
@ -111,9 +131,7 @@ const BizOrder = observer(() => {
{showDiff ? <div>{result.ordercountTotal2?.groups}</div> : null}
</span>
),
titleX:
`${result.ordercountTotal1?.groups}` +
(showDiff ? ` vs ${result.ordercountTotal2?.groups}` : ''),
titleX: `${result.ordercountTotal1?.groups}` + (showDiff ? ` vs ${result.ordercountTotal2?.groups}` : ''),
dataIndex: 'OrderType',
fixed: 'left',
render: (text, record) => <NavLink to={`/biz_orders_sub/${activeTab}/${record.OrderTypeSN}/${encodeURIComponent(record.OrderType)}`}>{text}</NavLink>,
@ -395,14 +413,24 @@ const BizOrder = observer(() => {
};
})}
/>
<Row>
<Col sm={24} lg={12}>
{/* <Pie {...pie_config} data={pie_data} /> */}
</Col>
<Col sm={24} lg={12}>
{/* <Pie {...pie_config} data={pie_data2} /> */}
</Col>
</Row>
</Col>
</Row>
<div>
<h3>各项占比</h3>
{/* <Checkbox
checked={true}
// onChange={(e) => setIsShowEmpty(e.target.checked)}
>
包含空值
</Checkbox> */}
</div>
<Row>
<Col sm={24} lg={12}>
<Pie {...pieConfig} data={result?.ordercount1 || []} />
</Col>
<Col sm={24} lg={12}>
<Pie {...pieConfig} data={result?.ordercount2 || []} />
</Col>
</Row>
</div>

@ -16,18 +16,19 @@ const buildFunnelData = (data1, data2) => {
const data01 = [
{ stage: '火车票预定', number: data1?.data?.[0]?.OrderCount, dateRange: data1?.dateRangeStr },
{ stage: '成行出票', number: data1?.data?.[0]?.CJCount, dateRange: data1?.dateRangeStr },
{ stage: '火车票upsell', number: (data1?.data?.[1]?.OrderCount || 0) + 0, dateRange: data1?.dateRangeStr },
{ stage: '成行', number: data1?.data?.[1]?.CJCount, dateRange: data1?.dateRangeStr },
{ stage: '火车票Upsell', number: (data1?.data?.[1]?.OrderCount || 0) + 0, dateRange: data1?.dateRangeStr },
{ stage: 'Upsell成行', number: data1?.data?.[1]?.CJCount, dateRange: data1?.dateRangeStr },
];
const data02 = !comm.isEmpty(data2)
? [
{ stage: '火车票预定', number: data2?.data?.[0]?.OrderCount, dateRange: data2?.dateRangeStr },
{ stage: '成行出票', number: data2?.data?.[0]?.CJCount, dateRange: data2?.dateRangeStr },
{ stage: '火车票upsell', number: data2?.data?.[1]?.OrderCount, dateRange: data2?.dateRangeStr },
{ stage: '成行', number: data2?.data?.[1]?.CJCount, dateRange: data2?.dateRangeStr },
{ stage: '火车票Upsell', number: data2?.data?.[1]?.OrderCount, dateRange: data2?.dateRangeStr },
{ stage: 'Upsell成行', number: data2?.data?.[1]?.CJCount, dateRange: data2?.dateRangeStr },
]
: [];
return data01.concat(data02);
// return data02.concat(data01);
};
@ -50,6 +51,18 @@ const TrainsUpsell = observer(({ ...props }) => {
compareField: showDiff ? 'dateRange' : false,
// isTransposed: true,
legend: false,
// tooltip: {
// shared: true,
// showMarkers: false,
// showTitle: false,
// },
label: {
position: 'right',
// offsetX: 10,
style: {
fill: '#002c45',
},
},
shape: 'pyramid',
theme: {
colors10: [

@ -1,7 +1,7 @@
import { create } from 'zustand';
import { devtools } from 'zustand/middleware';
import { immer } from 'zustand/middleware/immer';
import { groupsMappedByCode } from '../libs/ht';
import { groupsCTplus, groupsMappedByCode } from '../libs/ht';
import { fetchJSON } from '../utils/request';
import { HT_HOST } from '../config';
import { resultDataCb } from '../components/DateGroupRadio/date';
@ -106,7 +106,7 @@ const initialState = {
DateType: { key: 'applyDate', label: '提交日期' },
WebCode: { key: 'all', label: '所有来源' },
IncludeTickets: { key: '1', label: '含门票' },
DepartmentList: groupsMappedByCode.CTX, // { key: 'All', label: '所有来源' }, //
DepartmentList: groupsCTplus, // groupsMappedByCode.CTX, // { key: 'All', label: '所有来源' }, //
},
searchValuesToSub: {
DateType: 'applyDate',

Loading…
Cancel
Save