From ae07f7593b91401ebf1ec18c88c7760f79ad44ab Mon Sep 17 00:00:00 2001 From: Lei OT Date: Thu, 29 Jan 2026 20:43:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A4=96=E8=81=94=E4=B8=9A=E7=BB=A9?= =?UTF-8?q?=C3=97=E9=A1=B5=E9=9D=A2=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.jsx | 7 + src/components/search/LineClassSeletor.jsx | 23 ++ src/components/search/SearchForm.jsx | 19 +- src/libs/ht.js | 37 +++ src/views/reports/MeetingSales.jsx | 273 +++++++++++++++++++++ src/zustand/SalesInsight.js | 122 +++++++++ 6 files changed, 479 insertions(+), 2 deletions(-) create mode 100644 src/components/search/LineClassSeletor.jsx create mode 100644 src/views/reports/MeetingSales.jsx create mode 100644 src/zustand/SalesInsight.js diff --git a/src/App.jsx b/src/App.jsx index 7e0c7ad..0db8082 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -60,6 +60,7 @@ import TrainsUpsell from './views/biz/reports/TrainsUpsell'; import HostCaseReport from './views/HostCaseReport'; import ToBOrder from './views/toB/ToBOrder'; import ToBOrderSub from './views/toB/ToBOrderSub'; +import MeetingSales from './views/reports/MeetingSales'; const App = () => { const { Content, Footer, Sider, } = Layout; @@ -83,6 +84,10 @@ const App = () => { key: 'meeting-2024-GH', label: GH区域数据, // GH例会数据-2024 }, + { + key: 'sales-insight', + label: 顾问业绩, + }, ], }, { @@ -304,6 +309,8 @@ const App = () => { } /> } /> } /> + + } /> diff --git a/src/components/search/LineClassSeletor.jsx b/src/components/search/LineClassSeletor.jsx new file mode 100644 index 0000000..02e16dc --- /dev/null +++ b/src/components/search/LineClassSeletor.jsx @@ -0,0 +1,23 @@ +import React from 'react'; +import { Select } from 'antd'; +import { observer } from 'mobx-react'; +import { lineClass } from './../../libs/ht'; + +export const LineClassSelector = ({ value, onChange, ...props }) => { + return ( +
+