Files
supersonic/webapp/packages/supersonic-fe/src/pages/SemanticModel/data.d.ts
tristanliu cd727663a5 [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. (#579)
* [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.
2023-12-28 17:01:43 +08:00

338 lines
7.5 KiB
TypeScript

import { TreeGraphData } from '@antv/g6-core';
import { StatusEnum } from './enum';
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 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 IDataSourceDetail {
queryType: string;
sqlQuery: string;
tableQuery: string;
identifiers: IIdentifiersItem[];
dimensions: IDimensionsItem[];
measures: IMeasuresItem[];
}
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[];
drillDownDimensions: IDrillDownDimensionItem[];
createdBy: UserName;
updatedBy: UserName;
createdAt: ISODateString;
updatedAt: ISODateString;
}
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 ITypeParams {
measures: IMeasure[];
expr: string;
}
interface IDrillDownDimensionItem {
dimensionId: number;
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: number;
domainId: number;
domainName: string;
modelName: string;
modelId: number;
hasAdminRes: boolean;
type: string;
typeParams: ITypeParams;
fullPath: string;
dataFormatType: string;
dataFormat: string;
alias: string;
useCnt: number;
isCollect: 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[];
}
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 IConfig {
id: any;
modelId: number;
modelName: string;
chatAggRichConfig: IChatRichConfig;
chatDetailRichConfig: IChatRichConfig;
recommendedQuestions: { question: string }[];
bizName: string;
statusEnum: string;
createdBy: string;
updatedBy: string;
createdAt: string;
updatedAt: string;
}
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;
};
}
}