# 成员与群组
# (一)概述
# 1、成员数据
成员是加入了组织的相关人员。在CoreSDK中,成员由成员要素[MemberFeature]类表示。而成员要素则通过成员角色[MemberRole]类进行分类管理。
# 2、群组数据
CoreSDK通过群组类[Group]提供群组功能,成员可加入多个群组来适应不同的工作场景。
# (二)成员角色[MemberRole]
成员角色也叫成员集合。组织下的成员都必须归属于某一个成员角色之下。SDK通过成员角色提供了查询所属成员、删除成员、重新分配成员角色的方法。 成员角色[MemberRole]的常用属性如下:
属性名 | 值类型 | 属性描述 |
---|---|---|
name | String | 成员角色名称 |
remark | String | 备注 |
icon | Icon | 图标 |
symbol | PointSymbol | 点符号 |
常用方法如下:
方法名 | 返回类型 | 方法描述 |
---|---|---|
setName | void | 设置成员角色集合名称 |
setRemark | void | 设置成员角色描述 |
setIcon | void | 设置成员角色的图标和点符号 |
queryMembers | Promise< QueryResult > | 查询集合下的所有成员 |
deleteMember | Promise< void > | 移除成员出组织 |
realloctRole | Promise< void > | 重新分配成员到此成员角色下 |
# 1、获取成员角色
初始化成功后,可直接从Cellsys的organization对象中获取到组织下所有的成员角色。具体代码示例如下:
let memberRoles = Cellsys.organization.memberRoles;
if (memberRoles != null && memberRoles.length > 0) {
let memberRole = memberRoles[0];
let name = memberRole.name;
let remark = memberRole.remark;
let icon = memberRole.icon;
let pointSymbol = memberRole.symbol;
}
2
3
4
5
6
7
8
# (1)图标[Icon]
图标[Icon]是数据在普通界面上的展示。成员要素[MemberFeature]成员角色[MemberRole]图标决定。 有关图标类[Icon]的详细介绍,可查看附-样式
# (2)点符号[PointSymbol]
点符号[PointSymbol]则是数据在地图上的点状展示。成员要素[MemberFeature]的点符号由其所属的成员角色[MemberRole]的点符号决定。 有关点符号[PointSymbol]的详细介绍,可查看附-样式
# 2、新增成员角色
成员角色通过组织[Organization]对象创建。具体操作见代码示例
let roleName = "成员角色名称";
let roleRemark = "成员角色备注";
let roleIcon = null;//成员角色的图标。可不传。有关Icon的获取见文档-样式
Cellsys.organization.createMemberRole({
"name": roleName,
"remark": roleRemark
})
.then((memberRole) => {
//创建成功后返回创建的memberRole对象
let newMemberRole = memberRole;
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 3、修改成员角色
成员角色通过组织[Organization]对象进行修改。具体操作见代码示例
memberRole.setName("修改后的名称");
memberRole.setRemark("修改后的备注");
memberRole.setIcon(icon);
Cellsys.organization.updateMemberRole(memberRole)
.then(() => {
/*修改成功,直接调用原对象即可查看更新后的属性*/
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
2
3
4
5
6
7
8
9
10
11
12
13
# 4、删除成员角色
成员角色通过组织[Organization]对象进行删除。具体操作见代码示例
Cellsys.organization.deleteMemberRole(memberRole)
.then(() => {
/*删除成功*/
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
2
3
4
5
6
7
8
9
# (三)成员要素
成员要素[MemberFeature]类可通过成员角色[MemberRole]进行查询、删除、重新分配成员角色。 成员要素[MemberFeature]的常用属性如下:
属性名 | 值类型 | 属性描述 |
---|---|---|
name | String | 路线集合名称 |
remark | String | 备注 |
icon | Icon | 图标 |
symbol | PointSymbol | 点符号 |
location | Location | 定位 |
bindDevices | Array< CommmonInfo > | 绑定设备的简易信息 |
常用方法如下:(get/set方法略)
方法名 | 返回类型 | 方法描述 |
---|---|---|
queryBindDeviceDetail | Promise< QueryResult > | 查询绑定的设备详情 |
getJoinedGroups | Array< Group > | 获取成员加入的群组 |
# 1、获取成员要素
通过成员角色对象[MemberRole],可查询属于该成员角色的成员数据。代码示例如下:
//实例化查询配置,代表当前查询第1页数据,1页10条数据
let queryConfig = new Cellsys.QueryConfig(1, 10);
memberRole.queryMemberFeature(queryConfig)
.then((queryResult) => {
/*分页信息-查询方法特有*/
let pageInfo = queryResult.pageInfo;//查询接口特有的分页信息
let totalCount = pageInfo.totalCount;//数据总数
let totalPage = pageInfo.totalPage;//总页数
let pageNo = pageInfo.pageNo;//当前页码(从1开始)
let pageSize = pageInfo.pageSize;//每页查询数量(注意!不一定和当前查询的数据总量匹配)
/*获取查询结果*/
let memberFeatures = queryResult.data;
if (memberFeatures != null && memberFeatures.length > 0) {//查询结果可能为null
for (let memberFeature of memberFeatures) {
/*成员要素基础信息获取示例*/
let name = memberFeature.name;//成员要素名称
let remark = memberFeature.remark;//备注
let icon = memberFeature.icon;//成员的图标
let pointSymbol = memberFeature.symbol;//成员的地图符号
let groups = memberFeature.getJoinedGroups();//查看成员加入的群组
let bindDevices = memberFeature.bindDevices;//设备简易信息
}
}
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
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
# (1)查询关联的设备详情
/*关联的设备*/
let bindDevices = memberFeature.bindDevices;//设备简易信息
for (let commonInfo of bindDevices) {
let deviceName = commonInfo.name;//设备名称
}
//查询绑定的设备详情
memberFeature.queryBindDeviceDeatil()
.then((queryResult) => {
let deviceFeatures = queryResult.data;
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# (2)绑定与解绑设备
获取设备要素[DeviceFeature]的相关操作请参考06-设备获取设备要素操作
/*设备绑定*/
memberFeature.bindDevice(deviceFeature)
.then(() => {
//绑定成功
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
/*设备解绑*/
memberFeature.unbindDevice(deviceFeature)
.then(() => {
//解绑成功
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 2、删除成员要素
移除成员的操作通过成员角色[MemberRole]进行。调用成功后,成员将被移除出组织。代码示例如下:
/*成员移除出组织*/
memberRole.deleteMember(memberFeature)
.then(() => {
//移除成员成功
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
2
3
4
5
6
7
8
9
10
# 3、重新分配成员的角色
通过成员角色[MemberRole]的realloctRole方法可将成员切换成当前角色。代码示例如下:
/*将成员重新分配到指定成员角色下*/
memberRole.realloctRole(memberFeature)
.then(() => {
//操作成功
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
2
3
4
5
6
7
8
9
10
# (四)群组[Group]
群组与成员角色的不同:群组可根据实际需要按任意规则添加成员。且成员可加入多个群组。而成员角色是对成员数据进行管理的集合,一个成员属于且仅属于一个成员角色(即成员集合)。
群组[Group]的常用属性如下:
属性名 | 值类型 | 属性描述 |
---|---|---|
name | String | 群组名称 |
remark | String | 备注 |
icon | Icon | 图标 |
memberCount | Number | 群组人数 |
isPublish | boolean | 是否发布 |
常用方法如下:
方法名 | 返回类型 | 方法描述 |
---|---|---|
queryMembers | Promise< QueryResult > | 查询群组下的所有成员 |
queryLeaders | Promise< QueryResult > | |
memberJoin | Promise< void > | |
memberLeave | Promise< void > | 成员离开群组 |
allocateLeader | Promise< void > | 分配队长 |
repealLeader | Promise< void > | 取消分配队长 |
# 1、查询群组
初始化成功后,可直接从Cellsys的organization对象中获取到组织下所有的群组。具体代码示例如下:
let groups = Cellsys.organization.groups;
if (groups.length > 0) {
for (let group of groups) {
let name = group.name;//名称
let remark = group.remark;//备注
let icon = group.icon;//图标
let memberCount = group.memberCount;//群组人数
}
}
2
3
4
5
6
7
8
9
# 2、新增群组
初始化成功后,可通过organization对象来新增群组。具体代码示例如下:
//图标部分的获取参考附-样式
Cellsys.organization.createGroup({
"name": "群组名称",
"remark": "群组描述",
"icon": icon
})
.then((group) => {
//创建成功,回调会直接返回创建后的群组对象
let newGroup = group
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 3、修改群组
初始化成功后,可通过organization对象来修改群组信息。具体代码示例如下:
group.setName("修改后的名称");
group.setRemark("修后后的备注");
group.setPublish(true);
Cellsys.organization.updateGroup(group)
.then(() => {
//修改成功。
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
2
3
4
5
6
7
8
9
10
11
12
# 4、删除群组
初始化成功后,可通过organization对象来删除群组信息。具体代码示例如下:
Cellsys.organization.deleteGroup(group)
.then(() => {
//删除成功。
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
2
3
4
5
6
7
8
# 5、成员加入/离开群组
通过群组[Group]类来调用成员加入群组、离开群组的方法。具体代码示例如下:
/*群组加入成员*/
group.memberJoin(memberFeature)
.then(() => {
//加入成功
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
/*群组移除成员*/
group.memberLeave(memberFeature)
.then(() => {
//移除成功
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 6、群组设置/取消设置队长
群组[Group]类可将群组成员设置为队长、或取消设置队长。具体代码示例如下:
/*分配组长*/
group.allocateLeader(memberFeature)
.then(() => {
//分配队长成功
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
/*取消分配组长*/
group.repealLeader(memberFeature)
.then(() => {
//取消队长身份成功
})
.catch(error => {
console.log(error.code)
console.log(error.message)
})
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20