mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-13 04:57:28 +00:00
(feature)(webapp) add show case and support multiple selection and deletion of filter conditions (#251)
This commit is contained in:
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user