【代码优化】IoT: 数据桥梁

This commit is contained in:
puhui999
2025-03-25 16:33:18 +08:00
parent 416c7f42ab
commit d6da0cbc46
9 changed files with 39 additions and 31 deletions

View File

@ -80,17 +80,21 @@ export interface RedisStreamMQConfig extends Config {
} }
/** 数据桥梁类型 */ /** 数据桥梁类型 */
// TODO @puhui999枚举用 number 可以么?
export const IoTDataBridgeConfigType = { export const IoTDataBridgeConfigType = {
HTTP: '1', HTTP: 1,
TCP: '2', TCP: 2,
WEBSOCKET: '3', WEBSOCKET: 3,
MQTT: '10', MQTT: 10,
DATABASE: '20', DATABASE: 20,
REDIS_STREAM: '21', REDIS_STREAM: 21,
ROCKETMQ: '30', ROCKETMQ: 30,
RABBITMQ: '31', RABBITMQ: 31,
KAFKA: '32' KAFKA: 32
} as const
export const IotDataBridgeDirectionEnum = {
INPUT: 1, // 输入
OUTPUT: 2 // 输出
} as const } as const
// 数据桥梁 API // 数据桥梁 API

View File

@ -46,7 +46,7 @@
v-if="showConfig(IoTDataBridgeConfigType.RABBITMQ)" v-if="showConfig(IoTDataBridgeConfigType.RABBITMQ)"
v-model="formData.config" v-model="formData.config"
/> />
<RedisStreamMQConfigForm <RedisStreamConfigForm
v-if="showConfig(IoTDataBridgeConfigType.REDIS_STREAM)" v-if="showConfig(IoTDataBridgeConfigType.REDIS_STREAM)"
v-model="formData.config" v-model="formData.config"
/> />
@ -73,13 +73,19 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { DICT_TYPE, getDictObj, getIntDictOptions } from '@/utils/dict' import { DICT_TYPE, getDictObj, getIntDictOptions } from '@/utils/dict'
import { DataBridgeApi, DataBridgeVO, IoTDataBridgeConfigType } from '@/api/iot/rule/databridge' import { CommonStatusEnum } from '@/utils/constants'
import {
DataBridgeApi,
DataBridgeVO,
IoTDataBridgeConfigType,
IotDataBridgeDirectionEnum
} from '@/api/iot/rule/databridge'
import { import {
HttpConfigForm, HttpConfigForm,
KafkaMQConfigForm, KafkaMQConfigForm,
MqttConfigForm, MqttConfigForm,
RabbitMQConfigForm, RabbitMQConfigForm,
RedisStreamMQConfigForm, RedisStreamConfigForm,
RocketMQConfigForm RocketMQConfigForm
} from './config' } from './config'
@ -94,9 +100,9 @@ const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 表单的加载中1修改时的数据加载2提交的按钮禁用 const formLoading = ref(false) // 表单的加载中1修改时的数据加载2提交的按钮禁用
const formType = ref('') // 表单的类型create - 新增update - 修改 const formType = ref('') // 表单的类型create - 新增update - 修改
const formData = ref<DataBridgeVO>({ const formData = ref<DataBridgeVO>({
status: 0, status: CommonStatusEnum.ENABLE,
direction: 1, // TODO @puhui999:枚举类 direction: IotDataBridgeDirectionEnum.INPUT,
type: 1, // TODO @puhui999:枚举类 type: IoTDataBridgeConfigType.HTTP,
config: {} as any config: {} as any
}) })
const formRules = reactive({ const formRules = reactive({
@ -139,9 +145,9 @@ const formRules = reactive({
}) })
const formRef = ref() // 表单 Ref const formRef = ref() // 表单 Ref
const showConfig = computed(() => (val: string) => { const showConfig = computed(() => (val: number) => {
const dict = getDictObj(DICT_TYPE.IOT_DATA_BRIDGE_TYPE_ENUM, formData.value.type) const dict = getDictObj(DICT_TYPE.IOT_DATA_BRIDGE_TYPE_ENUM, formData.value.type)
return dict && dict.value + '' === val return dict && dict.value + '' === val + ''
}) // 显示对应的 Config 配置项 }) // 显示对应的 Config 配置项
/** 打开弹窗 */ /** 打开弹窗 */
@ -196,10 +202,9 @@ const handleTypeChange = (val: number) => {
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
// TODO @puhui999换成枚举值哈 status: CommonStatusEnum.ENABLE,
status: 0, direction: IotDataBridgeDirectionEnum.INPUT,
direction: 1, type: IoTDataBridgeConfigType.HTTP,
type: 1,
config: {} as any config: {} as any
} }
formRef.value?.resetFields() formRef.value?.resetFields()

View File

@ -73,7 +73,7 @@ onMounted(() => {
} }
config.value = { config.value = {
type: IoTDataBridgeConfigType.HTTP, type: IoTDataBridgeConfigType.HTTP + '', // 序列化成对应类型时使用
url: '', url: '',
method: 'POST', method: 'POST',
headers: {}, headers: {},

View File

@ -34,7 +34,7 @@ onMounted(() => {
return return
} }
config.value = { config.value = {
type: IoTDataBridgeConfigType.KAFKA, type: IoTDataBridgeConfigType.KAFKA + '', // 序列化成对应类型时使用
bootstrapServers: '', bootstrapServers: '',
username: '', username: '',
password: '', password: '',

View File

@ -34,7 +34,7 @@ onMounted(() => {
return return
} }
config.value = { config.value = {
type: IoTDataBridgeConfigType.MQTT, type: IoTDataBridgeConfigType.MQTT + '', // 序列化成对应类型时使用
url: '', url: '',
username: '', username: '',
password: '', password: '',

View File

@ -49,7 +49,7 @@ onMounted(() => {
return return
} }
config.value = { config.value = {
type: IoTDataBridgeConfigType.RABBITMQ, type: IoTDataBridgeConfigType.RABBITMQ + '', // 序列化成对应类型时使用
host: '', host: '',
port: 5672, port: 5672,
virtualHost: '/', virtualHost: '/',

View File

@ -1,4 +1,3 @@
<!-- TODO @puhui999去掉 MQ 关键字哈 -->
<template> <template>
<el-form-item label="主机地址" prop="config.host"> <el-form-item label="主机地址" prop="config.host">
<el-input v-model="config.host" placeholder="请输入主机地址localhost" /> <el-input v-model="config.host" placeholder="请输入主机地址localhost" />
@ -47,7 +46,7 @@ onMounted(() => {
return return
} }
config.value = { config.value = {
type: IoTDataBridgeConfigType.REDIS_STREAM, type: IoTDataBridgeConfigType.REDIS_STREAM + '', // 使
host: '', host: '',
port: 6379, port: 6379,
password: '', password: '',

View File

@ -45,7 +45,7 @@ onMounted(() => {
return return
} }
config.value = { config.value = {
type: IoTDataBridgeConfigType.ROCKETMQ, type: IoTDataBridgeConfigType.ROCKETMQ + '', // 序列化成对应类型时使用
nameServer: '', nameServer: '',
accessKey: '', accessKey: '',
secretKey: '', secretKey: '',

View File

@ -3,7 +3,7 @@ import MqttConfigForm from './MqttConfigForm.vue'
import RocketMQConfigForm from './RocketMQConfigForm.vue' import RocketMQConfigForm from './RocketMQConfigForm.vue'
import KafkaMQConfigForm from './KafkaMQConfigForm.vue' import KafkaMQConfigForm from './KafkaMQConfigForm.vue'
import RabbitMQConfigForm from './RabbitMQConfigForm.vue' import RabbitMQConfigForm from './RabbitMQConfigForm.vue'
import RedisStreamMQConfigForm from './RedisStreamMQConfigForm.vue' import RedisStreamConfigForm from './RedisStreamConfigForm.vue'
export { export {
HttpConfigForm, HttpConfigForm,
@ -11,5 +11,5 @@ export {
RocketMQConfigForm, RocketMQConfigForm,
KafkaMQConfigForm, KafkaMQConfigForm,
RabbitMQConfigForm, RabbitMQConfigForm,
RedisStreamMQConfigForm RedisStreamConfigForm
} }