修改应用程序提供的模态
模态对话框用于显示关键信息或请求完成特定用户操作所需的用户输入。 用户操作包括取消订单,查看序列,添加或查看订单或订单行的注释等等。
模态对话框类似于弹出屏幕,这将打开一个对话框以在主应用程序内容上显示屏幕。 所有模态对话框都显示在父屏幕中。 打开模态对话框时,用户无法返回到父屏幕。 此外,在模态任务完成或模态对话框关闭之前,将忽略任何用户操作。
您可以根据业务需要定制应用程序提供的模态。
开始之前
应用程序提供的 modals 存在于相应页面组件或屏幕的 modals 目录中,如以下示例中所述:
- 单击 " 订单摘要 " 屏幕中的 取消订单 相关任务时,将显示取消订单模态组件。 取消订单模态组件存在于 <store-temp>/packages/features/orders/src/app/features/orders/order-summary-page/modals/cancel-order-modal 目录中。
- 当您要在搬迁库存流的 " 提货 " 页面中将产品数量标记为缺货时,将显示记录缺货模态组件。 记录缺货模态组件存在于 <store-temp>/packages/features/move-inventory/src/app/features/move-inventory/move-inventory-wizard-page/modals/record-shortage 目录中。
要覆盖应用程序提供的任何模态,您必须知道该模态的 modalId 。 modalId 用于唯一地标识应用程序提供的模态。 因此,它由覆盖-模态命令使用,该命令使您能够定制模态。
modalId 定义为应用程序提供的模态组件类中的变量,如以下示例中所示:export class OrderTotalModalComponent implements OnInit {
public static modalId = 'orders.order-total-modal';
...
...
覆盖应用程序提供的模态时,将在 <store-temp>/extensions/features/override-modals 目录中复制整个模态组件目录。 您可以根据业务需要修改复制的模态组件。
注: 当您只想修改模态代码时,请勿复制父屏幕或组件代码。
要使用定制或覆盖模态来映射应用程序提供的模态,请使用 <store-temp>/extensions/features/override-modals/src/assets/override-modals/config/isf-modal-config.json 配置文件。 您可以轻松确定被覆盖的应用程序提供的模态以及用于覆盖的定制模态组件。
下表描述了
isf-modal-config.json 文件的模式定义:| 属性名称 | 描述 |
|---|---|
| applicationProvidedModalId | 为应用程序提供的模态分配的唯一标识符,其命名约定为<feature-name>.<parent-page-name>.<modal-name>。 例如, orders.order-summary-page.cancel-order-modal。 |
| overrideModalId | 分配给命名约定为 custom-<applicationProvidedModalId>的被覆盖或定制模态的唯一标识。 例如 custom-orders.order-summary-page.cancel-order-modal。 |
过程
下一步
- 要以本地方式验证应用程序提供的扩展屏幕,请通过运行以下命令来启动应用程序,然后浏览到显示模态的屏幕。
yarn start-app - 要验证开发者工具箱中的更改,请抽取并部署定制。 有关提取和部署自定义内容的更多信息,请参阅提取自定义内容。