admin-vben/apps/web-antdv-next/src/api/iot/rule/scene/index.ts

97 lines
2.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace RuleSceneApi {
/** 场景联动规则 */
export interface SceneRule {
id?: number;
name: string;
description?: string;
status?: number;
triggers?: Trigger[];
actions?: Action[];
lastTriggeredTime?: Date;
createTime?: Date;
}
/** 场景联动规则的触发器 */
export interface Trigger {
type?: number;
productId?: number;
deviceId?: number;
identifier?: string;
operator?: string;
value?: any;
cronExpression?: string;
conditionGroups?: TriggerCondition[][]; // 后端结构List<List<TriggerCondition>>;外层「或」、组内「且」
}
/** 场景联动规则的触发条件 */
export interface TriggerCondition {
productId?: number;
deviceId?: number;
identifier?: string;
operator?: string;
value?: any;
type?: number;
param?: string;
}
/** 场景联动规则的动作 */
export interface Action {
type?: number;
productId?: number;
deviceId?: number;
identifier?: string;
value?: any;
alertConfigId?: number;
params?: string;
}
}
/** 查询场景联动规则分页 */
export function getSceneRulePage(params: PageParam) {
return requestClient.get<PageResult<RuleSceneApi.SceneRule>>(
'/iot/scene-rule/page',
{ params },
);
}
/** 查询场景联动规则详情 */
export function getSceneRule(id: number) {
return requestClient.get<RuleSceneApi.SceneRule>(
`/iot/scene-rule/get?id=${id}`,
);
}
/** 新增场景联动规则 */
export function createSceneRule(data: RuleSceneApi.SceneRule) {
return requestClient.post('/iot/scene-rule/create', data);
}
/** 修改场景联动规则 */
export function updateSceneRule(data: RuleSceneApi.SceneRule) {
return requestClient.put('/iot/scene-rule/update', data);
}
/** 删除场景联动规则 */
export function deleteSceneRule(id: number) {
return requestClient.delete(`/iot/scene-rule/delete?id=${id}`);
}
/** 更新场景联动规则状态 */
export function updateSceneRuleStatus(id: number, status: number) {
return requestClient.put(`/iot/scene-rule/update-status`, {
id,
status,
});
}
/** 获取场景联动规则简单列表 */
export function getSimpleRuleSceneList() {
return requestClient.get<RuleSceneApi.SceneRule[]>(
'/iot/scene-rule/simple-list',
);
}