Incluindo guias customizadas em páginas existentes
Inclua guias customizadas em páginas existentes usando a abordagem de customização diferenciada, que atualiza o arquivo buc-page-definitions.json para customizar a página Usando a abordagem de customização diferenciada, suas atualizações são preservadas quando o Order Hub libera atualizações para as mesmas páginas customizadas.
Procedimento
- Crie ou edite o arquivo buc-page-definitions.json para a página na qual deseja incluir a guia customizada.Para localizar quais páginas suportam a inclusão de guias, consulte as páginas listadas no arquivo a seguir:
- buc-app-<module>/packages/<module>-shared/assets/buc-app-<module>/buc-page-definitions.json
A página de detalhes do pedido é usada como um exemplo nesta tarefa, localizada em packages/order-details/src-custom/assets/custom/buc-page-definitions.json
- Inclua uma guia customizada na página com as propriedades a seguir:
- resourceId
- Um ID exclusivo para mostrar ou ocultar a guia. Crie um novo ID do recurso e insira o valor
- título
- Uma sequência que será exibida como o nome da guia na IU. É possível fornecer uma sequência traduzível.
- valor
- Um valor de sequência exclusivo que é armazenado no contexto quando a guia está ativa.
- ID
- Um ID exclusivo para a guia..
- conteúdo
- Sequência ou nulo. Se for uma sequência, a guia exibirá a sequência quando a guia estiver ativa. Se for nulo, o modelo de componente
CustomTabserá carregado. - token
- Uma sequência exclusiva para registrar o
CustomTabComponentOpcional: showAfterTab: o ID de uma guia existente. Se for fornecido, a nova guia customizada será colocada após a guia existente desse ID. Caso contrário, a nova guia será adicionada no final.
Por exemplo, para atualizar a página de detalhes do pedido, atualize o arquivo packages/order-details/src-custom/assets/custom/buc-page-definitions.json com os seguintes detalhes:{ "order-details": { "name": "order-details", "actions": [], "tabs": [ { "resourceId": "BUCORD0014IP0001AT0009", "heading": "custom.LABEL_CUSTOM_TAB", "value": "custom-tab", "id": "order-details-custom-tab", "content": null, "token": "custom-tab-token", "showAfterTab": "order-details-audits-tab" } ] } } - Inclua sequências de tradução para a guia customizada.
- Crie ou edite o arquivo en.json . Por exemplo, para a página de detalhes do pedido, packages/order-details/src-custom/assets/custom/i18n/en.json
- Escreva o conteúdo JSON a seguir no arquivo en.json Esse rótulo é usado para a nova guia customizada que você incluirá na página
{ "custom": { "LABEL_CUSTOM_TAB": "Custom tab" } }
- Verifique se a nova guia customizada é exibida em Order Hub.
- Efetue login no Order Hub. Se você já tiver efetuado login, recarregue o quadro.
- Acesse a página atualizada para que seja possível verificar a exibição da guia customizada.
Por exemplo, se você atualizou a página de detalhes do pedido, clique em Pedidos (modo DEV) e procure pedidos. Clique em qualquer pedido para acessar a página de detalhes do pedido..
- Verifique se a nova guia customizada é mostrada no menu guias. Seu local variará com base se você especificou um valor para showAfterTab no arquivo buc-page-definitions.json . Por exemplo:

- Crie um componente customizado para exibir o conteúdo da guia customizada
- Crie um componente customizado no recurso. Por exemplo, para a página de detalhes do pedido: packages/order-details/src-custom/app/features/order/

- O componente customizado em custom-tab.component.ts deve definir a propriedade
tabContentcomo uma referência de modelo edatacomo uma propriedade de entrada.Por exemplo, para a página de detalhes do pedido, packages/order-details/src-custom/app/features/order/custom-tab/custom-tab.component.ts:.import { Component, Input, TemplateRef, ViewChild } from "@angular/core"; @Component({ selector: 'buc-custom-tab', templateUrl: './custom-tab.component.html', styleUrls: ['./custom-tab.component.css'] }) export class CustomTabComponent { @ViewChild('tabContent', {static:true}) public tabContent: TemplateRef<any>; @Input() data; // data contains the following properties // data = { // pageObject -> details page data // routeData -> the page router object // context -> sometimes a page has a context object // } constructor() { } } - O componente customizado em custom-tab.component.html deve definir a propriedade
ng-templatecom nome de referênciatabContent.Por exemplo, para a página de detalhes do pedido, packages/order-details/src-custom/app/features/order/custom-tab/custom-tab.component.html:.<ng-template #tabContent> <h1>This is the custom tab content</h1> </ng-template>
- Crie um componente customizado no recurso. Por exemplo, para a página de detalhes do pedido: packages/order-details/src-custom/app/features/order/
- Registre um componente customizado no arquivo app-customization.impl.ts .Por exemplo, para a página de detalhes do pedido, packages/order-details/src-custom/app/app-customization.impl.ts
- Importe
CustomTabComponentde seu local. - Incluir
CustomTabComponentem componentes e provedoresPor exemplo, na página de detalhes da ordem:import { CustomTabComponent } from "./features/order/custom-tab/custom-tab.component"; export class AppCustomizationImpl { static readonly components = [ CustomTabComponent ]; static readonly providers = [ { provide: 'custom-tab-token', useValue: CustomTabComponent } ]; static readonly imports = []; }Nota: o valor para a propriedadeprovidedeve ser igual ao token especificado para a guia customizada no arquivo buc-page-definitions.json .
- Importe
- Recarregue o quadro e verifique se o conteúdo correto do arquivo custom-tab.component.html é exibido ao selecionar a nova guia.Por exemplo, para a página de detalhes do pedido, packages/order-details/src-custom/app/features/order/custom-tab/custom-tab.component.html:.
