From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目

---
 src/api/iot/rule/scene/index.ts |   87 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 87 insertions(+), 0 deletions(-)

diff --git a/src/api/iot/rule/scene/index.ts b/src/api/iot/rule/scene/index.ts
new file mode 100644
index 0000000..0fbde26
--- /dev/null
+++ b/src/api/iot/rule/scene/index.ts
@@ -0,0 +1,87 @@
+import request from '@/config/axios'
+
+// 鍦烘櫙鑱斿姩
+export interface IotSceneRule {
+  id?: number // 鍦烘櫙缂栧彿
+  name: string // 鍦烘櫙鍚嶇О
+  description?: string // 鍦烘櫙鎻忚堪
+  status: number // 鍦烘櫙鐘舵�侊細0-寮�鍚紝1-鍏抽棴
+  triggers: Trigger[] // 瑙﹀彂鍣ㄦ暟缁�
+  actions: Action[] // 鎵ц鍣ㄦ暟缁�
+}
+
+// 瑙﹀彂鍣ㄧ粨鏋�
+export interface Trigger {
+  type: number // 瑙﹀彂绫诲瀷
+  productId?: number // 浜у搧缂栧彿
+  deviceId?: number // 璁惧缂栧彿
+  identifier?: string // 鐗╂ā鍨嬫爣璇嗙
+  operator?: string // 鎿嶄綔绗�
+  value?: string // 鍙傛暟鍊�
+  cronExpression?: string // CRON 琛ㄨ揪寮�
+  conditionGroups?: TriggerCondition[][] // 鏉′欢缁勶紙浜岀淮鏁扮粍锛�
+}
+
+// 瑙﹀彂鏉′欢缁撴瀯
+export interface TriggerCondition {
+  type: number // 鏉′欢绫诲瀷锛�1-璁惧鐘舵�侊紝2-璁惧灞炴�э紝3-褰撳墠鏃堕棿
+  productId?: number // 浜у搧缂栧彿
+  deviceId?: number // 璁惧缂栧彿
+  identifier?: string // 鏍囪瘑绗�
+  operator: string // 鎿嶄綔绗�
+  param: string // 鍙傛暟
+}
+
+// 鎵ц鍣ㄧ粨鏋�
+export interface Action {
+  type: number // 鎵ц绫诲瀷
+  productId?: number // 浜у搧缂栧彿
+  deviceId?: number // 璁惧缂栧彿
+  identifier?: string // 鐗╂ā鍨嬫爣璇嗙锛堟湇鍔¤皟鐢ㄦ椂浣跨敤锛�
+  params?: string // 璇锋眰鍙傛暟
+  alertConfigId?: number // 鍛婅閰嶇疆缂栧彿
+}
+
+// IoT 鍦烘櫙鑱斿姩 API
+export const RuleSceneApi = {
+  // 鏌ヨ鍦烘櫙鑱斿姩鍒嗛〉
+  getRuleScenePage: async (params: any) => {
+    return await request.get({ url: `/iot/scene-rule/page`, params })
+  },
+
+  // 鏌ヨ鍦烘櫙鑱斿姩璇︽儏
+  getRuleScene: async (id: number) => {
+    return await request.get({ url: `/iot/scene-rule/get?id=` + id })
+  },
+
+  // 鏂板鍦烘櫙鑱斿姩
+  createRuleScene: async (data: IotSceneRule) => {
+    return await request.post({ url: `/iot/scene-rule/create`, data })
+  },
+
+  // 淇敼鍦烘櫙鑱斿姩
+  updateRuleScene: async (data: IotSceneRule) => {
+    return await request.put({ url: `/iot/scene-rule/update`, data })
+  },
+
+  // 淇敼鍦烘櫙鑱斿姩
+  updateRuleSceneStatus: async (id: number, status: number) => {
+    return await request.put({
+      url: `/iot/scene-rule/update-status`,
+      data: {
+        id,
+        status
+      }
+    })
+  },
+
+  // 鍒犻櫎鍦烘櫙鑱斿姩
+  deleteRuleScene: async (id: number) => {
+    return await request.delete({ url: `/iot/scene-rule/delete?id=` + id })
+  },
+
+  // 鑾峰彇鍦烘櫙鑱斿姩绠�鍗曞垪琛�
+  getSimpleRuleSceneList: async () => {
+    return await request.get({ url: `/iot/scene-rule/simple-list` })
+  }
+}

--
Gitblit v1.8.0