feat(iot):优化 IoT 请求的代码风格
parent
71a23487f7
commit
d649a617ac
|
|
@ -3,37 +3,22 @@ import type { PageParam, PageResult } from '@vben/request';
|
||||||
import { requestClient } from '#/api/request';
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
export namespace AlertConfigApi {
|
export namespace AlertConfigApi {
|
||||||
/** IoT 告警配置 VO */
|
/** IoT 告警配置 */
|
||||||
export interface AlertConfig {
|
export interface AlertConfig {
|
||||||
id?: number;
|
id?: number;
|
||||||
name: string;
|
name?: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
level?: number;
|
level?: number;
|
||||||
status?: number;
|
status?: number;
|
||||||
sceneRuleIds?: number[];
|
sceneRuleIds?: number[];
|
||||||
receiveUserIds?: number[];
|
receiveUserIds?: number[];
|
||||||
receiveUserNames?: string;
|
receiveUserNames?: string[];
|
||||||
receiveTypes?: number[];
|
receiveTypes?: number[];
|
||||||
createTime?: Date;
|
createTime?: Date;
|
||||||
updateTime?: Date;
|
updateTime?: Date;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** IoT 告警配置 */
|
|
||||||
export interface AlertConfig {
|
|
||||||
id?: number;
|
|
||||||
name?: string;
|
|
||||||
description?: string;
|
|
||||||
level?: number;
|
|
||||||
status?: number;
|
|
||||||
sceneRuleIds?: number[];
|
|
||||||
receiveUserIds?: number[];
|
|
||||||
receiveUserNames?: string;
|
|
||||||
receiveTypes?: number[];
|
|
||||||
createTime?: Date;
|
|
||||||
updateTime?: Date;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 查询告警配置分页 */
|
/** 查询告警配置分页 */
|
||||||
export function getAlertConfigPage(params: PageParam) {
|
export function getAlertConfigPage(params: PageParam) {
|
||||||
return requestClient.get<PageResult<AlertConfigApi.AlertConfig>>(
|
return requestClient.get<PageResult<AlertConfigApi.AlertConfig>>(
|
||||||
|
|
@ -49,20 +34,20 @@ export function getAlertConfig(id: number) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 查询所有告警配置列表 */
|
/** 获取告警配置简单列表 */
|
||||||
export function getAlertConfigList() {
|
export function getSimpleAlertConfigList() {
|
||||||
return requestClient.get<AlertConfigApi.AlertConfig[]>(
|
return requestClient.get<AlertConfigApi.AlertConfig[]>(
|
||||||
'/iot/alert-config/list',
|
'/iot/alert-config/simple-list',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 新增告警配置 */
|
/** 新增告警配置 */
|
||||||
export function createAlertConfig(data: AlertConfig) {
|
export function createAlertConfig(data: AlertConfigApi.AlertConfig) {
|
||||||
return requestClient.post('/iot/alert-config/create', data);
|
return requestClient.post('/iot/alert-config/create', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 修改告警配置 */
|
/** 修改告警配置 */
|
||||||
export function updateAlertConfig(data: AlertConfig) {
|
export function updateAlertConfig(data: AlertConfigApi.AlertConfig) {
|
||||||
return requestClient.put('/iot/alert-config/update', data);
|
return requestClient.put('/iot/alert-config/update', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -70,25 +55,3 @@ export function updateAlertConfig(data: AlertConfig) {
|
||||||
export function deleteAlertConfig(id: number) {
|
export function deleteAlertConfig(id: number) {
|
||||||
return requestClient.delete(`/iot/alert-config/delete?id=${id}`);
|
return requestClient.delete(`/iot/alert-config/delete?id=${id}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 批量删除告警配置 */
|
|
||||||
export function deleteAlertConfigList(ids: number[]) {
|
|
||||||
return requestClient.delete('/iot/alert-config/delete-list', {
|
|
||||||
params: { ids: ids.join(',') },
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 启用/禁用告警配置 */
|
|
||||||
export function toggleAlertConfig(id: number, enabled: boolean) {
|
|
||||||
return requestClient.put(`/iot/alert-config/toggle`, {
|
|
||||||
id,
|
|
||||||
enabled,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 获取告警配置简单列表 */
|
|
||||||
export function getSimpleAlertConfigList() {
|
|
||||||
return requestClient.get<AlertConfigApi.AlertConfig[]>(
|
|
||||||
'/iot/alert-config/simple-list',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import type { PageParam, PageResult } from '@vben/request';
|
||||||
import { requestClient } from '#/api/request';
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
export namespace AlertRecordApi {
|
export namespace AlertRecordApi {
|
||||||
/** IoT 告警记录 VO */
|
/** IoT 告警记录 */
|
||||||
export interface AlertRecord {
|
export interface AlertRecord {
|
||||||
id?: number;
|
id?: number;
|
||||||
configId?: number;
|
configId?: number;
|
||||||
|
|
@ -13,7 +13,7 @@ export namespace AlertRecordApi {
|
||||||
deviceName?: string;
|
deviceName?: string;
|
||||||
productId?: number;
|
productId?: number;
|
||||||
productName?: string;
|
productName?: string;
|
||||||
deviceMessage?: string;
|
deviceMessage?: any;
|
||||||
processStatus?: boolean;
|
processStatus?: boolean;
|
||||||
processRemark?: string;
|
processRemark?: string;
|
||||||
processTime?: Date;
|
processTime?: Date;
|
||||||
|
|
@ -21,23 +21,6 @@ export namespace AlertRecordApi {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** IoT 告警记录 */
|
|
||||||
export interface AlertRecord {
|
|
||||||
id?: number;
|
|
||||||
configId?: number;
|
|
||||||
configName?: string;
|
|
||||||
configLevel?: number;
|
|
||||||
deviceId?: number;
|
|
||||||
deviceName?: string;
|
|
||||||
productId?: number;
|
|
||||||
productName?: string;
|
|
||||||
deviceMessage?: string;
|
|
||||||
processStatus?: boolean;
|
|
||||||
processRemark?: string;
|
|
||||||
processTime?: Date;
|
|
||||||
createTime?: Date;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 查询告警记录分页 */
|
/** 查询告警记录分页 */
|
||||||
export function getAlertRecordPage(params: PageParam) {
|
export function getAlertRecordPage(params: PageParam) {
|
||||||
return requestClient.get<PageResult<AlertRecordApi.AlertRecord>>(
|
return requestClient.get<PageResult<AlertRecordApi.AlertRecord>>(
|
||||||
|
|
@ -54,29 +37,9 @@ export function getAlertRecord(id: number) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 处理告警记录 */
|
/** 处理告警记录 */
|
||||||
export function processAlertRecord(id: number, remark?: string) {
|
export function processAlertRecord(id: number, processRemark?: string) {
|
||||||
return requestClient.put('/iot/alert-record/process', {
|
return requestClient.put('/iot/alert-record/process', {
|
||||||
id,
|
id,
|
||||||
remark,
|
processRemark,
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 批量处理告警记录 */
|
|
||||||
export function batchProcessAlertRecord(ids: number[], remark?: string) {
|
|
||||||
return requestClient.put('/iot/alert-record/batch-process', {
|
|
||||||
ids,
|
|
||||||
remark,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 删除告警记录 */
|
|
||||||
export function deleteAlertRecord(id: number) {
|
|
||||||
return requestClient.delete(`/iot/alert-record/delete?id=${id}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 批量删除告警记录 */
|
|
||||||
export function deleteAlertRecordList(ids: number[]) {
|
|
||||||
return requestClient.delete('/iot/alert-record/delete-list', {
|
|
||||||
params: { ids: ids.join(',') },
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -150,11 +150,8 @@ export function importDeviceTemplate() {
|
||||||
/** 导入设备 */
|
/** 导入设备 */
|
||||||
export function importDevice(file: File, updateSupport: boolean) {
|
export function importDevice(file: File, updateSupport: boolean) {
|
||||||
return requestClient.upload<IotDeviceApi.DeviceImportRespVO>(
|
return requestClient.upload<IotDeviceApi.DeviceImportRespVO>(
|
||||||
'/iot/device/import',
|
`/iot/device/import?updateSupport=${updateSupport}`,
|
||||||
{
|
{ file },
|
||||||
file,
|
|
||||||
updateSupport,
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -168,7 +165,7 @@ export function getLatestDeviceProperties(params: any) {
|
||||||
|
|
||||||
/** 获取设备属性历史数据 */
|
/** 获取设备属性历史数据 */
|
||||||
export function getHistoryDevicePropertyList(params: any) {
|
export function getHistoryDevicePropertyList(params: any) {
|
||||||
return requestClient.get<PageResult<IotDeviceApi.DeviceProperty>>(
|
return requestClient.get<IotDeviceApi.DeviceProperty[]>(
|
||||||
'/iot/device/property/history-list',
|
'/iot/device/property/history-list',
|
||||||
{ params },
|
{ params },
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -3,39 +3,22 @@ import type { PageParam, PageResult } from '@vben/request';
|
||||||
import { requestClient } from '#/api/request';
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
export namespace IoTOtaFirmwareApi {
|
export namespace IoTOtaFirmwareApi {
|
||||||
/** IoT OTA 固件 VO */
|
/** IoT OTA 固件信息 */
|
||||||
export interface Firmware {
|
export interface Firmware {
|
||||||
id?: number;
|
id?: number;
|
||||||
name: string;
|
name?: string;
|
||||||
version: string;
|
|
||||||
productId: number;
|
|
||||||
productName?: string;
|
|
||||||
description?: string;
|
description?: string;
|
||||||
|
version?: string;
|
||||||
|
productId?: number;
|
||||||
|
productName?: string;
|
||||||
fileUrl?: string;
|
fileUrl?: string;
|
||||||
fileMd5?: string;
|
|
||||||
fileSize?: number;
|
fileSize?: number;
|
||||||
status?: number;
|
fileDigestAlgorithm?: string;
|
||||||
|
fileDigestValue?: string;
|
||||||
createTime?: Date;
|
createTime?: Date;
|
||||||
updateTime?: Date;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** IoT OTA 固件 */
|
|
||||||
export interface IoTOtaFirmware {
|
|
||||||
id?: number;
|
|
||||||
name?: string;
|
|
||||||
version?: string;
|
|
||||||
productId?: number;
|
|
||||||
productName?: string;
|
|
||||||
description?: string;
|
|
||||||
fileUrl?: string;
|
|
||||||
fileMd5?: string;
|
|
||||||
fileSize?: number;
|
|
||||||
status?: number;
|
|
||||||
createTime?: Date;
|
|
||||||
updateTime?: Date;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 查询 OTA 固件分页 */
|
/** 查询 OTA 固件分页 */
|
||||||
export function getOtaFirmwarePage(params: PageParam) {
|
export function getOtaFirmwarePage(params: PageParam) {
|
||||||
return requestClient.get<PageResult<IoTOtaFirmwareApi.Firmware>>(
|
return requestClient.get<PageResult<IoTOtaFirmwareApi.Firmware>>(
|
||||||
|
|
@ -52,12 +35,12 @@ export function getOtaFirmware(id: number) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 新增 OTA 固件 */
|
/** 新增 OTA 固件 */
|
||||||
export function createOtaFirmware(data: IoTOtaFirmware) {
|
export function createOtaFirmware(data: IoTOtaFirmwareApi.Firmware) {
|
||||||
return requestClient.post('/iot/ota/firmware/create', data);
|
return requestClient.post('/iot/ota/firmware/create', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 修改 OTA 固件 */
|
/** 修改 OTA 固件 */
|
||||||
export function updateOtaFirmware(data: IoTOtaFirmware) {
|
export function updateOtaFirmware(data: IoTOtaFirmwareApi.Firmware) {
|
||||||
return requestClient.put('/iot/ota/firmware/update', data);
|
return requestClient.put('/iot/ota/firmware/update', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -65,26 +48,3 @@ export function updateOtaFirmware(data: IoTOtaFirmware) {
|
||||||
export function deleteOtaFirmware(id: number) {
|
export function deleteOtaFirmware(id: number) {
|
||||||
return requestClient.delete(`/iot/ota/firmware/delete?id=${id}`);
|
return requestClient.delete(`/iot/ota/firmware/delete?id=${id}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 批量删除 OTA 固件 */
|
|
||||||
export function deleteOtaFirmwareList(ids: number[]) {
|
|
||||||
return requestClient.delete('/iot/ota/firmware/delete-list', {
|
|
||||||
params: { ids: ids.join(',') },
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 更新 OTA 固件状态 */
|
|
||||||
export function updateOtaFirmwareStatus(id: number, status: number) {
|
|
||||||
return requestClient.put(`/iot/ota/firmware/update-status`, {
|
|
||||||
id,
|
|
||||||
status,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 根据产品 ID 查询固件列表 */
|
|
||||||
export function getOtaFirmwareListByProductId(productId: number) {
|
|
||||||
return requestClient.get<IoTOtaFirmwareApi.Firmware[]>(
|
|
||||||
'/iot/ota/firmware/list-by-product-id',
|
|
||||||
{ params: { productId } },
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -3,45 +3,21 @@ import type { PageParam, PageResult } from '@vben/request';
|
||||||
import { requestClient } from '#/api/request';
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
export namespace IoTOtaTaskApi {
|
export namespace IoTOtaTaskApi {
|
||||||
/** IoT OTA 升级任务 VO */
|
/** IoT OTA 升级任务 */
|
||||||
export interface Task {
|
export interface Task {
|
||||||
id?: number;
|
id?: number;
|
||||||
name: string;
|
name?: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
firmwareId: number;
|
firmwareId?: number;
|
||||||
firmwareName?: string;
|
status?: number;
|
||||||
productId?: number;
|
|
||||||
productName?: string;
|
|
||||||
deviceScope?: number;
|
deviceScope?: number;
|
||||||
deviceIds?: number[];
|
deviceIds?: number[];
|
||||||
status?: number;
|
deviceTotalCount?: number;
|
||||||
successCount?: number;
|
deviceSuccessCount?: number;
|
||||||
failureCount?: number;
|
|
||||||
pendingCount?: number;
|
|
||||||
createTime?: Date;
|
createTime?: Date;
|
||||||
updateTime?: Date;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** IoT OTA 升级任务 */
|
|
||||||
export interface OtaTask {
|
|
||||||
id?: number;
|
|
||||||
name?: string;
|
|
||||||
description?: string;
|
|
||||||
firmwareId?: number;
|
|
||||||
firmwareName?: string;
|
|
||||||
productId?: number;
|
|
||||||
productName?: string;
|
|
||||||
deviceScope?: number;
|
|
||||||
deviceIds?: number[];
|
|
||||||
status?: number;
|
|
||||||
successCount?: number;
|
|
||||||
failureCount?: number;
|
|
||||||
pendingCount?: number;
|
|
||||||
createTime?: Date;
|
|
||||||
updateTime?: Date;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 查询 OTA 升级任务分页 */
|
/** 查询 OTA 升级任务分页 */
|
||||||
export function getOtaTaskPage(params: PageParam) {
|
export function getOtaTaskPage(params: PageParam) {
|
||||||
return requestClient.get<PageResult<IoTOtaTaskApi.Task>>(
|
return requestClient.get<PageResult<IoTOtaTaskApi.Task>>(
|
||||||
|
|
@ -56,43 +32,11 @@ export function getOtaTask(id: number) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 新增 OTA 升级任务 */
|
/** 新增 OTA 升级任务 */
|
||||||
export function createOtaTask(data: OtaTask) {
|
export function createOtaTask(data: IoTOtaTaskApi.Task) {
|
||||||
return requestClient.post('/iot/ota/task/create', data);
|
return requestClient.post('/iot/ota/task/create', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 修改 OTA 升级任务 */
|
|
||||||
export function updateOtaTask(data: OtaTask) {
|
|
||||||
return requestClient.put('/iot/ota/task/update', data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 删除 OTA 升级任务 */
|
|
||||||
export function deleteOtaTask(id: number) {
|
|
||||||
return requestClient.delete(`/iot/ota/task/delete?id=${id}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 批量删除 OTA 升级任务 */
|
|
||||||
export function deleteOtaTaskList(ids: number[]) {
|
|
||||||
return requestClient.delete('/iot/ota/task/delete-list', {
|
|
||||||
params: { ids: ids.join(',') },
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 取消 OTA 升级任务 */
|
/** 取消 OTA 升级任务 */
|
||||||
export function cancelOtaTask(id: number) {
|
export function cancelOtaTask(id: number) {
|
||||||
return requestClient.put(`/iot/ota/task/cancel?id=${id}`);
|
return requestClient.post(`/iot/ota/task/cancel?id=${id}`);
|
||||||
}
|
|
||||||
|
|
||||||
/** 启动 OTA 升级任务 */
|
|
||||||
export function startOtaTask(id: number) {
|
|
||||||
return requestClient.put(`/iot/ota/task/start?id=${id}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 暂停 OTA 升级任务 */
|
|
||||||
export function pauseOtaTask(id: number) {
|
|
||||||
return requestClient.put(`/iot/ota/task/pause?id=${id}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 恢复 OTA 升级任务 */
|
|
||||||
export function resumeOtaTask(id: number) {
|
|
||||||
return requestClient.put(`/iot/ota/task/resume?id=${id}`);
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,44 +3,24 @@ import type { PageParam, PageResult } from '@vben/request';
|
||||||
import { requestClient } from '#/api/request';
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
export namespace IoTOtaTaskRecordApi {
|
export namespace IoTOtaTaskRecordApi {
|
||||||
/** IoT OTA 升级任务记录 VO */
|
/** IoT OTA 升级任务记录 */
|
||||||
export interface TaskRecord {
|
export interface TaskRecord {
|
||||||
id?: number;
|
id?: number;
|
||||||
taskId: number;
|
|
||||||
taskName?: string;
|
|
||||||
deviceId: number;
|
|
||||||
deviceName?: string;
|
|
||||||
firmwareId?: number;
|
firmwareId?: number;
|
||||||
firmwareName?: string;
|
|
||||||
firmwareVersion?: string;
|
firmwareVersion?: string;
|
||||||
|
taskId?: number;
|
||||||
|
deviceId?: string;
|
||||||
|
deviceName?: string;
|
||||||
|
currentVersion?: string;
|
||||||
|
fromFirmwareId?: number;
|
||||||
|
fromFirmwareVersion?: string;
|
||||||
status?: number;
|
status?: number;
|
||||||
progress?: number;
|
progress?: number;
|
||||||
errorMessage?: string;
|
description?: string;
|
||||||
startTime?: Date;
|
updateTime?: Date;
|
||||||
endTime?: Date;
|
|
||||||
createTime?: Date;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO @AI:这里应该拿到 IoTOtaTaskRecordApi 里
|
|
||||||
/** IoT OTA 升级任务记录 */
|
|
||||||
export interface OtaTaskRecord {
|
|
||||||
id?: number;
|
|
||||||
taskId?: number;
|
|
||||||
taskName?: string;
|
|
||||||
deviceId?: number;
|
|
||||||
deviceName?: string;
|
|
||||||
firmwareId?: number;
|
|
||||||
firmwareName?: string;
|
|
||||||
firmwareVersion?: string;
|
|
||||||
status?: number;
|
|
||||||
progress?: number;
|
|
||||||
errorMessage?: string;
|
|
||||||
startTime?: Date;
|
|
||||||
endTime?: Date;
|
|
||||||
createTime?: Date;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 查询 OTA 升级任务记录分页 */
|
/** 查询 OTA 升级任务记录分页 */
|
||||||
export function getOtaTaskRecordPage(params: PageParam) {
|
export function getOtaTaskRecordPage(params: PageParam) {
|
||||||
return requestClient.get<PageResult<IoTOtaTaskRecordApi.TaskRecord>>(
|
return requestClient.get<PageResult<IoTOtaTaskRecordApi.TaskRecord>>(
|
||||||
|
|
@ -49,48 +29,12 @@ export function getOtaTaskRecordPage(params: PageParam) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 查询 OTA 升级任务记录详情 */
|
/** 取消 OTA 升级任务记录 */
|
||||||
export function getOtaTaskRecord(id: number) {
|
|
||||||
return requestClient.get<IoTOtaTaskRecordApi.TaskRecord>(
|
|
||||||
`/iot/ota/task/record/get?id=${id}`,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 根据任务 ID 查询记录列表 */
|
|
||||||
export function getOtaTaskRecordListByTaskId(taskId: number) {
|
|
||||||
return requestClient.get<IoTOtaTaskRecordApi.TaskRecord[]>(
|
|
||||||
'/iot/ota/task/record/list-by-task-id',
|
|
||||||
{ params: { taskId } },
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 根据设备 ID 查询记录列表 */
|
|
||||||
export function getOtaTaskRecordListByDeviceId(deviceId: number) {
|
|
||||||
return requestClient.get<IoTOtaTaskRecordApi.TaskRecord[]>(
|
|
||||||
'/iot/ota/task/record/list-by-device-id',
|
|
||||||
{ params: { deviceId } },
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 根据固件 ID 查询记录列表 */
|
|
||||||
export function getOtaTaskRecordListByFirmwareId(firmwareId: number) {
|
|
||||||
return requestClient.get<IoTOtaTaskRecordApi.TaskRecord[]>(
|
|
||||||
'/iot/ota/task/record/list-by-firmware-id',
|
|
||||||
{ params: { firmwareId } },
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 重试升级任务记录 */
|
|
||||||
export function retryOtaTaskRecord(id: number) {
|
|
||||||
return requestClient.put(`/iot/ota/task/record/retry?id=${id}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 取消升级任务记录 */
|
|
||||||
export function cancelOtaTaskRecord(id: number) {
|
export function cancelOtaTaskRecord(id: number) {
|
||||||
return requestClient.put(`/iot/ota/task/record/cancel?id=${id}`);
|
return requestClient.put(`/iot/ota/task/record/cancel?id=${id}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 获取升级任务记录状态统计 */
|
/** 获取 OTA 升级任务记录状态统计 */
|
||||||
export function getOtaTaskRecordStatusStatistics(
|
export function getOtaTaskRecordStatusStatistics(
|
||||||
firmwareId?: number,
|
firmwareId?: number,
|
||||||
taskId?: number,
|
taskId?: number,
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,10 @@ export namespace IotProductCategoryApi {
|
||||||
export interface ProductCategory {
|
export interface ProductCategory {
|
||||||
id?: number; // 分类 ID
|
id?: number; // 分类 ID
|
||||||
name: string; // 分类名称
|
name: string; // 分类名称
|
||||||
parentId?: number; // 父级分类 ID
|
|
||||||
sort?: number; // 分类排序
|
sort?: number; // 分类排序
|
||||||
status?: number; // 分类状态
|
status?: number; // 分类状态
|
||||||
description?: string; // 分类描述
|
description?: string; // 分类描述
|
||||||
createTime?: string; // 创建时间
|
createTime?: Date; // 创建时间
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,6 @@ export namespace IotProductApi {
|
||||||
deviceType?: number; // 设备类型
|
deviceType?: number; // 设备类型
|
||||||
netType?: number; // 联网方式
|
netType?: number; // 联网方式
|
||||||
serializeType?: string; // 序列化类型
|
serializeType?: string; // 序列化类型
|
||||||
dataFormat?: number; // 数据格式
|
|
||||||
validateType?: number; // 认证方式
|
|
||||||
registerEnabled?: boolean; // 是否开启动态注册
|
registerEnabled?: boolean; // 是否开启动态注册
|
||||||
deviceCount?: number; // 设备数量
|
deviceCount?: number; // 设备数量
|
||||||
createTime?: Date; // 创建时间
|
createTime?: Date; // 创建时间
|
||||||
|
|
@ -103,3 +101,11 @@ export function getProductByKey(productKey: string) {
|
||||||
params: { productKey },
|
params: { productKey },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO @AI:这个是不是 vue3 + ep 也没做?感觉对齐就好,不用额外做。
|
||||||
|
/** 同步产品物模型 TDengine 超级表结构 */
|
||||||
|
export function syncProductPropertyTable(productId: number) {
|
||||||
|
return requestClient.post(
|
||||||
|
`/iot/product/sync-property-table?productId=${productId}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,45 +3,21 @@ import type { PageParam, PageResult } from '@vben/request';
|
||||||
import { requestClient } from '#/api/request';
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
export namespace DataRuleApi {
|
export namespace DataRuleApi {
|
||||||
/** IoT 数据流转规则 VO */
|
/** IoT 数据流转规则 */
|
||||||
export interface Rule {
|
export interface DataRule {
|
||||||
id?: number;
|
id?: number;
|
||||||
name: string;
|
name?: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
status?: number;
|
status?: number;
|
||||||
productId?: number;
|
sourceConfigs?: any[];
|
||||||
productKey?: string;
|
|
||||||
sourceConfigs?: SourceConfig[];
|
|
||||||
sinkIds?: number[];
|
sinkIds?: number[];
|
||||||
createTime?: Date;
|
createTime?: Date;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** IoT 数据源配置 */
|
|
||||||
export interface SourceConfig {
|
|
||||||
productId?: number;
|
|
||||||
productKey?: string;
|
|
||||||
deviceId?: number;
|
|
||||||
type?: string;
|
|
||||||
topic?: string;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** IoT 数据流转规则 */
|
|
||||||
export interface DataRule {
|
|
||||||
id?: number;
|
|
||||||
name?: string;
|
|
||||||
description?: string;
|
|
||||||
status?: number;
|
|
||||||
productId?: number;
|
|
||||||
productKey?: string;
|
|
||||||
sourceConfigs?: any[];
|
|
||||||
sinkIds?: number[];
|
|
||||||
createTime?: Date;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 查询数据流转规则分页 */
|
/** 查询数据流转规则分页 */
|
||||||
export function getDataRulePage(params: PageParam) {
|
export function getDataRulePage(params: PageParam) {
|
||||||
return requestClient.get<PageResult<DataRuleApi.Rule>>(
|
return requestClient.get<PageResult<DataRuleApi.DataRule>>(
|
||||||
'/iot/data-rule/page',
|
'/iot/data-rule/page',
|
||||||
{ params },
|
{ params },
|
||||||
);
|
);
|
||||||
|
|
@ -49,16 +25,16 @@ export function getDataRulePage(params: PageParam) {
|
||||||
|
|
||||||
/** 查询数据流转规则详情 */
|
/** 查询数据流转规则详情 */
|
||||||
export function getDataRule(id: number) {
|
export function getDataRule(id: number) {
|
||||||
return requestClient.get<DataRuleApi.Rule>(`/iot/data-rule/get?id=${id}`);
|
return requestClient.get<DataRuleApi.DataRule>(`/iot/data-rule/get?id=${id}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 新增数据流转规则 */
|
/** 新增数据流转规则 */
|
||||||
export function createDataRule(data: DataRule) {
|
export function createDataRule(data: DataRuleApi.DataRule) {
|
||||||
return requestClient.post('/iot/data-rule/create', data);
|
return requestClient.post('/iot/data-rule/create', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 修改数据流转规则 */
|
/** 修改数据流转规则 */
|
||||||
export function updateDataRule(data: DataRule) {
|
export function updateDataRule(data: DataRuleApi.DataRule) {
|
||||||
return requestClient.put('/iot/data-rule/update', data);
|
return requestClient.put('/iot/data-rule/update', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -66,18 +42,3 @@ export function updateDataRule(data: DataRule) {
|
||||||
export function deleteDataRule(id: number) {
|
export function deleteDataRule(id: number) {
|
||||||
return requestClient.delete(`/iot/data-rule/delete?id=${id}`);
|
return requestClient.delete(`/iot/data-rule/delete?id=${id}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 批量删除数据流转规则 */
|
|
||||||
export function deleteDataRuleList(ids: number[]) {
|
|
||||||
return requestClient.delete('/iot/data-rule/delete-list', {
|
|
||||||
params: { ids: ids.join(',') },
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 更新数据流转规则状态 */
|
|
||||||
export function updateDataRuleStatus(id: number, status: number) {
|
|
||||||
return requestClient.put(`/iot/data-rule/update-status`, {
|
|
||||||
id,
|
|
||||||
status,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -2,101 +2,147 @@ import type { PageParam, PageResult } from '@vben/request';
|
||||||
|
|
||||||
import { requestClient } from '#/api/request';
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
|
interface BaseConfig {
|
||||||
|
type: string;
|
||||||
|
}
|
||||||
|
|
||||||
export namespace DataSinkApi {
|
export namespace DataSinkApi {
|
||||||
/** IoT 数据流转目的 VO */
|
/** IoT 数据流转目的 VO */
|
||||||
export interface Sink {
|
export interface DataSink {
|
||||||
id?: number;
|
id?: number;
|
||||||
name: string;
|
name?: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
status?: number;
|
status?: number;
|
||||||
type: string;
|
direction?: number;
|
||||||
config?: any;
|
type?: number;
|
||||||
|
config?:
|
||||||
|
| DatabaseConfig
|
||||||
|
| HttpConfig
|
||||||
|
| KafkaMQConfig
|
||||||
|
| MqttConfig
|
||||||
|
| RabbitMQConfig
|
||||||
|
| RedisStreamMQConfig
|
||||||
|
| RocketMQConfig
|
||||||
|
| TcpConfig
|
||||||
|
| WebSocketConfig;
|
||||||
createTime?: Date;
|
createTime?: Date;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** HTTP 配置 */
|
||||||
|
export interface HttpConfig extends BaseConfig {
|
||||||
|
url: string;
|
||||||
|
method: string;
|
||||||
|
headers: Record<string, string>;
|
||||||
|
query: Record<string, string>;
|
||||||
|
body: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** TCP 配置 */
|
||||||
|
export interface TcpConfig extends BaseConfig {
|
||||||
|
host: string;
|
||||||
|
port: number;
|
||||||
|
connectTimeoutMs: number;
|
||||||
|
readTimeoutMs: number;
|
||||||
|
ssl: boolean;
|
||||||
|
sslCertPath: string;
|
||||||
|
dataFormat: string;
|
||||||
|
heartbeatIntervalMs: number;
|
||||||
|
reconnectIntervalMs: number;
|
||||||
|
maxReconnectAttempts: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** WebSocket 配置 */
|
||||||
|
export interface WebSocketConfig extends BaseConfig {
|
||||||
|
serverUrl: string;
|
||||||
|
connectTimeoutMs: number;
|
||||||
|
sendTimeoutMs: number;
|
||||||
|
heartbeatIntervalMs: number;
|
||||||
|
heartbeatMessage: string;
|
||||||
|
subprotocols: string;
|
||||||
|
customHeaders: string;
|
||||||
|
verifySslCert: boolean;
|
||||||
|
dataFormat: string;
|
||||||
|
reconnectIntervalMs: number;
|
||||||
|
maxReconnectAttempts: number;
|
||||||
|
enableCompression: boolean;
|
||||||
|
sendRetryCount: number;
|
||||||
|
sendRetryIntervalMs: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** MQTT 配置 */
|
||||||
|
export interface MqttConfig extends BaseConfig {
|
||||||
|
url: string;
|
||||||
|
username: string;
|
||||||
|
password: string;
|
||||||
|
clientId: string;
|
||||||
|
topic: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Database 配置 */
|
||||||
|
export interface DatabaseConfig extends BaseConfig {
|
||||||
|
jdbcUrl: string;
|
||||||
|
username: string;
|
||||||
|
password: string;
|
||||||
|
tableName: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** RocketMQ 配置 */
|
||||||
|
export interface RocketMQConfig extends BaseConfig {
|
||||||
|
nameServer: string;
|
||||||
|
accessKey: string;
|
||||||
|
secretKey: string;
|
||||||
|
group: string;
|
||||||
|
topic: string;
|
||||||
|
tags: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Kafka 配置 */
|
||||||
|
export interface KafkaMQConfig extends BaseConfig {
|
||||||
|
bootstrapServers: string;
|
||||||
|
username: string;
|
||||||
|
password: string;
|
||||||
|
ssl: boolean;
|
||||||
|
topic: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** RabbitMQ 配置 */
|
||||||
|
export interface RabbitMQConfig extends BaseConfig {
|
||||||
|
host: string;
|
||||||
|
port: number;
|
||||||
|
virtualHost: string;
|
||||||
|
username: string;
|
||||||
|
password: string;
|
||||||
|
exchange: string;
|
||||||
|
routingKey: string;
|
||||||
|
queue: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Redis Stream MQ 配置 */
|
||||||
|
export interface RedisStreamMQConfig extends BaseConfig {
|
||||||
|
host: string;
|
||||||
|
port: number;
|
||||||
|
password: string;
|
||||||
|
database: number;
|
||||||
|
topic: string;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** IoT 数据流转目的 */
|
/** 数据流转目的类型 */
|
||||||
export interface DataSinkVO {
|
export const IotDataSinkTypeEnum = {
|
||||||
id?: number;
|
HTTP: 1,
|
||||||
name?: string;
|
TCP: 2,
|
||||||
description?: string;
|
WEBSOCKET: 3,
|
||||||
status?: number;
|
MQTT: 10,
|
||||||
type?: string;
|
DATABASE: 20,
|
||||||
config?: any;
|
REDIS_STREAM: 21,
|
||||||
createTime?: Date;
|
ROCKETMQ: 30,
|
||||||
}
|
RABBITMQ: 31,
|
||||||
|
KAFKA: 32,
|
||||||
/** IoT 数据目的类型枚举 */
|
} as const;
|
||||||
export enum IotDataSinkTypeEnum {
|
|
||||||
HTTP = 'HTTP',
|
|
||||||
KAFKA = 'KAFKA',
|
|
||||||
MQTT = 'MQTT',
|
|
||||||
RABBITMQ = 'RABBITMQ',
|
|
||||||
REDIS_STREAM = 'REDIS_STREAM',
|
|
||||||
ROCKETMQ = 'ROCKETMQ',
|
|
||||||
}
|
|
||||||
|
|
||||||
/** HTTP 配置 */
|
|
||||||
export interface HttpConfig {
|
|
||||||
url?: string;
|
|
||||||
method?: string;
|
|
||||||
headers?: Record<string, string>;
|
|
||||||
timeout?: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** MQTT 配置 */
|
|
||||||
export interface MqttConfig {
|
|
||||||
broker?: string;
|
|
||||||
port?: number;
|
|
||||||
topic?: string;
|
|
||||||
username?: string;
|
|
||||||
password?: string;
|
|
||||||
clientId?: string;
|
|
||||||
qos?: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Kafka 配置 */
|
|
||||||
export interface KafkaMQConfig {
|
|
||||||
bootstrapServers?: string;
|
|
||||||
topic?: string;
|
|
||||||
acks?: string;
|
|
||||||
retries?: number;
|
|
||||||
batchSize?: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** RabbitMQ 配置 */
|
|
||||||
export interface RabbitMQConfig {
|
|
||||||
host?: string;
|
|
||||||
port?: number;
|
|
||||||
virtualHost?: string;
|
|
||||||
username?: string;
|
|
||||||
password?: string;
|
|
||||||
exchange?: string;
|
|
||||||
routingKey?: string;
|
|
||||||
queue?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** RocketMQ 配置 */
|
|
||||||
export interface RocketMQConfig {
|
|
||||||
nameServer?: string;
|
|
||||||
topic?: string;
|
|
||||||
tag?: string;
|
|
||||||
producerGroup?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Redis Stream 配置 */
|
|
||||||
export interface RedisStreamMQConfig {
|
|
||||||
host?: string;
|
|
||||||
port?: number;
|
|
||||||
password?: string;
|
|
||||||
database?: number;
|
|
||||||
streamKey?: string;
|
|
||||||
maxLen?: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 查询数据流转目的分页 */
|
/** 查询数据流转目的分页 */
|
||||||
export function getDataSinkPage(params: PageParam) {
|
export function getDataSinkPage(params: PageParam) {
|
||||||
return requestClient.get<PageResult<DataSinkApi.Sink>>(
|
return requestClient.get<PageResult<DataSinkApi.DataSink>>(
|
||||||
'/iot/data-sink/page',
|
'/iot/data-sink/page',
|
||||||
{ params },
|
{ params },
|
||||||
);
|
);
|
||||||
|
|
@ -104,26 +150,23 @@ export function getDataSinkPage(params: PageParam) {
|
||||||
|
|
||||||
/** 查询数据流转目的详情 */
|
/** 查询数据流转目的详情 */
|
||||||
export function getDataSink(id: number) {
|
export function getDataSink(id: number) {
|
||||||
return requestClient.get<DataSinkApi.Sink>(`/iot/data-sink/get?id=${id}`);
|
return requestClient.get<DataSinkApi.DataSink>(
|
||||||
|
`/iot/data-sink/get?id=${id}`,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 查询所有数据流转目的列表 */
|
/** 查询数据流转目的(精简)列表 */
|
||||||
export function getDataSinkList() {
|
|
||||||
return requestClient.get<DataSinkApi.Sink[]>('/iot/data-sink/list');
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 查询数据流转目的简单列表 */
|
|
||||||
export function getDataSinkSimpleList() {
|
export function getDataSinkSimpleList() {
|
||||||
return requestClient.get<DataSinkApi.Sink[]>('/iot/data-sink/simple-list');
|
return requestClient.get<DataSinkApi.DataSink[]>('/iot/data-sink/simple-list');
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 新增数据流转目的 */
|
/** 新增数据流转目的 */
|
||||||
export function createDataSink(data: DataSinkVO) {
|
export function createDataSink(data: DataSinkApi.DataSink) {
|
||||||
return requestClient.post('/iot/data-sink/create', data);
|
return requestClient.post('/iot/data-sink/create', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 修改数据流转目的 */
|
/** 修改数据流转目的 */
|
||||||
export function updateDataSink(data: DataSinkVO) {
|
export function updateDataSink(data: DataSinkApi.DataSink) {
|
||||||
return requestClient.put('/iot/data-sink/update', data);
|
return requestClient.put('/iot/data-sink/update', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -131,18 +174,3 @@ export function updateDataSink(data: DataSinkVO) {
|
||||||
export function deleteDataSink(id: number) {
|
export function deleteDataSink(id: number) {
|
||||||
return requestClient.delete(`/iot/data-sink/delete?id=${id}`);
|
return requestClient.delete(`/iot/data-sink/delete?id=${id}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 批量删除数据流转目的 */
|
|
||||||
export function deleteDataSinkList(ids: number[]) {
|
|
||||||
return requestClient.delete('/iot/data-sink/delete-list', {
|
|
||||||
params: { ids: ids.join(',') },
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 更新数据流转目的状态 */
|
|
||||||
export function updateDataSinkStatus(id: number, status: number) {
|
|
||||||
return requestClient.put(`/iot/data-sink/update-status`, {
|
|
||||||
id,
|
|
||||||
status,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -17,21 +17,9 @@ export namespace IotStatisticsApi {
|
||||||
productCategoryDeviceCounts: Record<string, number>; // 按品类统计的设备数量
|
productCategoryDeviceCounts: Record<string, number>; // 按品类统计的设备数量
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 时间戳-数值的键值对类型 */
|
|
||||||
export interface TimeValueItem {
|
|
||||||
[key: string]: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 消息统计数据类型 */
|
|
||||||
export interface DeviceMessageSummary {
|
|
||||||
statType: number;
|
|
||||||
upstreamCounts: TimeValueItem[];
|
|
||||||
downstreamCounts: TimeValueItem[];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 设备消息数量统计(按日期) */
|
/** 设备消息数量统计(按日期) */
|
||||||
export interface DeviceMessageSummaryByDateRespVO {
|
export interface DeviceMessageSummaryByDateRespVO {
|
||||||
time: string; // 时间轴
|
time: Date; // 时间轴
|
||||||
upstreamCount: number; // 上行消息数量
|
upstreamCount: number; // 上行消息数量
|
||||||
downstreamCount: number; // 下行消息数量
|
downstreamCount: number; // 下行消息数量
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,80 +4,82 @@ import { isEmpty } from '@vben/utils';
|
||||||
|
|
||||||
import { requestClient } from '#/api/request';
|
import { requestClient } from '#/api/request';
|
||||||
|
|
||||||
/** IoT 物模型数据 */
|
export namespace ThingModelApi {
|
||||||
export interface ThingModelData {
|
/** IoT 物模型数据 */
|
||||||
id?: number;
|
export interface ThingModel {
|
||||||
productId?: number;
|
id?: number;
|
||||||
productKey?: string;
|
productId?: number;
|
||||||
identifier?: string;
|
productKey?: string;
|
||||||
name?: string;
|
identifier?: string;
|
||||||
description?: string;
|
name?: string;
|
||||||
dataType?: string;
|
description?: string;
|
||||||
type?: number; // 参见 IoTThingModelTypeEnum 枚举类
|
dataType?: string;
|
||||||
property?: ThingModelProperty;
|
type?: number; // 参见 IoTThingModelTypeEnum 枚举类
|
||||||
event?: ThingModelEvent;
|
property?: Property;
|
||||||
service?: ThingModelService;
|
event?: Event;
|
||||||
}
|
service?: Service;
|
||||||
|
}
|
||||||
|
|
||||||
/** IoT 物模型属性 */
|
/** IoT 物模型属性 */
|
||||||
export interface ThingModelProperty {
|
export interface Property {
|
||||||
identifier?: string;
|
identifier?: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
accessMode?: string;
|
accessMode?: string;
|
||||||
required?: boolean;
|
required?: boolean;
|
||||||
dataType?: string;
|
dataType?: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
dataSpecs?: any;
|
dataSpecs?: any;
|
||||||
dataSpecsList?: any[];
|
dataSpecsList?: any[];
|
||||||
}
|
}
|
||||||
|
|
||||||
/** IoT 物模型服务 */
|
/** IoT 物模型服务 */
|
||||||
export interface ThingModelService {
|
export interface Service {
|
||||||
identifier?: string;
|
identifier?: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
required?: boolean;
|
required?: boolean;
|
||||||
callType?: string;
|
callType?: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
inputParams?: ThingModelParam[];
|
inputParams?: Param[];
|
||||||
outputParams?: ThingModelParam[];
|
outputParams?: Param[];
|
||||||
method?: string;
|
method?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** IoT 物模型事件 */
|
/** IoT 物模型事件 */
|
||||||
export interface ThingModelEvent {
|
export interface Event {
|
||||||
identifier?: string;
|
identifier?: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
required?: boolean;
|
required?: boolean;
|
||||||
type?: string;
|
type?: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
outputParams?: ThingModelParam[];
|
outputParams?: Param[];
|
||||||
method?: string;
|
method?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** IoT 物模型参数 */
|
/** IoT 物模型参数 */
|
||||||
export interface ThingModelParam {
|
export interface Param {
|
||||||
identifier?: string;
|
identifier?: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
direction?: string;
|
direction?: string;
|
||||||
paraOrder?: number;
|
paraOrder?: number;
|
||||||
dataType?: string;
|
dataType?: string;
|
||||||
dataSpecs?: any;
|
dataSpecs?: any;
|
||||||
dataSpecsList?: any[];
|
dataSpecsList?: any[];
|
||||||
}
|
}
|
||||||
|
|
||||||
/** IoT 数据定义(数值型) */
|
/** IoT 数据定义(数值型) */
|
||||||
export interface DataSpecsNumberData {
|
export interface DataSpecsNumberData {
|
||||||
min?: number | string;
|
min?: number | string;
|
||||||
max?: number | string;
|
max?: number | string;
|
||||||
step?: number | string;
|
step?: number | string;
|
||||||
unit?: string;
|
unit?: string;
|
||||||
unitName?: string;
|
unitName?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** IoT 数据定义(枚举/布尔型) */
|
/** IoT 数据定义(枚举/布尔型) */
|
||||||
export interface DataSpecsEnumOrBoolData {
|
export interface DataSpecsEnumOrBoolData {
|
||||||
value: number | string;
|
value: number | string;
|
||||||
name: string;
|
name: string;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 生成「必填 + 数字」类校验器:拼到 size / length / 枚举值上 */
|
/** 生成「必填 + 数字」类校验器:拼到 size / length / 枚举值上 */
|
||||||
|
|
@ -192,7 +194,7 @@ export const validateBoolName = buildIdentifierLikeNameValidator('布尔值名
|
||||||
|
|
||||||
/** 查询产品物模型分页 */
|
/** 查询产品物模型分页 */
|
||||||
export function getThingModelPage(params: PageParam) {
|
export function getThingModelPage(params: PageParam) {
|
||||||
return requestClient.get<PageResult<ThingModelData>>(
|
return requestClient.get<PageResult<ThingModelApi.ThingModel>>(
|
||||||
'/iot/thing-model/page',
|
'/iot/thing-model/page',
|
||||||
{ params },
|
{ params },
|
||||||
);
|
);
|
||||||
|
|
@ -200,23 +202,28 @@ export function getThingModelPage(params: PageParam) {
|
||||||
|
|
||||||
/** 查询产品物模型详情 */
|
/** 查询产品物模型详情 */
|
||||||
export function getThingModel(id: number) {
|
export function getThingModel(id: number) {
|
||||||
return requestClient.get<ThingModelData>(`/iot/thing-model/get?id=${id}`);
|
return requestClient.get<ThingModelApi.ThingModel>(
|
||||||
|
`/iot/thing-model/get?id=${id}`,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 根据产品 ID 查询物模型列表 */
|
/** 根据产品 ID 查询物模型列表 */
|
||||||
export function getThingModelListByProductId(productId: number) {
|
export function getThingModelListByProductId(productId: number) {
|
||||||
return requestClient.get<ThingModelData[]>('/iot/thing-model/list', {
|
return requestClient.get<ThingModelApi.ThingModel[]>(
|
||||||
params: { productId },
|
'/iot/thing-model/list',
|
||||||
});
|
{
|
||||||
|
params: { productId },
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 新增物模型 */
|
/** 新增物模型 */
|
||||||
export function createThingModel(data: ThingModelData) {
|
export function createThingModel(data: ThingModelApi.ThingModel) {
|
||||||
return requestClient.post('/iot/thing-model/create', data);
|
return requestClient.post('/iot/thing-model/create', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 修改物模型 */
|
/** 修改物模型 */
|
||||||
export function updateThingModel(data: ThingModelData) {
|
export function updateThingModel(data: ThingModelApi.ThingModel) {
|
||||||
return requestClient.put('/iot/thing-model/update', data);
|
return requestClient.put('/iot/thing-model/update', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue