import request from '@/config/axios' // IoT 数据桥梁 VO export interface DataBridgeVO { 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 query: Record 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 IoTDataBridgeConfigType = { HTTP: 1, TCP: 2, WEBSOCKET: 3, MQTT: 10, DATABASE: 20, REDIS_STREAM: 21, ROCKETMQ: 30, RABBITMQ: 31, KAFKA: 32 } as const export const IotDataBridgeDirectionEnum = { INPUT: 1, // 输入 OUTPUT: 2 // 输出 } as const // 数据桥梁 API export const DataBridgeApi = { // 查询数据桥梁分页 getDataBridgePage: async (params: any) => { return await request.get({ url: `/iot/data-bridge/page`, params }) }, // 查询数据桥梁详情 getDataBridge: async (id: number) => { return await request.get({ url: `/iot/data-bridge/get?id=` + id }) }, // 新增数据桥梁 createDataBridge: async (data: DataBridgeVO) => { return await request.post({ url: `/iot/data-bridge/create`, data }) }, // 修改数据桥梁 updateDataBridge: async (data: DataBridgeVO) => { return await request.put({ url: `/iot/data-bridge/update`, data }) }, // 删除数据桥梁 deleteDataBridge: async (id: number) => { return await request.delete({ url: `/iot/data-bridge/delete?id=` + id }) }, // 查询数据桥梁(精简)列表 // TODO @puhui999:getDataBridgeSimpleList 哈。项目的风格统一~ 之前有几个,我写错了。。。 getSimpleDataBridgeList() { return request.get({ url: '/iot/data-bridge/simple-list' }) } }