Microsoft Graph 工具包中的人员组件
可以使用 mgt-people
Web 组件通过照片或姓名缩写显示一组人员或联系人。 默认情况下,它显示已登录用户的最常见联系人。
此组件使用多个 mgt-person 控件,但它可以绑定到一组人员描述符。 如果要显示的人员数超过 show-max
该值,则会添加一个数字来指示其他联系人的数量。
示例
以下示例显示了使用 mgt-people
组件显示的一组人员。 可以使用代码编辑器来查看 属性 如何更改组件的行为。
属性
默认情况下, mgt-people
组件使用筛选器从 /me/people
终结点提取事件, personType/class eq 'Person'
以显示经常联系的用户。 可以使用多个属性来更改此行为。
属性 | 属性 | 说明 |
---|---|---|
show-max | showMax | 指示要显示的最大人数。 默认值为 3。 |
people | people | Microsoft Graph 人员对象的数组。 使用此属性访问组件加载的人员。 设置此值以将自己的人员加载到组件上。 |
group-id | groupId | Microsoft Entra ID组的 ID。 此属性用于检索组的直接成员。 此属性可选。 |
user-ids | userIds | 要显示的用户 ID 的数组。 此属性可选。 |
people-queries | peopleQueries | 用于自定义人员查询响应的 Microsoft Graph 查询。 |
person-卡 | personCardInteraction | 设置行为以显示呈现的人员卡。 默认值设置为显示将鼠标悬停 (PersonCardInteraction.hover) 卡的人员。 |
show-presence | showPresence | 确定人员组件是否应呈现状态锁屏提醒。 默认值为 false。 |
resource | resource | 要从 Microsoft Graph 获取的资源 URL (例如 /me/people ,) 。 |
scopes | scopes | 一个逗号分隔的字符串,该字符串具有要授予组件的权限。 此属性可选。 |
version | version | 发出请求时要使用的 API 版本。 默认值为 v1.0 。 |
fallback-details | fallbackDetails | 当图形中找不到用户/人员/联系人时,表示一个或多个人的 Microsoft Graph 人员对象数组。 |
以下示例设置要显示的最大人数。
<mgt-people show-max="4"> </mgt-people>
CSS 自定义属性
组件 mgt-people
定义以下 CSS 自定义属性。
<mgt-people class="people"></mgt-people>
.people {
--people-list-margin: 12px;
--people-avatar-gap: 8px;
--people-overflow-font-color: orange;
--people-overflow-font-size: 16px;
--people-overflow-font-weight: 600;
--people-person-avatar-size: 70px;
}
若要了解详细信息,请参阅 设置组件样式。
模板
mgt-people
支持多个模板,可用于替换组件的某些部分。 若要指定模板,请在组件中包含元素 <template>
,并将 设置为 data-type
以下值之一。
数据类型 | 数据上下文 | 说明 |
---|---|---|
default |
people :人员对象列表 |
默认模板将整个组件替换为你自己的组件。 |
person |
person :person 对象 |
用于呈现每个人的模板。 |
overflow |
people :人员对象列表max :显示的人员数extra :额外人数 |
用于在人员列表右侧呈现超出最大值的数字的模板。 |
no-data |
未传递任何数据上下文 | 在没有可用数据时使用的模板。 |
loading |
未传递任何数据上下文 | 组件加载状态时使用的模板。 |
以下示例演示如何使用 person
模板。
<mgt-people>
<template>
<ul>
<li data-for="person in people">
<mgt-person person-query="{{ person.userPrincipalName }}"></mgt-person>
<h3>{{ person.displayName }}</h3>
<p>{{ person.jobTitle }}</p>
<p>{{ person.department }}</p>
</li>
</ul>
</template>
</mgt-people>
Microsoft Graph 权限
此组件使用以下 Microsoft Graph API 和权限。 对于每个调用的 API,用户必须至少具有列出的权限之一。
配置 | 权限 | API |
---|---|---|
默认配置 | People.Read、People.Read.All | /me/people |
group-id 设置 |
GroupMember.Read.All、Group.Read.All、Directory.Read.All、GroupMember.ReadWrite.All、Group.ReadWrite.All | /groups/${groupId}/members/microsoft.graph.user |
user-ids 设置 |
User.ReadBasic.All、User.Read.All、Directory.Read.All、User.ReadWrite.All、Directory.ReadWrite.All | /users/$ ({userId} |
people-queries 设置 |
People.Read、People.Read.All | /me/people |
resource 设置 |
中指定的权限 scopes |
在 中指定 resource |
show-presence 设置 |
Presence.Read.All | /communications/getPresencesByUserId |
子组件
组件 mgt-people
由一个或多个子组件组成,这些子组件可能需要除前面列出的权限以外的其他权限。 有关详细信息,请参阅每个子组件的文档: mgt-person。
身份验证
控件使用身份验证文档中所述的全局 身份验证提供程序。
缓存
对象存储 | 缓存的数据 | 备注 |
---|---|---|
people |
有关与查询匹配的人员的信息 | 在指定时 resource 使用 |
users |
有关与查询匹配的用户的信息 | 在 、 userIds peopleQueries 或未指定任何属性时groupId 使用 |
presence |
指定人员集的状态 | 设置为 时 showPresence 使用 true |
注意
默认情况下, mgt-people
组件使用 mgt-person
组件来显示有关人员的信息。 该 mgt-person
组件会自动下载并缓存每个人的照片。
有关如何配置缓存的详细信息,请参阅 缓存。
扩展以获得更多控制
对于更复杂的方案或真正自定义的 UX,此组件公开了组件扩展中的多种 protected render*
替代方法。
方法 | 说明 |
---|---|
renderLoading | 呈现加载状态。 |
renderNoData | 呈现空数据状态。 |
renderPeople | 呈现人员列表,最高为 show-max 值。 |
renderPerson | 呈现单个人员。 |
renderOverflow | 呈现值之外的 show-max 剩余人员的表示形式。 |
本地化
控件不公开任何本地化变量。