显示定制迷你 Portlet 的计数标记
关于此任务
当 Portlet 溢出到 "更多任务" Portlet 中时,将显示 Portlet 的迷你视图。 Portlet 的迷你视图显示一个徽章,该徽章指示与该 portlet 关联的任务数。 从 store-customization-impl.ts 文件的 extensionPersonaConfigList 中的 miniPortletCountProvider 属性中提及的服务方法返回标记值。 miniPortletCountProvider 应包含方法名称 (作为字符串) ,将调用该方法以访存在 "更多任务" 迷你 Portlet 视图中显示为标记的计数值。 将在 MiniPortletDataService上调用此方法。
过程
- 将
mini-portlet-data.service.ts从<WORKSPACE>/store-frontend/src/app/features/home/portlet-set/mini-portlet复制到<WORKSPACE>/store-frontend/store-extensions-src/app/features/home/portlet-set/mini-portlet文件夹。 - 在
mini-portlet-data.service.ts中定义具有公共访问修饰符的新方法。 编写访存计数值所需的逻辑,并确保此方法仅返回计数值而不是 JSON 对象的 Promise 。 - 您可以在
mini-portlet-data.service.ts的构造函数中定义其他提供程序。 确保未将其他提供程序传递到super(injector)方法。 - 在
mini-portlet-data.service.ts中使用公共静态只读访问修饰符将变量中的方法名称定义为字符串。 应该将此变量分配给 store-customization-impl.ts 文件中的extensionPersonaConfigList中的miniPortletCountProvider属性。
示例
假设您已创建新的定制 Portlet UserPortlet ,并希望在迷你 Portlet 视图中将商店用户数显示为徽章计数。 为此,必须在 mini-portlet-data.service.ts 中编写新方法,并使用公共静态只读访问修饰符将方法名称定义为字符串常量。
样本 mini-portlet-data.service.ts 如下所示:
public static readonly USERS_PORTLET_COUNT_METHOD_NAME = 'getUserPortletCounts';
constructor(
injector: Injector,
private userDataService: UserPortletDataService
){
super(injector);
}
public getUserPortletCounts() {
return this.userDataService.getUsersCount().then(data => {
return data.totalUserCount;
});
}
样本 store-customization-impl.ts 如下所示:
static extensionPersonaConfigList: IPersonaConfig[] = [
{
personaName: 'Order_Fulfillment',
personaIconClass: 'app-icon-inventory_mgmt_20',
portlets: [
{
portletTitleBundleKey: ‘userPortlet.TITLE_UserPortlet',
portletTID: ‘userPortlet',
portletSequenceNumber: 1,
portletComponent: UserPortletComponent,
portletIconClass: 'app-icon-Userʼ,
portletColor: ‘#BA4C09ʼ,
resourceId: 'ISF000025ʼ,
miniPortletCountProvider:
MiniPortletDataService.USERS_PORTLET_COUNT_METHOD_NAME
}
]
}
];注:
- 请勿在
mini-portletdata.service.ts的构造函数中向super传递其他参数。 - 在定制期间,请勿除去在
miniportlet-data.service.ts的构造函数中定义的任何应用程序提供的参数。 任何更改都会导致错误。