|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
import { makeAutoObservable, runInAction, toJS } from 'mobx';
|
|
|
|
|
import * as req from '../utils/request';
|
|
|
|
|
import { isEmpty, sortBy, pick, merge, fixTo2Decimals } from '../utils/commons';
|
|
|
|
|
import { isEmpty, sortBy, pick, merge, fixTo2Decimals, groupBy, sortKeys } from '../utils/commons';
|
|
|
|
|
import { dataFieldAlias } from './../libs/ht';
|
|
|
|
|
|
|
|
|
|
class Trade {
|
|
|
|
@ -17,9 +17,8 @@ class Trade {
|
|
|
|
|
queryData.groupType = queryData?.groupType || 'overview';
|
|
|
|
|
queryData.groupDateType = 'year';
|
|
|
|
|
const multiData = await this.fetchTradeDataAll(queryData);
|
|
|
|
|
console.log(multiData, 'mmmmmmmm', queryData);
|
|
|
|
|
// this.fetchTradeData(queryData).then((json) => {
|
|
|
|
|
const { summary, traditional, biz } = multiData.result1;
|
|
|
|
|
// console.log(JSON.stringify(summary), 'mmmmmmmmmmm');
|
|
|
|
|
const summaryData = {
|
|
|
|
|
loading: false,
|
|
|
|
|
dataSource: [
|
|
|
|
@ -77,26 +76,27 @@ class Trade {
|
|
|
|
|
const kpi = { label: '', value: summary?.[0]?.MLKPIvalue };
|
|
|
|
|
this.summaryData.kpi = kpi;
|
|
|
|
|
});
|
|
|
|
|
// });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 时间轴
|
|
|
|
|
*/
|
|
|
|
|
fetchTradeDataByDate(queryData = {}) {
|
|
|
|
|
async fetchTradeDataByDate(queryData = {}) {
|
|
|
|
|
this.timeData.loading = true;
|
|
|
|
|
queryData = Object.assign({}, this.searchPayloadHome, queryData); // queryData || this.searchPayloadHome;
|
|
|
|
|
queryData.groupType = queryData?.groupType || 'overview';
|
|
|
|
|
Object.assign(queryData, { groupDateType: this.timeLineKey });
|
|
|
|
|
this.fetchTradeData(queryData).then((json) => {
|
|
|
|
|
if (json.errcode === 0) {
|
|
|
|
|
const data = json.result1.sort(sortBy('groupDateVal'));
|
|
|
|
|
runInAction(() => {
|
|
|
|
|
// 标注KPI
|
|
|
|
|
this.timeData.loading = false;
|
|
|
|
|
this.timeData.dataSource = data;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
const multiData = await this.fetchTradeDataAll(queryData);
|
|
|
|
|
const { traditional, biz } = multiData.result1;
|
|
|
|
|
// console.log(biz, 'mmmmmmmm', queryData);
|
|
|
|
|
const dataT = traditional.map(ele => ({...ele, groupsLabel: '传统'}));
|
|
|
|
|
const dataB = biz.map(ele => ({...ele, groupsLabel: '商务'}));
|
|
|
|
|
const mergeData = [].concat(dataT, dataB);
|
|
|
|
|
const dateKeyData = groupBy(mergeData, ele => ele.groupDateVal);
|
|
|
|
|
const sortByDateKey = Object.values(sortKeys(dateKeyData)).reduce( (a, b) => a.concat(b), []);
|
|
|
|
|
runInAction(() => {
|
|
|
|
|
this.timeData.loading = false;
|
|
|
|
|
this.timeData.dataSource = sortByDateKey;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -229,8 +229,8 @@ class Trade {
|
|
|
|
|
groupsData[groupsKey]?.[0] || {}
|
|
|
|
|
);
|
|
|
|
|
}).map(row => ({...row,
|
|
|
|
|
ConfirmRates: fixTo2Decimals((row.ConfirmOrder/row.SumOrder)*100),
|
|
|
|
|
MLKPIrates: fixTo2Decimals((row.SumML/row.MLKPIvalue)*100),
|
|
|
|
|
ConfirmRates: row.SumOrder ? fixTo2Decimals((row.ConfirmOrder/row.SumOrder)*100) : 0,
|
|
|
|
|
MLKPIrates: row.MLKPIvalue ? fixTo2Decimals((row.SumML/row.MLKPIvalue)*100) : 0,
|
|
|
|
|
// todo:
|
|
|
|
|
}));
|
|
|
|
|
return Object.assign(res, { [resKey]: Object.assign({}, mergeItem, { summary }) });
|
|
|
|
|