gaoluyang
2026-06-24 712aa51536236d43e87273e4ce45ac5691dffad8
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
import type { PageParam, PageResult } from '..\..\..\..\packages\effects\request\src';
 
import { requestClient } from '#/api/request';
 
export namespace IotProductApi {
  /** 产品 */
  export interface Product {
    id?: number; // 产品编号
    name: string; // 产品名称
    productKey?: string; // 产品标识
    productSecret?: string; // 产品密钥
    protocolId?: number; // 协议编号
    protocolType?: string; // 协议类型
    categoryId?: number; // 产品所属品类标识符
    categoryName?: string; // 产品所属品类名称
    icon?: string; // 产品图标
    picUrl?: string; // 产品图片
    description?: string; // 产品描述
    status?: number; // 产品状态
    deviceType?: number; // 设备类型
    netType?: number; // 联网方式
    serializeType?: string; // 序列化类型
    registerEnabled?: boolean; // 是否开启动态注册
    deviceCount?: number; // 设备数量
    createTime?: Date; // 创建时间
  }
}
 
// IoT 协议类型枚举
export enum ProtocolTypeEnum {
  COAP = 'coap',
  EMQX = 'emqx',
  HTTP = 'http',
  MODBUS_TCP_CLIENT = 'modbus_tcp_client',
  MODBUS_TCP_SERVER = 'modbus_tcp_server',
  MQTT = 'mqtt',
  TCP = 'tcp',
  UDP = 'udp',
  WEBSOCKET = 'websocket',
}
 
// IoT 序列化类型枚举
export enum SerializeTypeEnum {
  BINARY = 'binary',
  JSON = 'json',
}
 
/** 查询产品分页 */
export function getProductPage(params: PageParam) {
  return requestClient.get<PageResult<IotProductApi.Product>>(
    '/iot/product/page',
    { params },
  );
}
 
/** 查询产品详情 */
export function getProduct(id: number) {
  return requestClient.get<IotProductApi.Product>(`/iot/product/get?id=${id}`);
}
 
/** 新增产品 */
export function createProduct(data: IotProductApi.Product) {
  return requestClient.post('/iot/product/create', data);
}
 
/** 修改产品 */
export function updateProduct(data: IotProductApi.Product) {
  return requestClient.put('/iot/product/update', data);
}
 
/** 删除产品 */
export function deleteProduct(id: number) {
  return requestClient.delete(`/iot/product/delete?id=${id}`);
}
 
/** 导出产品 Excel */
export function exportProduct(params: any) {
  return requestClient.download('/iot/product/export-excel', { params });
}
 
/** 更新产品状态 */
export function updateProductStatus(id: number, status: number) {
  return requestClient.put(
    `/iot/product/update-status?id=${id}&status=${status}`,
  );
}
 
/** 查询产品(精简)列表 */
export function getSimpleProductList(deviceType?: number) {
  return requestClient.get<IotProductApi.Product[]>(
    '/iot/product/simple-list',
    {
      params: { deviceType },
    },
  );
}
 
/** 根据 ProductKey 获取产品信息 */
export function getProductByKey(productKey: string) {
  return requestClient.get<IotProductApi.Product>('/iot/product/get-by-key', {
    params: { productKey },
  });
}
 
/** 同步产品物模型 TDengine 超级表结构 */
export function syncProductPropertyTable(productId: number) {
  return requestClient.post(
    `/iot/product/sync-property-table?productId=${productId}`,
  );
}