From ad376b24b44c4634620531b8445479b21a0a81ef Mon Sep 17 00:00:00 2001 From: puhui999 Date: Fri, 13 Mar 2026 12:27:09 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat(iot):=20=E5=89=8D=E7=AB=AF=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=20Database=20=E6=95=B0=E6=8D=AE=E7=9B=AE=E7=9A=84?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. DatabaseConfigForm.vue: 新增 Database 配置表单(JDBC地址/用户名/密码/目标表名) 2. config/index.ts: 导出 DatabaseConfigForm 组件 3. DataSinkForm.vue: 引入 DatabaseConfigForm 条件渲染和校验规则 4. api/sink/index.ts: 添加 DatabaseConfig 接口和联合类型 --- src/api/iot/rule/data/sink/index.ts | 9 ++++ src/views/iot/rule/data/sink/DataSinkForm.vue | 8 ++++ .../data/sink/config/DatabaseConfigForm.vue | 44 +++++++++++++++++++ src/views/iot/rule/data/sink/config/index.ts | 2 + 4 files changed, 63 insertions(+) create mode 100644 src/views/iot/rule/data/sink/config/DatabaseConfigForm.vue diff --git a/src/api/iot/rule/data/sink/index.ts b/src/api/iot/rule/data/sink/index.ts index 31a2659a7..9bc356bc7 100644 --- a/src/api/iot/rule/data/sink/index.ts +++ b/src/api/iot/rule/data/sink/index.ts @@ -13,6 +13,7 @@ export interface DataSinkVO { | TcpConfig | WebSocketConfig | MqttConfig + | DatabaseConfig | RocketMQConfig | KafkaMQConfig | RabbitMQConfig @@ -73,6 +74,14 @@ export interface MqttConfig extends Config { topic: string } +/** Database 配置 */ +export interface DatabaseConfig extends Config { + jdbcUrl: string + username: string + password: string + tableName: string +} + /** RocketMQ 配置 */ export interface RocketMQConfig extends Config { nameServer: string diff --git a/src/views/iot/rule/data/sink/DataSinkForm.vue b/src/views/iot/rule/data/sink/DataSinkForm.vue index 2aca73f9d..5165bea3e 100644 --- a/src/views/iot/rule/data/sink/DataSinkForm.vue +++ b/src/views/iot/rule/data/sink/DataSinkForm.vue @@ -30,6 +30,10 @@ v-model="formData.config" /> + + + + + + + + + + + + + + + diff --git a/src/views/iot/rule/data/sink/config/index.ts b/src/views/iot/rule/data/sink/config/index.ts index f04808f58..67b0d2fa6 100644 --- a/src/views/iot/rule/data/sink/config/index.ts +++ b/src/views/iot/rule/data/sink/config/index.ts @@ -2,6 +2,7 @@ import HttpConfigForm from './HttpConfigForm.vue' import TcpConfigForm from './TcpConfigForm.vue' import WebSocketConfigForm from './WebSocketConfigForm.vue' import MqttConfigForm from './MqttConfigForm.vue' +import DatabaseConfigForm from './DatabaseConfigForm.vue' import RocketMQConfigForm from './RocketMQConfigForm.vue' import KafkaMQConfigForm from './KafkaMQConfigForm.vue' import RabbitMQConfigForm from './RabbitMQConfigForm.vue' @@ -12,6 +13,7 @@ export { TcpConfigForm, WebSocketConfigForm, MqttConfigForm, + DatabaseConfigForm, RocketMQConfigForm, KafkaMQConfigForm, RabbitMQConfigForm, From 9f19835a80c40c9fdafe3ec96c0a047eab58d4d3 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Fri, 13 Mar 2026 12:30:04 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat(iot):=20Database=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BB=BA=E8=A1=A8=20SQL=20=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E5=92=8C=E4=B8=80=E9=94=AE=E5=A4=8D=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 顶部 el-alert 友好提示用户需要先创建表 - 内嵌 SQL 文本框(monospace字体) + 复制按钮 - tableName 默认值设为 iot_device_message_sink --- .../data/sink/config/DatabaseConfigForm.vue | 55 ++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/src/views/iot/rule/data/sink/config/DatabaseConfigForm.vue b/src/views/iot/rule/data/sink/config/DatabaseConfigForm.vue index d9a596cf3..bbad1d3f0 100644 --- a/src/views/iot/rule/data/sink/config/DatabaseConfigForm.vue +++ b/src/views/iot/rule/data/sink/config/DatabaseConfigForm.vue @@ -1,4 +1,35 @@ From dfee5b999d1c9a1e25e149e4baeff59b6767d528 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Fri, 13 Mar 2026 12:46:57 +0800 Subject: [PATCH 3/3] =?UTF-8?q?style(iot):=20=E4=BC=98=E5=8C=96=20Database?= =?UTF-8?q?=20=E6=95=B0=E6=8D=AE=E7=9B=AE=E7=9A=84=E7=9A=84=E5=BB=BA?= =?UTF-8?q?=E8=A1=A8=E6=8F=90=E7=A4=BAUX?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 表名输入框右侧附加「查看/收起表结构提示」按钮 - 引入 el-collapse-transition 结合酷炫终端卡片实现平滑的折叠动画 - 修正 Vue template 中由于缺少闭合 div 导致的语法编译错误 --- .../data/sink/config/DatabaseConfigForm.vue | 263 +++++++++++++++--- 1 file changed, 223 insertions(+), 40 deletions(-) diff --git a/src/views/iot/rule/data/sink/config/DatabaseConfigForm.vue b/src/views/iot/rule/data/sink/config/DatabaseConfigForm.vue index bbad1d3f0..3311de428 100644 --- a/src/views/iot/rule/data/sink/config/DatabaseConfigForm.vue +++ b/src/views/iot/rule/data/sink/config/DatabaseConfigForm.vue @@ -1,35 +1,4 @@ + + +