设备分组
更新时间:2026-10-23 11:31:55
对用户下的设备进行分组管理
/**
* 分组添加设备
*
* @param groupId - groupId 分组ID
* @param iotIdList - 设备ID列表
* @public
*/
declare function groupAddDevice(groupId: number, iotIdList: string[]): Promise<void>;
/**
* 创建分组
*
* @param name - 分组名称
* @param iotIdList - 设备ID列表 可选
* @param homeId - 家庭ID 可选
* @public
*/
declare function groupCreate(name: string, iotIdList?: string[], homeId?: number): Promise<void>;
/**
* 删除分组
*
* @param groupId - 分组ID
* @public
*/
declare function groupDelete(groupId: number): Promise<void>;
/**
* 分组删除设备
*
* @param groupId - 分组ID
* @param iotIdList - 设备ID列表
* @public
*/
declare function groupDeleteDevice(groupId: number, iotIdList: string[]): Promise<void>;
/**
* Group info
* @public
*/
declare interface GroupInfo {
/**
* 分组ID
*/
groupId: number;
/**
* 分组名称
*/
name: string;
/**
* 设备数量
*/
deviceCount: number;
/**
* 设备列表
*/
deviceList?: IDeviceInfo[];
}
/**
* 分组列表
*
* @param pageNo - 页码
* @param pageSize - 每页数量 最大20
* @param homeId - 家庭ID,为null查询普通分组列表
* @public
*/
declare function groupList(pageNo: number, pageSize: number, homeId?: number): Promise<GroupListRsp | undefined>;
/**
* 设备分组列表返回
* @public
*/
declare interface GroupListRsp {
/**
* 总数
*/
total: number;
/**
* 页码
*/
pageNo: number;
/**
* 每页数量
*/
pageSize: number;
/**
* 返回记录数
*/
items: GroupInfo[];
}
/**
* 更新分组名称
*
* @param groupId - 分组ID
* @param name - 分组名称
* @public
*/
declare function groupUpdate(groupId: number, name: string): Promise<void>;
/**
* Home info
*
* @public
*/
declare interface HomeInfo {
/**
* 家庭ID
*/
homeId: number;
/**
* 家庭名称
*/
name: string;
/**
* 是否是默认家庭
*/
isDefault: boolean;
deviceCount: number;
groupList?: GroupInfo[];
}
/**
* 家庭列表返回
*
* @public
*/
declare interface HomeListRsp {
/**
* 总数
*/
total: number;
/**
* 页码
*/
pageNo: number;
/**
* 每页数量
*/
pageSize: number;
/**
* 返回记录数
*/
items: HomeInfo[];
}
/**
* 创建家庭
*
* @param name - 家庭名称
* @param groupList - 新建分组列表 (可选)
* @public
*/
declare function homeManagerCreate(name: string, groupList?: string[]): Promise<void>;
/**
* 删除家庭
*
* @param homeId - 家庭ID
* @public
*/
declare function homeManagerDelete(homeId: number): Promise<void>;
/**
* 家庭列表
*
* @param pageNo - 页码
* @param pageSize - 每页数量
* @public
*/
declare function homeManagerList(pageNo: number, pageSize: number): Promise<HomeListRsp | undefined>;
/**
* 更新家庭信息 (仅支持修改名称)
*
* @param homeId - 家庭ID
* @param name - 家庭名称
* @public
*/
declare function homeManagerUpdate(homeId: number, name: string): Promise<void>;
export declare namespace RTCXDeviceGroupMgr {
export {
groupCreate,
groupDelete,
groupUpdate,
groupList,
groupAddDevice,
groupDeleteDevice,
homeManagerCreate,
homeManagerDelete,
homeManagerList,
homeManagerUpdate
}
}
创建分组
/**
* 创建分组
*
* @param name - 分组名称
* @param iotIdList - 设备ID列表 可选
* @param homeId - 家庭ID 可选
* @public
*/
declare function groupCreate(name: string, iotIdList?: string[], homeId?: number): Promise<void>;
示例
import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'
const submitGroupForm = async () => {
if (!groupForm.name) return ElMessage.warning('请输入分组名称')
try {
await RTCXDeviceGroupMgr.groupCreate(groupForm.name, undefined, groupForm.homeId)
ElMessage.success('创建成功')
groupDialogVisible.value = false
fetchGroupList()
} catch (e) {
ElMessage.error('操作失败')
}
}
删除分组
/**
* 删除分组
*
* @param groupId - 分组ID
* @public
*/
declare function groupDelete(groupId: number): Promise<void>;
示例
import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'
const handleDeleteGroup = async (groupId: number) => {
try {
await ElMessageBox.confirm('确定要删除该分组吗?', '提示', { type: 'warning' })
await RTCXDeviceGroupMgr.groupDelete(groupId)
ElMessage.success('删除成功')
fetchGroupList()
} catch (e) {
// 用户取消
}
}
更新分组名称
/**
* 更新分组名称
*
* @param groupId - 分组ID
* @param name - 分组名称
* @public
*/
declare function groupUpdate(groupId: number, name: string): Promise<void>;
示例
import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'
const submitGroupForm = async () => {
if (!groupForm.name) return ElMessage.warning('请输入分组名称')
try {
if (!groupForm.groupId) return
await RTCXDeviceGroupMgr.groupUpdate(groupForm.groupId, groupForm.name)
ElMessage.success('更新成功')
groupDialogVisible.value = false
fetchGroupList()
} catch (e) {
ElMessage.error('操作失败')
}
}
分组列表
/**
* 分组列表
*
* @param pageNo - 页码
* @param pageSize - 每页数量 最大20
* @param homeId - 家庭ID,为null查询普通分组列表
* @public
*/
declare function groupList(pageNo: number, pageSize: number, homeId?: number): Promise<GroupListRsp | undefined>;
示例
import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'
const fetchGroupList = async () => {
groupLoading.value = true
try {
const res = (await RTCXDeviceGroupMgr.groupList(
groupPageNo.value,
groupPageSize.value
)) as RTCXDeviceMgrTypes.GroupListRsp
groupListData.value = res?.items || []
groupTotal.value = res?.total || 0
} catch (e) {
console.error(e)
} finally {
groupLoading.value = false
}
}
分组添加设备
/**
* 分组添加设备
*
* @param groupId - groupId 分组ID
* @param iotIdList - 设备ID列表
* @public
*/
declare function groupAddDevice(groupId: number, iotIdList: string[]): Promise<void>;
示例
import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'
const selectedAddDevices = ref<string[]>([])
const handleAddDevice = async () => {
if (selectedAddDevices.value.length === 0) return ElMessage.warning('请选择要添加的设备')
if (!currentGroupId.value) return
await RTCXDeviceGroupMgr.groupAddDevice(currentGroupId.value, selectedAddDevices.value)
ElMessage.success('添加设备成功')
}
分组删除设备
/**
* 分组删除设备
*
* @param groupId - 分组ID
* @param iotIdList - 设备ID列表
* @public
*/
declare function groupDeleteDevice(groupId: number, iotIdList: string[]): Promise<void>;
示例
import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'
// 移除设备相关
const selectedRemoveDevices = ref<string[]>([])
const handleDeleteDevice = async () => {
if (selectedRemoveDevices.value.length === 0) return ElMessage.warning('请选择要移除的设备')
if (!currentGroupId.value) return
await RTCXDeviceGroupMgr.groupDeleteDevice(currentGroupId.value, selectedRemoveDevices.value)
ElMessage.success('移除设备成功')
}
创建家庭
/**
* 创建家庭
*
* @param name - 家庭名称
* @param groupList - 新建分组列表 (可选)
* @public
*/
declare function homeManagerCreate(name: string, groupList?: string[]): Promise<void>;
示例
import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'
const submitHomeForm = async () => {
if (!homeForm.name) return ElMessage.warning('请输入家庭名称')
try {
const groupListArr = homeForm.groupList.length > 0 ? homeForm.groupList : undefined
await RTCXDeviceGroupMgr.homeManagerCreate(homeForm.name, groupListArr)
ElMessage.success('创建成功')
fetchHomeList()
} catch (e) {
ElMessage.error('操作失败')
}
}
删除家庭
/**
* 删除家庭
*
* @param homeId - 家庭ID
* @public
*/
declare function homeManagerDelete(homeId: number): Promise<void>;
示例
import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'
const handleDeleteHome = async (homeId: number) => {
try {
await ElMessageBox.confirm('确定要删除该家庭吗?', '提示', { type: 'warning' })
await RTCXDeviceGroupMgr.homeManagerDelete(homeId)
ElMessage.success('删除成功')
fetchHomeList()
} catch (e) {
// 用户取消
}
}
家庭列表
/**
* 家庭列表
*
* @param pageNo - 页码
* @param pageSize - 每页数量
* @public
*/
declare function homeManagerList(pageNo: number, pageSize: number): Promise<HomeListRsp | undefined>;
示例
import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'
const fetchHomeList = async () => {
homeLoading.value = true
try {
const res = (await RTCXDeviceGroupMgr.homeManagerList(
homePageNo.value,
homePageSize.value
)) as RTCXDeviceMgrTypes.HomeListRsp
homeListData.value = res?.items || []
homeTotal.value = res?.total || 0
} catch (e) {
console.error(e)
} finally {
homeLoading.value = false
}
}
更新家庭信息
/**
* 更新家庭信息 (仅支持修改名称)
*
* @param homeId - 家庭ID
* @param name - 家庭名称
* @public
*/
declare function homeManagerUpdate(homeId: number, name: string): Promise<void>;
示例
import { RTCXDeviceGroupMgr, RTCXDeviceMgr, RTCXDeviceMgrTypes } from '@rtcx/websdk'
const submitHomeForm = async () => {
if (!homeForm.name) return ElMessage.warning('请输入家庭名称')
try {
if (!homeForm.homeId) return
await RTCXDeviceGroupMgr.homeManagerUpdate(homeForm.homeId, homeForm.name)
ElMessage.success('更新成功')
fetchHomeList()
} catch (e) {
ElMessage.error('操作失败')
}
}