@jdlinker/linker
Version:
jdLinker 系统模块
192 lines (178 loc) • 3.86 kB
text/typescript
// @ts-ignore
import type { BaseItem, State } from '@jdlinker/utils';
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>;
export 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;
};
export 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>)[];
};
export type PropertyMetadata = {
id: string;
name: string;
dataType?: string;
valueType: {
type: string;
} & Record<any, any>;
expands: Record<string, any>;
description?: string;
// 运行状态处需要数据
list?: Record<string, unknown>[];
};
export type TagMetadata = {
id: string;
name: string;
valueType: {
type: string;
} & Record<string, any>;
expands: Record<string, any>;
};
export 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;
export type AlarmSetting = {
state: State;
createTime: number;
target: string;
targetId: string;
alarmRule: AlarmRule[];
} & BaseItem;
export 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>;
};
export type UnitType = {
id: string;
name: string;
description: string;
symbol: string;
text: string;
type: string;
value: string;
};
export type ObserverMetadata = {
type: unknown[];
subscribe: (data: any) => void;
next: (data: any) => void;
};
// 部门
export type DepartmentItem = {
id: string;
name: string;
path: string;
sortIndex: number;
level: number;
code: string;
parentId: string;
children: DepartmentItem[];
};