From 0f3e9e8754b55ad0e05e4547eddcedd5fea93279 Mon Sep 17 00:00:00 2001 From: tristanliu <37809633+sevenliu1896@users.noreply.github.com> Date: Tue, 17 Oct 2023 06:55:18 -0500 Subject: [PATCH] [improvement][semantic-fe] fix the dimension initialization issue in metric correlation (#247) * [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 --- .../Metric/components/MetricTrendSection.tsx | 5 ++-- .../DimensionAndMetricRelationModal.tsx | 3 +++ .../DimensionMetricRelationTableTransfer.tsx | 23 +++++++++++++++---- .../components/MetricInfoCreateForm.tsx | 1 + 4 files changed, 26 insertions(+), 6 deletions(-) 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 1107860f0..ac20c41af 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 @@ -73,10 +73,11 @@ const MetricTrendSection: React.FC = ({ nodeData }) => { setMetricColumnConfig(targetConfig); } } else { - if (code === 401) { + if (code === 401 || code === 400) { setAuthMessage(msg); + } else { + message.error(msg); } - message.error(msg); setMetricTrendData([]); setMetricColumnConfig(undefined); } 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 f449e8ea3..f32187e65 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/DimensionAndMetricRelationModal.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/DimensionAndMetricRelationModal.tsx @@ -8,12 +8,14 @@ import FormItemTitle from '@/components/FormHelper/FormItemTitle'; type Props = { onCancel: () => void; open: boolean; + metricItem: ISemantic.IMetricItem; relationsInitialValue?: ISemantic.IDrillDownDimensionItem[]; onSubmit: (relations: ISemantic.IDrillDownDimensionItem[]) => void; }; const DimensionAndMetricRelationModal: React.FC = ({ open, + metricItem, relationsInitialValue, onCancel, onSubmit, @@ -54,6 +56,7 @@ const DimensionAndMetricRelationModal: React.FC = ({ >
{ setRelationList(relations); diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/DimensionMetricRelationTableTransfer.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/DimensionMetricRelationTableTransfer.tsx index 4a604b3ab..21054bed4 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/DimensionMetricRelationTableTransfer.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/DimensionMetricRelationTableTransfer.tsx @@ -1,4 +1,4 @@ -import { Table, Transfer, Checkbox } from 'antd'; +import { Table, Transfer, Checkbox, message } from 'antd'; import type { ColumnsType, TableRowSelection } from 'antd/es/table/interface'; import type { TransferItem } from 'antd/es/transfer'; import type { CheckboxChangeEvent } from 'antd/es/checkbox'; @@ -9,6 +9,7 @@ import type { StateType } from '../model'; import TransTypeTag from './TransTypeTag'; import TableTitleTooltips from '../components/TableTitleTooltips'; import { ISemantic } from '../data'; +import { getDimensionList } from '../service'; import { SemanticNodeType, TransType } from '../enum'; interface RecordType { @@ -19,24 +20,38 @@ interface RecordType { } type Props = { + metricItem: ISemantic.IMetricItem; domainManger: StateType; relationsInitialValue?: ISemantic.IDrillDownDimensionItem[]; onChange: (relations: ISemantic.IDrillDownDimensionItem[]) => void; }; const DimensionMetricRelationTableTransfer: React.FC = ({ - domainManger, + metricItem, relationsInitialValue, onChange, }) => { - const { dimensionList } = domainManger; - const [targetKeys, setTargetKeys] = useState([]); const [checkedMap, setCheckedMap] = useState>( {}, ); + const [dimensionList, setDimensionList] = useState([]); + + useEffect(() => { + queryDimensionList(); + }, []); + + const queryDimensionList = async () => { + const { code, data, msg } = await getDimensionList(metricItem.modelId); + if (code === 200 && Array.isArray(data?.list)) { + setDimensionList(data.list); + } else { + message.error(msg); + } + }; + useEffect(() => { if (!Array.isArray(relationsInitialValue)) { return; diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/MetricInfoCreateForm.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/MetricInfoCreateForm.tsx index 384792932..445cc726b 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/MetricInfoCreateForm.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/components/MetricInfoCreateForm.tsx @@ -499,6 +499,7 @@ const MetricInfoCreateForm: React.FC = ({ {renderContent()} {