From b5fdbfbbf6a637e2824bf008f73958413dbb9712 Mon Sep 17 00:00:00 2001 From: tristanliu <37809633+sevenliu1896@users.noreply.github.com> Date: Mon, 18 Dec 2023 16:37:53 +0800 Subject: [PATCH] [improvement][semantic-fe] Changing the line type for canvas connections. (#531) * [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. * [improvement][semantic-fe] Adding permission logic for bulk operations in the indicator market. * [improvement][semantic-fe] Adding the ability to download and transpose data. * [improvement][semantic-fe] Fixing the initialization issue with the date selection component in the indicator details page when switching time granularity. * [improvement][semantic-fe] Fixing the logic error in the dimension value setting. * [improvement][semantic-fe] Fixing the synchronization issue with the question and answer settings information. * [improvement][semantic-fe] Optimizing the canvas functionality for better performance and user experience. * [improvement][semantic-fe] Optimizing the update process for drawing model relationship edges in the canvas. * [improvement][semantic-fe] Changing the line type for canvas connections. --- .../src/components/MDatePicker/index.tsx | 2 +- .../src/components/MDatePicker/type.ts | 8 ++++++- .../src/components/MDatePicker/utils.ts | 16 +++++++++++++ .../Metric/components/MetricTrendSection.tsx | 23 +++++++------------ .../SemanticModel/SemanticGraph/index.tsx | 5 ++-- 5 files changed, 35 insertions(+), 19 deletions(-) diff --git a/webapp/packages/supersonic-fe/src/components/MDatePicker/index.tsx b/webapp/packages/supersonic-fe/src/components/MDatePicker/index.tsx index 3c6fda566..b7288d4f4 100644 --- a/webapp/packages/supersonic-fe/src/components/MDatePicker/index.tsx +++ b/webapp/packages/supersonic-fe/src/components/MDatePicker/index.tsx @@ -254,7 +254,7 @@ const MDatePicker: React.FC = ({ useEffect(() => { initDefaultDynamicData({ latestDateMap }); - }, []); + }, [initialValues]); useEffect(() => { const { dateRange } = dateRangesParams; diff --git a/webapp/packages/supersonic-fe/src/components/MDatePicker/type.ts b/webapp/packages/supersonic-fe/src/components/MDatePicker/type.ts index 4ddb867b9..15a1c5e00 100644 --- a/webapp/packages/supersonic-fe/src/components/MDatePicker/type.ts +++ b/webapp/packages/supersonic-fe/src/components/MDatePicker/type.ts @@ -8,7 +8,7 @@ export enum DynamicAdvancedConfigType { } export enum DatePeriodType { - DAY = 'DAYS', + DAY = 'DAY', WEEK = 'WEEK', MONTH = 'MONTH', YEAR = 'YEAR', @@ -44,6 +44,12 @@ export enum DateRangeType { MONTH = 'MONTH', } +export const shortCutIdType = { + [DateRangeType.DAY]: 'Days', + [DateRangeType.WEEK]: 'Weeks', + [DateRangeType.MONTH]: 'Months', +}; + export enum DateRangePicker { DATE = 'date', WEEK = 'week', diff --git a/webapp/packages/supersonic-fe/src/components/MDatePicker/utils.ts b/webapp/packages/supersonic-fe/src/components/MDatePicker/utils.ts index d98d408d1..279ee283b 100644 --- a/webapp/packages/supersonic-fe/src/components/MDatePicker/utils.ts +++ b/webapp/packages/supersonic-fe/src/components/MDatePicker/utils.ts @@ -7,6 +7,7 @@ import { DateSettingType, DynamicAdvancedConfigType, DateRangeParams, + shortCutIdType, } from './type'; import { LatestDateMap } from './type'; @@ -56,6 +57,21 @@ export const DATE_RANGE_TYPE_ITEM_LIST = [ export const LATEST_TEXT = '最近1天'; +export const getDatePickerDynamicInitialValues = (number: number, dateRangeType: DateRangeType) => { + return { + dateSettingType: 'DYNAMIC', + dynamicParams: { + includesCurrentPeriod: true, + dateRangeType: dateRangeType, + dynamicAdvancedConfigType: 'last', + dateSettingType: DateSettingType.DYNAMIC, + shortCutId: `last${number}${shortCutIdType[dateRangeType]}`, + number, + periodType: dateRangeType, + }, + }; +}; + export const SHORT_CUT_ITEM_LIST = [ { id: 'last7Days', 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 a184c63fe..92c315bcc 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 @@ -16,7 +16,13 @@ import DimensionAndMetricRelationModal from '../../components/DimensionAndMetric import TrendChart from '@/pages/SemanticModel/Metric/components/MetricTrend'; import MetricTrendDimensionFilterContainer from './MetricTrendDimensionFilterContainer'; import MDatePicker from '@/components/MDatePicker'; -import { DateRangeType, DateSettingType } from '@/components/MDatePicker/type'; +import { + DateRangeType, + DateSettingType, + DynamicAdvancedConfigType, + DatePeriodType, +} from '@/components/MDatePicker/type'; +import { getDatePickerDynamicInitialValues } from '@/components/MDatePicker/utils'; import StandardFormRow from '@/components/StandardFormRow'; import MetricTable from './Table'; import { ColumnConfig } from '../data'; @@ -205,20 +211,7 @@ const MetricTrendSection: React.FC = ({ metircData }) => { { const [startDate, endDate] = value; 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 92921990b..0eff26eec 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/SemanticGraph/index.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/SemanticGraph/index.tsx @@ -419,7 +419,8 @@ const DomainManger: React.FC = ({ domainManger, dispatch }) => { }, mindmap: { defaultEdge: { - type: 'polyline', + // type: 'polyline', + type: 'cubic-horizontal', }, layout: { type: 'mindmap', @@ -489,7 +490,7 @@ const DomainManger: React.FC = ({ domainManger, dispatch }) => { const graphNodeList = flatGraphDataNode(graphData.children); const graphConfigKey = graphNodeList.length > 20 ? 'dendrogram' : 'mindmap'; // const graphConfigKey = 'mindmap'; - + // const graphConfigKey = 'dendrogram'; // getLegendDataFilterFunctions(); // const toolbar = initToolBar({ onSearch: handleSeachNode, onClick: handleToolBarClick }); const tooltip = initTooltips();