Merge branch 'tencentmusic:master' into master

This commit is contained in:
Jun Zhang
2024-11-23 09:09:59 +08:00
committed by GitHub
4 changed files with 15 additions and 21 deletions

View File

@@ -1,19 +1,19 @@
import React, { useState } from 'react'; import React, { useState } from 'react';
import { Table, Select, Checkbox, Input, Space, Tooltip, Form, Switch, Row, Col } from 'antd'; import { Checkbox, Form, Input, Select, Space, Switch, Table, Tooltip } from 'antd';
import TableTitleTooltips from '../../components/TableTitleTooltips'; import TableTitleTooltips from '../../components/TableTitleTooltips';
import { isUndefined } from 'lodash'; import { isUndefined } from 'lodash';
import { ExclamationCircleOutlined } from '@ant-design/icons'; import { ExclamationCircleOutlined } from '@ant-design/icons';
import SqlEditor from '@/components/SqlEditor'; import SqlEditor from '@/components/SqlEditor';
import { ISemantic } from '../../data'; import { ISemantic } from '../../data';
import { import {
TYPE_OPTIONS,
DATE_FORMATTER,
AGG_OPTIONS, AGG_OPTIONS,
EnumDataSourceType, DATE_FORMATTER,
DATE_OPTIONS, DATE_OPTIONS,
DIM_OPTIONS, DIM_OPTIONS,
EnumDataSourceType,
EnumModelDataType, EnumModelDataType,
PARTITION_TIME_FORMATTER, PARTITION_TIME_FORMATTER,
TYPE_OPTIONS,
} from '../constants'; } from '../constants';
import styles from '../style.less'; import styles from '../style.less';
@@ -90,8 +90,7 @@ const ModelFieldForm: React.FC<Props> = ({
dataIndex: 'type', dataIndex: 'type',
width: 250, width: 250,
render: (_: any, record: FieldItem) => { render: (_: any, record: FieldItem) => {
const type = fields.find((field) => field.bizName === record.bizName)?.type; const { type, classType } = record;
const classType = fields.find((field) => field.bizName === record.bizName)?.classType;
const selectTypeValue = [EnumModelDataType.DIMENSION].includes(classType) const selectTypeValue = [EnumModelDataType.DIMENSION].includes(classType)
? classType ? classType
: type; : type;
@@ -229,13 +228,10 @@ const ModelFieldForm: React.FC<Props> = ({
// ); // );
// } // }
if (type === EnumDataSourceType.MEASURES) { if (type === EnumDataSourceType.MEASURES) {
const agg = record.expr
? fields.find((field) => field.expr === record.expr)?.agg
: undefined;
return ( return (
<Select <Select
placeholder="度量算子" placeholder="度量算子"
value={agg} value={record.agg}
onChange={(value) => { onChange={(value) => {
handleFieldChange(record, 'agg', value); handleFieldChange(record, 'agg', value);
}} }}
@@ -251,7 +247,6 @@ const ModelFieldForm: React.FC<Props> = ({
</Select> </Select>
); );
} }
if (process.env.SHOW_TAG) { if (process.env.SHOW_TAG) {
if (type === EnumDataSourceType.CATEGORICAL) { if (type === EnumDataSourceType.CATEGORICAL) {
const isTag = fields.find((field) => field.bizName === record.bizName)?.isTag; const isTag = fields.find((field) => field.bizName === record.bizName)?.isTag;
@@ -299,10 +294,7 @@ const ModelFieldForm: React.FC<Props> = ({
} }
} }
if ([EnumDataSourceType.TIME, EnumDataSourceType.PARTITION_TIME].includes(type)) { if ([EnumDataSourceType.TIME, EnumDataSourceType.PARTITION_TIME].includes(type)) {
const dateFormat = fields.find((field) => field.bizName === record.bizName)?.dateFormat; const { dateFormat, timeGranularity } = record;
const timeGranularity = fields.find(
(field) => field.bizName === record.bizName,
)?.timeGranularity;
const dateFormatterOptions = const dateFormatterOptions =
type === EnumDataSourceType.PARTITION_TIME ? PARTITION_TIME_FORMATTER : DATE_FORMATTER; type === EnumDataSourceType.PARTITION_TIME ? PARTITION_TIME_FORMATTER : DATE_FORMATTER;

View File

@@ -15,9 +15,10 @@ import ViewSearchFormModal from './ViewSearchFormModal';
type Props = { type Props = {
dataSetList: ISemantic.IDatasetItem[]; dataSetList: ISemantic.IDatasetItem[];
disabledEdit?: boolean; disabledEdit?: boolean;
isCurrent: boolean;
}; };
const DataSetTable: React.FC<Props> = ({ dataSetList, disabledEdit = false }) => { const DataSetTable: React.FC<Props> = ({ dataSetList, disabledEdit = false, isCurrent }) => {
const domainModel = useModel('SemanticModel.domainData'); const domainModel = useModel('SemanticModel.domainData');
const { selectDomainId } = domainModel; const { selectDomainId } = domainModel;
@@ -51,8 +52,8 @@ const DataSetTable: React.FC<Props> = ({ dataSetList, disabledEdit = false }) =>
useEffect(() => { useEffect(() => {
// queryDataSetList(); // queryDataSetList();
queryDomainAllModel(); if (isCurrent) queryDomainAllModel();
}, [selectDomainId]); }, [selectDomainId, isCurrent]);
const queryDataSetList = async () => { const queryDataSetList = async () => {
setLoading(true); setLoading(true);

View File

@@ -3,14 +3,15 @@ import { ISemantic } from '../data';
import DataSetTable from './components/DataSetTable'; import DataSetTable from './components/DataSetTable';
type Props = { type Props = {
isCurrent: boolean;
disabledEdit?: boolean; disabledEdit?: boolean;
dataSetList: ISemantic.IDatasetItem[]; dataSetList: ISemantic.IDatasetItem[];
}; };
const View: React.FC<Props> = ({ dataSetList, disabledEdit = false }) => { const View: React.FC<Props> = ({ isCurrent, dataSetList, disabledEdit = false }) => {
return ( return (
<div style={{ padding: '15px 20px' }}> <div style={{ padding: '15px 20px' }}>
<DataSetTable disabledEdit={disabledEdit} dataSetList={dataSetList} /> <DataSetTable isCurrent={isCurrent} disabledEdit={disabledEdit} dataSetList={dataSetList} />
</div> </div>
); );
}; };

View File

@@ -50,7 +50,7 @@ const DomainManagerTab: React.FC<Props> = ({
label: '数据集管理', label: '数据集管理',
key: 'overview', key: 'overview',
hidden: !!domainData?.parentId, hidden: !!domainData?.parentId,
children: <View dataSetList={dataSetList} />, children: <View isCurrent={activeKey === 'overview'} dataSetList={dataSetList} />,
}, },
{ {
label: '模型管理', label: '模型管理',