(feature)(webapp) add show case and support multiple selection and deletion of filter conditions (#251)

This commit is contained in:
williamhliu
2023-10-18 09:56:35 +08:00
committed by GitHub
parent 8d81f63e08
commit 36052cb4f2
36 changed files with 492 additions and 134 deletions

View File

@@ -59,11 +59,9 @@ const ChatMsg: React.FC<Props> = ({ queryId, data, chartIndex, triggerResize })
const metricFields = columns.filter(item => item.showType === 'NUMBER');
const isDslMetricCard =
queryMode === 'DSL' && singleData && metricFields.length === 1 && columns.length === 1;
queryMode === 'LLM_S2QL' && singleData && metricFields.length === 1 && columns.length === 1;
const isMetricCard =
(queryMode.includes('METRIC') || isDslMetricCard) &&
(singleData || chatContext?.dateInfo?.startDate === chatContext?.dateInfo?.endDate);
const isMetricCard = (queryMode.includes('METRIC') || isDslMetricCard) && singleData;
const isText =
columns.length === 1 &&
@@ -95,24 +93,27 @@ const ChatMsg: React.FC<Props> = ({ queryId, data, chartIndex, triggerResize })
if (isTable) {
return <Table data={{ ...data, queryColumns: columns, queryResults: dataSource }} />;
}
if (dateField && metricFields.length > 0) {
if (!dataSource.every(item => item[dateField.nameEn] === dataSource[0][dateField.nameEn])) {
return (
<MetricTrend
data={{
...data,
queryColumns: columns,
queryResults: dataSource,
}}
loading={loading}
chartIndex={chartIndex}
triggerResize={triggerResize}
activeMetricField={activeMetricField}
currentDateOption={currentDateOption}
onSelectDateOption={selectDateOption}
/>
);
}
if (
dateField &&
metricFields.length > 0 &&
!dataSource.every(item => item[dateField.nameEn] === dataSource[0][dateField.nameEn])
) {
return (
<MetricTrend
data={{
...data,
queryColumns: columns,
queryResults: dataSource,
}}
loading={loading}
chartIndex={chartIndex}
triggerResize={triggerResize}
activeMetricField={activeMetricField}
drillDownDimension={drillDownDimension}
currentDateOption={currentDateOption}
onSelectDateOption={selectDateOption}
/>
);
}
if (categoryField?.length > 0 && metricFields?.length > 0) {
return (
@@ -209,7 +210,11 @@ const ChatMsg: React.FC<Props> = ({ queryId, data, chartIndex, triggerResize })
<div>
{getMsgContent()}
{(isMultipleMetric || existDrillDownDimension) && (
<div className={`${prefixCls}-bottom-tools`}>
<div
className={`${prefixCls}-bottom-tools ${
isMetricCard ? `${prefixCls}-metric-card-tools` : ''
}`}
>
{isMultipleMetric && (
<MetricOptions
metrics={chatContext.metrics}
@@ -221,6 +226,7 @@ const ChatMsg: React.FC<Props> = ({ queryId, data, chartIndex, triggerResize })
{existDrillDownDimension && (
<DrillDownDimensions
modelId={chatContext.modelId}
metricId={activeMetricField?.id || defaultMetricField?.id}
drillDownDimension={drillDownDimension}
originDimensions={chatContext.dimensions}
dimensionFilters={chatContext.dimensionFilters}