fix: 订单数据对比图

feature/2.0-sales-trade
Lei OT 2 years ago
parent 16b1f7f44b
commit 6f4d140336

@ -117,7 +117,8 @@ export const resultDataCb = (dataRaw, dateGroup, { data1, data2 }, fieldMapper,
}));
const parse2 = parseDateType(_data2, dateGroup, fieldMapper);
const parseData2 = parse2.data.map((ele) => ({
[fieldMapper.dateKey]: ele.groupKey,
[fieldMapper.dateKey]: ele[fieldMapper.dateKey],
// [fieldMapper.dateKey]: ele.groupKey,
[fieldMapper.valueKey]: ele.value,
[fieldMapper.seriesKey]: ele[fieldMapper.seriesKey],
groups: _data2[0].groups,
@ -126,8 +127,8 @@ export const resultDataCb = (dataRaw, dateGroup, { data1, data2 }, fieldMapper,
dateGroup: ele[fieldMapper.dateKey],
}));
const useKeys = parseData1.map((ele) => ele[fieldMapper.dateKey]);
const reindecData2 = parseData2.map((ele, index) => ({ ...ele, [fieldMapper.dateKey]: useKeys[index] || `X.${ele[fieldMapper.dateKey]}`, dateKey: ele.dateKey }));
const retData = [].concat(parseData1, reindecData2);
const reindexData2 = parseData2.map((ele, index) => ({ ...ele, [fieldMapper.dateKey]: useKeys[index] || `_${ele[fieldMapper.dateKey]}`, dateKey: ele.dateKey }));
const retData = [].concat(parseData1, reindexData2 );
const avg1 = parse1.avgVal;
// console.log('callback', dateGroup, retData);
cb(dateGroup, retData, avg1);

@ -1,4 +1,4 @@
import { makeAutoObservable, runInAction } from "mobx";
import { makeAutoObservable, runInAction, toJS } from "mobx";
import { CaretUpOutlined, CaretDownOutlined } from "@ant-design/icons";
import { Tag } from "antd";
import * as config from "../config";
@ -121,16 +121,46 @@ class OrdersStore {
(r[v.ApplyDate] || (r[v.ApplyDate] = [])).push(v);
return r;
}, {});
this.orderCountData = Object.keys(groupByDate)
const _data = Object.keys(groupByDate)
.reduce((r, _d) => {
const summaryVal = groupByDate[_d].reduce((rows, row) => rows + row.orderCount, 0);
r.push({ ...groupByDate[_d][0], orderCount: summaryVal });
const xAxisGroup = groupByDate[_d].reduce((a, v) => {
(a[v.groups] || (a[v.groups] = [])).push(v);
return a;
}, {});
Object.keys(xAxisGroup).map((_group) => {
const summaryVal = xAxisGroup[_group].reduce((rows, row) => rows + row.orderCount, 0);
r.push({ ...xAxisGroup[_group][0], orderCount: summaryVal });
return _group;
});
return r;
}, [])
.map((row) => ({ xField: row.ApplyDate, yField: row.orderCount, seriesField: row.groups }));
this.orderCountData = _data;
this.avgLine1 = avg1;
};
summaryAllWebcode = (json) => {
const groupByDate1 = json.ordercount1.reduce((r, v) => {
(r[v.ApplyDate] || (r[v.ApplyDate] = [])).push(v);
return r;
}, {});
const ordercount1 = Object.keys(groupByDate1).reduce((r, _date) => {
const summaryVal = groupByDate1[_date].reduce((rows, row) => rows + row.orderCount, 0);
r.push({ ...groupByDate1[_date][0], orderCount: summaryVal });
return r;
}, []);
const groupByDate2 = json.ordercount2.reduce((r, v) => {
(r[v.ApplyDate] || (r[v.ApplyDate] = [])).push(v);
return r;
}, {});
const ordercount2 = Object.keys(groupByDate2).reduce((r, _date) => {
const summaryVal = groupByDate2[_date].reduce((rows, row) => rows + row.orderCount, 0);
r.push({ ...groupByDate2[_date][0], orderCount: summaryVal });
return r;
}, []);
return { ...json, ordercount1, ordercount2 };
};
parseOrderCount = (orderCountData, dateGroup) => {
resultDataCb(orderCountData, dateGroup, this.orderCountDataMapper, this.orderCountDataFieldMapper, this.onChangeDateGroup);
};
@ -175,9 +205,10 @@ class OrdersStore {
.then(response => response.json())
.then(json => {
runInAction(() => {
this.orderCountDataRaw = json;
const data = this.summaryAllWebcode(json);
this.orderCountDataRaw = data;
// 第一次得到数据
this.parseOrderCount(json, 'day');
this.parseOrderCount(data, 'day');
this.loading = false;
});
})

@ -272,7 +272,7 @@ class Orders extends Component {
tooltip: {
customItems: (originalItems) => {
// process originalItems,
return originalItems.map(ele => ({...ele, name: ele.data?.seriesKey || ele.data?.xField}));
return originalItems.map(ele => ({...ele, name: ele.data?.seriesField || ele.data?.xField}));
},
title: (title, datum) => {
let ret = title;

Loading…
Cancel
Save