wwf
12 小时以前 a1d7e81859f554f3a53680cc35f0f49bf1f77098
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
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' })
  }
}