From 8c5c7c2e3215f4540a7099e42108d1730dbf0ee6 Mon Sep 17 00:00:00 2001 From: williamhliu <137068196+williamhliu@users.noreply.github.com> Date: Tue, 12 Sep 2023 14:29:26 +0800 Subject: [PATCH] [feature](webapp) add dsl query fields (#75) --- webapp/packages/chat-sdk/src/common/type.ts | 1 + .../src/components/ChatItem/ParseTip.tsx | 18 ++++++++++++++---- .../supersonic-fe/src/pages/Copilot/index.tsx | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/webapp/packages/chat-sdk/src/common/type.ts b/webapp/packages/chat-sdk/src/common/type.ts index 48c54896f..27cd0ad2d 100644 --- a/webapp/packages/chat-sdk/src/common/type.ts +++ b/webapp/packages/chat-sdk/src/common/type.ts @@ -82,6 +82,7 @@ export type ChatContextType = { entity: { alias: string[], id: number }; entityInfo: { dimensions: EntityDimensionType[] }; elementMatches: any[]; + nativeQuery: boolean; queryMode: string; dimensionFilters: FilterItemType[]; properties: any; diff --git a/webapp/packages/chat-sdk/src/components/ChatItem/ParseTip.tsx b/webapp/packages/chat-sdk/src/components/ChatItem/ParseTip.tsx index 4255f215f..e43eba214 100644 --- a/webapp/packages/chat-sdk/src/components/ChatItem/ParseTip.tsx +++ b/webapp/packages/chat-sdk/src/components/ChatItem/ParseTip.tsx @@ -73,8 +73,11 @@ const ParseTip: React.FC = ({ properties, entity, elementMatches, + nativeQuery, } = parseInfo || {}; + const maxOptionCount = queryMode === 'DSL' ? 10 : MAX_OPTION_VALUES_COUNT; + const { startDate, endDate } = dateInfo || {}; const dimensionItems = dimensions?.filter(item => item.type === 'DIMENSION'); const metric = metrics?.[0]; @@ -180,19 +183,26 @@ const ParseTip: React.FC = ({ )} - {['METRIC_GROUPBY', 'METRIC_ORDERBY', 'ENTITY_DETAIL'].includes(queryMode) && + {['METRIC_GROUPBY', 'METRIC_ORDERBY', 'ENTITY_DETAIL', 'DSL'].includes(queryMode) && fields && fields.length > 0 && (
- {queryMode === 'ENTITY_DETAIL' ? '查询字段' : '下钻维度'}: + {queryMode === 'DSL' + ? nativeQuery + ? '查询字段' + : '下钻维度' + : queryMode === 'ENTITY_DETAIL' + ? '查询字段' + : '下钻维度'} + :
{fields - .slice(0, MAX_OPTION_VALUES_COUNT) + .slice(0, maxOptionCount) .map(field => field.name) .join('、')} - {fields.length > MAX_OPTION_VALUES_COUNT && '...'} + {fields.length > maxOptionCount && '...'}
)} diff --git a/webapp/packages/supersonic-fe/src/pages/Copilot/index.tsx b/webapp/packages/supersonic-fe/src/pages/Copilot/index.tsx index e702520f6..f72756777 100644 --- a/webapp/packages/supersonic-fe/src/pages/Copilot/index.tsx +++ b/webapp/packages/supersonic-fe/src/pages/Copilot/index.tsx @@ -74,7 +74,7 @@ const Copilot: React.FC = ({ globalCopilotFilter, copilotSendMsg }) => { onClick={onTransferChat} /> -
内容库问答
+
Copilot