[feature](webapp) add dsl query fields (#75)

This commit is contained in:
williamhliu
2023-09-12 14:29:26 +08:00
committed by GitHub
parent 7fce9bacc2
commit 8c5c7c2e32
3 changed files with 16 additions and 5 deletions

View File

@@ -82,6 +82,7 @@ export type ChatContextType = {
entity: { alias: string[], id: number }; entity: { alias: string[], id: number };
entityInfo: { dimensions: EntityDimensionType[] }; entityInfo: { dimensions: EntityDimensionType[] };
elementMatches: any[]; elementMatches: any[];
nativeQuery: boolean;
queryMode: string; queryMode: string;
dimensionFilters: FilterItemType[]; dimensionFilters: FilterItemType[];
properties: any; properties: any;

View File

@@ -73,8 +73,11 @@ const ParseTip: React.FC<Props> = ({
properties, properties,
entity, entity,
elementMatches, elementMatches,
nativeQuery,
} = parseInfo || {}; } = parseInfo || {};
const maxOptionCount = queryMode === 'DSL' ? 10 : MAX_OPTION_VALUES_COUNT;
const { startDate, endDate } = dateInfo || {}; const { startDate, endDate } = dateInfo || {};
const dimensionItems = dimensions?.filter(item => item.type === 'DIMENSION'); const dimensionItems = dimensions?.filter(item => item.type === 'DIMENSION');
const metric = metrics?.[0]; const metric = metrics?.[0];
@@ -180,19 +183,26 @@ const ParseTip: React.FC<Props> = ({
</div> </div>
</div> </div>
)} )}
{['METRIC_GROUPBY', 'METRIC_ORDERBY', 'ENTITY_DETAIL'].includes(queryMode) && {['METRIC_GROUPBY', 'METRIC_ORDERBY', 'ENTITY_DETAIL', 'DSL'].includes(queryMode) &&
fields && fields &&
fields.length > 0 && ( fields.length > 0 && (
<div className={`${prefixCls}-tip-item`}> <div className={`${prefixCls}-tip-item`}>
<div className={`${prefixCls}-tip-item-name`}> <div className={`${prefixCls}-tip-item-name`}>
{queryMode === 'ENTITY_DETAIL' ? '查询字段' : '下钻维度'} {queryMode === 'DSL'
? nativeQuery
? '查询字段'
: '下钻维度'
: queryMode === 'ENTITY_DETAIL'
? '查询字段'
: '下钻维度'}
</div> </div>
<div className={itemValueClass}> <div className={itemValueClass}>
{fields {fields
.slice(0, MAX_OPTION_VALUES_COUNT) .slice(0, maxOptionCount)
.map(field => field.name) .map(field => field.name)
.join('、')} .join('、')}
{fields.length > MAX_OPTION_VALUES_COUNT && '...'} {fields.length > maxOptionCount && '...'}
</div> </div>
</div> </div>
)} )}

View File

@@ -74,7 +74,7 @@ const Copilot: React.FC<Props> = ({ globalCopilotFilter, copilotSendMsg }) => {
onClick={onTransferChat} onClick={onTransferChat}
/> />
</div> </div>
<div className={styles.title}></div> <div className={styles.title}>Copilot</div>
</div> </div>
<div className={styles.chat}> <div className={styles.chat}>
<Chat <Chat