mirror of
https://github.com/tencentmusic/supersonic.git
synced 2026-04-29 04:14:20 +08:00
Compare commits
5 Commits
c6e10b71de
...
9ff9acdee5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9ff9acdee5 | ||
|
|
c2adb3314d | ||
|
|
a5051c7225 | ||
|
|
74f4732401 | ||
|
|
2003c32c96 |
@@ -48,12 +48,13 @@ const MetricTrend: React.FC<Props> = ({
|
||||
const { queryColumns, queryResults, aggregateInfo, entityInfo, chatContext } = data;
|
||||
const [chartType, setChartType] = useState('line');
|
||||
|
||||
const dateField: any = queryColumns?.find(
|
||||
const dateField = queryColumns?.find(
|
||||
(column: any) => column.showType === 'DATE' || column.type === 'DATE'
|
||||
);
|
||||
const dateColumnName = dateField?.bizName || '';
|
||||
const categoryColumnName =
|
||||
queryColumns?.find((column: any) => column.showType === 'CATEGORY')?.bizName || '';
|
||||
let categoryColumnName =
|
||||
queryColumns?.find((column: any) => column.showType === 'CATEGORY')?.bizName || '';
|
||||
categoryColumnName = categoryColumnName === dateColumnName ? '' : categoryColumnName;
|
||||
const metricFields = queryColumns?.filter((column: any) => column.showType === 'NUMBER');
|
||||
|
||||
const currentMetricField = queryColumns?.find((column: any) => column.showType === 'NUMBER');
|
||||
@@ -80,11 +81,11 @@ const MetricTrend: React.FC<Props> = ({
|
||||
<MetricInfo aggregateInfo={aggregateInfo} currentMetricField={currentMetricField} />
|
||||
)}
|
||||
<div className={`${prefixCls}-select-options`}>
|
||||
<DateOptions
|
||||
chatContext={chatContext}
|
||||
currentDateOption={currentDateOption}
|
||||
onSelectDateOption={onSelectDateOption}
|
||||
/>
|
||||
{/*<DateOptions*/}
|
||||
{/* chatContext={chatContext}*/}
|
||||
{/* currentDateOption={currentDateOption}*/}
|
||||
{/* onSelectDateOption={onSelectDateOption}*/}
|
||||
{/*/>*/}
|
||||
<div>
|
||||
<Select
|
||||
defaultValue="line"
|
||||
|
||||
@@ -8,7 +8,7 @@ import { ISemantic } from '../../data';
|
||||
import {
|
||||
AGG_OPTIONS,
|
||||
DATE_FORMATTER,
|
||||
DATE_OPTIONS,
|
||||
// DATE_OPTIONS,
|
||||
DIM_OPTIONS,
|
||||
EnumDataSourceType,
|
||||
EnumModelDataType,
|
||||
@@ -275,7 +275,7 @@ const ModelFieldForm: React.FC<Props> = ({
|
||||
}
|
||||
}
|
||||
if ([EnumDataSourceType.TIME, EnumDataSourceType.PARTITION_TIME].includes(type)) {
|
||||
const { dateFormat, timeGranularity } = record;
|
||||
const { dateFormat } = record;
|
||||
const dateFormatterOptions =
|
||||
type === EnumDataSourceType.PARTITION_TIME ? PARTITION_TIME_FORMATTER : DATE_FORMATTER;
|
||||
|
||||
@@ -302,25 +302,25 @@ const ModelFieldForm: React.FC<Props> = ({
|
||||
<ExclamationCircleOutlined />
|
||||
</Tooltip>
|
||||
</Space>
|
||||
<Space>
|
||||
<span>时间粒度:</span>
|
||||
<Select
|
||||
placeholder="时间粒度"
|
||||
value={timeGranularity === '' ? undefined : timeGranularity}
|
||||
onChange={(value) => {
|
||||
handleFieldChange(record, 'timeGranularity', value);
|
||||
}}
|
||||
defaultValue={timeGranularity === '' ? undefined : DATE_OPTIONS[0]}
|
||||
style={{ minWidth: 180 }}
|
||||
allowClear
|
||||
>
|
||||
{DATE_OPTIONS.map((item) => (
|
||||
<Option key={item} value={item}>
|
||||
{item}
|
||||
</Option>
|
||||
))}
|
||||
</Select>
|
||||
</Space>
|
||||
{/*<Space>*/}
|
||||
{/* <span>时间粒度:</span>*/}
|
||||
{/* <Select*/}
|
||||
{/* placeholder="时间粒度"*/}
|
||||
{/* value={timeGranularity === '' ? undefined : timeGranularity}*/}
|
||||
{/* onChange={(value) => {*/}
|
||||
{/* handleFieldChange(record, 'timeGranularity', value);*/}
|
||||
{/* }}*/}
|
||||
{/* defaultValue={timeGranularity === '' ? undefined : DATE_OPTIONS[0]}*/}
|
||||
{/* style={{ minWidth: 180 }}*/}
|
||||
{/* allowClear*/}
|
||||
{/* >*/}
|
||||
{/* {DATE_OPTIONS.map((item) => (*/}
|
||||
{/* <Option key={item} value={item}>*/}
|
||||
{/* {item}*/}
|
||||
{/* </Option>*/}
|
||||
{/* ))}*/}
|
||||
{/* </Select>*/}
|
||||
{/*</Space>*/}
|
||||
</Space>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ import { isFunction } from 'lodash';
|
||||
import FullScreen from '@/components/FullScreen';
|
||||
import SqlEditor from '@/components/SqlEditor';
|
||||
import type { TaskResultItem, TaskResultColumn } from '../data';
|
||||
import { executeSql, listColumnsBySql } from '@/pages/SemanticModel/service';
|
||||
import { executeSql } from '@/pages/SemanticModel/service';
|
||||
|
||||
import SqlParams from './SqlParams';
|
||||
import styles from '../style.less';
|
||||
@@ -248,19 +248,12 @@ const SqlDetail: React.FC<IProps> = ({
|
||||
id: currentDatabaseItem.key,
|
||||
sqlVariables: sqlParams,
|
||||
});
|
||||
|
||||
const { code: getColumnCode, data: getColumnData } = await listColumnsBySql({
|
||||
sql: value,
|
||||
databaseId: currentDatabaseItem.key,
|
||||
});
|
||||
|
||||
setResultTableLoading(false);
|
||||
if (code === 200 && getColumnCode === 200) {
|
||||
const columnData = getColumnData.map((item) => {
|
||||
if (code === 200) {
|
||||
const columnData = (data.columns || []).map((item: any) => {
|
||||
return {
|
||||
...item,
|
||||
nameEn: item.columnName,
|
||||
type: item.dataType,
|
||||
columnName: item.nameEn,
|
||||
};
|
||||
});
|
||||
fetchTaskResult(data, columnData);
|
||||
|
||||
@@ -373,12 +373,6 @@ export async function executeSql(params: ExcuteSqlParams) {
|
||||
return request.post(`${process.env.API_BASE_URL}database/executeSql`, { data });
|
||||
}
|
||||
|
||||
export async function listColumnsBySql(data: { databaseId: number; sql: string }) {
|
||||
return request.post(`${process.env.API_BASE_URL}database/listColumnsBySql`, {
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
export function getCatalogs(dbId: number): Promise<any> {
|
||||
return request(`${process.env.API_BASE_URL}database/getCatalogs`, {
|
||||
method: 'GET',
|
||||
@@ -409,7 +403,12 @@ export function getTables(databaseId: number, catalog: string, dbName: string):
|
||||
});
|
||||
}
|
||||
|
||||
export function getColumns(databaseId: number, catalog: string, dbName: string, tableName: string): Promise<any> {
|
||||
export function getColumns(
|
||||
databaseId: number,
|
||||
catalog: string,
|
||||
dbName: string,
|
||||
tableName: string,
|
||||
): Promise<any> {
|
||||
return request(`${process.env.API_BASE_URL}database/getColumnsByName`, {
|
||||
method: 'GET',
|
||||
params: {
|
||||
|
||||
Reference in New Issue
Block a user