新一代平台已停用

显示定制迷你 Portlet 的计数标记

关于此任务

当 Portlet 溢出到 "更多任务" Portlet 中时,将显示 Portlet 的迷你视图。 Portlet 的迷你视图显示一个徽章,该徽章指示与该 portlet 关联的任务数。 从 store-customization-impl.ts 文件的 extensionPersonaConfigList 中的 miniPortletCountProvider 属性中提及的服务方法返回标记值。 miniPortletCountProvider 应包含方法名称 (作为字符串) ,将调用该方法以访存在 "更多任务" 迷你 Portlet 视图中显示为标记的计数值。 将在 MiniPortletDataService上调用此方法。

过程

  1. 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 文件夹。
  2. mini-portlet-data.service.ts中定义具有公共访问修饰符的新方法。 编写访存计数值所需的逻辑,并确保此方法仅返回计数值而不是 JSON 对象的 Promise
  3. 您可以在 mini-portlet-data.service.ts的构造函数中定义其他提供程序。 确保未将其他提供程序传递到 super(injector) 方法。
  4. 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 的构造函数中定义的任何应用程序提供的参数。 任何更改都会导致错误。