diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/DataSourceBasicForm.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/ModelBasicForm.tsx similarity index 98% rename from webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/DataSourceBasicForm.tsx rename to webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/ModelBasicForm.tsx index 726920e46..d782f7285 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/DataSourceBasicForm.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/ModelBasicForm.tsx @@ -17,7 +17,7 @@ type Props = { mode?: 'normal' | 'fast'; }; -const DataSourceBasicForm: React.FC = ({ +const ModelBasicForm: React.FC = ({ isEdit, modelItem, databaseConfigList, @@ -152,7 +152,7 @@ const DataSourceBasicForm: React.FC = ({ > - { @@ -170,7 +170,7 @@ const DataSourceBasicForm: React.FC = ({ tokenSeparators={[',']} maxTagCount={9} /> - + */} = ({ ); }; -export default DataSourceBasicForm; +export default ModelBasicForm; diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/DataSourceCreateForm.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/ModelCreateForm.tsx similarity index 95% rename from webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/DataSourceCreateForm.tsx rename to webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/ModelCreateForm.tsx index 9cfc81a24..7d968546d 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/DataSourceCreateForm.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/ModelCreateForm.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useRef, useState } from 'react'; import { Form, Button, Modal, Steps, message } from 'antd'; -import DataSourceBasicForm from './DataSourceBasicForm'; -import DataSourceFieldForm from './DataSourceFieldForm'; +import ModelBasicForm from './ModelBasicForm'; +import ModelFieldForm from './ModelFieldForm'; import { formLayout } from '@/components/FormHelper/utils'; import { EnumDataSourceType } from '../constants'; import styles from '../style.less'; @@ -11,6 +11,7 @@ import { getColumns, getUnAvailableItem, getTagObjectList, + getModelDetail, } from '../../service'; import type { Dispatch } from 'umi'; import type { StateType } from '../../model'; @@ -43,7 +44,7 @@ const initFormVal = { description: '', // 模型描述 }; -const DataSourceCreateForm: React.FC = ({ +const ModelCreateForm: React.FC = ({ domainManger, onCancel, createModalVisible, @@ -51,14 +52,15 @@ const DataSourceCreateForm: React.FC = ({ sql = '', sqlParams, onSubmit, - modelItem, + modelItem: modelBasicInfo, databaseId, basicInfoFormMode, onDataSourceBtnClick, onOpenDataSourceEdit, children, }) => { - const isEdit = !!modelItem?.id; + const isEdit = !!modelBasicInfo?.id; + const [modelItem, setModelItem] = useState({}); const [fields, setFields] = useState([]); const [currentStep, setCurrentStep] = useState(0); const [saveLoading, setSaveLoading] = useState(false); @@ -102,9 +104,26 @@ const DataSourceCreateForm: React.FC = ({ queryTagObjectList(); }, []); + useEffect(() => { + if (modelBasicInfo?.id) { + queryModelDetail(modelBasicInfo.id); + } + }, [modelBasicInfo]); + const forward = () => setCurrentStep(currentStep + 1); const backward = () => setCurrentStep(currentStep - 1); + const queryModelDetail = async (modelId: number) => { + const { code, msg, data } = await getModelDetail({ + modelId, + }); + if (code === 200) { + setModelItem(data); + } else { + message.error(msg); + } + }; + const queryTagObjectList = async () => { const { code, msg, data } = await getTagObjectList({ domainId: domainData?.parentId || domainData?.id, @@ -447,7 +466,7 @@ const DataSourceCreateForm: React.FC = ({ return ( <>
- = ({ />
- = ({ export default connect(({ domainManger }: { domainManger: StateType }) => ({ domainManger, -}))(DataSourceCreateForm); +}))(ModelCreateForm); diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/DataSourceFieldForm.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/ModelFieldForm.tsx similarity index 99% rename from webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/DataSourceFieldForm.tsx rename to webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/ModelFieldForm.tsx index 16beae74f..c988e0682 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/DataSourceFieldForm.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/ModelFieldForm.tsx @@ -52,7 +52,7 @@ const getCreateFieldName = (type: EnumDataSourceType) => { return isCreateName; }; -const DataSourceFieldForm: React.FC = ({ +const ModelFieldForm: React.FC = ({ fields, sql, tagObjectList, @@ -366,4 +366,4 @@ const DataSourceFieldForm: React.FC = ({ ); }; -export default DataSourceFieldForm; +export default ModelFieldForm; diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/components/MetricBasicInfo.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/components/MetricBasicInfo.tsx index 3149d4c5e..cb7fe05b2 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/components/MetricBasicInfo.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/components/MetricBasicInfo.tsx @@ -54,6 +54,9 @@ const MetricBasicInformation: React.FC = ({ metircData }) => { '该限定条件用于在计算指标时限定口径,作用于度量,所用于过滤的维度必须在创建模型的时候被标记为日期或者维度,不需要加where关键字。比如:维度A="值1" and 维度B="值2"', render: (_: any, record: any) => { const { constraint } = record; + if (!constraint) { + return '--'; + } return