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/data/sink/index.ts |  126 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 126 insertions(+), 0 deletions(-)

diff --git a/src/api/iot/rule/data/sink/index.ts b/src/api/iot/rule/data/sink/index.ts
new file mode 100644
index 0000000..3e2755e
--- /dev/null
+++ b/src/api/iot/rule/data/sink/index.ts
@@ -0,0 +1,126 @@
+import request from '@/config/axios'
+
+// IoT 鏁版嵁娴佽浆鐩殑 VO
+export interface DataSinkVO {
+  id?: number // 妗ユ缂栧彿
+  name?: string // 妗ユ鍚嶇О
+  description?: string // 妗ユ鎻忚堪
+  status?: number // 妗ユ鐘舵��
+  direction?: number // 妗ユ鏂瑰悜
+  type?: number // 妗ユ绫诲瀷
+  config?:
+    | HttpConfig
+    | MqttConfig
+    | RocketMQConfig
+    | KafkaMQConfig
+    | RabbitMQConfig
+    | RedisStreamMQConfig // 妗ユ閰嶇疆
+}
+
+interface Config {
+  type: string
+}
+
+/** HTTP 閰嶇疆 */
+export interface HttpConfig extends Config {
+  url: string
+  method: string
+  headers: Record<string, string>
+  query: Record<string, string>
+  body: string
+}
+
+/** MQTT 閰嶇疆 */
+export interface MqttConfig extends Config {
+  url: string
+  username: string
+  password: string
+  clientId: string
+  topic: string
+}
+
+/** RocketMQ 閰嶇疆 */
+export interface RocketMQConfig extends Config {
+  nameServer: string
+  accessKey: string
+  secretKey: string
+  group: string
+  topic: string
+  tags: string
+}
+
+/** Kafka 閰嶇疆 */
+export interface KafkaMQConfig extends Config {
+  bootstrapServers: string
+  username: string
+  password: string
+  ssl: boolean
+  topic: string
+}
+
+/** RabbitMQ 閰嶇疆 */
+export interface RabbitMQConfig extends Config {
+  host: string
+  port: number
+  virtualHost: string
+  username: string
+  password: string
+  exchange: string
+  routingKey: string
+  queue: string
+}
+
+/** Redis Stream MQ 閰嶇疆 */
+export interface RedisStreamMQConfig extends Config {
+  host: string
+  port: number
+  password: string
+  database: number
+  topic: string
+}
+
+/** 鏁版嵁娴佽浆鐩殑绫诲瀷 */
+export const IotDataSinkTypeEnum = {
+  HTTP: 1,
+  TCP: 2,
+  WEBSOCKET: 3,
+  MQTT: 10,
+  DATABASE: 20,
+  REDIS_STREAM: 21,
+  ROCKETMQ: 30,
+  RABBITMQ: 31,
+  KAFKA: 32
+} as const
+
+// 鏁版嵁娴佽浆鐩殑 API
+export const DataSinkApi = {
+  // 鏌ヨ鏁版嵁娴佽浆鐩殑鍒嗛〉
+  getDataSinkPage: async (params: any) => {
+    return await request.get({ url: `/iot/data-sink/page`, params })
+  },
+
+  // 鏌ヨ鏁版嵁娴佽浆鐩殑璇︽儏
+  getDataSink: async (id: number) => {
+    return await request.get({ url: `/iot/data-sink/get?id=` + id })
+  },
+
+  // 鏂板鏁版嵁娴佽浆鐩殑
+  createDataSink: async (data: DataSinkVO) => {
+    return await request.post({ url: `/iot/data-sink/create`, data })
+  },
+
+  // 淇敼鏁版嵁娴佽浆鐩殑
+  updateDataSink: async (data: DataSinkVO) => {
+    return await request.put({ url: `/iot/data-sink/update`, data })
+  },
+
+  // 鍒犻櫎鏁版嵁娴佽浆鐩殑
+  deleteDataSink: async (id: number) => {
+    return await request.delete({ url: `/iot/data-sink/delete?id=` + id })
+  },
+
+  // 鏌ヨ鏁版嵁娴佽浆鐩殑锛堢簿绠�锛夊垪琛�
+  getDataSinkSimpleList() {
+    return request.get({ url: '/iot/data-sink/simple-list' })
+  }
+}

--
Gitblit v1.8.0