add: 增加设备和产品typing

This commit is contained in:
wangshuaiswim 2023-01-12 17:56:05 +08:00
parent 9658a11666
commit a1e00a3734
2 changed files with 263 additions and 0 deletions

84
src/views/device/Instance/typings.d.ts vendored Normal file
View File

@ -0,0 +1,84 @@
export type DeviceInstance = {
id: string;
name: string;
describe: string;
description: string;
productId: string;
productName: string;
protocolName: string;
security: any;
deriveMetadata: string;
metadata: string;
binds: any;
state: {
value: string;
text: string;
};
creatorId: string;
creatorName: string;
createTime: number;
registryTime: string;
disabled?: boolean;
aloneConfiguration?: boolean;
deviceType: {
value: string;
text: string;
};
transportProtocol: string;
messageProtocol: string;
orgId: string;
orgName: string;
configuration: Record<string, any>;
relations?: any[];
cachedConfiguration: any;
transport: string;
protocol: string;
address: string;
registerTime: number;
onlineTime: string | number;
offlineTime: string | number;
tags: any;
photoUrl: string;
independentMetadata?: boolean;
accessProvider?: string;
accessId?: string;
features?: any[];
parentId?: string;
classifiedName?: string;
};
type Unit = {
id: string;
name: string;
symbol: string;
text: string;
type: string;
value: string;
description: string;
};
type PropertyData = {
data: {
value?:
| {
formatValue: string;
property: string;
value: any;
}
| any;
timeString: string;
timestamp: number;
formatValue: string;
property: string;
};
};
type InstanceModel = {
current: Partial<DeviceInstance>;
detail: Partial<DeviceInstance>;
config: any;
metadataItem: MetadataItem;
params: Set<string>; // 处理无限循环Card
active?: string; // 当前编辑的Card
selectedRows: Map<string, any>;
}

179
src/views/device/Product/typings.d.ts vendored Normal file
View File

@ -0,0 +1,179 @@
import type { BaseItem, State } from '@/utils/typings';
type DeviceType = {
text: string;
value: string;
};
export type ProductItem = {
id: string;
name: string;
classifiedId: string | string[];
classifiedName: string;
configuration: Record<string, any>;
createTime: number;
updateTime: number;
creatorId: string;
deviceType: DeviceType;
deviceTypeId?: string;
count?: number;
messageProtocol: string;
metadata: string;
orgId: string;
protocolName: string;
state: number;
transportProtocol: string;
describe?: string;
accessId?: string;
accessName?: string;
photoUrl?: string;
storePolicy?: string;
accessProvider?: string;
modifyTime?: string;
};
export type ConfigProperty = {
property: string;
name: string;
description: string;
type: {
name: string;
id: string;
type: string;
elements?: any[];
expands?: any;
};
scopes: any[];
};
export type ConfigMetadata = {
name: string;
description: string;
scopes: any[];
properties: ConfigProperty[];
};
export type MetadataType = 'events' | 'functions' | 'properties' | 'tags';
export type DeviceMetadata = {
events: Partial<EventMetadata>[];
properties: Partial<PropertyMetadata>[];
functions: Partial<FunctionMetadata>[];
tags: Partial<TagMetadata>[];
};
export type MetadataItem = Partial<EventMetadata | PropertyMetadata | FunctionMetadata> &
Record<string, any>;
type EventMetadata = {
id: string;
name: string;
expands?: {
eventType?: string;
level?: string;
} & Record<string, any>;
valueType: {
type: string;
properties: {
id: string;
name: string;
dataType: string;
valueType: {
type: string;
} & Record<any, any>;
}[];
};
description: string;
};
type FunctionMetadata = {
id: string;
name: string;
async: boolean;
output: Record<string, unknown>;
inputs: ({
id: string;
name: string;
valueType: {
type: string;
} & Record<any, any>;
} & Record<string, any>)[];
};
type PropertyMetadata = {
id: string;
name: string;
dataType?: string;
valueType: {
type: string;
} & Record<any, any>;
expands: Record<string, any>;
description?: string;
// 运行状态处需要数据
list?: Record<string, unknown>[];
};
type TagMetadata = {
id: string;
name: string;
valueType: {
type: string;
} & Record<string, any>;
expands: Record<string, any>;
};
type AlarmRule = {
actions: {
configuration: Record<string, unknown>;
executor: string;
}[];
productId: string;
productName: string;
properties: Record<string, unknown>[];
shakeLimit: Record<string, unknown>;
triggers: Record<string, unknown>[];
} & BaseItem;
type AlarmSetting = {
state: State;
createTime: number;
target: string;
targetId: string;
alarmRule: AlarmRule[];
} & BaseItem;
type AlarmRecord = {
id: string;
alarmId: string;
alarmName: string;
alarmTime: number;
description: string;
deviceId: string;
deviceName: string;
productId: string;
productName: string;
state: string;
updateTime: number;
alarmData: {
alarmId: string;
alarmName: string;
deviceId: string;
deviceName: string;
id: string;
productId: string;
productName: string;
timestamp: number;
} & Record<string, unknown>;
};
type UnitType = {
id: string;
name: string;
description: string;
symbol: string;
text: string;
type: string;
value: string;
};
type ObserverMetadata = {
type: unknown[];
subscribe: (data: any) => void;
next: (data: any) => void;
};