fix: 首页: TOP: 成交率

feature/person-num
Lei OT 2 years ago
parent 432d679517
commit 1c2c7c28c6

@ -133,7 +133,7 @@ export default observer((props) => {
}, },
yAxis: { yAxis: {
type: 'linear', type: 'linear',
tickCount: 4, // tickCount: 4,
min: 0, min: 0,
position: 'right', position: 'right',
line: null, line: null,
@ -171,7 +171,7 @@ export default observer((props) => {
position: 'left', position: 'left',
// min: -calcAxisC, // min: -calcAxisC,
// max: calcAxisC/4, // max: calcAxisC/4,
min: -2000, min: -3000,
max: 250, max: 250,
tickCount: 4, tickCount: 4,
}, },

@ -175,10 +175,8 @@ class Trade {
Object.assign(queryData, { groupType: orderType, groupDateType: 'year' }); Object.assign(queryData, { groupType: orderType, groupDateType: 'year' });
const multiData = await this.fetchTradeDataAll(cloneDeep(queryData)); const multiData = await this.fetchTradeDataAll(cloneDeep(queryData));
const { traditional, biz, summary } = multiData.result1; const { summary } = multiData.result1;
// console.log(biz, orderType, 'mmmmmmmm', queryData, multiData); // console.log(orderType, summary, 'mmmmmmmm', queryData, multiData);
// const mergeData = [].concat(traditional, biz);
// const dateKeyData = groupBy(mergeData, ele => ele.groupDateVal);
runInAction(() => { runInAction(() => {
this.topData[orderType].loading = false; this.topData[orderType].loading = false;
this.topData[orderType].dataSource = summary; this.topData[orderType].dataSource = summary;
@ -285,8 +283,8 @@ export const parseMergeItem = ({traditional, biz}) => {
}; };
const mergeRes = [].concat(traditional[resKey], biz[resKey]); const mergeRes = [].concat(traditional[resKey], biz[resKey]);
const groupsData = mergeRes.reduce((r, v) => { const groupsData = mergeRes.reduce((r, v) => {
if (v.groupsLabel ) { if (v.groupsKey ) {
(r[v.groupsLabel] || (r[v.groupsLabel] = [])).push(v); (r[v.groupsKey] || (r[v.groupsKey] = [])).push(v);
} }
return r; return r;
}, {}); }, {});
@ -311,15 +309,15 @@ export const parseMergeItem = ({traditional, biz}) => {
// 按对象汇总 // 按对象汇总
const TMapped = traditional[resKey].reduce((r, v) => ({...r, [v.groupsKey]: v}), {}); const TMapped = traditional[resKey].reduce((r, v) => ({...r, [v.groupsKey]: v}), {});
const BMapped = biz[resKey].reduce((r, v) => ({...r, [v.groupsKey]: v}), {}); const BMapped = biz[resKey].reduce((r, v) => ({...r, [v.groupsKey]: v}), {});
const summary = Object.keys(groupsData).map(groupsLabel => { const summary = Object.keys(groupsData).map(groupsKey => {
const _groupsKey = groupsData[groupsLabel]?.[0]?.groupsKey || ''; const _groupsKey = groupsKey; // groupsData[groupsKey]?.[0]?.groupsKey || '';
return ['ConfirmOrder', 'SumOrder', 'SumML', 'transactions', 'SumPersonNum'].reduce( return ['ConfirmOrder', 'SumOrder', 'SumML', 'transactions', 'SumPersonNum'].reduce(
(r, skey) => ({ ...r, (r, skey) => ({ ...r,
[skey]: groupsData[groupsLabel].reduce((a, c) => a + c[skey], 0), [skey]: groupsData[groupsKey].reduce((a, c) => a + c[skey], 0),
// [`${skey}_arr`]: groupsData[groupsLabel].map(sv => sv[skey]), // [`${skey}_arr`]: groupsData[groupsKey].map(sv => sv[skey]),
[`${skey}_arr`]: [ _groupsKey ? TMapped?.[_groupsKey]?.[skey] || 0 : 0, _groupsKey ? BMapped?.[_groupsKey]?.[skey] || 0 : 0,], [`${skey}_arr`]: [ _groupsKey ? TMapped?.[_groupsKey]?.[skey] || 0 : 0, _groupsKey ? BMapped?.[_groupsKey]?.[skey] || 0 : 0,],
}), }),
groupsData[groupsLabel]?.[0] || {} groupsData[groupsKey]?.[0] || {}
); );
}).map(row => ({...row, }).map(row => ({...row,
ConfirmRates: row.SumOrder ? fixTo2Decimals((row.ConfirmOrder/row.SumOrder)*100) : 0, ConfirmRates: row.SumOrder ? fixTo2Decimals((row.ConfirmOrder/row.SumOrder)*100) : 0,

@ -3,12 +3,9 @@ import { observer } from 'mobx-react';
import { Row, Col, Spin, Space, Radio, Table } from 'antd'; import { Row, Col, Spin, Space, Radio, Table } from 'antd';
import { CheckCircleTwoTone, MoneyCollectTwoTone, FlagTwoTone, SmileTwoTone } from '@ant-design/icons'; import { CheckCircleTwoTone, MoneyCollectTwoTone, FlagTwoTone, SmileTwoTone } from '@ant-design/icons';
import { stores_Context } from '../config'; import { stores_Context } from '../config';
import { useNavigate } from 'react-router-dom';
import StatisticCard from '../components/StatisticCard';
import StatisticCard2 from '../components/StatisticCard2'; import StatisticCard2 from '../components/StatisticCard2';
import Bullet from '../components/BulletWithSort'; import Bullet from '../components/BulletWithSort';
import Waterfall from '../components/Waterfall'; import Waterfall from '../components/Waterfall';
import LineWithKPI from '../components/LineWithKPI';
import MixTBWithKPI from './../components/MixTBWithKPI'; import MixTBWithKPI from './../components/MixTBWithKPI';
import Donut from './../components/Donut'; import Donut from './../components/Donut';
import DataFieldRadio from '../components/DataFieldRadio'; import DataFieldRadio from '../components/DataFieldRadio';
@ -16,7 +13,6 @@ import { datePartOptions } from './../components/DateGroupRadio/date';
import SearchForm from './../components/search/SearchForm'; import SearchForm from './../components/search/SearchForm';
import { empty, cloneDeep, isEmpty } from './../utils/commons'; import { empty, cloneDeep, isEmpty } from './../utils/commons';
import { dataFieldAlias } from './../libs/ht'; import { dataFieldAlias } from './../libs/ht';
import { Line } from '@ant-design/charts';
import './home.css'; import './home.css';
const topSeries = [ const topSeries = [

Loading…
Cancel
Save