///
import { BoxItem } from "../box/interface";
import { DriveItem, RegisterItem } from "../drive/interface";
import { Column } from "../shared/Column";
import { MqttCombination, MqttTimestamp } from "../shared/DefaultValues";
import { PaginationProps } from "../shared/Pagination";
import { SelectItem } from "../shared/SelectItem";
/**
* PLC对象
* @see [PLC配置协议](https://broker-docs.platform.flexem.net/mqtt/protocol#plc%E9%85%8D%E7%BD%AE%E5%8D%8F%E8%AE%AE)
*/
export interface PlcItem {
/** Id 一般作为主键(GUID) */
id?: string;
/** PLC驱动厂商 */
manufacturer?: string;
/** cfg中的驱动Id PLC Id号(0表示为本地监控点) */
plcId?: number;
/** cfg中的驱动名称 */
plcName?: string;
/** 别名 */
alias?: string;
/** 通信类型(ethernet, serial, local[本地类型无驱动]) */
type?: string;
/** 网络配置 */
ethernet?: {
/** IP地址 */
ip?: string;
/** 端口 */
port?: number;
};
/** 串口配置 */
serial?: {
/** 通讯参数(0:com1 1:com2 2:com3) */
portNo?: number;
/** 工作模式(0:RS232 1:RS485_4W 2:RS485_2W) */
workMode?: number;
/** 波特率 */
baudRate?: number;
/** 数据位 */
dataBits?: number;
/** 停止位(0:None 1:One 2:Two 3:OneHanlf) */
stopBits?: number;
/** 校验位(0:None 1:Odd 2:Even) */
parity?: number;
};
/** 设备模式(0:主模式 1:从模式) */
deviceMode?: number;
/** 从设备站号 */
slaveStationNo?: number;
/** 是否启用广播站号 */
enableBroadcast?: boolean;
/** 广播站号 */
broadcastStationNo?: number;
/** 高级选项 */
advance?: {
/** PLC超时常数 */
plcResponceTimeout?: number;
/** 协议超时常数1 */
protocolTimeout1?: number;
/** 协议超时常数2 */
protocolTimeout2?: number;
/** 字最大组包长度 */
maxPacketsWordReg?: number;
/** 位最大组包长度 */
maxPacketsBitReg?: number;
/** 字组包间隔 */
assembleIntervalWordReg?: number;
/** 位组包间隔 */
assembleIntervalBitReg?: number;
/** 通信时间间隔 */
protocolInterval?: number;
/** 16位字节序(0:21, 1:12) */
byteOrder16?: number;
/** 32位字节序(0:4321, 1:3412, 2:2143, 3:1234) */
byteOrder32?: number;
/** 32位浮点字节序(0:4321, 1:3412, 2:2143, 3:1234) */
byteOrderFloat?: number;
/** 自动组包 */
autoPackage?: number;
/** 提醒信息显示时间 */
errMsgDispTime?: number;
};
/** 驱动文件 */
drive?: {
/** 驱动so文件Url */
soFileUrl?: string;
/** 驱动so文件MD5 */
soFileMd5?: string;
};
/** 寄存器列表 */
registers?: RegisterItem[];
}
/**
* 变量配置对象
* @see [变量配置协议](https://broker-docs.platform.flexem.net/mqtt/protocol#%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE%E5%8D%8F%E8%AE%AE)
*/
export interface VariableItem {
/** id 一般作为主键(Guid) */
id?: string;
/** 变量名称 */
name?: string;
/** 描述信息(下位机忽略) */
description?: string;
/** 关联的PLCId(对应PlcItem.id) */
deviceId?: string;
/** 站号(本地监控点站号为0xff) */
stationNo?: number;
/** 数据类型(0:boolean, 1:uint16, 2:int16, 3:bcd16, 4:hex16, 5:binary16, 11:uint32, 12:int32, 13:bcd32, 14:hex32, 15:binary32, 16:single/float, 30:string) */
dataType?: number;
/** 字符串编码设置 */
stringSetting?: {
/** 编码类型 0:none 1:unicode 2:ascii */
encoding?: number;
/** 高低字节转换 */
order?: boolean;
/** 字符个数 */
charCount?: number;
};
/** 寄存器Id */
registerId?: number;
/** 寄存器名称 */
registerName?: string;
/** 主地址 */
mainAddress?: number;
/** 子地址 */
subAddress?: number;
/** 地址块索引(西门子专用) */
subIndex?: number;
/** 单位 */
unit?: string;
/** 死区 */
deadZone?: number;
/** 启用按位索引 */
enabledIndex?: boolean;
/** 按位索引 */
bitIndex?: number;
/** 整数位 */
integerDigits?: number;
/** 小数位 */
fractionDigits?: number;
/** 读写配置(2:只写, 4:只读, 6:读写) */
privilege?: number;
/** 数值运算 */
valueTransform?: {
/** 运算类型(0:不启用,1:比例,2:缩放) */
type?: number;
/** 比例换算 */
scale?: {
/** 数值上限 */
maxValue?: number;
/** 数值下限 */
minValue?: number;
/** 比例上限 */
scaleMaxValue?: number;
/** 比例下限 */
scaleMinValue?: number;
};
/** 缩放 */
zoom?: {
/** 增益 */
gain?: number;
/** 偏移量 */
offset?: number;
};
};
}
/**
* 报警配置条目
*/
export interface AlarmItem {
/** id 一般作为主键(Guid) */
id?: string;
/** 报警名称 */
name?: string;
/** 关联变量Id */
variableId?: string;
/**
* 条件1
* 0:不等于, 1:等于, 2:大于 3:大于等于 4:小于 5:小于等于
*/
condition1?: number;
/** 条件1对应的值 */
operate1?: number;
/**
* 关系运算符
* 0:None, 1:And 2:Or
*/
condMethod?: number;
/**
* 条件2
* 0:不等于, 1:等于, 2:大于 3:大于等于 4:小于 5:小于等于
*/
condition2?: number;
/**
* 条件2对应的值
*/
operate2?: number;
/** 报警消息 */
msg?: string;
/** 死区值 */
dead_value?: number;
/** 死区类型(0:忽略 2:整数 4:浮点) */
dead_type?: number;
}
/**
* 数据转发变量格式对象
*/
export interface TransferFormatItem {
/** id(guid) */
id?: string;
/** 对象类型(item:监控点, attri:内置属性, define_attri:自定义变量, array:数组, object:对象) */
obj_type?: string;
/** 关联监控点、内置变量名称 */
relate_name?: string | null;
/** MQTT变量名称 */
anonymous_name?: string;
/** MQTT变量类型 */
value_type?: string;
/** 关联监控点Id */
item_id?: string | null;
/** 默认值 */
default_value?: any;
/** 关联组合方式 */
combe_type?: string | null;
/**
* 子节点
* 默认array和object类型才有子节点
*/
children?: TransferFormatItem[] | null;
}
/**
* 数据转发Topic对象
*/
export interface TransferTopicItem {
/** topic */
topic?: string;
/** server_id */
server_mark?: string;
/** 启用离线缓存后的Topic */
cacheTopic?: string;
/** MQTT变量列表 */
format?: TransferFormatItem[];
}
/**
* 数据转发功能对象
*/
export interface TransferFunctionItem {
/** Id */
id?: string;
/** 功能名称 */
name?: string;
/**
* 功能类型
* @see [转发功能列表](https://broker-docs.platform.flexem.net/mqtt/function)
*/
function?: string;
/** 发布配置 */
pub?: TransferTopicItem;
/** 订阅配置 */
sub?: TransferTopicItem;
alarm_event?: {
/** 报警条目Id(guid) */
item_id?: string;
before_time?: number;
after_time?: number;
};
}
/**
* 数据转发配置对象
* @see [转发配置协议](https://broker-docs.platform.flexem.net/mqtt/protocol#%E8%BD%AC%E5%8F%91%E9%85%8D%E7%BD%AE)
*/
export interface TransferItem {
/** id 一般对应主键(Guid) */
id?: string;
/** 是否启用该配置(当前固件默认仅支持一个有效配置) */
enable?: boolean;
/** MQTT服务器配置 */
server_config?: {
/** 配置名称 */
config_name?: string;
/** 平台类型 */
platform?: string;
/** MQTT服务器地址 */
server_url?: string;
/** MQTT服务器端口 */
server_port?: number;
/** MQTT服务路径(只针对websocket连接有效) */
path?: string;
/**
* MQTTClientId(模板里配置请使用环境变量,默认为$uuid)
* @see [环境变量](https://broker-docs.platform.flexem.net/mqtt/protocol#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F)
*/
client_id?: string;
/** Keepalive时间(单位:s) */
keepalive?: number;
/** MQTT版本(3.1, 3.1.1, 5.0) */
mqtt_version?: string;
/** MQTT连接类型(raw_tcp:TCP连接, secure_tcp:TCP证书连接, raw_websocket:websocket连接,secure_websocket:websocket证书连接) */
connection_type?: string;
/** ca证书(文件内容) */
ca_crt?: string;
/** ca证书(文件名称) */
ca_crt_file?: string;
/** 客户端证书(文件内容) */
client_crt?: string;
/** 客户端证书(文件名称) */
client_crt_file?: string;
/** 客户端证书密钥(文件内容) */
client_key?: string;
/** 客户端证书密钥(文件名称) */
client_key_file?: string;
/** 存储位置(local:本地存储, sd:SD卡存储, usb:USB存储) */
store?: string;
/** 是否开启验证 */
with_authen?: boolean;
/**
* 用户名,环境变量($uid)指代设备硬件ID
* @see [环境变量](https://broker-docs.platform.flexem.net/mqtt/protocol#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F)
*/
username?: string;
/**
* 密码,环境变量($password)指代设备硬件密码
* @see [环境变量](https://broker-docs.platform.flexem.net/mqtt/protocol#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F)
*/
password?: string;
/** 推送方式(interval:定时推送, change:变化推送) */
pub_mode?: string;
/** 推送间隔(单位:ms) */
pub_interval?: number;
/** 是否启用离线缓存 */
offline_caching?: boolean;
/** 缓存数据上报时间(单位:ms) */
cache_time?: number;
/** 缓存数据采集间隔(单位:s) */
cache_get_time?: number;
/** 报文压缩 */
compress_info?: {
/** 是否启用报文压缩 */
compress?: number;
/** 压缩算法类型 */
type?: string;
};
};
/** 时间格式配置 */
timestamp_format?: {
/** 时间格式 */
time_format?: string;
/** 时区(utc、asia/shanghai) */
time_zone?: string;
};
/** 组合方式配置 */
items_config?: {
/** 组合方式Id */
id?: string;
/** 格式 */
format?: string;
}[];
/** 转发功能列表 */
function_config?: TransferFunctionItem[];
/** MQTT驱动文件 */
drive?: {
/**
* @deprecated 该属性已弃用(请使用checkUrl)
* MQTT驱动so文件Url
*/
soFileUrl?: string;
/**
* @deprecated 该属性已弃用(请使用checkUrl)
* MQTTso文件MD5
*/
soFileMd5?: string;
/** 驱动检查接口地址 */
checkUrl?: string;
};
}
/** 变量监视对象 */
export interface MacroWatchItem {
/** 变量名称 */
name?: string;
/** 偏移量 */
offset?: number;
/** 值 */
value?: any;
}
/** 代码选中区域对象 */
export interface MacroCodeSelection {
/** 起始位置 */
start: {
row: number;
column: number;
};
/** 结束位置 */
end: {
row: number;
column: number;
};
}
/** 宏脚本执行计划 */
export interface MacroScheduleItem {
/**
* 执行模式
* 0:启动执行 1:周期执行 2:条件执行
*/
mode?: number;
/**
* 执行周期
* 周期执行模式下取该值
*/
cycle?: number;
/**
* 执行条件
* 条件执行模式下取该值
*/
condition?: {
/** 关联变量Id */
variableId?: string;
/**
* 条件1
* 0:不等于, 1:等于, 2:大于 3:大于等于 4:小于 5:小于等于
*/
condition1?: number;
/** 条件1对应的值 */
operate1?: number;
/**
* 关系运算符
* 0:None, 1:And 2:Or
*/
condMethod?: number;
/**
* 条件2
* 0:不等于, 1:等于, 2:大于 3:大于等于 4:小于 5:小于等于
*/
condition2?: number;
/**
* 条件2对应的值
*/
operate2?: number;
};
}
/**
* 宏脚本
*/
export interface MacroItem {
/** id 一般对应主键(Guid) */
id?: string;
/** 名称 */
name?: string;
/** 脚本内容 */
script?: string;
/** 描述信息(下位机忽略) */
description?: string;
/** 关联变量Ids */
variableIds?: string[];
/** 执行计划 */
schedules?: MacroScheduleItem[];
}
/**
* 模板对象
* 模板支持导入和导出,因此所有关联数据均需要放置在模板上进行隔离,防止导入到其它设备上时因缺少依赖数据而失败
*/
export interface TemplateItem {
/** id 主键(Guid) */
id?: string;
/** 模板名称 */
name?: string;
/** 是否应用 */
applied?: boolean;
/** 备注 */
remark?: string;
/** PLC配置列表 */
plcs?: PlcItem[];
/** 变量配置列表 */
variables?: VariableItem[];
/** 报警配置列表 */
alarms?: AlarmItem[];
/** 宏脚本列表 */
macros?: MacroItem[];
/** 转发配置列表 */
transfers?: TransferItem[];
/** 组合方式列表 */
combinations?: MqttCombination[];
/** 时间戳格式列表 */
timestamps?: MqttTimestamp[];
}
export interface TemplatePlcEditProps {
/**
* @deprecated 该属性已弃用
* @see [驱动配置](https://broker-docs.platform.flexem.net/components/drive)
*/
dirves?: DriveItem[];
formData?: {
item: PlcItem;
portNoItems: SelectItem[];
plcTypeItems: SelectItem[];
};
formResult?: boolean;
references?: TemplateReferenceItem[];
/**
* 当表单验证时触发
* schema: (result: boolean, item?: PlcItem) => boolean
*/
onFormValidate?: (result: boolean, item?: PlcItem) => boolean;
/**
* 当表单提交时触发
* schema: (item: PlcItem) => void
*/
onFormSubmit?: (item: PlcItem) => void;
onRefRelease?: (item: TemplateReferenceItem) => void;
}
export interface TemplatePlcTableProps {
data?: PlcItem[];
columns?: Column[];
pagination?: PaginationProps;
showDeleteModal?: boolean;
selectable?: boolean;
selectionType?: 'checkbox' | 'radio';
/**
* schema: (item: PlcItem) => void
*/
onDelete?: (item: PlcItem) => void;
/**
* schema: (item: PlcItem) => void
*/
onEdit?: (item: PlcItem) => void;
onSelect?: (items: PlcItem[]) => void;
}
export interface TemplatePlcToolbarProps {
selectable?: boolean;
/**
* schema: (args: { alias?: string, plcName?: string, type?: string }) => void
*/
onSearch?: (args: {
alias?: string;
plcName?: string;
type?: string;
}) => void;
/**
* schema: () => void
*/
onCreate?: () => void;
onBatchDelete?: () => void;
}
export interface TemplatePlcProps extends Pick, Pick, Omit {
onDelete?: (items: PlcItem[]) => Promise;
onRefCheck?: (items: PlcItem[]) => TemplateReferenceItem[];
onRefRelease?: (items: PlcItem[], ref: TemplateReferenceItem) => TemplateReferenceItem[];
}
export interface TemplateVariableEditProps {
item?: VariableItem;
plcs?: PlcItem[];
formResult?: boolean;
batch?: boolean;
references?: TemplateReferenceItem[];
/**
* schema: (result: boolean, item?: VariableItem) => boolean
*/
onFormValidate?: (result: boolean, item?: VariableItem) => boolean;
/**
* schema: (item: VariableItem) => void
*/
onFormSubmit?: (item: VariableItem) => void;
onRefRelease?: (item: TemplateReferenceItem) => void;
}
export interface TemplateVariableEditModalProps extends Pick {
visible?: boolean;
editItem?: VariableItem;
batch?: boolean;
plcs?: PlcItem[];
references?: TemplateReferenceItem[];
onVisibleChange?: (visible: boolean) => void;
onFormValidate?: (result: boolean, item?: VariableItem) => boolean;
onFormSubmit?: (item: VariableItem) => void;
}
export interface TemplateVariableTableProps extends Pick {
size?: 'small' | 'middle' | 'large' | undefined;
selectable?: boolean;
selectionType?: 'checkbox' | 'radio';
data?: VariableItem[];
columns?: Column[];
pagination?: PaginationProps;
showDeleteModal?: boolean;
rowSelection?: any;
/**
* schema: (item: VariableItem) => void
*/
onEdit?: (item: VariableItem) => void;
/**
* schema: (item: VariableItem) => void
*/
onDelete?: (item: VariableItem) => void;
/**
* schema: (items: VariableItem[]) => void
*/
onSelect?: (items: VariableItem[]) => void;
}
export interface TemplateVariableToolbarProps {
selectable?: boolean;
/**
* schema: (args: { name?: string, description?: string }) => void
*/
onSearch?: (args: {
name?: string;
description?: string;
}) => void;
/**
* schema: () => void
*/
onCreate?: (batch: boolean) => void;
onBatchDelete?: () => void;
}
export interface TemplateReferenceItem {
/** 引用对象类型(0:设备配置、1:变脸配置、2:报警配置、3:边缘计算、4:转发配置, 5:边缘计算执行条件) */
objectType?: number;
/** 引用对象id列表 */
objectIds?: string[];
}
export interface TemplateReferenceProps {
data?: TemplateReferenceItem[];
visible?: boolean;
onVisibleChange?: (visible: boolean) => void;
onRefRelease?: (item: TemplateReferenceItem) => void;
}
export interface TemplateVariableProps extends Pick, Pick, Omit {
onRefCheck?: (items: VariableItem[]) => TemplateReferenceItem[];
onRefRelease?: (vars: VariableItem[], ref: TemplateReferenceItem) => TemplateReferenceItem[];
onDelete?: (items: VariableItem[]) => Promise;
}
export interface TemplateTransferProtocolProps {
data?: TransferItem[];
mqttConfig?: {
host?: string;
port?: number;
path?: string;
};
timestamps?: MqttTimestamp[];
/**
* schema: (level: number, item?: TransferItem) => void
*/
onSelect?: (level: number, item?: TransferItem) => void;
/**
* schema: (result: boolean, item: TransferItem) => boolean
*/
onFormValidate?: (result: boolean, item: TransferItem) => boolean;
/**
* schema: (item: TransferItem) => void
*/
onFormSubmit?: (item: TransferItem) => void;
/**
* schema: (item: TransferItem) => void
*/
onDelete?: (item: TransferItem) => void;
/**
* schema: (item: TransferItem) => void
*/
onChange?: (item: TransferItem) => void;
}
export interface TemplateTransferConnectionProps extends Pick {
data?: TransferFunctionItem[];
variables?: VariableItem[];
alarms?: AlarmItem[];
enableCache?: boolean;
onFormValidate?: (result: boolean, item: TransferFunctionItem) => boolean;
/**
* schema: (item: TransferFunctionItem, combinations: MqttCombination[]) => void
*/
onFormSubmit?: (item: TransferFunctionItem, combinations: MqttCombination[]) => void;
/**
* schema: (item: TransferFunctionItem) => void
*/
onDelete?: (item: TransferFunctionItem) => void;
/**
* schema: (item: TransferFunctionItem) => void
*/
onEdit?: (item: TransferFunctionItem) => void;
/**
* schema: (args: { name?: string, function?: string }) => void
*/
onSearch?: (args: {
name?: string;
function?: string;
}) => void;
}
export interface TemplateTransferConfigProps {
combinations?: MqttCombination[];
timestamps?: MqttTimestamp[];
/**
* schema: (item: MqttCombination) => void
*/
onCombinationCreate?: (item: MqttCombination) => void;
/**
* schema: (item: MqttCombination) => void
*/
onCombinationDelete?: (item: MqttCombination) => void;
/**
* schema: (item: MqttTimestamp) => void
*/
onTimestampCreate?: (item: MqttTimestamp) => void;
/**
* schema: (item: MqttTimestamp) => void
*/
onTimestampDelete?: (item: MqttTimestamp) => void;
}
export interface TemplateTransferProps extends TemplateTransferConfigProps, Pick, Pick {
}
export interface TemplateSearchItem {
name?: string;
remark?: string;
}
export interface TemplateToolbarProps {
showName?: boolean;
showRemark?: boolean;
showClean?: boolean;
showSearch?: boolean;
showImport?: boolean;
showCreate?: boolean;
showBatch?: boolean;
searchItem?: TemplateSearchItem;
selectable?: boolean;
/**
* schema: () => void
*/
onImport?: () => void;
/**
* schema: () => void
*/
onCreate?: () => void;
/**
* schema: (args: TemplateSearchItem) => void
*/
onSearch?: (args: TemplateSearchItem) => void;
onMenuItemClick?: (key: string) => void;
}
export interface TemplateImportProps {
formResult?: boolean;
/**
* schema: (item: TemplateItem) => void
*/
onImport?: (items: TemplateItem[]) => void;
}
export interface TemplateImportModalProps {
visible?: boolean;
onVisibleChange?: (visible: boolean) => void;
onImport?: (items: TemplateItem[]) => void;
}
export interface TemplateEditProps {
item?: TemplateItem;
formResult?: boolean;
/**
* schema: (result: boolean) => void
*/
onFormValidate?: (result: boolean) => void;
/**
* schema: (item: TemplateItem) => void
*/
onFormSubmit?: (item: TemplateItem) => void;
}
export interface TemplateEditModalProps {
visible?: boolean;
editItem?: TemplateItem;
onVisibleChange?: (visible: boolean) => void;
onSave?: (item: TemplateItem) => void;
}
export interface TemplateTableProps {
columns?: Column[];
data?: TemplateItem[];
pagination?: PaginationProps;
selectable?: boolean;
selectionType?: 'checkbox' | 'radio';
size?: 'small' | 'middle' | 'large';
/**
* schema: (items: TemplateItem[]) => void
*/
onSelect?: (items: TemplateItem[]) => void;
/**
* schema: (item: TemplateItem) => void
*/
onConfig?: (item: TemplateItem) => void;
/**
* schema: (item: TemplateItem) => void
*/
onApply?: (item: TemplateItem) => void;
/**
* schema: (item: TemplateItem) => void
*/
onDelete?: (item: TemplateItem) => void;
/**
* schema: (item: TemplateItem) => void
*/
onCopy?: (item: TemplateItem) => void;
/**
* schema: (item: TemplateItem) => void
*/
onEdit?: (item: TemplateItem) => void;
/**
* schema: (item: TemplateItem) => void
*/
onViewRecord?: (item: TemplateItem) => void;
/**
* schema: (id: string) => Promise
*/
onItemLoad?: (id: string) => Promise;
}
/** 模板编辑选项卡属性 */
export interface TemplateTabProps extends TemplateTransferConfigProps {
/** PLC列表数据源 */
plcs?: PlcItem[];
/** PLC列表分页参数 */
plcPagination?: PaginationProps;
/** 变量列表数据源 */
variables?: VariableItem[];
/** 变量列表分页参数 */
variablePagination?: PaginationProps;
/** 报警列表数据源 */
alarms?: AlarmItem[];
/** 报警列表分页参数 */
alarmPagination?: PaginationProps;
/** 宏脚本列表数据源 */
macros?: MacroItem[];
/** 宏脚本列表分页参数 */
macroPagination?: PaginationProps;
/** 宏脚本调试器属性 */
macroDebugger?: MacroDebuggerProps;
/** 转发配置数据源 */
transfers?: TransferItem[];
/**
* 点击PLC创建模态框的确定按钮时触发
* schema: (item: PlcItem) => void
*/
onPlcCreate?: (item: PlcItem) => void;
/**
* 点击PLC列表删除按钮时触发
* schema: (item: PlcItem) => void
*/
onPlcDelete?: (items: PlcItem[]) => Promise;
/**
* 点击PLC列表搜索按钮时触发
* schema: (args: { alias?: string, plcName?: string, type?: string }) => void
*/
onPlcSearch?: (args: {
alias?: string;
plcName?: string;
type?: string;
}) => void;
onPlcRefCheck?: (items: PlcItem[]) => TemplateReferenceItem[];
onPlcRefRelease?: (items: PlcItem[], ref: TemplateReferenceItem) => TemplateReferenceItem[];
/**
* 点击变量创建模态框的确定按钮时触发
* schema: (item: VariableItem) => void
*/
onVariableCreate?: (item: VariableItem) => void;
/**
* 点击变量列表删除按钮时触发
* schema: (item: VariableItem) => void
*/
onVariableDelete?: (items: VariableItem[]) => Promise;
/**
* 点击变量列表搜索按钮时触发
* schema: (args: { name?: string, description?: string }) => void
*/
onVariableSearch?: (args: {
name?: string;
description?: string;
}) => void;
onVariableRefCheck?: (items: VariableItem[]) => TemplateReferenceItem[];
onVariableRefRelease?: (items: VariableItem[], ref: TemplateReferenceItem) => TemplateReferenceItem[];
/**
* 点击MQTT转发连接创建模态框的确定按钮时触发
* schema: (item: TransferItem) => void
*/
onTransferCreate?: (item: TransferItem) => void;
/**
* 右键点击MQTT连接删除按钮时触发
* schema: (item: TransferItem) => void
*/
onTransferDelete?: (item: TransferItem) => void;
/**
* MQTT配置内容变化时触发(包括添加修改和删除功能以及MQTT变量)
* schema: (item: TransferItem) => void
*/
onTransferChange?: (item: TransferItem) => void;
/**
* 点击报警创建模态框确定按钮时触发
* schema: (item: AlarmItem) => void
*/
onAlarmCreate?: (item: AlarmItem) => void;
/**
* 点击报警列表删除按钮时触发
* schema: (item: AlarmItem) => void
*/
onAlarmDelete?: (items: AlarmItem[]) => Promise;
/**
* 点击报警列表搜索按钮时触发
* schema: (args: { name?: string }) => void
*/
onAlarmSearch?: (args: {
name?: string;
}) => void;
onAlarmRefCheck?: (items: AlarmItem[]) => TemplateReferenceItem[];
onAlarmRefRelease?: (items: AlarmItem[], ref: TemplateReferenceItem) => TemplateReferenceItem[];
/**
* 点击宏脚本创建模态框的确定按钮时触发
* schema: (item: MacroItem) => void
*/
onMacroCreate?: (item: MacroItem) => void;
/**
* 点击宏脚本列表删除按钮时触发
* schema: (item: MacroItem) => void
*/
onMacroDelete?: (items: MacroItem[]) => Promise;
/**
* 点击宏脚本列表搜索按钮触发
* schema: (args: { name?: string }) => void
*/
onMacroSearch?: (args: {
name?: string;
}) => void;
}
export interface TemplateProgressBarProps {
visible?: boolean;
percent?: number;
display?: React.ReactNode | string;
}
export interface TemplateProps extends Pick, Pick, Pick {
data?: TemplateItem[];
boxes?: BoxItem[];
boxPagination?: PaginationProps;
/**
* schema: (item: TemplateItem) => void
*/
onTemplateCreate?: (item: TemplateItem) => void;
/**
* schema: (item: TemplateItem) => void
*/
onTemplateUpdate?: (item: TemplateItem) => void;
/**
* schema: (item: TemplateItem[]) => void
*/
onTemplateDelete?: (item: TemplateItem[]) => void;
/**
* schema: (item: TemplateItem) => void
*/
onTemplateImport?: (item: TemplateItem) => void;
/**
* schema: (template: TemplateItem, boxes: BoxItem[], modules: string[]) => void
*/
onTemplateApply?: (template: TemplateItem, boxes: BoxItem[], modules: string[]) => void;
/**
* schema: (args: { keyword?: string, remark?: string }) => void
*/
onBoxSearch?: (args: {
keyword?: string;
remark?: string;
}) => void;
}
export interface TemplateAlarmToolbarProps {
selectable?: boolean;
/**
* 点击搜索按钮时触发
* schema: (args: { name?: string }) => void
*/
onSearch?: (args: {
name?: string;
}) => void;
/**
* 点检创建按钮时触发
* schema: () => void
*/
onCreate?: () => void;
onBatchDelete?: () => void;
}
export interface TemplateAlarmTableProps {
data?: AlarmItem[];
columns?: Column[];
plcs?: PlcItem[];
variables?: VariableItem[];
pagination?: PaginationProps;
selectable?: boolean;
selectionType?: 'checkbox' | 'radio';
/**
* schema: (item: AlarmItem) => void
*/
onEdit?: (item: AlarmItem) => void;
/**
* schema: (item: AlarmItem) => void
*/
onDelete?: (item: AlarmItem) => void;
onSelect?: (items: AlarmItem[]) => void;
}
export interface TemplateAlarmEditProps {
item?: AlarmItem;
plcs?: PlcItem[];
variables?: VariableItem[];
formResult?: boolean;
references?: TemplateReferenceItem[];
/**
* schema: (result: boolean, item?: AlarmItem) => boolean
*/
onFormValidate?: (result: boolean, item?: AlarmItem) => boolean;
/**
* 表单提交时触发
* schema: (item: AlarmItem) => void
*/
onFormSubmit?: (item: AlarmItem) => void;
onRefRelease?: (item: TemplateReferenceItem) => void;
}
export interface TemplateAlarmProps extends Pick, Pick, Omit {
onDelete?: (items: AlarmItem[]) => Promise;
onRefCheck?: (items: AlarmItem[]) => TemplateReferenceItem[];
onRefRelease?: (items: AlarmItem[], ref: TemplateReferenceItem) => TemplateReferenceItem[];
}
export interface MacroDebuggerProps {
watchItems?: MacroWatchItem[];
output?: string;
selection?: MacroCodeSelection;
status?: number;
/**
* schema: (code: string, variables: VariableItem[], plcs: PlcItem[]) => void
*/
onRun?: (code: string, variables: VariableItem[], plcs: PlcItem[]) => void;
/**
* schema: (code: string, variables: VariableItem[], plcs: PlcItem[]) => void
*/
onStep?: (code: string, variables: VariableItem[], plcs: PlcItem[]) => void;
/**
* schema: () => void
*/
onStop?: () => void;
/**
* schema: () => void
*/
onClear?: () => void;
/**
* schema: (breakPoints: Map) => void
*/
onBreakPointsChange?: (breakPoints: Map) => void;
}
export interface TemplateMacroEditorProps extends Pick {
watchColumns?: Column[];
defaultValue?: string;
/**
* schema: (value: string) => void
*/
onChange?: (value: string) => void;
}
export interface TemplateMacroTableProps {
data?: MacroItem[];
columns?: Column[];
pagination?: PaginationProps;
selectable?: boolean;
selectionType?: 'checkbox' | 'radio';
/**
* schema: (item: MacroItem) => void
*/
onEdit?: (item: MacroItem) => void;
/**
* schema: (item: MacroItem) => void
*/
onDelete?: (item: MacroItem) => void;
onSelect?: (items: MacroItem[]) => void;
}
export interface TemplateMacroToolbarProps {
selectable?: boolean;
/**
* schema: () => void
*/
onCreate?: () => void;
/**
* schema: (args: { name?: string }) => void
*/
onSearch?: (args: {
name?: string;
}) => void;
onBatchDelete?: () => void;
}
export interface TemplateMacroVariableProps {
item?: MacroItem;
plcs?: PlcItem[];
variables?: VariableItem[];
/**
* schema: (item: MacroItem) => void
*/
onItemChange?: (item: MacroItem) => void;
}
export interface TemplateMacroEditProps extends MacroDebuggerProps {
item?: MacroItem;
plcs?: PlcItem[];
variables?: VariableItem[];
saving?: boolean;
formResult?: boolean;
/**
* schema: (item: MacroItem, close?: boolean) => void
*/
onSave?: (item: MacroItem, close?: boolean) => void;
/**
* schema: (saveing: boolean) => void
*/
onStateChange?: (saveing: boolean) => void;
/**
* schema: (item: MacroItem) => void
*/
onItemChange?: (item: MacroItem) => void;
}
export interface TemplateMacroProps extends Pick, Omit, Omit {
onDelete?: (items: MacroItem[]) => Promise;
}
export interface TemplateApplyProps {
data: BoxItem[];
pagination?: PaginationProps;
/**
* schema: (items: BoxItem[]) => void
*/
onSelect?: (items: BoxItem[]) => void;
/**
* schema: (args: { keyword?: string; remark?: string }) => void
*/
onSearch?: (args: {
keyword?: string;
remark?: string;
}) => void;
}
export interface TemplateTransferTableProps {
data?: TransferItem[];
columns?: Column[];
pagination?: PaginationProps;
onEdit?: (item: TransferItem) => void;
onDelete?: (item: TransferItem) => void;
}