From 8cbcdc911c6d39031f4445658061bf7a5f8207ed Mon Sep 17 00:00:00 2001 From: Lei OT Date: Thu, 28 Sep 2023 15:30:52 +0800 Subject: [PATCH] =?UTF-8?q?KPI=20=E8=AE=BE=E7=BD=AE=E5=9B=BD=E5=86=85?= =?UTF-8?q?=E7=9B=AE=E7=9A=84=E5=9C=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/kpi/ObjectPanel.jsx | 2 +- src/components/search/SearchForm.jsx | 19 +++++++++++++++++++ src/libs/ht.js | 5 +++-- src/views/KPI.jsx | 18 ++++++++---------- 4 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/components/kpi/ObjectPanel.jsx b/src/components/kpi/ObjectPanel.jsx index ba7ab01..1d83680 100644 --- a/src/components/kpi/ObjectPanel.jsx +++ b/src/components/kpi/ObjectPanel.jsx @@ -8,7 +8,7 @@ const searchFormItemSet = { 'bu': { shows: ['DateType', 'years', 'HTBusinessUnits'], sort }, 'dept': { shows: ['DateType', 'years', 'DepartmentList'], sort, fieldProps: { DepartmentList: { allowClear: true,isLeaf: true, show_all: false } }, }, 'operator': { shows: ['DateType', 'years', 'DepartmentList', 'operator'], fieldProps: { DepartmentList: { allowClear: true, isLeaf: true }, operator: { param: { } } }, sort }, // is_assign: 1 - 'destination': { shows: ['DateType', 'years', 'destination'], sort }, + 'destination': { shows: ['DateType', 'years', 'city'], sort }, // 'country', , 'globalCity' 'country': { shows: ['DateType', 'years', 'country'], sort }, }; diff --git a/src/components/search/SearchForm.jsx b/src/components/search/SearchForm.jsx index e8051c4..e6bac4f 100644 --- a/src/components/search/SearchForm.jsx +++ b/src/components/search/SearchForm.jsx @@ -142,6 +142,11 @@ export default observer((props) => { transform: (value) => value?.key || '', default: '', }, + 'city': { + key: 'city', + transform: (value) => value?.key || '', + default: '', + }, }; let dest = {}; const { applyDate, applyDate2, year, yearDiff, ...omittedValue } = values; @@ -327,6 +332,20 @@ function getFields(props) { ), + item( + 'city', + 99, + + + + ), + item( + 'globalCity', + 99, + + + + ), ]; baseChildren = baseChildren .map((x) => { diff --git a/src/libs/ht.js b/src/libs/ht.js index 4d44be7..75d70d0 100644 --- a/src/libs/ht.js +++ b/src/libs/ht.js @@ -136,8 +136,9 @@ export const KPIObjects = [ { key: 'dept', value: 'dept', label: '小组', data: leafGroup }, { key: 'du', value: 'du', label: '销售小组', data: deptUnits }, { key: 'operator', value: 'operator', label: '顾问' }, - { key: 'destination', value: 'destination', label: '目的地' }, - { key: 'country', value: 'country', label: '国籍' }, + { key: 'destination', value: 'destination', label: '目的地 城市' }, + // { key: 'destination', value: 'destination', label: '目的地 国籍' }, + { key: 'country', value: 'country', label: '客源 国籍' }, { key: 'guestgrouptype', value: 'guestgrouptype', diff --git a/src/views/KPI.jsx b/src/views/KPI.jsx index 7ab7e3d..294358e 100644 --- a/src/views/KPI.jsx +++ b/src/views/KPI.jsx @@ -2,7 +2,7 @@ import { useContext, useEffect, useState } from 'react'; import { stores_Context } from './../config'; import { observer } from 'mobx-react'; import { Row, Col, Tabs, Spin } from 'antd'; -import { flush, isEmpty, objectMapper } from './../utils/commons'; +import { flush, isEmpty, objectMapper, pick } from './../utils/commons'; import { KPIObjects } from './../libs/ht'; import ObjectPanel from '../components/kpi/ObjectPanel'; import OverviewPanel from './../components/kpi/OverviewPanel'; @@ -19,12 +19,12 @@ const objectComponents = { 'country': ObjectPanel, }; const objectFilterKey = { - 'bu': 'HTBusinessUnits', - 'dept': 'DepartmentList', + 'bu': ['HTBusinessUnits'], + 'dept': ['DepartmentList'], // 'du': 'du', // 'operator': 'operator', - // 'destination': 'destination', - 'country': 'country', + 'destination': ['city', ], + 'country': ['country'], }; export default observer((props) => { const { KPIStore, DictDataStore, date_picker_store: searchFormStore } = useContext(stores_Context); @@ -80,11 +80,9 @@ export default observer((props) => { // KPIStore.getList(getkpiParam).then((data) => { // // setDataSource(data); if (objectFilterKey?.[curObject]) { - const selectItem = searchFormStore.formValues[objectFilterKey[curObject]]; - if (selectItem) { - selectItem.value = selectItem.key; - } - setRetObjects(flush([selectItem])); + const selectItems = Object.values(pick(searchFormStore.formValues, objectFilterKey[curObject])); + const _selectItems = flush(selectItems).map((ele) => ({ ...ele, value: ele.key })); + setRetObjects(_selectItems); } // }); };