From f2a937cc817583a038150e9088428b444491f2d1 Mon Sep 17 00:00:00 2001 From: Lei OT Date: Wed, 17 Jul 2024 16:14:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=AE=A2=E5=8D=95=E7=BB=9F=E8=AE=A1:?= =?UTF-8?q?=20=E5=A2=9E=E5=8A=A0`=E7=AB=99=E5=A4=96=E6=B8=A0=E9=81=93`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/ht.js | 1 + src/stores/MeetingData.js | 9 +++++--- src/views/Meeting2024-GH.jsx | 40 +++++++++++++++++++++++++++++------- 3 files changed, 40 insertions(+), 10 deletions(-) diff --git a/src/libs/ht.js b/src/libs/ht.js index c489598..77ebacd 100644 --- a/src/libs/ht.js +++ b/src/libs/ht.js @@ -73,6 +73,7 @@ export const sites = [ { value: '176', key: '176', label: 'GHToB 中国', code: 'GHTOBZG' }, { value: '11,12,20,21,10,18', key: '11,12,20,21,10,18', label: '国际(入境)', code: 'JP,VAC,IT,GM,RU,VC' }, { value: '122,200,211,100,188', key: '122,200,211,100,188', label: '国际(海外)', code: 'VACHW,ITHW,GMHW,RUHW,VCHW' }, + { value: '184', key: '184', label: '站外渠道', code: 'ZWQD' }, { value: '11', key: '11', label: '日语', code: 'JP' }, { value: '12', key: '12', label: '西语', code: 'VAC' }, { value: '122', key: '122', label: '西语海外', code: 'VACHW' }, diff --git a/src/stores/MeetingData.js b/src/stores/MeetingData.js index 6156eda..eac0551 100644 --- a/src/stores/MeetingData.js +++ b/src/stores/MeetingData.js @@ -76,13 +76,14 @@ const rowItem = (filterData) => { const { data: dataByWebCode, summaryMix: summaryByWebCode } = pivotBy(filterData, [['WebCode'], [], []]); const toB = dataByWebCode.filter((ele) => ele.WebCode.toLocaleLowerCase().indexOf('to b') !== -1).reduce((r, c) => r + c.SumOrder, 0); + const external = dataByWebCode.filter((ele) => ele.WebCode.toLocaleLowerCase().indexOf("站外渠道") !== -1).reduce((r, c) => r + c.SumOrder, 0); const filterIsOldC = filterData.filter((ele) => ele.WebCode.toLocaleLowerCase().indexOf('to b') === -1); const { data: dataByIsOld, summaryMix: summaryByIsOld } = pivotBy(filterIsOldC, [['IsOld', 'isCusCommend'], [], []]); const isOld1 = dataByIsOld.filter((ele) => ele.rowLabel.indexOf('1') !== -1).reduce((r, c) => r + c.SumOrder, 0); - const total = LineClass_Origin + LineClass_PPC + toB + isOld1; - return { LineClass_Origin, LineClass_PPC, toB, isOld1, total }; + const total = LineClass_Origin + LineClass_PPC + toB + isOld1 + external; + return { LineClass_Origin, LineClass_PPC, toB, external, isOld1, total }; }; // 日本+: 日本+东亚跨国 const dataJA = (rawData, yearData) => { @@ -226,6 +227,7 @@ class MeetingData { /** 截至今年 - 列 */ const { ordercount1: ColLineClassDataYear } = await getOrderCountByType({ ...param, ...defaultParam, Date1: yearStart, 'DepartmentList': '1,2,28,7,33', 'WebCode': 'All', OrderType: 'LineClass' }); const { ordercountTotal1: ColToBDataYear } = await getOrderCountByType({ ...param, ...defaultParam, Date1: yearStart, 'DepartmentList': '1,2,28,7,33', 'WebCode': 'GHTOBHW,GHTOBZG', OrderType: 'LineClass' }); + const { ordercountTotal1: ColExternalDataYear } = await getOrderCountByType({ ...param, ...defaultParam, Date1: yearStart, 'DepartmentList': '1,2,28,7,33', 'WebCode': 'ZWQD', OrderType: 'LineClass' }); // 老客户 const yearDetail = await getDetailData({ ...param, ...defaultParam, Date1: yearStart, 'DepartmentList': '1,2,28,7,33', 'WebCode': 'All' }); const { isOld1: isOld1Year } = rowItem(yearDetail); @@ -235,6 +237,7 @@ class MeetingData { LineClass_PPC: ColLineClassDataYear.filter((ele) => ele.OrderType.toLocaleLowerCase().indexOf('ppc') !== -1).reduce((r, c) => r + c.OrderCount, 0), toB: ColToBDataYear.OrderCount, isOld1: isOld1Year, + external: ColExternalDataYear.OrderCount, }; const rows = [ @@ -244,7 +247,7 @@ class MeetingData { { key: 'in', label: '印度+', ...dataIN(exceptCHData, exceptCHDataYear) }, { key: 'other', label: '其他GH', ...dataGHOther(exceptCHData, exceptCHDataYear) }, ]; - const columnsSum = ['LineClass_Origin', 'LineClass_PPC', 'toB', 'isOld1', 'total', 'rowYear'].reduce( + const columnsSum = ['LineClass_Origin', 'LineClass_PPC', 'toB', 'external', 'isOld1', 'total', 'rowYear'].reduce( (r, col) => ({ ...r, [col]: rows.reduce((rr, row) => rr + row[col], 0), diff --git a/src/views/Meeting2024-GH.jsx b/src/views/Meeting2024-GH.jsx index 17b9d97..2224a0f 100644 --- a/src/views/Meeting2024-GH.jsx +++ b/src/views/Meeting2024-GH.jsx @@ -1,7 +1,8 @@ import { useContext } from 'react'; import { observer } from 'mobx-react'; import { stores_Context } from '../config'; -import { Table, Row, Col, Divider } from 'antd'; +import { Table, Row, Col, Divider, Tooltip } from 'antd'; +import { InfoCircleOutlined } from '@ant-design/icons'; import SearchForm from '../components/search/SearchForm'; import { TableExportBtn } from './../components/Data'; import { fixTo2Decimals } from './../utils/commons'; @@ -33,8 +34,33 @@ export default observer((props) => { pagination: false, components: { body: { cell: TdCell } }, orderColumns: [ - { key: 'label', title: '市场:', dataIndex: 'label', width: 150, }, - { key: 'LineClass_Origin', title: '网站', dataIndex: 'LineClass_Origin' }, + { key: 'label', title: '市场:', dataIndex: 'label', width: 150 }, + { + key: 'LineClass_Origin', + titleX: '网站', + title: () => ( + <> + 网站{' '} + + + + + ), + dataIndex: 'LineClass_Origin', + }, + { + key: 'external', + titleX: '站外渠道', + title: () => ( + <> + 站外渠道{' '} + + + + + ), + dataIndex: 'external', + }, { key: 'LineClass_PPC', title: 'PPC', dataIndex: 'LineClass_PPC' }, { key: 'toB', title: 'To B', dataIndex: 'toB' }, { key: 'isOld1', title: 'C老客户', dataIndex: 'isOld1' }, @@ -44,15 +70,15 @@ export default observer((props) => { // { key: 'groupsLabel2', title: '进度', dataIndex: 'groupsLabel2' }, ], salesColumns: [ - { key: 'label', title: '顾问:', dataIndex: 'label', width: 150, }, + { key: 'label', title: '顾问:', dataIndex: 'label', width: 150 }, { key: 'CJCount', title: '周成交个数', dataIndex: 'CJCount' }, { key: 'YJLY', title: '周成交毛利(万)', dataIndex: 'YJLY', render: (text) => numberConvert10K(text) }, { key: 'CJCount1', title: '年成交个数', dataIndex: ['rowYear', 'CJCount'] }, - { key: 'YJLY1', title: '年成交毛利(万)', dataIndex: ['rowYear', 'YJLY'], render: (text) => numberConvert10K(text) }, - { key: 'YJLY2', title: '年走团毛利(万)', dataIndex: ['rowYear', 'YJLY2'], render: (text) => numberConvert10K(text) }, + { key: 'YJLY1', title: '年成交毛利(万)', dataIndex: ['rowYear', 'YJLY'], render: (text) => numberConvert10K(text) }, + { key: 'YJLY2', title: '年走团毛利(万)', dataIndex: ['rowYear', 'YJLY2'], render: (text) => numberConvert10K(text) }, ], serviceColumns: [ - { key: 'label', title: '客服:', dataIndex: 'label', width: 150, }, + { key: 'label', title: '客服:', dataIndex: 'label', width: 150 }, { key: 'GroupCount', title: '周走团个数', dataIndex: 'GroupCount' }, { key: 'GoodCount', title: '周好评个数', dataIndex: 'GoodCount' }, { key: 'GroupCount1', title: '年走团个数', dataIndex: ['rowYear', 'GroupCount'] },