index.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. import request from '@/config/axios'
  2. // IoT 数据桥梁 VO
  3. export interface DataBridgeVO {
  4. id?: number // 桥梁编号
  5. name?: string // 桥梁名称
  6. description?: string // 桥梁描述
  7. status?: number // 桥梁状态
  8. direction?: number // 桥梁方向
  9. type?: number // 桥梁类型
  10. config?:
  11. | HttpConfig
  12. | MqttConfig
  13. | RocketMQConfig
  14. | KafkaMQConfig
  15. | RabbitMQConfig
  16. | RedisStreamMQConfig // 桥梁配置
  17. }
  18. interface Config {
  19. type: string
  20. }
  21. /** HTTP 配置 */
  22. export interface HttpConfig extends Config {
  23. url: string
  24. method: string
  25. headers: Record<string, string>
  26. query: Record<string, string>
  27. body: string
  28. }
  29. /** MQTT 配置 */
  30. export interface MqttConfig extends Config {
  31. url: string
  32. username: string
  33. password: string
  34. clientId: string
  35. topic: string
  36. }
  37. /** RocketMQ 配置 */
  38. export interface RocketMQConfig extends Config {
  39. nameServer: string
  40. accessKey: string
  41. secretKey: string
  42. group: string
  43. topic: string
  44. tags: string
  45. }
  46. /** Kafka 配置 */
  47. export interface KafkaMQConfig extends Config {
  48. bootstrapServers: string
  49. username: string
  50. password: string
  51. ssl: boolean
  52. topic: string
  53. }
  54. /** RabbitMQ 配置 */
  55. export interface RabbitMQConfig extends Config {
  56. host: string
  57. port: number
  58. virtualHost: string
  59. username: string
  60. password: string
  61. exchange: string
  62. routingKey: string
  63. queue: string
  64. }
  65. /** Redis Stream MQ 配置 */
  66. export interface RedisStreamMQConfig extends Config {
  67. host: string
  68. port: number
  69. password: string
  70. database: number
  71. topic: string
  72. }
  73. /** 数据桥梁类型 */
  74. // TODO @puhui999:枚举用 number 可以么?
  75. export const IoTDataBridgeConfigType = {
  76. HTTP: '1',
  77. TCP: '2',
  78. WEBSOCKET: '3',
  79. MQTT: '10',
  80. DATABASE: '20',
  81. REDIS_STREAM: '21',
  82. ROCKETMQ: '30',
  83. RABBITMQ: '31',
  84. KAFKA: '32'
  85. } as const
  86. // 数据桥梁 API
  87. export const DataBridgeApi = {
  88. // 查询数据桥梁分页
  89. getDataBridgePage: async (params: any) => {
  90. return await request.get({ url: `/iot/data-bridge/page`, params })
  91. },
  92. // 查询数据桥梁详情
  93. getDataBridge: async (id: number) => {
  94. return await request.get({ url: `/iot/data-bridge/get?id=` + id })
  95. },
  96. // 新增数据桥梁
  97. createDataBridge: async (data: DataBridgeVO) => {
  98. return await request.post({ url: `/iot/data-bridge/create`, data })
  99. },
  100. // 修改数据桥梁
  101. updateDataBridge: async (data: DataBridgeVO) => {
  102. return await request.put({ url: `/iot/data-bridge/update`, data })
  103. },
  104. // 删除数据桥梁
  105. deleteDataBridge: async (id: number) => {
  106. return await request.delete({ url: `/iot/data-bridge/delete?id=` + id })
  107. },
  108. // 导出数据桥梁 Excel
  109. exportDataBridge: async (params) => {
  110. return await request.download({ url: `/iot/data-bridge/export-excel`, params })
  111. }
  112. }