进入Order History页面:http://localhost:4200/electronics-spa/en/USD/my-account/order/00001075
点击 Cancel Items这个按钮会路由到一个 cancel 页面去:选择要cancel的行项目:selector:cx-cancel-order
点击Continue按钮后的处理函数:continue($event)
continue函数里,进行另一个路由跳转:这说明Commerce Cloud 订单取消是基于行项目的:form 的提交请求按钮,没有具体实现,类型为submit,因此需要去最上层,找到form的实现:cx-cancel-order-confirmation节点下面,有form节点:cx-cancel-order-confirmation
下图第26行的submit函数,即submit按钮点击后的处理函数。cancer-order-confirmation.component.ts
this.userOrderService.cancelOrderCancelOrderConfirmationComponent里的实现代码:
save() { const orderCode = this.form.value.orderCode; const entries = this.form.value.entries; const inputs = Object.keys(entries) .filter((entryNumber) => entries[entryNumber] > 0) .map((entryNumber) => ({ orderEntryNumber: Number(entryNumber), quantity: entries[entryNumber], })); this.form.reset(); this.userOrderService.cancelOrder(orderCode, { cancellationRequestEntryInputs: inputs, }); this.userOrderService .getCancelOrderSuccess() .pipe(first(Boolean)) .subscribe(() => this.afterSave(orderCode)); }