From 380597f0c3e877a0687d82e321d8ff503bf18453 Mon Sep 17 00:00:00 2001 From: tristanliu <37809633+sevenliu1896@users.noreply.github.com> Date: Thu, 30 Nov 2023 18:48:41 +0800 Subject: [PATCH] [improvement][semantic-fe] Fixing the abnormal state of the popup when creating a model. (#452) * [improvement][semantic-fe] Add model alias setting & Add view permission restrictions to the model permission management tab. [improvement][semantic-fe] Add permission control to the action buttons for the main domain; apply high sensitivity filtering to the authorization of metrics/dimensions. [improvement][semantic-fe] Optimize the editing mode in the dimension/metric/datasource components to use the modelId stored in the database for data, instead of relying on the data from the state manager. * [improvement][semantic-fe] Add time granularity setting in the data source configuration. * [improvement][semantic-fe] Dictionary import for dimension values supported in Q&A visibility * [improvement][semantic-fe] Modification of data source creation prompt wording" * [improvement][semantic-fe] metric market experience optimization * [improvement][semantic-fe] enhance the analysis of metric trends * [improvement][semantic-fe] optimize the presentation of metric trend permissions * [improvement][semantic-fe] add metric trend download functionality * [improvement][semantic-fe] fix the dimension initialization issue in metric correlation * [improvement][semantic-fe] Fix the issue of database changes not taking effect when creating based on an SQL data source. * [improvement][semantic-fe] Optimizing pagination logic and some CSS styles * [improvement][semantic-fe] Fixing the API for the indicator list by changing "current" to "pageNum" * [improvement][semantic-fe] Fixing the default value setting for the indicator list * [improvement][semantic-fe] Adding batch operations for indicators/dimensions/models * [improvement][semantic-fe] Replacing the single status update API for indicators/dimensions with a batch update API * [improvement][semantic-fe] Redesigning the indicator homepage to incorporate trend charts and table functionality for indicators * [improvement][semantic-fe] Optimizing the logic for setting dimension values and editing data sources, and adding system settings functionality * [improvement][semantic-fe] Upgrading antd version to 5.x, extracting the batch operation button component, optimizing the interaction for system settings, and expanding the configuration generation types for list-to-select component. * [improvement][semantic-fe] Adding the ability to filter dimensions based on whether they are tags or not. * [improvement][semantic-fe] Adding the ability to edit relationships between models in the canvas. * [improvement][semantic-fe] Updating the datePicker component to use dayjs instead. * [improvement][semantic-fe] Fixing the issue with passing the model ID for dimensions in the indicator market. * [improvement][semantic-fe] Fixing the abnormal state of the popup when creating a model. --- webapp/packages/supersonic-fe/package.json | 2 +- .../components/DataSourceCreateForm.tsx | 4 ++- .../Metric/components/MetricTrendSection.tsx | 6 ++++ .../SemanticModel/SemanticGraph/index.tsx | 5 +-- .../components/ClassDataSourceTypeModal.tsx | 4 +-- .../DimensionAndMetricRelationModal.tsx | 4 +-- .../SemanticModel/components/ModelTable.tsx | 31 ++----------------- .../pages/SemanticModel/components/style.less | 4 +++ 8 files changed, 22 insertions(+), 38 deletions(-) diff --git a/webapp/packages/supersonic-fe/package.json b/webapp/packages/supersonic-fe/package.json index 6b4beb226..d3a967ed5 100644 --- a/webapp/packages/supersonic-fe/package.json +++ b/webapp/packages/supersonic-fe/package.json @@ -58,7 +58,7 @@ "@ant-design/pro-layout": "^7.17.15", "@ant-design/pro-table": "^3.13.9", "@antv/dom-util": "^2.0.4", - "@antv/g6": "^4.8.14", + "@antv/g6": "^4.8.23", "@antv/g6-core": "^0.8.23", "@antv/layout": "^0.3.20", "@antv/xflow": "^1.0.55", diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/DataSourceCreateForm.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/DataSourceCreateForm.tsx index 0debb9bfc..5bd0e15b9 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/DataSourceCreateForm.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/DataSourceCreateForm.tsx @@ -432,7 +432,9 @@ const DataSourceCreateForm: React.FC = ({ maskClosable={false} open={createModalVisible} footer={renderFooter()} - onCancel={onCancel} + onCancel={() => { + onCancel?.(); + }} > diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/components/MetricTrendSection.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/components/MetricTrendSection.tsx index 9c3a21b16..025db547a 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/components/MetricTrendSection.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Metric/components/MetricTrendSection.tsx @@ -142,6 +142,9 @@ const MetricTrendSection: React.FC = ({ metircData }) => { }; const queryDimensionList = async (ids: number[]) => { + if (!(Array.isArray(ids) && ids.length > 0)) { + return; + } const { code, data, msg } = await getDimensionList({ ids }); if (code === 200 && Array.isArray(data?.list)) { setDimensionList(data.list); @@ -162,6 +165,9 @@ const MetricTrendSection: React.FC = ({ metircData }) => { const ids = data.map((item) => item.dimensionId); queryDimensionList(ids); return data; + } else { + setDimensionList([]); + setRelationDimensionOptions([]); } if (code !== 200) { message.error(msg); diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/SemanticGraph/index.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/SemanticGraph/index.tsx index 0685ecdae..56ecc80d9 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/SemanticGraph/index.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/SemanticGraph/index.tsx @@ -1070,7 +1070,8 @@ const DomainManger: React.FC = ({ domainManger, dispatch }) => { }} /> )} - { + + {createDataSourceModalOpen && ( { @@ -1082,7 +1083,7 @@ const DomainManger: React.FC = ({ domainManger, dispatch }) => { updateGraphData(); }} /> - } + )} { = ({ const [scriptColumns, setScriptColumns] = useState([]); useEffect(() => { - if (!dataSourceItem || !open) { - setCreateDataSourceModalOpen(open); + if (!dataSourceItem?.id || !open) { + setCreateDataSourceModalOpen(true); return; } if (dataSourceItem?.modelDetail?.queryType === 'table_query') { diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/DimensionAndMetricRelationModal.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/DimensionAndMetricRelationModal.tsx index b3617086f..69bf7b98c 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/DimensionAndMetricRelationModal.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/DimensionAndMetricRelationModal.tsx @@ -32,8 +32,7 @@ const DimensionAndMetricRelationModal: React.FC = ({ }; const { code, msg } = await updateExprMetric(queryParams); if (code === 200) { - // message.success('编辑指标成功'); - // onSubmit?.(queryParams); + onSubmit(relationList); return; } message.error(msg); @@ -46,7 +45,6 @@ const DimensionAndMetricRelationModal: React.FC = ({