Files
supersonic/webapp/packages/supersonic-fe/src/pages/SemanticModel/data.d.ts
tristanliu 1ab88360ac [improvement][headless-fe] Optimized the tag setting system. (#868)
* [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.

* [improvement][semantic-fe] Replacing the initialization variable from "semantic" to "headless".

* [improvement][semantic-fe] Fixing the missing migration issue for default drill-down dimension configuration in model editing. Additionally, optimizing the data retrieval method for initializing fields in the model.

* [improvement][semantic-fe] Updating the logic for the fieldName.

* [improvement][semantic-fe] Adjusting the position of the metrics tab.

* [improvement][semantic-fe] Changing the 字段名称 to 英文名称.

* [improvement][semantic-fe] Fix metric measurement deletion.

* [improvement][semantic-fe] UI optimization for metric details page.

* [improvement][semantic-fe] UI optimization for metric details page.

* [improvement][semantic-fe] UI adjustment for metric details page.

* [improvement][semantic-fe] The granularity field in the time type of model editing now supports setting it as empty.

* [improvement][semantic-fe] Added field type and metric type to the metric creation options.

* [improvement][semantic-fe] The organization structure selection feature has been added to the permission management.

* [improvement][semantic-fe] Improved user experience for the metric list.

* [improvement][semantic-fe] fix update the metric list.

* [improvement][headless-fe] Added view management functionality.

* [improvement][headless-fe] The view management functionality has been added. This feature allows users to create, edit, and manage different views within the system.

* [improvement][headless-fe] Added model editing side effect detection.

* [improvement][headless-fe] Fixed the logic error in view editing.

* [improvement][headless-fe] Fixed the issue with initializing dimension associations in metric settings.

* [improvement][headless-fe] Added the ability to hide the Q&A settings entry point.

* [improvement][headless-fe] Fixed the issue with selecting search results in metric field creation.

* [improvement][headless-fe] Added search functionality to the field list in model editing.

* [improvement][headless-fe] fix the field list in model editing

* [improvement][headless-fe] Restructured the data for the dimension value settings interface.

* [improvement][headless-fe] Added dynamic variable functionality to model creation based on SQL scripts.

* [improvement][headless-fe] Added support for passing dynamic variables as parameters in the executeSql function.

* [improvement][headless-fe] Resolved the issue where users were unable to select all options for dimensions, metrics, and fields in the metric generation process.

* [improvement][headless-fe] Replaced the term "view" with "dataset"

* [improvement][headless-fe] Added the ability to export metrics and dimensions to a specific target.

* [improvement][headless-fe] Enhanced dataset creation to support the tag mode.

* [improvement][headless-fe] Added tag value setting.

* [improvement][headless-fe] Optimized the tag setting system.

* [improvement][headless-fe] Optimized the tag setting system.
2024-03-29 14:33:35 +08:00

488 lines
11 KiB
TypeScript

import { TreeGraphData } from '@antv/g6-core';
import { StatusEnum } from './enum';
import { SENSITIVE_LEVEL, TAG_DEFINE_TYPE, METRIC_DEFINE_TYPE } from './constant';
export type ISODateString =
`${number}-${number}-${number}T${number}:${number}:${number}.${number}+${number}:${number}`;
export type GraphConfigType = 'datasource' | 'dimension' | 'metric';
export type UserName = string;
export type SensitiveLevel = 0 | 1 | 2 | null;
// export type RefreshGraphData = (graphRootData: TreeGraphData) => void;
export type ToolBarSearchCallBack = (text: string) => void;
export declare namespace IDataSource {
interface IExecuteSqlColumn {
name?: string;
type: string;
nameEn: string;
showType?: string;
authorized?: boolean;
dataFormatType?: string;
dataFormat?: string;
}
interface IIdentifiersItem {
name: string;
type: string;
}
interface IDimensionsItem {
name: string;
type: string;
expr: null;
dateFormat: 'YYYY-MM-DD';
typeParams: {
isPrimary: boolean;
timeGranularity: string;
};
isCreateDimension: number;
nameCh: string;
}
interface IMeasuresItem {
name: string;
agg: string;
expr: string;
constraint: string;
alias: string;
create_metric: string;
nameCh: string;
isCreateMetric: number;
}
interface IDataSourceDetailFieldsItem {
dataType: string;
fieldName: string;
}
type ISqlParamsValueType = 'STRING' | 'EXPR' | 'NUMBER';
interface ISqlParamsItem {
index?: number;
defaultValues: (boolean | string | number)[];
name: string;
// type: string;
valueType: ISqlParamsValueType;
udf?: boolean;
}
interface IDataSourceDetail {
queryType: string;
sqlQuery: string;
tableQuery: string;
identifiers: IIdentifiersItem[];
fields: IDataSourceDetailFieldsItem[];
dimensions: IDimensionsItem[];
measures: IMeasuresItem[];
sqlVariables: ISqlParamsItem[];
}
interface IDataSourceItem {
createdBy: UserName;
updatedBy: UserName;
createdAt: ISODateString;
updatedAt: ISODateString;
id: number;
name: string;
bizName: string;
description: string;
modelId: number;
status: number | null;
sensitiveLevel: SensitiveLevel;
domainId: number;
databaseId: number;
modelDetail: IDataSourceDetail;
}
type IDataSourceList = IDataSourceItem[];
}
export declare namespace ISemantic {
interface IDomainItem {
createdBy?: string;
updatedBy?: string;
createdAt?: string;
updatedAt?: string;
id: number;
name: string;
bizName: string;
description: any;
hasEditPermission: boolean;
status?: number;
typeEnum?: any;
sensitiveLevel?: number;
parentId: number;
fullPath?: string;
viewers?: any[];
viewOrgs?: any[];
admins?: string[];
adminOrgs?: any[];
isOpen?: number;
entity?: { entityId: number; names: string[] };
dimensionCnt?: number;
metricCnt?: number;
}
interface IModelItem {
id: number;
name: string;
bizName: string;
description: string;
sensitiveLevel: SensitiveLevel;
domainId: number;
databaseId: number;
modelDetail: IDataSourceDetail;
status?: StatusEnum;
typeEnum?: any;
sensitiveLevel?: number;
parentId: number;
filterSql: string;
alias: string;
fullPath?: string;
viewers?: any[];
viewOrgs?: any[];
admins?: string[];
adminOrgs?: any[];
tagObjectId?: number;
drillDownDimensions: IDrillDownDimensionItem[];
createdBy: UserName;
updatedBy: UserName;
createdAt: ISODateString;
updatedAt: ISODateString;
}
interface IViewModelConfigItem {
id: number;
includesAll: boolean;
metrics: number[];
dimensions: number[];
tagIds: number[];
}
interface IViewItem {
createdBy: UserName;
updatedBy: UserName;
createdAt: ISODateString;
updatedAt: ISODateString;
id: number;
name: string;
bizName: string;
description: string;
status?: StatusEnum;
typeEnum?: any;
sensitiveLevel: number;
domainId: number;
dataSetDetail: {
dataSetModelConfigs: IViewModelConfigItem[];
};
}
interface IDimensionItem {
createdBy: string;
updatedBy: string;
createdAt: string;
updatedAt: string;
id: number;
name: string;
bizName: string;
description: string;
status: number;
typeEnum: any;
sensitiveLevel: number;
domainId: number;
type: string;
expr: string;
fullPath: string;
datasourceId: number;
modelId: number;
modelName: string;
datasourceName: string;
datasourceBizName: string;
commonDimensionId: number;
semanticType: string;
alias: string;
useCnt: number;
dimValueMaps: IDimensionValueSettingItem[];
}
interface IDimensionValueSettingItem {
techName: string;
bizName: string;
alias?: string[];
}
interface IMeasure {
name: string;
agg?: string;
expr: string;
constraint?: string;
alias?: string;
createMetric?: string;
bizName: string;
isCreateMetric?: number;
datasourceId: number;
}
interface IFieldTypeParamsItem {
fieldName: string;
}
interface IMetricTypeParamsItem {
id: number;
bizName: string;
}
interface IDimensionTypeParamsItem {
id: number;
bizName: string;
}
interface IMeasureTypeParams {
measures: IMeasure[];
expr: string;
}
interface IMetricTypeParams {
expr: string;
metrics: IMetricTypeParamsItem[];
}
interface IFieldTypeParams {
expr: string;
fields: IFieldTypeParamsItem[];
}
interface IDrillDownDimensionItem {
dimensionId: number;
inheritedFromModel?: boolean;
necessary?: boolean;
}
interface IRelateDimension {
drillDownDimensions: IDrillDownDimensionItem[];
}
interface IMetricItem {
createdBy: string;
updatedBy: string;
createdAt: string;
updatedAt: string;
id: number;
name: string;
bizName: string;
description: string;
status: StatusEnum;
typeEnum: string;
sensitiveLevel: SENSITIVE_LEVEL;
domainId: number;
domainName: string;
modelName: string;
modelId: number;
modelBizName: string;
hasAdminRes: boolean;
type: string;
classifications: string[];
// typeParams: IMeasureTypeParams;
metricDefineType: METRIC_DEFINE_TYPE;
metricDefineByMeasureParams: IMeasureTypeParams;
metricDefineByFieldParams: IFieldTypeParams;
metricDefineByMetricParams: IMetricTypeParams;
fullPath: string;
dataFormatType: string;
dataFormat: string;
alias: string;
useCnt: number;
isCollect: boolean;
isPublish: boolean;
relateDimension?: IRelateDimension;
}
interface IMetricTrendColumn {
name: string;
type: string;
nameEn: string;
showType: string;
authorized: boolean;
dataFormatType: string;
dataFormat: {
needMultiply100: boolean;
decimalPlaces: number;
};
}
type IMetricTrendItem = Record<string, any>;
interface IMetricTrend {
columns: IMetricTrendColumn;
resultList: IMetricTrendItem[];
pageNo?: number;
pageSize?: number;
totalCount?: number;
queryAuthorization?: string;
sql?: string;
}
type IDimensionList = IDimensionItem[];
type IMetricList = IMetricItem[];
interface IDomainSchemaRelaItem {
domainId: number;
dimensions: IDimensionList;
metrics: IMetricList;
model: IDataSourceItem;
}
type IDomainSchemaRelaList = IDomainSchemaRelaItem[];
interface IDatabaseItem {
createdBy?: string;
updatedBy?: string;
createdAt?: string;
updatedAt?: string;
id: number;
name: string;
admins: string[];
type: string;
url: string;
username: string;
password: string;
version: string;
hasEditPermission: boolean;
hasUsePermission: boolean;
host: string;
port: string;
database?: string;
description?: string;
}
type IDatabaseItemList = IDatabaseItem[];
interface IDictKnowledgeConfigItemConfig {
metricId?: number;
blackList: string[];
whiteList: string[];
ruleList: any[];
limit?: number;
}
interface IDictKnowledgeConfigItem {
id: number;
modelId: number;
bizName: string;
type: string;
itemId: number;
config: IDictKnowledgeConfigItemConfig;
status: string;
nature?: string;
}
interface IDictKnowledgeTaskItem {
id: number;
modelId: number;
bizName: string;
type: string;
itemId: number;
config: IDictKnowledgeConfigItemConfig;
status: string | null;
name: string;
description: string | null;
taskStatus: string;
createdAt: string;
createdBy: string;
elapsedMs: number | null;
nature: string;
}
interface ITagDefineParams {
expr: string;
dependencies: (number | string)[];
}
interface ITagItem {
createdBy: string;
updatedBy: string;
createdAt: string;
updatedAt: string;
id: number;
name: string;
modelName: string;
bizName: string;
description: string;
status: number;
typeEnum: null;
sensitiveLevel: SENSITIVE_LEVEL;
modelId: number;
type: string;
isCollect: boolean;
hasAdminRes: boolean;
ext: any;
tagDefineType: TAG_DEFINE_TYPE;
tagDefineParams: ITagDefineParams;
expr: string;
}
interface ITagObjectItem {
createdBy: string;
updatedBy: string;
createdAt: string;
updatedAt: string;
id: number;
name: string;
bizName: string;
description: string;
status: number;
typeEnum: null;
sensitiveLevel: SENSITIVE_LEVEL;
domainId: number;
ext: null;
}
}
export declare namespace IChatConfig {
interface IEntity {
domainId: number;
domainName: string;
domainBizName: string;
names: string[];
entityIds: ISemantic.IMetricItem[];
entityInternalDetailDesc: {
dimensionList: ISemantic.IDimensionList;
metricList: ISemantic.IMetricList;
};
}
interface IKnowledgeInfosItem {
itemId: number;
bizName: string;
type?: string;
searchEnable?: boolean;
knowledgeAdvancedConfig?: IKnowledgeConfig;
}
type IKnowledgeInfosItemMap = Record<IKnowledgeInfosItem.bizName, IKnowledgeInfosItem>;
interface IKnowledgeConfig {
blackList: string[];
whiteList: string[];
ruleList: string[];
}
interface IChatRichConfig {
id?: number;
visibility: {
blackDimIdList: number[];
blackMetricIdList: number[];
whiteDimIdList: number[];
whiteMetricIdList: number[];
};
entity: {
names: string[];
dimItem: ISemantic.IDimensionItem;
};
knowledgeInfos: IKnowledgeInfosItem[];
globalKnowledgeConfig: IKnowledgeConfig;
chatDefaultConfig: {
dimensions: ISemantic.IDimensionList;
metrics: ISemantic.IMetricList;
ratioMetrics: ISemantic.IMetricList;
unit: number;
period: string;
};
}
}