From 6ea675f4533d6978947fecd2b78ed90fe8b05c1e Mon Sep 17 00:00:00 2001 From: Lei OT Date: Fri, 17 Nov 2023 11:27:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=9C=8B=E6=9D=BF:=20=E6=80=BB?= =?UTF-8?q?=E9=A2=9D=E5=B9=B4=E4=BB=BD=E5=AF=B9=E6=AF=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/StatisticCard2.jsx | 4 +- src/stores/Trade.js | 102 ++++++++++++++++++------------ 2 files changed, 65 insertions(+), 41 deletions(-) diff --git a/src/components/StatisticCard2.jsx b/src/components/StatisticCard2.jsx index 7ef05ba..cc764ad 100644 --- a/src/components/StatisticCard2.jsx +++ b/src/components/StatisticCard2.jsx @@ -72,12 +72,12 @@ export default observer((props) => { ...extProps, value: props.valueSuffix ? `${props.value} ${props.valueSuffix}` : props.value, prefix: , - description: ( + description: diff ? ( {diff.VSrate && 0 ? 'up' : 'down'} />} - ), + ) : null, }} chart={showMulti ? : false} footer={null} diff --git a/src/stores/Trade.js b/src/stores/Trade.js index 48f5c96..05e3c17 100644 --- a/src/stores/Trade.js +++ b/src/stores/Trade.js @@ -19,8 +19,6 @@ class Trade { const curQueryData = cloneDeep(queryData); curQueryData.groupType = curQueryData?.groupType || 'overview'; curQueryData.groupDateType = 'year'; - curQueryData.DateDiff1 = moment(curQueryData.Date1).subtract(1, 'year').format(DATE_FORMAT); - curQueryData.DateDiff2 = moment(curQueryData.Date2).subtract(1, 'year').format(SMALL_DATETIME_FORMAT); const multiData = await this.fetchTradeDataAll((curQueryData)); const { summary, traditional, biz } = multiData.result1; const { summary: summary2, traditional: traditional2, biz: biz2 } = multiData.result2; @@ -29,9 +27,10 @@ class Trade { loading: false, dataSource: [ { - title: '成团',col: 6, + title: '成团', + col: 6, value: summary?.[0]?.ConfirmOrder, - originVal: (summary?.[0]?.ConfirmOrder || 0), + originVal: summary?.[0]?.ConfirmOrder || 0, valueSuffix: undefined, // valueSuffix: summary?.[0]?.ConfirmRates ? ` / ${summary?.[0]?.ConfirmRates} %` : undefined, // VSrate: summary?.[0]?.ConfirmOrderrate, @@ -42,59 +41,83 @@ class Trade { kpiVal: summary?.[0]?.[dataFieldAlias.ConfirmOrder.nestkey.v], traditional: { title: '传统', value: traditional?.[0]?.ConfirmOrder }, biz: { title: '商务', value: biz?.[0]?.ConfirmOrder }, - diff: { - label: summary2?.[0]?.groupDateVal || '对比', - value: summary2?.[0]?.ConfirmOrder || 0, - VSrate: summary2?.[0]?.ConfirmOrder ? fixTo2Decimals((summary?.[0]?.ConfirmOrder - summary2?.[0]?.ConfirmOrder)/summary2?.[0]?.ConfirmOrder*100) : null , - }, + ...(summary2?.[0] + ? { + diff: { + label: summary2[0]?.groupDateVal || '对比', + value: summary2[0]?.ConfirmOrder || 0, + VSrate: summary2[0]?.ConfirmOrder ? fixTo2Decimals(((summary[0]?.ConfirmOrder - summary2[0]?.ConfirmOrder) / summary2[0]?.ConfirmOrder) * 100) : null, + }, + } + : {}), }, { - title: '毛利',col: 8, - originVal: (summary?.[0]?.SumML || 0), - value: dataFieldAlias.SumML.formatter(summary?.[0]?.SumML || 0) + '=' + dataFieldAlias.SumML.formatter((traditional?.[0]?.SumML || 0)) + '+' + dataFieldAlias.SumML.formatter((biz?.[0]?.SumML || 0)), + title: '毛利', + col: 8, + originVal: summary?.[0]?.SumML || 0, + value: + dataFieldAlias.SumML.formatter(summary?.[0]?.SumML || 0) + + '=' + + dataFieldAlias.SumML.formatter(traditional?.[0]?.SumML || 0) + + '+' + + dataFieldAlias.SumML.formatter(biz?.[0]?.SumML || 0), KPIrate: summary?.[0]?.[dataFieldAlias.SumML.nestkey.p], hasKPI: false, childrenVisible: true, kpiVal: summary?.[0]?.[dataFieldAlias.SumML.nestkey.v], - traditional: { title: '传统', value: (traditional?.[0]?.SumML || 0) }, - biz: { title: '商务', value: (biz?.[0]?.SumML || 0) }, - diff: { - label: summary2?.[0]?.groupDateVal || '对比', - value: dataFieldAlias.SumML.formatter(summary2?.[0]?.SumML || 0), - VSrate: summary2?.[0]?.SumML ? fixTo2Decimals((summary?.[0]?.SumML - summary2?.[0]?.SumML)/summary2?.[0]?.SumML*100) : null , - }, + traditional: { title: '传统', value: traditional?.[0]?.SumML || 0 }, + biz: { title: '商务', value: biz?.[0]?.SumML || 0 }, + ...(summary2?.[0] + ? { + diff: { + label: summary2[0]?.groupDateVal || '对比', + value: dataFieldAlias.SumML.formatter(summary2[0]?.SumML || 0), + VSrate: summary2[0]?.SumML ? fixTo2Decimals(((summary?.[0]?.SumML - summary2[0]?.SumML) / summary2[0]?.SumML) * 100) : null, + }, + } + : {}), }, { - title: '完成率',col: 5, - originVal: (summary?.[0]?.[dataFieldAlias.SumML.nestkey.p] || 0), + title: '完成率', + col: 5, + originVal: summary?.[0]?.[dataFieldAlias.SumML.nestkey.p] || 0, value: `${summary?.[0]?.[dataFieldAlias.SumML.nestkey.p] || ''}%`, hasKPI: false, childrenVisible: false, - kpiVal: 0 , // summary?.[0]?.[dataFieldAlias.SumML.nestkey.p], - traditional: { title: '传统', value: traditional?.[0]?.[dataFieldAlias.SumML.nestkey.p] || 0, }, - biz: { title: '商务', value: biz?.[0]?.[dataFieldAlias.SumML.nestkey.p] || 0, }, - diff: { - label: summary2?.[0]?.groupDateVal || '对比', - value: `${summary2?.[0]?.[dataFieldAlias.SumML.nestkey.p] || '-'}%`, - VSrate: null , - }, + kpiVal: 0, // summary?.[0]?.[dataFieldAlias.SumML.nestkey.p], + traditional: { title: '传统', value: traditional?.[0]?.[dataFieldAlias.SumML.nestkey.p] || 0 }, + biz: { title: '商务', value: biz?.[0]?.[dataFieldAlias.SumML.nestkey.p] || 0 }, + ...(summary2?.[0] + ? { + diff: { + label: summary2[0]?.groupDateVal || '对比', + value: `${summary2[0]?.[dataFieldAlias.SumML.nestkey.p] || '-'}%`, + VSrate: null, + }, + } + : {}), }, { - title: '人数', col: 5, - originVal: (summary?.[0]?.SumPersonNum || 0), + title: '人数', + col: 5, + originVal: summary?.[0]?.SumPersonNum || 0, value: summary?.[0]?.SumPersonNum, // VSrate: summary?.[0]?.SumPersonNumrate, // KPIrate: summary?.[0]?.[dataFieldAlias.SumPersonNum.nestkey.p], hasKPI: false, // // !isEmpty(summary?.[0]?.[dataFieldAlias.SumPersonNum.nestkey.p]),, childrenVisible: true, // kpiVal: summary?.[0]?.[dataFieldAlias.SumPersonNum.nestkey.v], - traditional: { title: '传统', value: traditional?.[0]?.SumPersonNum, }, - biz: { title: '商务', value: biz?.[0]?.SumPersonNum, }, - diff: { - label: summary2?.[0]?.groupDateVal || '对比', - value: summary2?.[0]?.SumPersonNum, - VSrate: summary2?.[0]?.SumPersonNum ? fixTo2Decimals((summary?.[0]?.SumPersonNum - summary2?.[0]?.SumPersonNum)/summary2?.[0]?.SumPersonNum*100) : null , - }, + traditional: { title: '传统', value: traditional?.[0]?.SumPersonNum }, + biz: { title: '商务', value: biz?.[0]?.SumPersonNum }, + ...(summary2?.[0] + ? { + diff: { + label: summary2[0]?.groupDateVal || '对比', + value: summary2[0]?.SumPersonNum || '', + VSrate: summary2[0]?.SumPersonNum ? fixTo2Decimals(((summary?.[0]?.SumPersonNum - summary2[0]?.SumPersonNum) / summary2[0]?.SumPersonNum) * 100) : null, + }, + } + : {}), }, ], }; @@ -115,7 +138,8 @@ class Trade { Object.assign(queryData, { groupDateType: this.timeLineKey }); const multiData = await this.fetchTradeDataAll(cloneDeep(queryData)); const { traditional, biz } = multiData.result1; - // console.log(biz, 'mmmmmmmm', queryData, multiData); + const { summary: summary2, traditional: traditional2, biz: biz2 } = multiData.result2; + console.log(biz, 'mmmmmmmm', queryData, multiData); const mergeData = [].concat(traditional, biz); const dateKeyData = groupBy(mergeData, ele => ele.groupDateVal); const sortByDateKey = Object.values(sortKeys(dateKeyData)).reduce( (a, b) => a.concat(b), []);