@rolatech/angular-order 20.2.6-beta.1 → 20.2.7-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rolatech-angular-order.mjs","sources":["../../../../packages/angular-order/src/lib/interfaces/order.ts","../../../../packages/angular-order/src/lib/pipe/order-item-options.pipe.ts","../../../../packages/angular-order/src/lib/components/order-item/order-item.component.ts","../../../../packages/angular-order/src/lib/components/order-item/order-item.component.html","../../../../packages/angular-order/src/lib/pages/order/order-index/order-index.component.ts","../../../../packages/angular-order/src/lib/pages/order/order-index/order-index.component.html","../../../../packages/angular-order/src/lib/components/order-return-request/order-return-request.component.ts","../../../../packages/angular-order/src/lib/components/order-return-request/order-return-request.component.html","../../../../packages/angular-order/src/lib/components/order-detail-item/order-detail-item.component.ts","../../../../packages/angular-order/src/lib/components/order-detail-item/order-detail-item.component.html","../../../../packages/angular-order/src/lib/components/order-merchant/order-merchant.component.ts","../../../../packages/angular-order/src/lib/components/order-merchant/order-merchant.component.html","../../../../packages/angular-order/src/lib/pipe/merchant-filter.pipe.ts","../../../../packages/angular-order/src/lib/pages/order/order-detail/order-detail.component.ts","../../../../packages/angular-order/src/lib/pages/order/order-detail/order-detail.component.html","../../../../packages/angular-order/src/lib/pages/order/order-qrcodepay/order-qrcodepay.component.ts","../../../../packages/angular-order/src/lib/pages/order/order-qrcodepay/order-qrcodepay.component.html","../../../../packages/angular-order/src/lib/pages/order/order-tracking/order-tracking.component.ts","../../../../packages/angular-order/src/lib/pages/order/order-tracking/order-tracking.component.html","../../../../packages/angular-order/src/lib/pages/order/order-suborder-tracking/order-suborder-tracking.component.ts","../../../../packages/angular-order/src/lib/pages/order/order-suborder-tracking/order-suborder-tracking.component.html","../../../../packages/angular-order/src/lib/pages/order/orders.routes.ts","../../../../packages/angular-order/src/lib/components/order-manage-item-header/order-manage-item-header.component.ts","../../../../packages/angular-order/src/lib/components/order-manage-item-header/order-manage-item-header.component.html","../../../../packages/angular-order/src/lib/components/order-manage-item-content/order-manage-item-content.component.ts","../../../../packages/angular-order/src/lib/components/order-manage-item-content/order-manage-item-content.component.html","../../../../packages/angular-order/src/lib/components/order-manage-item-container/order-manage-item-container.component.ts","../../../../packages/angular-order/src/lib/components/order-manage-item-container/order-manage-item-container.component.html","../../../../packages/angular-order/src/lib/components/order-manage-item/order-manage-item.component.ts","../../../../packages/angular-order/src/lib/components/order-manage-item/order-manage-item.component.html","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-index/order-manage-index.component.ts","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-index/order-manage-index.component.html","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-fulfillment/order-manage-fulfillment.component.ts","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-fulfillment/order-manage-fulfillment.component.html","../../../../packages/angular-order/src/lib/components/order-variant-item/order-variant-item.component.ts","../../../../packages/angular-order/src/lib/components/order-variant-item/order-variant-item.component.html","../../../../packages/angular-order/src/lib/components/order-fulfill/order-fulfill.component.ts","../../../../packages/angular-order/src/lib/components/order-fulfill/order-fulfill.component.html","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-detail/order-manage-detail.component.ts","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-detail/order-manage-detail.component.html","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-tracking/order-manage-tracking.component.ts","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-tracking/order-manage-tracking.component.html","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage.routes.ts","../../../../packages/angular-order/src/rolatech-angular-order.ts"],"sourcesContent":["export interface Order {\n id: string;\n createdAt: string;\n orderNo: string;\n total: number;\n status: OrderStatus | string;\n fulfillmentStatus: OrderFulfillmentStatus | string;\n paymentStatus: OrderPaymentStatus | string;\n returnStatus: OrderReturnStatus | string;\n subOrders: SubOrder[];\n items: OrderItem[];\n customerId: string;\n merchantId: string;\n type: OrderType;\n note: string;\n deposit: number;\n payments: Payment[];\n shippingAddress: ShippingAddress;\n billingAddress: BillingAddress;\n}\nexport interface SubOrder {\n id: string;\n items: OrderItem[];\n merchantId: string;\n subTotal: number;\n status: OrderStatus | string;\n type: OrderType;\n}\nexport enum OrderStatus {\n CREATED = '待付款',\n PAID = '已支付',\n PARTIAL_PAID = '定金已支付',\n COMPLETED = '已完成',\n CLOSED = '交易关闭',\n CANCELED = '交易取消',\n REFUNDED = '已退款',\n RETURN_REQUESTED = '退款处理中',\n}\nexport enum OrderFulfillmentStatus {\n UNFULFILLED = '未发货',\n FULFILLED = '已发货',\n PARTIALLY_FULFILLED = '部分发货',\n ON_HOLD = '等待发货',\n}\nexport enum OrderPaymentStatus {\n CREATED = '待付款',\n PAID = '已支付',\n PARTIAL_PAID = '定金已支付',\n COMPLETED = '已完成',\n CLOSED = '交易关闭',\n CANCELED = '交易取消',\n REFUNDED = '已退款',\n RETURN_REQUESTED = '退款处理中',\n}\nexport enum OrderType {\n COURSE = '课程',\n PRODUCT = '商品',\n SERVICE = '服务',\n BOOKING = '预定',\n OTTHER = '其他',\n}\nexport interface OrderReturn {\n status: OrderReturnStatus | string;\n reason: string;\n total: number;\n customerId: string;\n merchantId: string;\n items: OrderItemReturn[];\n}\nexport interface OrderItemReturn {\n orderItem: OrderItem;\n}\nexport enum OrderReturnStatus {\n CREATED = <any>'等待审核',\n CANCELED = <any>'用户取消',\n APPROVED = <any>'已通过',\n REJECTED = <any>'已拒绝',\n PROCESSING = <any>'平台处理中',\n RETURNED = <any>'已退款',\n}\nexport interface OrderItem {\n name: string;\n variantId: string;\n refId: string;\n status: OrderItemStatus;\n total: number;\n quantity: number;\n media: OrderItemMedia[];\n options: OrderItemOption[];\n}\nexport interface OrderItemMedia {\n url: string;\n alt: string;\n size: number;\n}\nexport interface OrderItemOption {\n name: string;\n value: string;\n}\nexport enum OrderItemStatus {\n CREATED = <any>'创建',\n CANCELED = <any>'已取消',\n CLOSED = <any>'已关闭',\n RETURN_REQUESTED = <any>'等待审核',\n RETURN_APPROVED = <any>'商家同意退款',\n RETURN_REJECTED = <any>'商家拒绝退款',\n RETURN_PROCESSING = <any>'退款处理中',\n REFUNDED = <any>'已退款',\n}\nexport enum OrderTimelineStatus {\n ORDER_CREATE = <any>'交易创建',\n ORDER_CLOSED = <any>'交易关闭',\n ORDER_CANCELED = <any>'交易取消',\n ORDER_PAID = <any>'订单已支付',\n ORDER_PARTIAL_PAID = '定金已支付',\n ORDER_REFUNDED = <any>'订单已退款',\n ORDER_COMPLETED = <any>'订单已完成',\n ORDER_RETURN_REQUESTED = <any>'退款申请',\n ORDER_RETURN_APPROVED = <any>'商家同意退款',\n ORDER_RETURN_REJECTED = <any>'商家拒绝退款',\n ORDER_RETURN_PROCESSING = <any>'退款处理中',\n ORDER_RETURN_REFUNDED = <any>'退款处理完成,已入账',\n}\nexport interface OrderPayout {\n id: string;\n createdAt: string;\n amount: number;\n status: OrderPayoutStatus | string;\n type: OrderPayoutType;\n fee: number;\n total: number;\n orderId: string;\n description: string;\n}\nexport enum OrderPayoutStatus {\n CREATED = <any>'创建',\n PENDING = <any>'处理中',\n PAID = <any>'已支付',\n CANCELED = <any>'已取消',\n FAILED = <any>'失败',\n}\nexport enum OrderPayoutType {\n BANK = <any>'银行转账',\n CARD = <any>'银行卡',\n WECHAT = <any>'微信零钱',\n}\nexport interface Payment {\n id: string;\n name: string;\n description: string;\n status: PaymentStatus;\n type: PaymentType;\n deposit: number;\n amount: number;\n total: number;\n orderId: string;\n invoiceId: string;\n orderNo: string;\n productId: string;\n customerId: string;\n userId: string;\n createdAt: string;\n}\nexport enum PaymentStatus {\n PENDING = 'Pending',\n CANCELED = 'Canceled',\n COMPLETED = 'Completed',\n SUCCEEDED = 'Succeeded',\n FAILED = 'Failed',\n REFUNDED = 'Refunded',\n EXPIRED = 'Expired',\n}\nexport enum PaymentType {\n FIXED = 'Fixed',\n DEPOSIT = 'Deposit',\n FINAL = 'Final',\n}\nexport interface ShippingAddress {\n name: string;\n phone: string;\n email: string;\n country: string;\n province: string;\n city: string;\n district: string;\n street: string;\n detail: string;\n}\nexport interface BillingAddress {\n name: string;\n phone: string;\n email: string;\n country: string;\n province: string;\n city: string;\n district: string;\n street: string;\n detail: string;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CourseType } from '@rolatech/angular-course';\nimport { OrderType } from '../interfaces';\n\n@Pipe({\n name: 'orderItemoptions',\n})\nexport class OrderItemOptionsFormatPipe implements PipeTransform {\n courseType = CourseType;\n transform(options: any[], type?: OrderType): any {\n if (!options) {\n return;\n }\n let result = '';\n options.forEach((item, index) => {\n const tmp = index === options.length - 1 ? '' : ', ';\n result += item.name ? item.value + tmp : item.name + tmp;\n });\n // return result;\n return type?.toString() === 'COURSE' ? this.courseType[result] : result;\n }\n}\n","import { Component, computed, effect, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Order, OrderStatus } from '../../interfaces';\nimport { sumBy } from 'lodash';\nimport { ImagePlaceholderComponent, ThumbnailComponent } from '@rolatech/angular-components';\nimport { OrderItemOptionsFormatPipe } from '../../pipe/order-item-options.pipe';\nimport { FixedPipe } from '@rolatech/angular-common';\n\n@Component({\n selector: 'rolatech-order-item',\n imports: [MatIconModule, ThumbnailComponent, ImagePlaceholderComponent, OrderItemOptionsFormatPipe, FixedPipe],\n templateUrl: './order-item.component.html',\n styleUrl: './order-item.component.scss',\n})\nexport class OrderItemComponent {\n order = input.required<Order>();\n status: any = OrderStatus;\n total = computed(() => {\n return (this.order().total / 100).toFixed(2);\n });\n quantity = computed(() => sumBy(this.order().items, (item: any) => item.quantity));\n}\n","<div class=\"flex flex-col hover:bg-[--rt-raised-background] cursor-pointer p-3\">\n <div>\n @if (order().subOrders) {\n <div class=\"flex justify-between w-full mb-2\">\n <a class=\"flex items-center gap-3\">\n <span>订单ID: {{ order().id }}</span>\n <span class=\"text-sm\">(订单已拆分)</span>\n <span>¥{{ order().total | fixed }}</span>\n </a>\n\n <span class=\"font-medium text-sm\">{{ status[order().status] }}</span>\n </div>\n @for (subOrder of order().subOrders; track subOrder) {\n <div class=\"flex justify-between py-2\">\n <a class=\"text-sm\">子订单ID: {{ subOrder.id }}</a>\n <a>¥{{ subOrder.subTotal | fixed }}</a>\n </div>\n <div class=\"flex flex-col overflow-x-scroll scrollbar-hide\">\n @for (item of subOrder.items; track $index) {\n <div class=\"flex flex-row py-2\">\n @if (item.media) {\n <div class=\"min-w-24 object-cover aspect-video rounded-lg mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"item.media[0].url + '!w400'\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n <div class=\"flex w-full justify-between\">\n <div class=\"flex justify-between w-full\">\n <div>\n <div>{{ item.name }}</div>\n @if (item.options) {\n <div class=\"text-sm text-[--rt-text-secondary] mt-2\">\n {{ item.options | orderItemoptions: order().type }}\n </div>\n }\n </div>\n <div class=\"text-right\">\n <div class=\"text-sm\">¥{{ item.total | fixed }}</div>\n <div class=\"text-sm mt-2\">x{{ item.quantity }}</div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n }\n } @else {\n <div class=\"flex justify-between w-full mb-2\">\n <a class=\"flex items-center gap-3\">\n <span>订单ID: {{ order().id }}</span>\n <span>¥{{ order().total | fixed }}</span>\n </a>\n <span class=\"font-medium text-sm\">{{ status[order().status] }}</span>\n </div>\n @if (order().items; as items) {\n @if (items.length > 1) {\n } @else {}\n <div class=\"flex flex-col overflow-x-scroll scrollbar-hide\">\n @for (item of items; track $index) {\n <div class=\"flex flex-row py-2\">\n @if (item.media) {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"item.media[0].url + '!w400'\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n <div class=\"flex w-full justify-between\">\n <div class=\"flex justify-between w-full\">\n <div>\n <div>{{ item.name }}</div>\n @if (item.options) {\n <div class=\"text-sm text-[--rt-text-secondary] mt-2\">\n {{ item.options | orderItemoptions: order().type }}\n </div>\n }\n </div>\n <div class=\"text-right\">\n <div class=\"text-sm\">¥{{ item.total | fixed }}</div>\n <div class=\"text-sm mt-2\">x{{ item.quantity }}</div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n</div>\n","import { Component, inject, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { RouterModule, ActivatedRoute } from '@angular/router';\nimport {\n ContainerComponent,\n TabsComponent,\n TabComponent,\n ToolbarComponent,\n ListComponent,\n EmptyComponent,\n FilterComponent,\n} from '@rolatech/angular-components';\nimport { OrderService } from '@rolatech/angular-services';\nimport { OrderItemComponent } from '../../../components/order-item/order-item.component';\nimport { Order, OrderStatus, OrderType } from '../../../interfaces';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { KeyValuePipe } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'rolatech-order-index',\n templateUrl: './order-index.component.html',\n styleUrls: ['./order-index.component.scss'],\n imports: [\n ContainerComponent,\n RouterModule,\n TabsComponent,\n TabComponent,\n ToolbarComponent,\n ListComponent,\n OrderItemComponent,\n EmptyComponent,\n MatButtonModule,\n MatIconModule,\n FormsModule,\n MatFormFieldModule,\n MatDatepickerModule,\n MatOptionModule,\n MatInputModule,\n MatSelectModule,\n MatButtonModule,\n FilterComponent,\n KeyValuePipe,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OrderIndexComponent implements OnInit {\n orderService = inject(OrderService);\n title = inject(Title);\n route = inject(ActivatedRoute);\n orderType = OrderType;\n orderStatus = OrderStatus;\n filterOptions: any = {\n type: '',\n status: '',\n };\n isFilter = signal(false);\n\n links = [\n {\n name: 'All',\n icon: 'dashboard',\n },\n {\n name: '待付款',\n icon: 'category',\n status: 'created',\n },\n {\n name: '已支付',\n icon: 'category',\n status: 'paid',\n },\n {\n name: '已退款',\n icon: 'category',\n status: 'refunded',\n },\n {\n name: '已取消',\n icon: 'category',\n status: 'canceled',\n },\n ];\n orders: Order[] = [];\n select = 0;\n ngOnInit(): void {\n this.title.setTitle('Orders');\n this.route.queryParams.subscribe(({ status }) => {\n this.select = this.links.findIndex((item) => item.status === status);\n if (status) {\n this.filterOptions.status = (status as string).toUpperCase();\n } else {\n delete this.filterOptions.status;\n }\n this.findOrders();\n });\n }\n findOrders() {\n const options = {\n sort: 'updatedAt desc',\n };\n const filterString = this.convertFilterOptions(this.filterOptions);\n if (filterString) {\n options['filter'] = filterString;\n }\n this.orderService.me(options).subscribe({\n next: (res: any) => {\n this.orders = res.data;\n },\n });\n }\n toggleFilter() {\n this.isFilter.update((isFilter) => !isFilter);\n }\n resetFilter() {\n this.filterOptions = {\n type: '',\n };\n this.isFilter.update(() => false);\n this.findOrders();\n }\n convertFilterOptions(jsonObj) {\n return Object.entries(jsonObj)\n .filter(([key, value]) => value !== '' && value !== undefined)\n .map(([key, value]) => {\n return `${key}:${value}`;\n })\n .join(',');\n }\n statusCompareFn(t1: any, t2: any) {\n return t1 === t2;\n }\n}\n","<rolatech-container>\n <rolatech-toolbar title=\"我的订单\" large>\n <button mat-button (click)=\"toggleFilter()\">\n <span>过滤</span>\n <mat-icon>tune</mat-icon>\n </button>\n </rolatech-toolbar>\n <rolatech-filter>\n <div class=\"close\" [class.open]=\"isFilter()\">\n <div\n class=\"min-w-[256px] md:min-w-[320px] px-3 h-full flex flex-row md:flex-col md:h-full items-center md:items-start shadow-inner shadow-light-400 md:shadow-none overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <div class=\"flex items-center gap-3 mt-2 w-full\">\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-select name=\"type\" placeholder=\"类型\" [(ngModel)]=\"filterOptions.type\">\n @for (type of orderType | keyvalue; track type) {\n <mat-option [value]=\"type.key\">\n {{ type.value }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [compareWith]=\"statusCompareFn\" placeholder=\"状态\" [(ngModel)]=\"filterOptions.status\">\n @for (status of orderStatus | keyvalue; track status) {\n <mat-option [value]=\"status.key\">\n {{ status.value }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <div>\n <button mat-flat-button (click)=\"findOrders()\">搜索</button>\n <button mat-stroked-button (click)=\"resetFilter()\" class=\"ml-3\">重置</button>\n </div>\n </div>\n </div>\n </div>\n </rolatech-filter>\n\n <rolatech-tabs [select]=\"select\">\n @for (item of links; track item) {\n @if (item.status) {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\" [queryParams]=\"{ status: item.status }\"></rolatech-tab>\n } @else {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\"></rolatech-tab>\n }\n }\n </rolatech-tabs>\n <rolatech-list>\n @if (orders) {\n @for (item of orders; track item) {\n <rolatech-order-item [routerLink]=\"['./', item.id]\" [order]=\"item\"></rolatech-order-item>\n }\n } @else {\n <rolatech-empty></rolatech-empty>\n }\n </rolatech-list>\n</rolatech-container>\n","import { Component, DoCheck, model, output } from '@angular/core';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-order-return-request',\n imports: [AngularCommonModule, AngularComponentsModule],\n templateUrl: './order-return-request.component.html',\n styleUrl: './order-return-request.component.scss',\n})\nexport class OrderReturnRequestComponent implements DoCheck {\n output = output<any>();\n reason = model<any>();\n ngDoCheck(): void {\n this.output.emit(this.reason());\n }\n}\n","<div class=\"py-2\">\n <h2 class=\"mb-2\" i18n>Input reason</h2>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Reason </mat-label>\n <textarea matInput required [(ngModel)]=\"reason\"></textarea>\n </mat-form-field>\n</div>\n","import { Component, computed, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThumbnailComponent } from '@rolatech/angular-components';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n selector: 'rolatech-order-detail-item',\n imports: [CommonModule, ThumbnailComponent, RouterLink],\n templateUrl: './order-detail-item.component.html',\n styleUrl: './order-detail-item.component.scss',\n})\nexport class OrderDetailItemComponent {\n thumbnail = input<string>();\n title = input.required<string>();\n description = input<string>();\n quantity = input<number>(0);\n total = input.required<number>();\n link = input.required<string>();\n priceDisplay = computed(() => {\n return (this.total() / 100)?.toFixed(2);\n });\n}\n","<div class=\"flex justify-between py-2\">\n <div class=\"flex w-full\">\n <div\n class=\"min-w-24 w-36 aspect-video bg-[--rt-raised-background] hover:rounded-none rounded-lg h-fit cursor-pointer\"\n [routerLink]=\"link()\"\n >\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"thumbnail()\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video\"></div>\n }\n </div>\n\n <div class=\"w-full ml-3 flex flex-col justify-between\">\n <!-- info -->\n <div class=\"flex justify-between\">\n <div class=\"flex flex-col\">\n <span class=\"text-lg font-bold hover:text-[--rt-brand-color] cursor-pointer\" [routerLink]=\"link()\">{{\n title()\n }}</span>\n <span class=\"text-sm text-[--rt-text-secondary]\">{{ description() }}</span>\n <ng-content></ng-content>\n </div>\n <div class=\"text-right p-1\">\n <div class=\"text-sm\">¥{{ priceDisplay() }}</div>\n <div class=\"text-sm mt-2\">x{{ quantity() }}</div>\n </div>\n </div>\n <!-- action -->\n <div class=\"flex justify-between items-center w-full\">\n <div class=\"flex items-center text-sm\"></div>\n </div>\n </div>\n </div>\n</div>\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n selector: 'rolatech-order-merchant',\n imports: [CommonModule, RouterLink, MatIcon],\n templateUrl: './order-merchant.component.html',\n styleUrl: './order-merchant.component.scss',\n})\nexport class OrderMerchantComponent {\n merchant = input.required<any>();\n}\n","<div class=\"flex flex-row items-center py-3\">\n <div class=\"flex mr-3 gap-2 items-center\">\n @if (merchant()) {\n @if (merchant().avatar) {\n <div class=\"cursor-pointer\" [routerLink]=\"['/', '@' + merchant().username]\">\n <img [src]=\"merchant().avatar\" class=\"w-11 h-11 rounded-full\" alt />\n </div>\n } @else {\n <div class=\"w-11 h-11 rounded-full bg-[--rt-brand-color]\"></div>\n }\n <div class=\"flex items-center text-lg font-bold cursor-pointer\">\n <a [routerLink]=\"['/', '@' + merchant().username]\">\n <span>{{ merchant().name }}</span>\n </a>\n <mat-icon class=\"verified-icon\">verified</mat-icon>\n </div>\n }\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'merchantFilter',\n})\nexport class MerchantFilterPipe implements PipeTransform {\n transform(merchants: any[], merchantId: string): unknown {\n if (!merchants || !merchantId) {\n return;\n }\n return merchants.find((item) => item.id === merchantId);\n }\n}\n","import { Component, ElementRef, inject, OnInit, ViewChild } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport moment from 'moment';\nimport { ContainerComponent, BaseComponent, SpinnerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { CourseType, CourseService } from '@rolatech/angular-course';\nimport { FulfillmentService, NavigationService, PaymentService } from '@rolatech/angular-services';\nimport { OrderService } from '@rolatech/angular-services';\nimport { Order, OrderStatus, OrderTimelineStatus, OrderType } from '../../../interfaces';\nimport { OrderReturnRequestComponent } from '../../../components/order-return-request/order-return-request.component';\nimport { ProductService } from '@rolatech/angular-services';\nimport { OrderDetailItemComponent } from '../../../components/order-detail-item/order-detail-item.component';\nimport { OrderItemOptionsFormatPipe } from '../../../pipe/order-item-options.pipe';\nimport { FixedPipe, ShippingAddressPipe } from '@rolatech/angular-common';\nimport { RouterLink } from '@angular/router';\nimport { AuthUserService } from '@rolatech/angular-auth';\nimport _ from 'lodash';\nimport { OrderMerchantComponent } from '../../../components/order-merchant/order-merchant.component';\nimport { MerchantFilterPipe } from '../../../pipe/merchant-filter.pipe';\nimport { loadStripe, StripeCardElementOptions, StripeElementsOptions, StripePaymentElement } from '@stripe/stripe-js';\nimport { map, switchMap } from 'rxjs';\n\n@Component({\n selector: 'rolatech-order-detail',\n imports: [\n MatButtonModule,\n MatIconModule,\n NgClass,\n SpinnerComponent,\n ContainerComponent,\n ToolbarComponent,\n OrderDetailItemComponent,\n OrderItemOptionsFormatPipe,\n FixedPipe,\n MerchantFilterPipe,\n ShippingAddressPipe,\n RouterLink,\n OrderMerchantComponent,\n ],\n templateUrl: './order-detail.component.html',\n styleUrl: './order-detail.component.scss',\n})\nexport class OrderDetailComponent extends BaseComponent implements OnInit {\n order!: Order;\n status: any = OrderStatus;\n type = CourseType;\n orderType = OrderType;\n orderService = inject(OrderService);\n paymentService = inject(PaymentService);\n courseService = inject(CourseService);\n productService = inject(ProductService);\n navigationService = inject(NavigationService);\n authUserService = inject(AuthUserService);\n timelineData: any;\n info = false;\n loadingTimeline = false;\n timelineStatus: any = OrderTimelineStatus;\n countDown = '';\n merchants = [];\n @ViewChild('paymentElement') paymentElement!: ElementRef;\n elements: any;\n stripe: any;\n clientSecret = '';\n paymentElementOptions = {\n layout: 'tabs' as const,\n };\n loading = false;\n errorMessage = '';\n\n async ngOnInit() {\n this.route.params.subscribe((params) => {\n const id = params['id'];\n this.get(id);\n });\n }\n get(id: string) {\n this.orderService.get(id).subscribe({\n next: (res: any) => {\n this.order = res.data;\n this.findMerchantsInfo();\n if (this.order.status === 'CREATED') {\n setInterval(() => {\n const start = moment();\n const end = moment(this.order.createdAt).add(15, 'minute');\n const diff = end.diff(start);\n const duration = moment.duration(diff);\n this.countDown = moment.utc(duration.as('milliseconds')).format('mm:ss');\n }, 1000);\n }\n },\n });\n }\n refund() {\n const options = {\n width: '500px',\n title: '申请退款',\n height: '90%',\n cancelText: 'Cancel',\n confirmText: '确认',\n component: OrderReturnRequestComponent,\n data: {\n reason: '',\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe((res) => {\n if (res) {\n this.orderService.refund(this.id, { reason: res }).subscribe({\n next: (res) => {\n this.snackBarService.open('退款申请成功, 等待审核');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n });\n }\n cancel() {\n this.orderService.cancel(this.id).subscribe({\n next: (res) => {\n this.order.status = 'CANCELED';\n this.snackBarService.open('Cancelled');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n pay() {\n this.router.navigateByUrl(`/orders/${this.id}/qrcodepay`);\n }\n timeline() {\n this.info = true;\n this.loadingTimeline = true;\n this.orderService.timeline(this.id).subscribe({\n next: (res) => {\n this.timelineData = res.data;\n this.loadingTimeline = false;\n },\n error: (error) => {\n this.loadingTimeline = false;\n },\n });\n }\n isSingleMerchant(): boolean {\n return !!this.order.merchantId && !this.order.subOrders;\n }\n findMerchantsInfo() {\n const ids: string[] = this.isSingleMerchant() ? [this.order.merchantId] : _.uniq(_.map(this.order.subOrders, 'merchantId'));\n return this.authUserService.findPublicInfoByIds(ids).subscribe({\n next: (res) => {\n this.merchants = res.data;\n },\n });\n }\n}\n","@if (order) {\n <rolatech-container>\n <rolatech-toolbar [title]=\"status[order.status]\" large link=\"../\">\n <button mat-flat-button (click)=\"timeline()\">\n <mat-icon>history</mat-icon>\n <span i18n>Order status</span>\n </button>\n @if (isSingleMerchant() && order.type.toString() === 'PRODUCT') {\n <button mat-flat-button routerLink=\"./tracking\">\n <mat-icon>local_shipping</mat-icon>\n <span i18n>Tracking</span>\n </button>\n }\n </rolatech-toolbar>\n <div>\n @if (order.status === 'CREATED') {\n <div class=\"text-[--rt-brand-color] font-bold\">支付倒计时: {{ countDown }}</div>\n }\n <div class=\"flex justify-between items-center py-2\">\n <a class=\"text-xl font-bold\">Order ID: {{ order.id }}</a>\n @if (!isSingleMerchant()) {\n <a class=\"text-sm\">订单已拆分</a>\n }\n </div>\n <div>\n @if (isSingleMerchant()) {\n <div>\n <rolatech-order-merchant [merchant]=\"merchants | merchantFilter: order.merchantId\"></rolatech-order-merchant>\n @for (item of order.items; track $index) {\n <rolatech-order-detail-item\n [thumbnail]=\"item.media ? item.media[0].url + '!w200' : ''\"\n [link]=\"order.type.toString() === 'PRODUCT' ? '/products/' + item.refId : '/courses/' + item.refId\"\n [title]=\"item.name\"\n [total]=\"item.total\"\n [description]=\"item.options | orderItemoptions: order.type\"\n [quantity]=\"item.quantity\"\n ></rolatech-order-detail-item>\n }\n </div>\n } @else {\n <div class=\"flex flex-col divide-y divide-[--rt-10-percent-layer]\">\n @for (subOrder of order.subOrders; track $index) {\n <div>\n <rolatech-order-merchant [merchant]=\"merchants | merchantFilter: subOrder.merchantId\"></rolatech-order-merchant>\n <div class=\"flex justify-between items-center\">\n <a class=\"text-lg font-bold\" [routerLink]=\"['/orders', subOrder.id]\">#{{ subOrder.id }}</a>\n @if (order.type.toString() === 'PRODUCT') {\n <button mat-button [routerLink]=\"['/orders', subOrder.id, 'tracking']\">\n <span i18n>Tracking</span>\n </button>\n }\n </div>\n @for (item of subOrder.items; track $index) {\n <rolatech-order-detail-item\n [thumbnail]=\"item.media[0].url + '!w200 '\"\n [link]=\"item.refId\"\n [title]=\"item.name\"\n [total]=\"item.total\"\n [description]=\"item.options | orderItemoptions: order.type\"\n [quantity]=\"item.quantity\"\n ></rolatech-order-detail-item>\n }\n <div class=\"flex justify-end py-3\">\n <a class=\"text-md font-bold\">¥{{ subOrder.subTotal | fixed }}</a>\n </div>\n </div>\n }\n </div>\n }\n <div class=\"mt-3\">\n <div class=\"text-lg py-3 font-medium\" i18n>Order info</div>\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Created at</span>\n <span class=\"text-sm\"> {{ order.createdAt }}</span>\n </div>\n <div class=\"flex items-baseline justify-between py-1\">\n <span class=\"font-medium min-w-20\" i18n>Shipping</span>\n <span class=\"text-sm\">{{ order.shippingAddress | shippingAddress }}</span>\n </div>\n <div class=\"flex items-baseline justify-between py-1\">\n <span class=\"font-medium min-w-20\" i18n>Note</span>\n <span class=\"text-sm\">{{ order.note || '无' }}</span>\n </div>\n @if (order.deposit) {\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Deposit</span>\n <span class=\"text-sm\">¥{{ order.deposit | fixed }}</span>\n </div>\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Remaining</span>\n <span class=\"text-sm\">¥{{ order.total - order.deposit | fixed }}</span>\n </div>\n }\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Total</span>\n <span class=\"text-sm\">¥{{ order.total | fixed }}</span>\n </div>\n </div>\n @if (order.status.toString() === 'CREATED' || order.status.toString() === 'PAID') {\n <div class=\"mt-6\">\n <div class=\"text-lg pb-3 font-medium\" i18n>Payment method</div>\n\n <div class=\"flex items-center\">\n <svg\n class=\"svg-icon\"\n style=\"width: 2rem; height: 2rem\"\n viewBox=\"0 0 1024 1024\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M395.846 603.585c-3.921 1.98-7.936 2.925-12.81 2.925-10.9 0-19.791-5.85-24.764-14.625l-2.006-3.864-78.106-167.913c-0.956-1.98-0.956-3.865-0.956-5.845 0-7.83 5.928-13.68 13.863-13.68 2.965 0 5.928 0.944 8.893 2.924l91.965 64.43c6.884 3.864 14.82 6.79 23.708 6.79 4.972 0 9.85-0.945 14.822-2.926L861.71 282.479c-77.149-89.804-204.684-148.384-349.135-148.384-235.371 0-427.242 157.158-427.242 351.294 0 105.368 57.361 201.017 147.323 265.447 6.88 4.905 11.852 13.68 11.852 22.45 0 2.925-0.957 5.85-2.006 8.775-6.881 26.318-18.831 69.334-18.831 71.223-0.958 2.92-2.013 6.79-2.013 10.75 0 7.83 5.929 13.68 13.865 13.68 2.963 0 5.928-0.944 7.935-2.925l92.922-53.674c6.885-3.87 14.82-6.794 22.756-6.794 3.916 0 8.889 0.944 12.81 1.98 43.496 12.644 91.012 19.53 139.48 19.53 235.372 0 427.24-157.158 427.24-351.294 0-58.58-17.78-114.143-48.467-163.003l-491.39 280.07-2.963 1.98z\"\n fill=\"#09BB07\"\n />\n </svg>\n <span class=\"ml-1\">微信支付</span>\n <!-- <svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 715.94 211.02\">\n <title>WeChat Pay logo - Brandlogos.net</title>\n <g id=\"页面-1\">\n <g id=\"画板\">\n <g id=\"编组\">\n <path\n id=\"形状结合\"\n d=\"M710.2,429.86l8.93,24.1c.93,2.7,1.94,5.9,2.61,8.34h.17c.76-2.44,1.6-5.56,2.61-8.51l8.09-23.93h7.84l-11.13,29.08c-5.31,14-8.93,21.16-14,25.54a21.48,21.48,0,0,1-7.57,4.41c-.61-1.09-3.39-5.85-3.39-5.85a19.62,19.62,0,0,0,6.49-3.62,22.5,22.5,0,0,0,6.24-8.26,5.31,5.31,0,0,0,.59-1.77,6.45,6.45,0,0,0-.51-1.94l-15.09-37.59Zm-170.81-.93c12.47,0,15.51,8.51,15.51,16.69v15.26a57.4,57.4,0,0,0,.67,9.78h-6.74l-.59-5.14H548a15.19,15.19,0,0,1-12.47,6.07c-8.26,0-12.47-5.82-12.47-11.72,0-9.86,8.76-15.25,24.53-15.17v-.84c0-3.37-.93-9.44-9.27-9.44a20.61,20.61,0,0,0-9.77,2.52L526,432.56A25.3,25.3,0,0,1,539.39,428.94Zm138.79,0c12.47,0,15.51,8.51,15.51,16.69v15.26a57.41,57.41,0,0,0,.67,9.78h-6.74l-.59-5.14h-.25a15.19,15.19,0,0,1-12.47,6.07c-8.26,0-12.47-5.82-12.47-11.72,0-9.86,8.77-15.25,24.53-15.17v-.84c0-3.37-.93-9.44-9.27-9.44a20.6,20.6,0,0,0-9.77,2.52l-2.53-4.38A25.3,25.3,0,0,1,678.18,428.94Zm-226.09-16c7.08,0,11.55,1.52,13.48,2.53,0,0-2.24,3.9-3.16,5.38a28,28,0,0,0-10.07-1.75c-13.32,0-22.17,8.51-22.17,23.43,0,13.91,8,22.84,21.83,22.84a31.51,31.51,0,0,0,10.48-1.73c.67,1.17,3,5.19,3,5.19-2.7,1.35-8.09,2.7-15,2.7-16,0-28.07-10.11-28.07-28.74C422.42,425,434.47,412.92,452.09,412.92Zm-55.11,16c13.32,0,16.86,11.72,16.86,19.22a28,28,0,0,1-.25,3.46H384.93c.17,10,6.57,14.16,14,14.16a27.78,27.78,0,0,0,9.78-1.51c.68,1.12,2.78,4.71,2.78,4.71a33,33,0,0,1-13.57,2.53c-12.56,0-20.06-8.26-20.06-20.57S385.09,428.94,397,428.94Zm181-10.79v11.72H588.6v5.65H578v22c0,5.06,1.43,7.92,5.56,7.92.61,0,1.16,0,1.67-.07.87,1.47,3,5.12,3,5.12a18.19,18.19,0,0,1-6.57,1c-3.46,0-6.24-1.1-8-3.12-2.11-2.19-2.87-5.81-2.87-10.62V435.51h-6.32v-5.65h6.32V418.15Zm56.21-4.72c7.25,0,12.56,1.69,15.93,4.72,3.12,2.7,5,6.83,5,11.88s-1.52,9.19-4.38,12.14c-3.88,4.13-10.2,6.24-17.36,6.24a25.3,25.3,0,0,1-5.9-.51v22.76h-7.33V414.52A85.05,85.05,0,0,1,634.19,413.43Zm-321.57.42,6.74,28.74c1.69,7.08,3.2,14.16,4.21,19.64h.17c.93-5.65,2.7-12.39,4.64-19.72L336,413.85h7.67l6.91,28.82c1.6,6.74,3.12,13.48,4,19.47h.17c1.18-6.24,2.78-12.56,4.55-19.64l7.5-28.66h7.5l-16.1,56.81h-7.67l-7.16-29.58a171.14,171.14,0,0,1-3.71-18.54h-.17A177.33,177.33,0,0,1,335,441.07L327,470.65h-7.67l-14.41-56.81Zm171.74-3v25.45h.17a13.77,13.77,0,0,1,5.31-5.23,15.27,15.27,0,0,1,7.59-2.11c5.48,0,14.24,3.37,14.24,17.45v24.27h-7.42V447.23c0-6.57-2.44-12.14-9.44-12.14a10.65,10.65,0,0,0-9.95,7.42,9,9,0,0,0-.51,3.54v24.61h-7.42V410.82ZM530.45,459c0,4.8,3.2,7.08,7,7.08a10.15,10.15,0,0,0,9.86-6.83,7.74,7.74,0,0,0,.42-2.36v-7.08C539.64,449.67,530.45,451.1,530.45,459Zm138.79,0c0,4.8,3.2,7.08,7,7.08a10.15,10.15,0,0,0,9.86-6.83,7.74,7.74,0,0,0,.42-2.36v-7.08C678.43,449.67,669.24,451.1,669.24,459ZM396.39,434.25c-7.5,0-10.79,6.91-11.38,12.05h21.66C406.75,441.58,404.73,434.25,396.39,434.25Zm238-15a30.8,30.8,0,0,0-6.91.59v22.08a24.65,24.65,0,0,0,6.07.59c8.85,0,14.24-4.3,14.24-12.14C647.76,422.87,642.45,419.24,634.36,419.24ZM584.45,291.18V306.1h44.14v7.75H584.45v16.2h35.63s-4.57,23.28-31.27,42.88c10.8,5.69,25,9.72,42.38,12.44,0,0-2.81,5-5.21,8.85-19-3.3-33.81-9.08-45.43-15.86-11.71,6.95-26.85,13-46.43,16.4-1.36-2-5.08-8.6-5.08-8.6,17.75-2.78,32.36-7.27,43.28-13.13-26.84-19.25-32-43-32-43h35.53v-16.2H530V306.1h45.85V291.18ZM323,319.7l6.88,3.65c-3.27,7.77-6.31,13.06-7.15,14.72v56.38H315V350.25c-4.44,6-7,9.07-8.34,10.54l-4.37-7.57C310.57,344.43,317.91,332.36,323,319.7Zm341.11-28.21,9,2-.28.74c-3.66,9.57-7.09,17.72-10.19,24.22v76H654V334.82a161.16,161.16,0,0,1-10.27,14.75L639,341.25c10.14-13.8,18.67-30.56,24.88-49.18Zm-226.36,0,8.15,2s-5.19,16.35-9.16,25l0,76h-8.61V335.12c-3.45,6.5-5.76,10.77-8.68,14.59l-4.66-8.07C426.86,326.4,437.72,291.47,437.72,291.47Zm-54.81-.41,7.75,1.55-.18.7c-1.6,6.13-3.37,12.15-5.26,17.91h23.19v7.33h-5.59c-1.44,20.81-5.13,36.93-10.95,47.93,4.62,9,13.52,17.42,16,19.7-.56,1.07-4.44,7.71-4.44,7.71s-12.89-13.2-15.81-19.59c-3.28,5.51-9.33,12.65-17.53,20h0L366,387s11.22-9.31,17.58-20.55a125.69,125.69,0,0,1-7.81-32.27c-1.36,2.39-2.1,3.68-3.47,5.73,0,0-3.62-6.29-4.36-7.47,6.51-11.45,11.39-24.94,14.87-40.71h0Zm344.12.88v24.4H742v8.18H727v53.12A15.35,15.35,0,0,1,711.7,393h-10v-9h10a6.39,6.39,0,0,0,6.38-6.38V324.52H670.25v-8.18h47.82v-24.4Zm-214.4,64.91v35.69H452V356.85Zm-149-4.26v19.71c1.45-1.23,5.89-5.13,7.38-6.46l3.57,6.18-16.36,13.81s-3.46-6-4.16-7.11c1-1.07,2.25-3.28,2.25-7.5V359.91H341.47c0,16.86-.68,23-11.92,31.75,0,0-2.71-4.78-3.92-6.78,9.66-7.63,8.51-18.06,8.51-32.29Zm140.81,12H460.61v20.61h43.84ZM608,337.7H552.6c3.17,6.6,11,19.34,28,30.42C597.44,356.87,605.06,344,608,337.7Zm79.67-.53L703.31,362l-8.15,4.45-14.64-25ZM395.5,318.55H382.74c-.13.52-1.33,3.54-1.6,4.13,1.59,15.26,3.94,27,7,34.81,3.79-9.1,6.27-22.18,7.36-38.94Zm118,21.24v7.33H451.15v-7.33Zm-146-3.84v7.33h-35V336Zm146-13.22v7.33H451.15v-7.33ZM354.26,292.89v26.87h7.92V300.56h6.9v26.09H331.7V301H339v18.76h7.91V292.89Zm-30.89-1.78,6.76,4.43a101.69,101.69,0,0,1-22.45,30.55L303.6,319C311,311.86,318,301.79,323.38,291.1Zm158.9.37,6.08,13.78h31.1V313H445.61v-7.75h34.12L475.3,294.5Z\"\n transform=\"translate(-26.03 -278.49)\"\n style=\"fill: #4d4d4d\"\n />\n <path\n id=\"Fill-29\"\n d=\"M113,412a8,8,0,0,1-10.54-3.22l-.52-1.14L80.18,359.84a4.16,4.16,0,0,1-.38-1.68A4,4,0,0,1,86.17,355l25.69,18.29a11.86,11.86,0,0,0,10.62,1.22L243.29,320.7c-21.66-25.52-57.32-42.2-97.68-42.2-66,0-119.58,44.62-119.58,99.66,0,30,16.11,57.06,41.32,75.33A8,8,0,0,1,70.69,460a9.43,9.43,0,0,1-.42,2.54l-5.39,20.1a11.73,11.73,0,0,0-.64,2.91,4,4,0,0,0,4,4,4.5,4.5,0,0,0,2.3-.74l26.18-15.11a12.55,12.55,0,0,1,6.35-1.84,12,12,0,0,1,3.51.53,141.5,141.5,0,0,0,39,5.46c66,0,119.59-44.62,119.59-99.66A86.29,86.29,0,0,0,251.58,332l-137.69,79.5Z\"\n transform=\"translate(-26.03 -278.49)\"\n style=\"fill: #1aad19\"\n />\n </g>\n </g>\n </g>\n </svg> -->\n </div>\n </div>\n }\n </div>\n\n <!-- safe area -->\n <div class=\"pb-16 sm:pb-3\"></div>\n <div class=\"\">\n @if (order.status.toString() === 'PAID') {\n <button mat-flat-button class=\"w-32 min-h-11\" (click)=\"refund()\">申请退款</button>\n }\n <div class=\"flex items-center justify-end\">\n @if (order.status.toString() === 'CREATED') {\n <span\n class=\"underline text-sm underline-offset-4 mr-6 cursor-pointer hover:text-[--rt-brand-color]\"\n (click)=\"cancel()\"\n i18n\n >Cancel</span\n >\n }\n @if (order.status.toString() === 'CREATED') {\n @if (order.deposit) {\n <button mat-flat-button class=\"w-32 min-h-11\" (click)=\"pay()\" i18n>Pay deposit</button>\n } @else {\n <button mat-flat-button class=\"w-32 min-h-11\" (click)=\"pay()\" i18n>Pay</button>\n }\n }\n @if (order.status.toString() === 'PARTIAL_PAID') {\n <button mat-flat-button class=\"w-32 min-h-11\" (click)=\"pay()\" i18n>Pay remaining</button>\n }\n </div>\n </div>\n </div>\n </rolatech-container>\n}\n@if (info) {\n <div\n [ngClass]=\"loadingTimeline ? 'translate-x-full' : 'translate-none'\"\n class=\"fixed top-0 right-0 z-[1001] h-screen p-4 overflow-y-auto transition-transform bg-[--rt-raised-background] w-80 sm:w-[300px] shadow-xl\"\n >\n <div class=\"flex justify-between items-center sm:p-4\">\n <div class=\"text-xl font-bold\" i18n>Status</div>\n <button mat-icon-button (click)=\"info = !info\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n @if (loadingTimeline) {\n <div>\n <rolatech-spinner></rolatech-spinner>\n </div>\n } @else {\n <div class=\"mt-3 p-1 sm:p-4\">\n <ol class=\"relative border-l border-[--rt-border-color]\">\n @for (item of timelineData; track item) {\n <li class=\"mb-8 ml-4\">\n <div\n class=\"absolute w-3 h-3 rounded-full mt-1.5 -left-1.5 border border-[--rt-raised-background] bg-[--rt-text-primary]\"\n ></div>\n <div class=\"text-md font-bold mb-1\">{{ timelineStatus[item.status] }}</div>\n @if (item.status === 'BOOKING_RETURN_REJECTED') {\n <div class=\"text-sm mb-1\">{{ item.return.note }}</div>\n }\n @if (item.status === 'BOOKING_RETURN_REQUESTED') {\n <div class=\"text-sm mb-1\">{{ item.return.reason }}</div>\n }\n <div class=\"text-sm text-[--rt-text-secondary]\">{{ item.date }}</div>\n </li>\n }\n </ol>\n </div>\n }\n </div>\n}\n\n<div\n (click)=\"info = !info\"\n [ngClass]=\"info ? 'visible' : 'invisible'\"\n class=\"bg-[--rt-10-percent-layer] fixed inset-0 z-[1000]\"\n></div>\n","import { Component, ElementRef, inject, OnInit, Renderer2, viewChild } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { ContainerComponent, ToolbarComponent, BaseComponent } from '@rolatech/angular-components';\nimport { Order, OrderStatus } from '../../../interfaces';\nimport { OrderService, PaymentService } from '@rolatech/angular-services';\nimport * as QRCode from 'qrcode';\nimport { FixedPipe } from '@rolatech/angular-common';\nimport { switchMap } from 'rxjs';\n\n@Component({\n selector: 'rolatech-order-qrcodepay',\n imports: [RouterLink, ContainerComponent, ToolbarComponent, FixedPipe],\n templateUrl: './order-qrcodepay.component.html',\n styleUrl: './order-qrcodepay.component.scss',\n})\nexport class OrderQrcodepayComponent extends BaseComponent implements OnInit {\n order!: Order;\n status: any = OrderStatus;\n orderService = inject(OrderService);\n renderer = inject(Renderer2);\n needPay = true;\n qrcElement = viewChild.required<ElementRef>('qrcode');\n paymentService = inject(PaymentService);\n\n ngOnInit(): void {\n this.getOrder();\n }\n getOrder() {\n this.orderService.get(this.id).subscribe({\n next: (res: any) => {\n this.order = res.data;\n this.needPay = this.order.status.toString() === 'CREATED' || this.order.status.toString() === 'PARTIAL_PAID';\n if (this.needPay) {\n // this.getQRCodeUrl();\n this.pay();\n }\n },\n });\n }\n pay() {\n const data = {\n businessType: 'ORDER',\n businessId: this.id,\n provider: 'WECHAT',\n method: 'WECHAT_PAY_NATIVE',\n };\n this.paymentService\n .createPaymentIntent(data)\n .pipe(\n switchMap((res: any) => {\n const intent = {\n intentId: res.data.id,\n provider: 'WECHAT',\n method: 'WECHAT_PAY_NATIVE',\n };\n return this.paymentService.createPayment(intent);\n }),\n )\n .subscribe({\n next: (res) => {\n this.genQRCode(res.data.qrCodeUrl);\n },\n });\n }\n getQRCodeUrl() {\n this.orderService.pay(this.id).subscribe({\n next: (res) => {\n this.genQRCode(res.data.qrCodeUrl);\n },\n });\n }\n genQRCode(url: string) {\n const element: Element = this.renderer.createElement('canvas');\n this.toCanvas(element, url)\n .then(() => {\n this.renderElement(element);\n })\n .catch((e) => {\n this.removeElementChildren();\n });\n }\n\n private toCanvas(canvas: any, url: any): Promise<any> {\n return QRCode.toCanvas(canvas, url, {\n errorCorrectionLevel: 'M',\n width: 200,\n });\n }\n private renderElement(element: any): void {\n this.removeElementChildren();\n this.renderer.appendChild(this.qrcElement().nativeElement, element);\n }\n private removeElementChildren(): void {\n for (const node of this.qrcElement().nativeElement.childNodes) {\n this.renderer.removeChild(this.qrcElement().nativeElement, node);\n }\n }\n}\n","@if (order) {\n <rolatech-container>\n <rolatech-toolbar [title]=\"status[order.status]\" link=\"../\" large></rolatech-toolbar>\n <div>\n <div>\n <a class=\"text-[--rt-brand-color]\" routerLink=\"..\"\n ><span>订单: </span><span class=\"underline\">#{{ this.id }}</span></a\n >\n @if (order.status.toString() === 'CREATED') {\n @if (order.deposit) {\n <div>支付定金: ¥{{ order.deposit | fixed }}</div>\n } @else {\n <div>支付金额: ¥{{ order.total | fixed }}</div>\n }\n }\n @if (order.status.toString() === 'PARTIAL_PAID') {\n <div>支付尾款 ¥{{ order.total - order.deposit | fixed }}</div>\n }\n </div>\n <div class=\"mt-6\">\n @if (needPay) {\n <div>\n <div>请使用微信扫码支付, 我们会在收到付款后处理您的订单</div>\n <div class=\"w-52 h-56 flex flex-col justify-end items-center\">\n <div #qrcode></div>\n <span class=\"text-md\">微信支付二维码</span>\n </div>\n </div>\n } @else {\n <div>请确认当前订单状态, 如已经付款, 请返回查看</div>\n }\n </div>\n </div>\n </rolatech-container>\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule, Location } from '@angular/common';\nimport { BaseComponent, ContainerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { Order, OrderStatus } from '../../../interfaces';\nimport { FulfillmentService, OrderService } from '@rolatech/angular-services';\n\n@Component({\n selector: 'rolatech-order-tracking',\n imports: [CommonModule, ContainerComponent, ToolbarComponent],\n templateUrl: './order-tracking.component.html',\n styleUrl: './order-tracking.component.scss',\n})\nexport class OrderTrackingComponent extends BaseComponent implements OnInit {\n orderService = inject(OrderService);\n fulfillmentService = inject(FulfillmentService);\n location = inject(Location);\n status: any = OrderStatus;\n trackingEvent: any;\n ngOnInit(): void {\n this.tracking();\n }\n tracking() {\n this.fulfillmentService.tracking(this.id).subscribe({\n next: (res) => {\n this.trackingEvent = res.data;\n },\n });\n }\n goBack() {\n this.location.back();\n }\n}\n","<rolatech-container>\n <rolatech-toolbar title=\"Tracking\" large back></rolatech-toolbar>\n <div>\n <!-- <div class=\"font-bold text-lg\">#{{ order.id }}</div> -->\n </div>\n <div>\n <div class=\"text-lg py-3 font-medium\">Tracking info</div>\n @for (item of trackingEvent; track $index) {\n <div class=\"py-2\">\n <div>{{ item.time }}</div>\n <div>{{ item.text }}</div>\n </div>\n }\n </div>\n</rolatech-container>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseComponent, ContainerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { OrderService, FulfillmentService } from '@rolatech/angular-services';\nimport { OrderStatus, Order } from '../../../interfaces';\n\n@Component({\n selector: 'rolatech-order-suborder-tracking',\n imports: [CommonModule, ContainerComponent, ToolbarComponent],\n templateUrl: './order-suborder-tracking.component.html',\n styleUrl: './order-suborder-tracking.component.scss',\n})\nexport class OrderSubOrderTrackingComponent extends BaseComponent implements OnInit {\n orderService = inject(OrderService);\n fulfillmentService = inject(FulfillmentService);\n status: any = OrderStatus;\n trackingEvent: any;\n order!: Order;\n sub = this.route.snapshot.params['sub'];\n\n ngOnInit(): void {\n console.log(this.sub);\n this.get();\n this.tracking();\n }\n get() {\n this.orderService.get(this.id).subscribe({\n next: (res: any) => {\n this.order = res.data;\n },\n });\n }\n tracking() {\n this.fulfillmentService.tracking(this.id).subscribe({\n next: (res) => {\n this.trackingEvent = res.data;\n },\n });\n }\n}\n","<rolatech-container>\n <rolatech-toolbar title=\"Tracking\" large link=\"../../\"></rolatech-toolbar>\n <div>\n <!-- <div class=\"font-bold text-lg\">#{{ order.id }}</div> -->\n </div>\n <div>\n <div class=\"text-lg py-3 font-medium\">Tracking info</div>\n @for (item of trackingEvent; track $index) {\n <div class=\"py-2\">\n <div>{{ item.time }}</div>\n <div>{{ item.text }}</div>\n </div>\n }\n </div>\n</rolatech-container>\n","import { Routes } from '@angular/router';\nimport { OrderIndexComponent } from './order-index/order-index.component';\nimport { OrderDetailComponent } from './order-detail/order-detail.component';\nimport { OrderQrcodepayComponent } from './order-qrcodepay/order-qrcodepay.component';\nimport { OrderTrackingComponent } from './order-tracking/order-tracking.component';\nimport { OrderSubOrderTrackingComponent } from './order-suborder-tracking/order-suborder-tracking.component';\n\nexport const orderRoutes: Routes = [\n {\n path: '',\n component: OrderIndexComponent,\n },\n {\n path: ':id',\n component: OrderDetailComponent,\n },\n {\n path: ':id/tracking',\n component: OrderTrackingComponent,\n },\n {\n path: ':id/:sub/tracking',\n component: OrderSubOrderTrackingComponent,\n },\n {\n path: ':id/qrcodepay',\n component: OrderQrcodepayComponent,\n },\n];\n","import { Component, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FixedPipe } from '@rolatech/angular-common';\n\n@Component({\n selector: 'rolatech-order-manage-item-header',\n imports: [CommonModule, FixedPipe],\n templateUrl: './order-manage-item-header.component.html',\n styleUrl: './order-manage-item-header.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n id: 'rolatech-order-manage-item-header',\n class: 'rolatech-order-manage-item-header',\n },\n})\nexport class OrderManageItemHeaderComponent {\n orderId = input.required<string>();\n status = input<string>();\n fulfillmentStatus = input<string>();\n total = input.required<number>();\n}\n","<div class=\"w-full h-11 flex items-center justify-between\">\n <div class=\"text-md font-bold\">#{{ orderId() }}</div>\n <div class=\"flex items-center gap-3\">\n <div>{{ status() }}</div>\n <div>{{ fulfillmentStatus() }}</div>\n <div>¥{{ total() | fixed }}</div>\n </div>\n</div>\n","import { Component, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OrderItem } from '../../interfaces';\nimport { ThumbnailComponent } from '@rolatech/angular-components';\nimport { OrderItemOptionsFormatPipe } from '../../pipe/order-item-options.pipe';\n\n@Component({\n selector: 'rolatech-order-manage-item-content',\n imports: [CommonModule, ThumbnailComponent, OrderItemOptionsFormatPipe],\n templateUrl: './order-manage-item-content.component.html',\n styleUrl: './order-manage-item-content.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n id: 'rolatech-order-manage-item-content',\n class: 'rolatech-order-manage-item-content',\n },\n})\nexport class OrderManageItemContentComponent {\n items = input.required<OrderItem[]>();\n}\n","<div class=\"flex flex-row md:flex-col overflow-hidden\">\n @for (item of items(); track $index) {\n <div class=\"flex items-center py-2\">\n <div class=\"min-w-24 w-24 object-cover aspect-video rounded-md mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"item.media[0].url + '!w400'\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n <div class=\"hidden md:flex flex-col px-3\">\n <span class=\"text-lg font-bold hover:text-[--rt-brand-color] cursor-pointer\">{{ item.name }}</span>\n <span class=\"text-sm text-[--rt-text-secondary]\"> {{ item.options | orderItemoptions }}</span>\n </div>\n </div>\n }\n</div>\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-order-manage-item-container',\n imports: [CommonModule],\n templateUrl: './order-manage-item-container.component.html',\n styleUrl: './order-manage-item-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n id: 'rolatech-order-manage-item-container',\n class: 'rolatech-order-manage-item-container',\n },\n})\nexport class OrderManageItemContainerComponent {}\n","<div class=\"flex flex-col w-full\">\n <ng-content select=\"rolatech-order-manage-item-header\"></ng-content>\n <ng-content select=\"rolatech-order-manage-item-content\"></ng-content>\n</div>\n","import { Component, input, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { Order, OrderFulfillmentStatus, OrderStatus } from '../../interfaces';\nimport { OrderManageItemHeaderComponent } from '../order-manage-item-header/order-manage-item-header.component';\nimport { OrderManageItemContentComponent } from '../order-manage-item-content/order-manage-item-content.component';\nimport { OrderManageItemContainerComponent } from '../order-manage-item-container/order-manage-item-container.component';\n\n@Component({\n selector: 'rolatech-order-manage-item',\n imports: [\n CommonModule,\n MatButtonModule,\n MatMenuModule,\n OrderManageItemContainerComponent,\n OrderManageItemHeaderComponent,\n OrderManageItemContentComponent,\n ],\n templateUrl: './order-manage-item.component.html',\n styleUrl: './order-manage-item.component.scss',\n})\nexport class OrderManageItemComponent {\n order = input.required<Order>();\n thumbnail = input();\n status = OrderStatus;\n fulfillmentStatus = OrderFulfillmentStatus;\n fulfill = output();\n onFulfill() {\n this.fulfill.emit();\n }\n archived() {}\n delete() {}\n}\n","<div class=\"flex p-3 items-center hover:bg-[--rt-raised-background] cursor-pointer\">\n <rolatech-order-manage-item-container>\n <rolatech-order-manage-item-header\n [orderId]=\"order().subOrders ? order().subOrders[0].id : order().id\"\n [status]=\"order().subOrders ? status[order().subOrders[0].status] : status[order().status]\"\n [fulfillmentStatus]=\"fulfillmentStatus[order().fulfillmentStatus]\"\n [total]=\"order().items ? order().total : order().subOrders[0].subTotal\"\n ></rolatech-order-manage-item-header>\n <rolatech-order-manage-item-content\n [items]=\"order().items ? order().items : order().subOrders[0].items\"\n ></rolatech-order-manage-item-content>\n </rolatech-order-manage-item-container>\n</div>\n<div class=\"h-[1px] px-3 bg-[--rt-raised-background]\"></div>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabComponent, TabsComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { OrderService, TitleService } from '@rolatech/angular-services';\nimport { Order } from '../../../interfaces';\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator';\nimport { OrderManageItemComponent } from '../../../components/order-manage-item/order-manage-item.component';\nimport { ActivatedRoute, RouterLink } from '@angular/router';\n\n@Component({\n selector: 'rolatech-order-manage-index',\n imports: [\n CommonModule,\n RouterLink,\n ToolbarComponent,\n TabsComponent,\n TabComponent,\n MatPaginatorModule,\n OrderManageItemComponent,\n ],\n templateUrl: './order-manage-index.component.html',\n styleUrl: './order-manage-index.component.scss',\n})\nexport class OrderManageIndexComponent implements OnInit {\n orderService = inject(OrderService);\n titleService = inject(TitleService);\n route = inject(ActivatedRoute);\n pageEvent!: PageEvent;\n length = 100;\n pageSize = 15;\n pageSizeOptions: number[] = [5, 10, 25, 100];\n orders: Order[] = [];\n filterOptions: any = {\n type: '',\n status: '',\n };\n orderOptions = [\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n {\n key: 'status',\n value: '状态',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'status',\n value: '状态',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n ];\n orderString = 'createdAt desc';\n select = 0;\n links = [\n {\n name: '全部',\n icon: 'dashboard',\n },\n {\n name: '待付款',\n icon: 'category',\n status: 'created',\n },\n {\n name: '已支付',\n icon: 'category',\n status: 'paid',\n },\n {\n name: '已退款',\n icon: 'category',\n status: 'refunded',\n },\n {\n name: '已取消',\n icon: 'category',\n status: 'canceled',\n },\n ];\n ngOnInit(): void {\n this.titleService.setTitle('Orders');\n this.route.queryParams.subscribe(({ status }) => {\n this.select = this.links.findIndex((item) => item.status === status);\n if (status) {\n this.filterOptions.status = (status as string).toUpperCase();\n } else {\n delete this.filterOptions.status;\n }\n this.findOrders();\n });\n }\n findOrders(event?: PageEvent | null): any {\n const filterString = this.convertFilterOptions(this.filterOptions);\n\n const page = event ? event.pageIndex + 1 : 1;\n const limit = event ? event.pageSize : 15;\n const sort = this.orderString;\n\n const options = {\n page,\n limit,\n sort,\n };\n if (filterString) {\n options['filter'] = filterString;\n }\n this.orderService.merchant(options).subscribe({\n next: (res) => {\n this.orders = res.data;\n this.length = res.meta.pagination.count;\n },\n });\n }\n onFulfill(orderId: string) {}\n convertFilterOptions(jsonObj) {\n return Object.entries(jsonObj)\n .filter(([key, value]) => value !== '' && value !== undefined)\n .map(([key, value]) => {\n return `${key}:${value}`;\n })\n .join(',');\n }\n}\n","<rolatech-toolbar title=\"Orders\">\n <div class=\"flex items-center gap-2\"></div>\n</rolatech-toolbar>\n<rolatech-tabs [select]=\"select\">\n @for (item of links; track item) {\n @if (item.status) {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\" [queryParams]=\"{ status: item.status }\"></rolatech-tab>\n } @else {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\"></rolatech-tab>\n }\n }\n</rolatech-tabs>\n<div>\n @for (item of orders; track $index) {\n <rolatech-order-manage-item\n [order]=\"item\"\n routerLink=\"./{{ item.subOrders ? item.subOrders[0].id : item.id }}\"\n (fulfill)=\"onFulfill(item.id)\"\n ></rolatech-order-manage-item>\n }\n</div>\n<mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"pageEvent = findOrders($event)\"\n hidePageSize\n showFirstLastButtons\n>\n</mat-paginator>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FulfillmentService, OrderService } from '@rolatech/angular-services';\nimport { Order } from '../../../interfaces';\n\n@Component({\n selector: 'rolatech-order-manage-fulfillment',\n imports: [\n CommonModule,\n ToolbarComponent,\n MatButtonModule,\n MatIcon,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n ],\n templateUrl: './order-manage-fulfillment.component.html',\n styleUrl: './order-manage-fulfillment.component.scss',\n})\nexport class OrderManageFulfillmentComponent extends BaseComponent implements OnInit {\n fulfillmentService = inject(FulfillmentService);\n orderService = inject(OrderService);\n order: any = {};\n fulfillments: any = {};\n ngOnInit(): void {\n this.findOrder();\n }\n findOrder() {\n this.orderService.get(this.id).subscribe({\n next: (res: any) => {\n this.order = res.data;\n },\n });\n }\n fulfill() {\n this.fulfillments['orderId'] = this.id;\n this.fulfillmentService.fulfill(this.id, this.fulfillments).subscribe({\n next: (res) => {},\n });\n }\n}\n","<rolatech-toolbar large link=\"../\" title=\"Ship\"> </rolatech-toolbar>\n<div class=\"flex flex-col w-full md:w-1/3\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n>Tracking number</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"fulfillments.trackingNumber\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n>Carrier</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"fulfillments.carrierId\" />\n </mat-form-field>\n</div>\n<button mat-flat-button (click)=\"fulfill()\">\n <mat-icon>local_shipping</mat-icon>\n <span i18n>Ship</span>\n</button>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-order-variant-item',\n imports: [CommonModule],\n templateUrl: './order-variant-item.component.html',\n styleUrl: './order-variant-item.component.scss',\n})\nexport class OrderVariantItemComponent {}\n","<p>order-variant-item works!</p>\n","import { Component, DoCheck, inject, model, OnInit, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\n\n@Component({\n selector: 'rolatech-order-fulfill',\n imports: [CommonModule, MatFormFieldModule, MatInputModule, FormsModule, ReactiveFormsModule],\n templateUrl: './order-fulfill.component.html',\n styleUrl: './order-fulfill.component.scss',\n})\nexport class OrderFulfillComponent implements OnInit, DoCheck {\n formBuilder = inject(FormBuilder);\n fulfillments = model<any>();\n output = output<any>();\n fulfillmentForm!: FormGroup;\n ngOnInit(): void {\n this.fulfillmentForm = this.formBuilder.group({\n trackingNumber: [null, Validators.required],\n carrierId: [null, Validators.required],\n });\n }\n ngDoCheck(): void {\n this.output.emit(this.fulfillmentForm.value);\n }\n}\n","<div class=\"flex flex-col w-full\">\n <form [formGroup]=\"fulfillmentForm\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Tracking number </mat-label>\n <input matInput formControlName=\"trackingNumber\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Carrier </mat-label>\n <input matInput formControlName=\"carrierId\" required />\n </mat-form-field>\n </form>\n</div>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { BaseComponent, SpinnerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { CourseType, CourseService } from '@rolatech/angular-course';\nimport { OrderService, ProductService, NavigationService, FulfillmentService } from '@rolatech/angular-services';\nimport moment from 'moment';\nimport { OrderDetailItemComponent, OrderReturnRequestComponent } from '../../../components';\nimport { Order, OrderStatus, OrderType, OrderTimelineStatus } from '../../../interfaces';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FixedPipe, ShippingAddressPipe } from '@rolatech/angular-common';\nimport { OrderItemOptionsFormatPipe } from '../../../pipe/order-item-options.pipe';\nimport { OrderFulfillComponent } from '../../../components/order-fulfill/order-fulfill.component';\n\n@Component({\n selector: 'rolatech-order-manage-detail',\n imports: [\n MatButtonModule,\n MatIconModule,\n NgClass,\n SpinnerComponent,\n ToolbarComponent,\n OrderDetailItemComponent,\n OrderItemOptionsFormatPipe,\n FixedPipe,\n ShippingAddressPipe,\n ],\n templateUrl: './order-manage-detail.component.html',\n styleUrl: './order-manage-detail.component.scss',\n})\nexport class OrderManageDetailComponent extends BaseComponent implements OnInit {\n order!: Order;\n status: any = OrderStatus;\n type = CourseType;\n orderType = OrderType;\n orderService = inject(OrderService);\n courseService = inject(CourseService);\n productService = inject(ProductService);\n fulfillmentService = inject(FulfillmentService);\n navigationService = inject(NavigationService);\n timelineData: any;\n info = false;\n loadingTimeline = false;\n timelineStatus: any = OrderTimelineStatus;\n countDown = '';\n ngOnInit(): void {\n this.get();\n }\n get(): any {\n this.orderService.getMerchantOrder(this.id).subscribe({\n next: (res: any) => {\n this.order = res.data;\n if (this.order.status === 'CREATED') {\n setInterval(() => {\n const start = moment();\n const end = moment(this.order.createdAt).add(15, 'minute');\n const diff = end.diff(start);\n const duration = moment.duration(diff);\n this.countDown = moment.utc(duration.as('milliseconds')).format('mm:ss');\n }, 1000);\n }\n },\n });\n }\n refund() {\n const options = {\n width: '500px',\n title: '申请退款',\n height: '90%',\n cancelText: 'Cancel',\n confirmText: '确认',\n component: OrderReturnRequestComponent,\n data: {\n reason: '',\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe((res) => {\n if (res) {\n this.orderService.refund(this.id, { reason: res }).subscribe({\n next: (res) => {\n this.snackBarService.open('退款申请成功, 等待审核');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n });\n }\n cancel() {\n this.orderService.cancel(this.id).subscribe({\n next: (res) => {\n this.order.status = 'CANCELED';\n this.snackBarService.open('Cancelled');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n pay() {\n this.router.navigateByUrl(`/orders/${this.id}/qrcodepay`);\n }\n timeline() {\n this.info = true;\n this.loadingTimeline = true;\n this.orderService.timeline(this.id).subscribe({\n next: (res) => {\n this.timelineData = res.data;\n this.loadingTimeline = false;\n },\n error: (error) => {\n this.loadingTimeline = false;\n },\n });\n }\n fulfill() {\n const options = {\n title: 'Ship',\n cancelText: 'Cancel',\n confirmText: 'Confirm',\n component: OrderFulfillComponent,\n data: {},\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n if (result) {\n this.fulfillmentService.fulfill(this.id, result).subscribe({\n next: (res) => {\n this.snackBarService.open('Ship successfully');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n}\n","@if (order) {\n <rolatech-toolbar [title]=\"order.subOrders ? status[order.subOrders[0].status] : status[order.status]\" large link=\"../\">\n <button mat-flat-button (click)=\"fulfill()\">\n <mat-icon>local_shipping</mat-icon>\n <span i18n>Ship</span>\n </button>\n <button mat-flat-button (click)=\"timeline()\">\n <mat-icon>history</mat-icon>\n <span i18n>Order status</span>\n </button>\n </rolatech-toolbar>\n @if (info) {\n <div\n [ngClass]=\"loadingTimeline ? 'translate-x-full' : 'translate-none'\"\n class=\"fixed top-0 right-0 z-[1001] h-screen p-4 overflow-y-auto transition-transform bg-[--rt-raised-background] w-80 sm:w-[300px] shadow-xl\"\n >\n <div class=\"flex justify-between items-center sm:p-4\">\n <div class=\"text-xl font-bold\" i18n>Order status</div>\n <button mat-icon-button (click)=\"info = !info\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n @if (loadingTimeline) {\n <div>\n <rolatech-spinner></rolatech-spinner>\n </div>\n } @else {\n <div class=\"mt-3 p-1 sm:p-4\">\n <ol class=\"relative border-l border-[--rt-border-color]\">\n @for (item of timelineData; track item) {\n <li class=\"mb-8 ml-4\">\n <div\n class=\"absolute w-3 h-3 rounded-full mt-1.5 -left-1.5 border border-[--rt-raised-background] bg-[--rt-text-primary]\"\n ></div>\n <div class=\"text-md font-bold mb-1\">{{ timelineStatus[item.status] }}</div>\n @if (item.status === 'BOOKING_RETURN_REJECTED') {\n <div class=\"text-sm mb-1\">{{ item.return.note }}</div>\n }\n @if (item.status === 'BOOKING_RETURN_REQUESTED') {\n <div class=\"text-sm mb-1\">{{ item.return.reason }}</div>\n }\n <div class=\"text-sm text-[--rt-text-secondary]\">{{ item.date }}</div>\n </li>\n }\n </ol>\n </div>\n }\n </div>\n }\n\n <div\n (click)=\"info = !info\"\n [ngClass]=\"info ? 'visible' : 'invisible'\"\n class=\"bg-[--rt-10-percent-layer] fixed inset-0 z-[1000]\"\n ></div>\n\n <div class=\"flex flex-col gap-3 px-3 justify-between\">\n <div class=\"\">\n <div class=\"flex flex-col py-2\">\n <a class=\"text-xl font-bold\">Order ID: {{ order.subOrders ? order.subOrders[0].id : order.id }}</a>\n <span class=\"text-sm\"> {{ order.createdAt }}</span>\n </div>\n <div class=\"text-lg py-2 font-medium\" i18n>Order info</div>\n <div>\n <div>\n @if (order.subOrders) {\n @for (item of order.subOrders[0].items; track $index) {\n <rolatech-order-detail-item\n [thumbnail]=\"item.media[0].url + '!w200 '\"\n [link]=\"\n order.type.toString() === 'PRODUCT' ? '/products/' + item.refId + '/manage/info' : '/courses/' + item.refId\n \"\n [title]=\"item.name\"\n [total]=\"item.total\"\n [description]=\"item.options | orderItemoptions: order.type\"\n [quantity]=\"item.quantity\"\n ></rolatech-order-detail-item>\n }\n } @else {\n @for (item of order.items; track $index) {\n <rolatech-order-detail-item\n [thumbnail]=\"item.media[0].url + '!w200 '\"\n [link]=\"order.type.toString() === 'PRODUCT' ? '/products/' + item.refId : '/courses/' + item.refId\"\n [title]=\"item.name\"\n [total]=\"item.total\"\n [description]=\"item.options | orderItemoptions: order.type\"\n [quantity]=\"item.quantity\"\n ></rolatech-order-detail-item>\n }\n }\n </div>\n\n <div class=\"mt-3\">\n @if (order.deposit) {\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Deposit</span>\n <span class=\"text-sm\">¥{{ order.deposit | fixed }}</span>\n </div>\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Remaining</span>\n <span class=\"text-sm\">¥{{ order.total - order.deposit | fixed }}</span>\n </div>\n }\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Total</span>\n <span class=\"text-sm\">¥{{ order.items ? (order.total | fixed) : (order.subOrders[0].subTotal | fixed) }}</span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"\">\n <div class=\"text-lg py-2 font-medium\" i18n>Tracking</div>\n <div class=\"flex items-baseline justify-between py-1\">\n <span class=\"font-medium min-w-20\" i18n>Shipping address</span>\n <span class=\"text-sm\">{{ order.shippingAddress | shippingAddress }}</span>\n </div>\n <div class=\"flex items-baseline justify-between py-1\">\n <span class=\"font-medium min-w-20\" i18n>Note</span>\n <span class=\"text-sm\">{{ order.note || 'Untitled' }}</span>\n </div>\n </div>\n </div>\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-order-manage-tracking',\n imports: [CommonModule],\n templateUrl: './order-manage-tracking.component.html',\n styleUrl: './order-manage-tracking.component.scss',\n})\nexport class OrderManageTrackingComponent {}\n","<p>order-manage-tracking works!</p>\n","import { Routes } from '@angular/router';\nimport { OrderManageIndexComponent } from './order-manage-index/order-manage-index.component';\nimport { OrderManageFulfillmentComponent } from './order-manage-fulfillment/order-manage-fulfillment.component';\nimport { OrderManageDetailComponent } from './order-manage-detail/order-manage-detail.component';\nimport { OrderManageTrackingComponent } from './order-manage-tracking/order-manage-tracking.component';\n\nexport const orderMangeRoutes: Routes = [\n {\n path: '',\n component: OrderManageIndexComponent,\n },\n {\n path: ':id',\n component: OrderManageDetailComponent,\n },\n {\n path: ':id/fulfillments',\n component: OrderManageFulfillmentComponent,\n },\n {\n path: ':id/tracking',\n component: OrderManageTrackingComponent,\n },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i4","i5","i2","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rolatech-angular-order.mjs","sources":["../../../../packages/angular-order/src/lib/interfaces/order.ts","../../../../packages/angular-order/src/lib/pipe/order-item-options.pipe.ts","../../../../packages/angular-order/src/lib/components/order-item/order-item.component.ts","../../../../packages/angular-order/src/lib/components/order-item/order-item.component.html","../../../../packages/angular-order/src/lib/pages/order/order-index/order-index.component.ts","../../../../packages/angular-order/src/lib/pages/order/order-index/order-index.component.html","../../../../packages/angular-order/src/lib/components/order-return-request/order-return-request.component.ts","../../../../packages/angular-order/src/lib/components/order-return-request/order-return-request.component.html","../../../../packages/angular-order/src/lib/components/order-detail-item/order-detail-item.component.ts","../../../../packages/angular-order/src/lib/components/order-detail-item/order-detail-item.component.html","../../../../packages/angular-order/src/lib/components/order-merchant/order-merchant.component.ts","../../../../packages/angular-order/src/lib/components/order-merchant/order-merchant.component.html","../../../../packages/angular-order/src/lib/pipe/merchant-filter.pipe.ts","../../../../packages/angular-order/src/lib/pages/order/order-detail/order-detail.component.ts","../../../../packages/angular-order/src/lib/pages/order/order-detail/order-detail.component.html","../../../../packages/angular-order/src/lib/pages/order/order-qrcodepay/order-qrcodepay.component.ts","../../../../packages/angular-order/src/lib/pages/order/order-qrcodepay/order-qrcodepay.component.html","../../../../packages/angular-order/src/lib/pages/order/order-tracking/order-tracking.component.ts","../../../../packages/angular-order/src/lib/pages/order/order-tracking/order-tracking.component.html","../../../../packages/angular-order/src/lib/pages/order/order-suborder-tracking/order-suborder-tracking.component.ts","../../../../packages/angular-order/src/lib/pages/order/order-suborder-tracking/order-suborder-tracking.component.html","../../../../packages/angular-order/src/lib/pages/order/orders.routes.ts","../../../../packages/angular-order/src/lib/components/order-manage-item-header/order-manage-item-header.component.ts","../../../../packages/angular-order/src/lib/components/order-manage-item-header/order-manage-item-header.component.html","../../../../packages/angular-order/src/lib/components/order-manage-item-content/order-manage-item-content.component.ts","../../../../packages/angular-order/src/lib/components/order-manage-item-content/order-manage-item-content.component.html","../../../../packages/angular-order/src/lib/components/order-manage-item-container/order-manage-item-container.component.ts","../../../../packages/angular-order/src/lib/components/order-manage-item-container/order-manage-item-container.component.html","../../../../packages/angular-order/src/lib/components/order-manage-item/order-manage-item.component.ts","../../../../packages/angular-order/src/lib/components/order-manage-item/order-manage-item.component.html","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-index/order-manage-index.component.ts","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-index/order-manage-index.component.html","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-fulfillment/order-manage-fulfillment.component.ts","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-fulfillment/order-manage-fulfillment.component.html","../../../../packages/angular-order/src/lib/components/order-variant-item/order-variant-item.component.ts","../../../../packages/angular-order/src/lib/components/order-variant-item/order-variant-item.component.html","../../../../packages/angular-order/src/lib/components/order-fulfill/order-fulfill.component.ts","../../../../packages/angular-order/src/lib/components/order-fulfill/order-fulfill.component.html","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-detail/order-manage-detail.component.ts","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-detail/order-manage-detail.component.html","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-tracking/order-manage-tracking.component.ts","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage-tracking/order-manage-tracking.component.html","../../../../packages/angular-order/src/lib/pages/order-manage/order-manage.routes.ts","../../../../packages/angular-order/src/rolatech-angular-order.ts"],"sourcesContent":["export interface Order {\n id: string;\n createdAt: string;\n orderNo: string;\n total: number;\n status: OrderStatus | string;\n fulfillmentStatus: OrderFulfillmentStatus | string;\n paymentStatus: OrderPaymentStatus | string;\n returnStatus: OrderReturnStatus | string;\n subOrders: SubOrder[];\n items: OrderItem[];\n customerId: string;\n merchantId: string;\n type: OrderType;\n note: string;\n deposit: number;\n payments: Payment[];\n shippingAddress: ShippingAddress;\n billingAddress: BillingAddress;\n}\nexport interface SubOrder {\n id: string;\n items: OrderItem[];\n merchantId: string;\n subTotal: number;\n status: OrderStatus | string;\n type: OrderType;\n}\nexport enum OrderStatus {\n CREATED = '待付款',\n PAID = '已支付',\n PARTIAL_PAID = '定金已支付',\n COMPLETED = '已完成',\n CLOSED = '交易关闭',\n CANCELED = '交易取消',\n REFUNDED = '已退款',\n RETURN_REQUESTED = '退款处理中',\n}\nexport enum OrderFulfillmentStatus {\n UNFULFILLED = '未发货',\n FULFILLED = '已发货',\n PARTIALLY_FULFILLED = '部分发货',\n ON_HOLD = '等待发货',\n}\nexport enum OrderPaymentStatus {\n CREATED = '待付款',\n PAID = '已支付',\n PARTIAL_PAID = '定金已支付',\n COMPLETED = '已完成',\n CLOSED = '交易关闭',\n CANCELED = '交易取消',\n REFUNDED = '已退款',\n RETURN_REQUESTED = '退款处理中',\n}\nexport enum OrderType {\n COURSE = '课程',\n PRODUCT = '商品',\n SERVICE = '服务',\n BOOKING = '预定',\n OTTHER = '其他',\n}\nexport interface OrderReturn {\n status: OrderReturnStatus | string;\n reason: string;\n total: number;\n customerId: string;\n merchantId: string;\n items: OrderItemReturn[];\n}\nexport interface OrderItemReturn {\n orderItem: OrderItem;\n}\nexport enum OrderReturnStatus {\n CREATED = <any>'等待审核',\n CANCELED = <any>'用户取消',\n APPROVED = <any>'已通过',\n REJECTED = <any>'已拒绝',\n PROCESSING = <any>'平台处理中',\n RETURNED = <any>'已退款',\n}\nexport interface OrderItem {\n name: string;\n variantId: string;\n refId: string;\n status: OrderItemStatus;\n total: number;\n quantity: number;\n media: OrderItemMedia[];\n options: OrderItemOption[];\n}\nexport interface OrderItemMedia {\n url: string;\n alt: string;\n size: number;\n}\nexport interface OrderItemOption {\n name: string;\n value: string;\n}\nexport enum OrderItemStatus {\n CREATED = <any>'创建',\n CANCELED = <any>'已取消',\n CLOSED = <any>'已关闭',\n RETURN_REQUESTED = <any>'等待审核',\n RETURN_APPROVED = <any>'商家同意退款',\n RETURN_REJECTED = <any>'商家拒绝退款',\n RETURN_PROCESSING = <any>'退款处理中',\n REFUNDED = <any>'已退款',\n}\nexport enum OrderTimelineStatus {\n ORDER_CREATE = <any>'交易创建',\n ORDER_CLOSED = <any>'交易关闭',\n ORDER_CANCELED = <any>'交易取消',\n ORDER_PAID = <any>'订单已支付',\n ORDER_PARTIAL_PAID = '定金已支付',\n ORDER_REFUNDED = <any>'订单已退款',\n ORDER_COMPLETED = <any>'订单已完成',\n ORDER_RETURN_REQUESTED = <any>'退款申请',\n ORDER_RETURN_APPROVED = <any>'商家同意退款',\n ORDER_RETURN_REJECTED = <any>'商家拒绝退款',\n ORDER_RETURN_PROCESSING = <any>'退款处理中',\n ORDER_RETURN_REFUNDED = <any>'退款处理完成,已入账',\n}\nexport interface OrderPayout {\n id: string;\n createdAt: string;\n amount: number;\n status: OrderPayoutStatus | string;\n type: OrderPayoutType;\n fee: number;\n total: number;\n orderId: string;\n description: string;\n}\nexport enum OrderPayoutStatus {\n CREATED = <any>'创建',\n PENDING = <any>'处理中',\n PAID = <any>'已支付',\n CANCELED = <any>'已取消',\n FAILED = <any>'失败',\n}\nexport enum OrderPayoutType {\n BANK = <any>'银行转账',\n CARD = <any>'银行卡',\n WECHAT = <any>'微信零钱',\n}\nexport interface Payment {\n id: string;\n name: string;\n description: string;\n status: PaymentStatus;\n type: PaymentType;\n deposit: number;\n amount: number;\n total: number;\n orderId: string;\n invoiceId: string;\n orderNo: string;\n productId: string;\n customerId: string;\n userId: string;\n createdAt: string;\n}\nexport enum PaymentStatus {\n PENDING = 'Pending',\n CANCELED = 'Canceled',\n COMPLETED = 'Completed',\n SUCCEEDED = 'Succeeded',\n FAILED = 'Failed',\n REFUNDED = 'Refunded',\n EXPIRED = 'Expired',\n}\nexport enum PaymentType {\n FIXED = 'Fixed',\n DEPOSIT = 'Deposit',\n FINAL = 'Final',\n}\nexport interface ShippingAddress {\n name: string;\n phone: string;\n email: string;\n country: string;\n province: string;\n city: string;\n district: string;\n street: string;\n detail: string;\n}\nexport interface BillingAddress {\n name: string;\n phone: string;\n email: string;\n country: string;\n province: string;\n city: string;\n district: string;\n street: string;\n detail: string;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CourseType } from '@rolatech/angular-course';\nimport { OrderType } from '../interfaces';\n\n@Pipe({\n name: 'orderItemoptions',\n})\nexport class OrderItemOptionsFormatPipe implements PipeTransform {\n courseType = CourseType;\n transform(options: any[], type?: OrderType): any {\n if (!options) {\n return;\n }\n let result = '';\n options.forEach((item, index) => {\n const tmp = index === options.length - 1 ? '' : ', ';\n result += item.name ? item.value + tmp : item.name + tmp;\n });\n // return result;\n return type?.toString() === 'COURSE' ? this.courseType[result] : result;\n }\n}\n","import { Component, computed, effect, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Order, OrderStatus } from '../../interfaces';\nimport { sumBy } from 'lodash';\nimport { ImagePlaceholderComponent, ThumbnailComponent } from '@rolatech/angular-components';\nimport { OrderItemOptionsFormatPipe } from '../../pipe/order-item-options.pipe';\nimport { FixedPipe } from '@rolatech/angular-common';\n\n@Component({\n selector: 'rolatech-order-item',\n imports: [MatIconModule, ThumbnailComponent, ImagePlaceholderComponent, OrderItemOptionsFormatPipe, FixedPipe],\n templateUrl: './order-item.component.html',\n styleUrl: './order-item.component.scss',\n})\nexport class OrderItemComponent {\n order = input.required<Order>();\n status: any = OrderStatus;\n total = computed(() => {\n return (this.order().total / 100).toFixed(2);\n });\n quantity = computed(() => sumBy(this.order().items, (item: any) => item.quantity));\n}\n","<div class=\"flex flex-col hover:bg-[--rt-raised-background] cursor-pointer p-3\">\n <div>\n @if (order().subOrders) {\n <div class=\"flex justify-between w-full mb-2\">\n <a class=\"flex items-center gap-3\">\n <span>订单ID: {{ order().id }}</span>\n <span class=\"text-sm\">(订单已拆分)</span>\n <span>¥{{ order().total | fixed }}</span>\n </a>\n\n <span class=\"font-medium text-sm\">{{ status[order().status] }}</span>\n </div>\n @for (subOrder of order().subOrders; track subOrder) {\n <div class=\"flex justify-between py-2\">\n <a class=\"text-sm\">子订单ID: {{ subOrder.id }}</a>\n <a>¥{{ subOrder.subTotal | fixed }}</a>\n </div>\n <div class=\"flex flex-col overflow-x-scroll scrollbar-hide\">\n @for (item of subOrder.items; track $index) {\n <div class=\"flex flex-row py-2\">\n @if (item.media) {\n <div class=\"min-w-24 object-cover aspect-video rounded-lg mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"item.media[0].url + '!w400'\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n <div class=\"flex w-full justify-between\">\n <div class=\"flex justify-between w-full\">\n <div>\n <div>{{ item.name }}</div>\n @if (item.options) {\n <div class=\"text-sm text-[--rt-text-secondary] mt-2\">\n {{ item.options | orderItemoptions: order().type }}\n </div>\n }\n </div>\n <div class=\"text-right\">\n <div class=\"text-sm\">¥{{ item.total | fixed }}</div>\n <div class=\"text-sm mt-2\">x{{ item.quantity }}</div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n }\n } @else {\n <div class=\"flex justify-between w-full mb-2\">\n <a class=\"flex items-center gap-3\">\n <span>订单ID: {{ order().id }}</span>\n <span>¥{{ order().total | fixed }}</span>\n </a>\n <span class=\"font-medium text-sm\">{{ status[order().status] }}</span>\n </div>\n @if (order().items; as items) {\n @if (items.length > 1) {\n } @else {}\n <div class=\"flex flex-col overflow-x-scroll scrollbar-hide\">\n @for (item of items; track $index) {\n <div class=\"flex flex-row py-2\">\n @if (item.media) {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"item.media[0].url + '!w400'\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"min-w-24 w-36 object-cover aspect-video rounded-lg mr-3\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n <div class=\"flex w-full justify-between\">\n <div class=\"flex justify-between w-full\">\n <div>\n <div>{{ item.name }}</div>\n @if (item.options) {\n <div class=\"text-sm text-[--rt-text-secondary] mt-2\">\n {{ item.options | orderItemoptions: order().type }}\n </div>\n }\n </div>\n <div class=\"text-right\">\n <div class=\"text-sm\">¥{{ item.total | fixed }}</div>\n <div class=\"text-sm mt-2\">x{{ item.quantity }}</div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n</div>\n","import { Component, inject, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { RouterModule, ActivatedRoute } from '@angular/router';\nimport {\n ContainerComponent,\n TabsComponent,\n TabComponent,\n ToolbarComponent,\n ListComponent,\n EmptyComponent,\n FilterComponent,\n} from '@rolatech/angular-components';\nimport { OrderService } from '@rolatech/angular-services';\nimport { OrderItemComponent } from '../../../components/order-item/order-item.component';\nimport { Order, OrderStatus, OrderType } from '../../../interfaces';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { KeyValuePipe } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'rolatech-order-index',\n templateUrl: './order-index.component.html',\n styleUrls: ['./order-index.component.scss'],\n imports: [\n ContainerComponent,\n RouterModule,\n TabsComponent,\n TabComponent,\n ToolbarComponent,\n ListComponent,\n OrderItemComponent,\n EmptyComponent,\n MatButtonModule,\n MatIconModule,\n FormsModule,\n MatFormFieldModule,\n MatDatepickerModule,\n MatOptionModule,\n MatInputModule,\n MatSelectModule,\n MatButtonModule,\n FilterComponent,\n KeyValuePipe,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class OrderIndexComponent implements OnInit {\n orderService = inject(OrderService);\n title = inject(Title);\n route = inject(ActivatedRoute);\n orderType = OrderType;\n orderStatus = OrderStatus;\n filterOptions: any = {\n type: '',\n status: '',\n };\n isFilter = signal(false);\n\n links = [\n {\n name: 'All',\n icon: 'dashboard',\n },\n {\n name: '待付款',\n icon: 'category',\n status: 'created',\n },\n {\n name: '已支付',\n icon: 'category',\n status: 'paid',\n },\n {\n name: '已退款',\n icon: 'category',\n status: 'refunded',\n },\n {\n name: '已取消',\n icon: 'category',\n status: 'canceled',\n },\n ];\n orders: Order[] = [];\n select = 0;\n ngOnInit(): void {\n this.title.setTitle('Orders');\n this.route.queryParams.subscribe(({ status }) => {\n this.select = this.links.findIndex((item) => item.status === status);\n if (status) {\n this.filterOptions.status = (status as string).toUpperCase();\n } else {\n delete this.filterOptions.status;\n }\n this.findOrders();\n });\n }\n findOrders() {\n const options = {\n sort: 'updatedAt desc',\n };\n const filterString = this.convertFilterOptions(this.filterOptions);\n if (filterString) {\n options['filter'] = filterString;\n }\n this.orderService.me(options).subscribe({\n next: (res: any) => {\n this.orders = res.data;\n },\n });\n }\n toggleFilter() {\n this.isFilter.update((isFilter) => !isFilter);\n }\n resetFilter() {\n this.filterOptions = {\n type: '',\n };\n this.isFilter.update(() => false);\n this.findOrders();\n }\n convertFilterOptions(jsonObj) {\n return Object.entries(jsonObj)\n .filter(([key, value]) => value !== '' && value !== undefined)\n .map(([key, value]) => {\n return `${key}:${value}`;\n })\n .join(',');\n }\n statusCompareFn(t1: any, t2: any) {\n return t1 === t2;\n }\n}\n","<rolatech-container>\n <rolatech-toolbar title=\"我的订单\" large>\n <button mat-button (click)=\"toggleFilter()\">\n <span>过滤</span>\n <mat-icon>tune</mat-icon>\n </button>\n </rolatech-toolbar>\n <rolatech-filter>\n <div class=\"close\" [class.open]=\"isFilter()\">\n <div\n class=\"min-w-[256px] md:min-w-[320px] px-3 h-full flex flex-row md:flex-col md:h-full items-center md:items-start shadow-inner shadow-light-400 md:shadow-none overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <div class=\"flex items-center gap-3 mt-2 w-full\">\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-select name=\"type\" placeholder=\"类型\" [(ngModel)]=\"filterOptions.type\">\n @for (type of orderType | keyvalue; track type) {\n <mat-option [value]=\"type.key\">\n {{ type.value }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [compareWith]=\"statusCompareFn\" placeholder=\"状态\" [(ngModel)]=\"filterOptions.status\">\n @for (status of orderStatus | keyvalue; track status) {\n <mat-option [value]=\"status.key\">\n {{ status.value }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <div>\n <button mat-flat-button (click)=\"findOrders()\">搜索</button>\n <button mat-stroked-button (click)=\"resetFilter()\" class=\"ml-3\">重置</button>\n </div>\n </div>\n </div>\n </div>\n </rolatech-filter>\n\n <rolatech-tabs [select]=\"select\">\n @for (item of links; track item) {\n @if (item.status) {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\" [queryParams]=\"{ status: item.status }\"></rolatech-tab>\n } @else {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\"></rolatech-tab>\n }\n }\n </rolatech-tabs>\n <rolatech-list>\n @if (orders) {\n @for (item of orders; track item) {\n <rolatech-order-item [routerLink]=\"['./', item.id]\" [order]=\"item\"></rolatech-order-item>\n }\n } @else {\n <rolatech-empty></rolatech-empty>\n }\n </rolatech-list>\n</rolatech-container>\n","import { Component, DoCheck, model, output } from '@angular/core';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-order-return-request',\n imports: [AngularCommonModule, AngularComponentsModule],\n templateUrl: './order-return-request.component.html',\n styleUrl: './order-return-request.component.scss',\n})\nexport class OrderReturnRequestComponent implements DoCheck {\n output = output<any>();\n reason = model<any>();\n ngDoCheck(): void {\n this.output.emit(this.reason());\n }\n}\n","<div class=\"py-2\">\n <h2 class=\"mb-2\" i18n>Input reason</h2>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Reason </mat-label>\n <textarea matInput required [(ngModel)]=\"reason\"></textarea>\n </mat-form-field>\n</div>\n","import { Component, computed, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThumbnailComponent } from '@rolatech/angular-components';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n selector: 'rolatech-order-detail-item',\n imports: [CommonModule, ThumbnailComponent, RouterLink],\n templateUrl: './order-detail-item.component.html',\n styleUrl: './order-detail-item.component.scss',\n})\nexport class OrderDetailItemComponent {\n thumbnail = input<string>();\n title = input.required<string>();\n description = input<string>();\n quantity = input<number>(0);\n total = input.required<number>();\n link = input.required<string>();\n priceDisplay = computed(() => {\n return (this.total() / 100)?.toFixed(2);\n });\n}\n","<div class=\"flex justify-between py-2\">\n <div class=\"flex w-full\">\n <div\n class=\"min-w-24 w-36 aspect-video bg-[--rt-raised-background] hover:rounded-none rounded-lg h-fit cursor-pointer\"\n [routerLink]=\"link()\"\n >\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"thumbnail()\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video\"></div>\n }\n </div>\n\n <div class=\"w-full ml-3 flex flex-col justify-between\">\n <!-- info -->\n <div class=\"flex justify-between\">\n <div class=\"flex flex-col\">\n <span class=\"text-lg font-bold hover:text-[--rt-brand-color] cursor-pointer\" [routerLink]=\"link()\">{{\n title()\n }}</span>\n <span class=\"text-sm text-[--rt-text-secondary]\">{{ description() }}</span>\n <ng-content></ng-content>\n </div>\n <div class=\"text-right p-1\">\n <div class=\"text-sm\">¥{{ priceDisplay() }}</div>\n <div class=\"text-sm mt-2\">x{{ quantity() }}</div>\n </div>\n </div>\n <!-- action -->\n <div class=\"flex justify-between items-center w-full\">\n <div class=\"flex items-center text-sm\"></div>\n </div>\n </div>\n </div>\n</div>\n","import { Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n selector: 'rolatech-order-merchant',\n imports: [CommonModule, RouterLink, MatIcon],\n templateUrl: './order-merchant.component.html',\n styleUrl: './order-merchant.component.scss',\n})\nexport class OrderMerchantComponent {\n merchant = input.required<any>();\n}\n","<div class=\"flex flex-row items-center py-3\">\n <div class=\"flex mr-3 gap-2 items-center\">\n @if (merchant()) {\n @if (merchant().avatar) {\n <div class=\"cursor-pointer\" [routerLink]=\"['/', '@' + merchant().username]\">\n <img [src]=\"merchant().avatar\" class=\"w-11 h-11 rounded-full\" alt />\n </div>\n } @else {\n <div class=\"w-11 h-11 rounded-full bg-[--rt-brand-color]\"></div>\n }\n <div class=\"flex items-center text-lg font-bold cursor-pointer\">\n <a [routerLink]=\"['/', '@' + merchant().username]\">\n <span>{{ merchant().name }}</span>\n </a>\n <mat-icon class=\"verified-icon\">verified</mat-icon>\n </div>\n }\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'merchantFilter',\n})\nexport class MerchantFilterPipe implements PipeTransform {\n transform(merchants: any[], merchantId: string): unknown {\n if (!merchants || !merchantId) {\n return;\n }\n return merchants.find((item) => item.id === merchantId);\n }\n}\n","import { Component, ElementRef, inject, OnInit, ViewChild } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport moment from 'moment';\nimport { ContainerComponent, BaseComponent, SpinnerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { CourseType, CourseService } from '@rolatech/angular-course';\nimport { FulfillmentService, NavigationService, PaymentService } from '@rolatech/angular-services';\nimport { OrderService } from '@rolatech/angular-services';\nimport { Order, OrderStatus, OrderTimelineStatus, OrderType } from '../../../interfaces';\nimport { OrderReturnRequestComponent } from '../../../components/order-return-request/order-return-request.component';\nimport { ProductService } from '@rolatech/angular-services';\nimport { OrderDetailItemComponent } from '../../../components/order-detail-item/order-detail-item.component';\nimport { OrderItemOptionsFormatPipe } from '../../../pipe/order-item-options.pipe';\nimport { FixedPipe, ShippingAddressPipe } from '@rolatech/angular-common';\nimport { RouterLink } from '@angular/router';\nimport { AuthUserService } from '@rolatech/angular-auth';\nimport _ from 'lodash';\nimport { OrderMerchantComponent } from '../../../components/order-merchant/order-merchant.component';\nimport { MerchantFilterPipe } from '../../../pipe/merchant-filter.pipe';\nimport { loadStripe, StripeCardElementOptions, StripeElementsOptions, StripePaymentElement } from '@stripe/stripe-js';\nimport { map, switchMap } from 'rxjs';\n\n@Component({\n selector: 'rolatech-order-detail',\n imports: [\n MatButtonModule,\n MatIconModule,\n NgClass,\n SpinnerComponent,\n ContainerComponent,\n ToolbarComponent,\n OrderDetailItemComponent,\n OrderItemOptionsFormatPipe,\n FixedPipe,\n MerchantFilterPipe,\n ShippingAddressPipe,\n RouterLink,\n OrderMerchantComponent,\n ],\n templateUrl: './order-detail.component.html',\n styleUrl: './order-detail.component.scss',\n})\nexport class OrderDetailComponent extends BaseComponent implements OnInit {\n order!: Order;\n status: any = OrderStatus;\n type = CourseType;\n orderType = OrderType;\n orderService = inject(OrderService);\n paymentService = inject(PaymentService);\n courseService = inject(CourseService);\n productService = inject(ProductService);\n navigationService = inject(NavigationService);\n authUserService = inject(AuthUserService);\n timelineData: any;\n info = false;\n loadingTimeline = false;\n timelineStatus: any = OrderTimelineStatus;\n countDown = '';\n merchants = [];\n @ViewChild('paymentElement') paymentElement!: ElementRef;\n elements: any;\n stripe: any;\n clientSecret = '';\n paymentElementOptions = {\n layout: 'tabs' as const,\n };\n loading = false;\n errorMessage = '';\n\n async ngOnInit() {\n this.route.params.subscribe((params) => {\n const id = params['id'];\n this.get(id);\n });\n }\n get(id: string) {\n this.orderService.get(id).subscribe({\n next: (res: any) => {\n this.order = res.data;\n this.findMerchantsInfo();\n if (this.order.status === 'CREATED') {\n setInterval(() => {\n const start = moment();\n const end = moment(this.order.createdAt).add(15, 'minute');\n const diff = end.diff(start);\n const duration = moment.duration(diff);\n this.countDown = moment.utc(duration.as('milliseconds')).format('mm:ss');\n }, 1000);\n }\n },\n });\n }\n refund() {\n const options = {\n width: '500px',\n title: '申请退款',\n height: '90%',\n cancelText: 'Cancel',\n confirmText: '确认',\n component: OrderReturnRequestComponent,\n data: {\n reason: '',\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe((res) => {\n if (res) {\n this.orderService.refund(this.id, { reason: res }).subscribe({\n next: (res) => {\n this.snackBarService.open('退款申请成功, 等待审核');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n });\n }\n cancel() {\n this.orderService.cancel(this.id).subscribe({\n next: (res) => {\n this.order.status = 'CANCELED';\n this.snackBarService.open('Cancelled');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n pay() {\n this.router.navigateByUrl(`/orders/${this.id}/qrcodepay`);\n }\n timeline() {\n this.info = true;\n this.loadingTimeline = true;\n this.orderService.timeline(this.id).subscribe({\n next: (res) => {\n this.timelineData = res.data;\n this.loadingTimeline = false;\n },\n error: (error) => {\n this.loadingTimeline = false;\n },\n });\n }\n isSingleMerchant(): boolean {\n return !!this.order.merchantId && !this.order.subOrders;\n }\n findMerchantsInfo() {\n const ids: string[] = this.isSingleMerchant() ? [this.order.merchantId] : _.uniq(_.map(this.order.subOrders, 'merchantId'));\n return this.authUserService.findPublicInfoByIds(ids).subscribe({\n next: (res) => {\n this.merchants = res.data;\n },\n });\n }\n}\n","@if (order) {\n <rolatech-container>\n <rolatech-toolbar [title]=\"status[order.status]\" large link=\"../\">\n <button mat-flat-button (click)=\"timeline()\">\n <mat-icon>history</mat-icon>\n <span i18n>Order status</span>\n </button>\n @if (isSingleMerchant() && order.type.toString() === 'PRODUCT') {\n <button mat-flat-button routerLink=\"./tracking\">\n <mat-icon>local_shipping</mat-icon>\n <span i18n>Tracking</span>\n </button>\n }\n </rolatech-toolbar>\n <div>\n @if (order.status === 'CREATED') {\n <div class=\"text-[--rt-brand-color] font-bold\">支付倒计时: {{ countDown }}</div>\n }\n <div class=\"flex justify-between items-center py-2\">\n <a class=\"text-xl font-bold\">Order ID: {{ order.id }}</a>\n @if (!isSingleMerchant()) {\n <a class=\"text-sm\">订单已拆分</a>\n }\n </div>\n <div>\n @if (isSingleMerchant()) {\n <div>\n <rolatech-order-merchant [merchant]=\"merchants | merchantFilter: order.merchantId\"></rolatech-order-merchant>\n @for (item of order.items; track $index) {\n <rolatech-order-detail-item\n [thumbnail]=\"item.media ? item.media[0].url + '!w200' : ''\"\n [link]=\"order.type.toString() === 'PRODUCT' ? '/products/' + item.refId : '/courses/' + item.refId\"\n [title]=\"item.name\"\n [total]=\"item.total\"\n [description]=\"item.options | orderItemoptions: order.type\"\n [quantity]=\"item.quantity\"\n ></rolatech-order-detail-item>\n }\n </div>\n } @else {\n <div class=\"flex flex-col divide-y divide-[--rt-10-percent-layer]\">\n @for (subOrder of order.subOrders; track $index) {\n <div>\n <rolatech-order-merchant [merchant]=\"merchants | merchantFilter: subOrder.merchantId\"></rolatech-order-merchant>\n <div class=\"flex justify-between items-center\">\n <a class=\"text-lg font-bold\" [routerLink]=\"['/orders', subOrder.id]\">#{{ subOrder.id }}</a>\n @if (order.type.toString() === 'PRODUCT') {\n <button mat-button [routerLink]=\"['/orders', subOrder.id, 'tracking']\">\n <span i18n>Tracking</span>\n </button>\n }\n </div>\n @for (item of subOrder.items; track $index) {\n <rolatech-order-detail-item\n [thumbnail]=\"item.media[0].url + '!w200 '\"\n [link]=\"item.refId\"\n [title]=\"item.name\"\n [total]=\"item.total\"\n [description]=\"item.options | orderItemoptions: order.type\"\n [quantity]=\"item.quantity\"\n ></rolatech-order-detail-item>\n }\n <div class=\"flex justify-end py-3\">\n <a class=\"text-md font-bold\">¥{{ subOrder.subTotal | fixed }}</a>\n </div>\n </div>\n }\n </div>\n }\n <div class=\"mt-3\">\n <div class=\"text-lg py-3 font-medium\" i18n>Order info</div>\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Created at</span>\n <span class=\"text-sm\"> {{ order.createdAt }}</span>\n </div>\n <div class=\"flex items-baseline justify-between py-1\">\n <span class=\"font-medium min-w-20\" i18n>Shipping</span>\n <span class=\"text-sm\">{{ order.shippingAddress | shippingAddress }}</span>\n </div>\n <div class=\"flex items-baseline justify-between py-1\">\n <span class=\"font-medium min-w-20\" i18n>Note</span>\n <span class=\"text-sm\">{{ order.note || '无' }}</span>\n </div>\n @if (order.deposit) {\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Deposit</span>\n <span class=\"text-sm\">¥{{ order.deposit | fixed }}</span>\n </div>\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Remaining</span>\n <span class=\"text-sm\">¥{{ order.total - order.deposit | fixed }}</span>\n </div>\n }\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Total</span>\n <span class=\"text-sm\">¥{{ order.total | fixed }}</span>\n </div>\n </div>\n @if (order.status.toString() === 'CREATED' || order.status.toString() === 'PAID') {\n <div class=\"mt-6\">\n <div class=\"text-lg pb-3 font-medium\" i18n>Payment method</div>\n\n <div class=\"flex items-center\">\n <svg\n class=\"svg-icon\"\n style=\"width: 2rem; height: 2rem\"\n viewBox=\"0 0 1024 1024\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M395.846 603.585c-3.921 1.98-7.936 2.925-12.81 2.925-10.9 0-19.791-5.85-24.764-14.625l-2.006-3.864-78.106-167.913c-0.956-1.98-0.956-3.865-0.956-5.845 0-7.83 5.928-13.68 13.863-13.68 2.965 0 5.928 0.944 8.893 2.924l91.965 64.43c6.884 3.864 14.82 6.79 23.708 6.79 4.972 0 9.85-0.945 14.822-2.926L861.71 282.479c-77.149-89.804-204.684-148.384-349.135-148.384-235.371 0-427.242 157.158-427.242 351.294 0 105.368 57.361 201.017 147.323 265.447 6.88 4.905 11.852 13.68 11.852 22.45 0 2.925-0.957 5.85-2.006 8.775-6.881 26.318-18.831 69.334-18.831 71.223-0.958 2.92-2.013 6.79-2.013 10.75 0 7.83 5.929 13.68 13.865 13.68 2.963 0 5.928-0.944 7.935-2.925l92.922-53.674c6.885-3.87 14.82-6.794 22.756-6.794 3.916 0 8.889 0.944 12.81 1.98 43.496 12.644 91.012 19.53 139.48 19.53 235.372 0 427.24-157.158 427.24-351.294 0-58.58-17.78-114.143-48.467-163.003l-491.39 280.07-2.963 1.98z\"\n fill=\"#09BB07\"\n />\n </svg>\n <span class=\"ml-1\">微信支付</span>\n <!-- <svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 715.94 211.02\">\n <title>WeChat Pay logo - Brandlogos.net</title>\n <g id=\"页面-1\">\n <g id=\"画板\">\n <g id=\"编组\">\n <path\n id=\"形状结合\"\n d=\"M710.2,429.86l8.93,24.1c.93,2.7,1.94,5.9,2.61,8.34h.17c.76-2.44,1.6-5.56,2.61-8.51l8.09-23.93h7.84l-11.13,29.08c-5.31,14-8.93,21.16-14,25.54a21.48,21.48,0,0,1-7.57,4.41c-.61-1.09-3.39-5.85-3.39-5.85a19.62,19.62,0,0,0,6.49-3.62,22.5,22.5,0,0,0,6.24-8.26,5.31,5.31,0,0,0,.59-1.77,6.45,6.45,0,0,0-.51-1.94l-15.09-37.59Zm-170.81-.93c12.47,0,15.51,8.51,15.51,16.69v15.26a57.4,57.4,0,0,0,.67,9.78h-6.74l-.59-5.14H548a15.19,15.19,0,0,1-12.47,6.07c-8.26,0-12.47-5.82-12.47-11.72,0-9.86,8.76-15.25,24.53-15.17v-.84c0-3.37-.93-9.44-9.27-9.44a20.61,20.61,0,0,0-9.77,2.52L526,432.56A25.3,25.3,0,0,1,539.39,428.94Zm138.79,0c12.47,0,15.51,8.51,15.51,16.69v15.26a57.41,57.41,0,0,0,.67,9.78h-6.74l-.59-5.14h-.25a15.19,15.19,0,0,1-12.47,6.07c-8.26,0-12.47-5.82-12.47-11.72,0-9.86,8.77-15.25,24.53-15.17v-.84c0-3.37-.93-9.44-9.27-9.44a20.6,20.6,0,0,0-9.77,2.52l-2.53-4.38A25.3,25.3,0,0,1,678.18,428.94Zm-226.09-16c7.08,0,11.55,1.52,13.48,2.53,0,0-2.24,3.9-3.16,5.38a28,28,0,0,0-10.07-1.75c-13.32,0-22.17,8.51-22.17,23.43,0,13.91,8,22.84,21.83,22.84a31.51,31.51,0,0,0,10.48-1.73c.67,1.17,3,5.19,3,5.19-2.7,1.35-8.09,2.7-15,2.7-16,0-28.07-10.11-28.07-28.74C422.42,425,434.47,412.92,452.09,412.92Zm-55.11,16c13.32,0,16.86,11.72,16.86,19.22a28,28,0,0,1-.25,3.46H384.93c.17,10,6.57,14.16,14,14.16a27.78,27.78,0,0,0,9.78-1.51c.68,1.12,2.78,4.71,2.78,4.71a33,33,0,0,1-13.57,2.53c-12.56,0-20.06-8.26-20.06-20.57S385.09,428.94,397,428.94Zm181-10.79v11.72H588.6v5.65H578v22c0,5.06,1.43,7.92,5.56,7.92.61,0,1.16,0,1.67-.07.87,1.47,3,5.12,3,5.12a18.19,18.19,0,0,1-6.57,1c-3.46,0-6.24-1.1-8-3.12-2.11-2.19-2.87-5.81-2.87-10.62V435.51h-6.32v-5.65h6.32V418.15Zm56.21-4.72c7.25,0,12.56,1.69,15.93,4.72,3.12,2.7,5,6.83,5,11.88s-1.52,9.19-4.38,12.14c-3.88,4.13-10.2,6.24-17.36,6.24a25.3,25.3,0,0,1-5.9-.51v22.76h-7.33V414.52A85.05,85.05,0,0,1,634.19,413.43Zm-321.57.42,6.74,28.74c1.69,7.08,3.2,14.16,4.21,19.64h.17c.93-5.65,2.7-12.39,4.64-19.72L336,413.85h7.67l6.91,28.82c1.6,6.74,3.12,13.48,4,19.47h.17c1.18-6.24,2.78-12.56,4.55-19.64l7.5-28.66h7.5l-16.1,56.81h-7.67l-7.16-29.58a171.14,171.14,0,0,1-3.71-18.54h-.17A177.33,177.33,0,0,1,335,441.07L327,470.65h-7.67l-14.41-56.81Zm171.74-3v25.45h.17a13.77,13.77,0,0,1,5.31-5.23,15.27,15.27,0,0,1,7.59-2.11c5.48,0,14.24,3.37,14.24,17.45v24.27h-7.42V447.23c0-6.57-2.44-12.14-9.44-12.14a10.65,10.65,0,0,0-9.95,7.42,9,9,0,0,0-.51,3.54v24.61h-7.42V410.82ZM530.45,459c0,4.8,3.2,7.08,7,7.08a10.15,10.15,0,0,0,9.86-6.83,7.74,7.74,0,0,0,.42-2.36v-7.08C539.64,449.67,530.45,451.1,530.45,459Zm138.79,0c0,4.8,3.2,7.08,7,7.08a10.15,10.15,0,0,0,9.86-6.83,7.74,7.74,0,0,0,.42-2.36v-7.08C678.43,449.67,669.24,451.1,669.24,459ZM396.39,434.25c-7.5,0-10.79,6.91-11.38,12.05h21.66C406.75,441.58,404.73,434.25,396.39,434.25Zm238-15a30.8,30.8,0,0,0-6.91.59v22.08a24.65,24.65,0,0,0,6.07.59c8.85,0,14.24-4.3,14.24-12.14C647.76,422.87,642.45,419.24,634.36,419.24ZM584.45,291.18V306.1h44.14v7.75H584.45v16.2h35.63s-4.57,23.28-31.27,42.88c10.8,5.69,25,9.72,42.38,12.44,0,0-2.81,5-5.21,8.85-19-3.3-33.81-9.08-45.43-15.86-11.71,6.95-26.85,13-46.43,16.4-1.36-2-5.08-8.6-5.08-8.6,17.75-2.78,32.36-7.27,43.28-13.13-26.84-19.25-32-43-32-43h35.53v-16.2H530V306.1h45.85V291.18ZM323,319.7l6.88,3.65c-3.27,7.77-6.31,13.06-7.15,14.72v56.38H315V350.25c-4.44,6-7,9.07-8.34,10.54l-4.37-7.57C310.57,344.43,317.91,332.36,323,319.7Zm341.11-28.21,9,2-.28.74c-3.66,9.57-7.09,17.72-10.19,24.22v76H654V334.82a161.16,161.16,0,0,1-10.27,14.75L639,341.25c10.14-13.8,18.67-30.56,24.88-49.18Zm-226.36,0,8.15,2s-5.19,16.35-9.16,25l0,76h-8.61V335.12c-3.45,6.5-5.76,10.77-8.68,14.59l-4.66-8.07C426.86,326.4,437.72,291.47,437.72,291.47Zm-54.81-.41,7.75,1.55-.18.7c-1.6,6.13-3.37,12.15-5.26,17.91h23.19v7.33h-5.59c-1.44,20.81-5.13,36.93-10.95,47.93,4.62,9,13.52,17.42,16,19.7-.56,1.07-4.44,7.71-4.44,7.71s-12.89-13.2-15.81-19.59c-3.28,5.51-9.33,12.65-17.53,20h0L366,387s11.22-9.31,17.58-20.55a125.69,125.69,0,0,1-7.81-32.27c-1.36,2.39-2.1,3.68-3.47,5.73,0,0-3.62-6.29-4.36-7.47,6.51-11.45,11.39-24.94,14.87-40.71h0Zm344.12.88v24.4H742v8.18H727v53.12A15.35,15.35,0,0,1,711.7,393h-10v-9h10a6.39,6.39,0,0,0,6.38-6.38V324.52H670.25v-8.18h47.82v-24.4Zm-214.4,64.91v35.69H452V356.85Zm-149-4.26v19.71c1.45-1.23,5.89-5.13,7.38-6.46l3.57,6.18-16.36,13.81s-3.46-6-4.16-7.11c1-1.07,2.25-3.28,2.25-7.5V359.91H341.47c0,16.86-.68,23-11.92,31.75,0,0-2.71-4.78-3.92-6.78,9.66-7.63,8.51-18.06,8.51-32.29Zm140.81,12H460.61v20.61h43.84ZM608,337.7H552.6c3.17,6.6,11,19.34,28,30.42C597.44,356.87,605.06,344,608,337.7Zm79.67-.53L703.31,362l-8.15,4.45-14.64-25ZM395.5,318.55H382.74c-.13.52-1.33,3.54-1.6,4.13,1.59,15.26,3.94,27,7,34.81,3.79-9.1,6.27-22.18,7.36-38.94Zm118,21.24v7.33H451.15v-7.33Zm-146-3.84v7.33h-35V336Zm146-13.22v7.33H451.15v-7.33ZM354.26,292.89v26.87h7.92V300.56h6.9v26.09H331.7V301H339v18.76h7.91V292.89Zm-30.89-1.78,6.76,4.43a101.69,101.69,0,0,1-22.45,30.55L303.6,319C311,311.86,318,301.79,323.38,291.1Zm158.9.37,6.08,13.78h31.1V313H445.61v-7.75h34.12L475.3,294.5Z\"\n transform=\"translate(-26.03 -278.49)\"\n style=\"fill: #4d4d4d\"\n />\n <path\n id=\"Fill-29\"\n d=\"M113,412a8,8,0,0,1-10.54-3.22l-.52-1.14L80.18,359.84a4.16,4.16,0,0,1-.38-1.68A4,4,0,0,1,86.17,355l25.69,18.29a11.86,11.86,0,0,0,10.62,1.22L243.29,320.7c-21.66-25.52-57.32-42.2-97.68-42.2-66,0-119.58,44.62-119.58,99.66,0,30,16.11,57.06,41.32,75.33A8,8,0,0,1,70.69,460a9.43,9.43,0,0,1-.42,2.54l-5.39,20.1a11.73,11.73,0,0,0-.64,2.91,4,4,0,0,0,4,4,4.5,4.5,0,0,0,2.3-.74l26.18-15.11a12.55,12.55,0,0,1,6.35-1.84,12,12,0,0,1,3.51.53,141.5,141.5,0,0,0,39,5.46c66,0,119.59-44.62,119.59-99.66A86.29,86.29,0,0,0,251.58,332l-137.69,79.5Z\"\n transform=\"translate(-26.03 -278.49)\"\n style=\"fill: #1aad19\"\n />\n </g>\n </g>\n </g>\n </svg> -->\n </div>\n </div>\n }\n </div>\n\n <!-- safe area -->\n <div class=\"pb-16 sm:pb-3\"></div>\n <div class=\"\">\n @if (order.status.toString() === 'PAID') {\n <button mat-flat-button class=\"w-32 min-h-11\" (click)=\"refund()\">申请退款</button>\n }\n <div class=\"flex items-center justify-end\">\n @if (order.status.toString() === 'CREATED') {\n <span\n class=\"underline text-sm underline-offset-4 mr-6 cursor-pointer hover:text-[--rt-brand-color]\"\n (click)=\"cancel()\"\n i18n\n >Cancel</span\n >\n }\n @if (order.status.toString() === 'CREATED') {\n @if (order.deposit) {\n <button mat-flat-button class=\"w-32 min-h-11\" (click)=\"pay()\" i18n>Pay deposit</button>\n } @else {\n <button mat-flat-button class=\"w-32 min-h-11\" (click)=\"pay()\" i18n>Pay</button>\n }\n }\n @if (order.status.toString() === 'PARTIAL_PAID') {\n <button mat-flat-button class=\"w-32 min-h-11\" (click)=\"pay()\" i18n>Pay remaining</button>\n }\n </div>\n </div>\n </div>\n </rolatech-container>\n}\n@if (info) {\n <div\n [ngClass]=\"loadingTimeline ? 'translate-x-full' : 'translate-none'\"\n class=\"fixed top-0 right-0 z-[1001] h-screen p-4 overflow-y-auto transition-transform bg-[--rt-raised-background] w-80 sm:w-[300px] shadow-xl\"\n >\n <div class=\"flex justify-between items-center sm:p-4\">\n <div class=\"text-xl font-bold\" i18n>Status</div>\n <button mat-icon-button (click)=\"info = !info\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n @if (loadingTimeline) {\n <div>\n <rolatech-spinner></rolatech-spinner>\n </div>\n } @else {\n <div class=\"mt-3 p-1 sm:p-4\">\n <ol class=\"relative border-l border-[--rt-border-color]\">\n @for (item of timelineData; track item) {\n <li class=\"mb-8 ml-4\">\n <div\n class=\"absolute w-3 h-3 rounded-full mt-1.5 -left-1.5 border border-[--rt-raised-background] bg-[--rt-text-primary]\"\n ></div>\n <div class=\"text-md font-bold mb-1\">{{ timelineStatus[item.status] }}</div>\n @if (item.status === 'BOOKING_RETURN_REJECTED') {\n <div class=\"text-sm mb-1\">{{ item.return.note }}</div>\n }\n @if (item.status === 'BOOKING_RETURN_REQUESTED') {\n <div class=\"text-sm mb-1\">{{ item.return.reason }}</div>\n }\n <div class=\"text-sm text-[--rt-text-secondary]\">{{ item.date }}</div>\n </li>\n }\n </ol>\n </div>\n }\n </div>\n}\n\n<div\n (click)=\"info = !info\"\n [ngClass]=\"info ? 'visible' : 'invisible'\"\n class=\"bg-[--rt-10-percent-layer] fixed inset-0 z-[1000]\"\n></div>\n","import { Component, ElementRef, inject, OnInit, Renderer2, viewChild } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { ContainerComponent, ToolbarComponent, BaseComponent } from '@rolatech/angular-components';\nimport { Order, OrderStatus } from '../../../interfaces';\nimport { OrderService, PaymentService } from '@rolatech/angular-services';\nimport * as QRCode from 'qrcode';\nimport { FixedPipe } from '@rolatech/angular-common';\nimport { switchMap } from 'rxjs';\n\n@Component({\n selector: 'rolatech-order-qrcodepay',\n imports: [RouterLink, ContainerComponent, ToolbarComponent, FixedPipe],\n templateUrl: './order-qrcodepay.component.html',\n styleUrl: './order-qrcodepay.component.scss',\n})\nexport class OrderQrcodepayComponent extends BaseComponent implements OnInit {\n order!: Order;\n status: any = OrderStatus;\n orderService = inject(OrderService);\n renderer = inject(Renderer2);\n needPay = true;\n qrcElement = viewChild.required<ElementRef>('qrcode');\n paymentService = inject(PaymentService);\n\n ngOnInit(): void {\n this.getOrder();\n }\n getOrder() {\n this.orderService.get(this.id).subscribe({\n next: (res: any) => {\n this.order = res.data;\n this.needPay = this.order.status.toString() === 'CREATED' || this.order.status.toString() === 'PARTIAL_PAID';\n if (this.needPay) {\n // this.getQRCodeUrl();\n this.pay();\n }\n },\n });\n }\n pay() {\n const data = {\n businessType: 'ORDER',\n businessId: this.id,\n provider: 'WECHAT',\n method: 'WECHAT_PAY_NATIVE',\n };\n this.paymentService\n .createPaymentIntent(data)\n .pipe(\n switchMap((res: any) => {\n const intent = {\n intentId: res.data.id,\n provider: 'WECHAT',\n method: 'WECHAT_PAY_NATIVE',\n };\n return this.paymentService.createPayment(intent);\n }),\n )\n .subscribe({\n next: (res) => {\n this.genQRCode(res.data.qrCodeUrl);\n },\n });\n }\n getQRCodeUrl() {\n this.orderService.pay(this.id).subscribe({\n next: (res) => {\n this.genQRCode(res.data.qrCodeUrl);\n },\n });\n }\n genQRCode(url: string) {\n const element: Element = this.renderer.createElement('canvas');\n this.toCanvas(element, url)\n .then(() => {\n this.renderElement(element);\n })\n .catch((e) => {\n this.removeElementChildren();\n });\n }\n\n private toCanvas(canvas: any, url: any): Promise<any> {\n return QRCode.toCanvas(canvas, url, {\n errorCorrectionLevel: 'M',\n width: 200,\n });\n }\n private renderElement(element: any): void {\n this.removeElementChildren();\n this.renderer.appendChild(this.qrcElement().nativeElement, element);\n }\n private removeElementChildren(): void {\n for (const node of this.qrcElement().nativeElement.childNodes) {\n this.renderer.removeChild(this.qrcElement().nativeElement, node);\n }\n }\n}\n","@if (order) {\n <rolatech-container>\n <rolatech-toolbar [title]=\"status[order.status]\" link=\"../\" large></rolatech-toolbar>\n <div>\n <div>\n <a class=\"text-[--rt-brand-color]\" routerLink=\"..\"\n ><span>订单: </span><span class=\"underline\">#{{ this.id }}</span></a\n >\n @if (order.status.toString() === 'CREATED') {\n @if (order.deposit) {\n <div>支付定金: ¥{{ order.deposit | fixed }}</div>\n } @else {\n <div>支付金额: ¥{{ order.total | fixed }}</div>\n }\n }\n @if (order.status.toString() === 'PARTIAL_PAID') {\n <div>支付尾款 ¥{{ order.total - order.deposit | fixed }}</div>\n }\n </div>\n <div class=\"mt-6\">\n @if (needPay) {\n <div>\n <div>请使用微信扫码支付, 我们会在收到付款后处理您的订单</div>\n <div class=\"w-52 h-56 flex flex-col justify-end items-center\">\n <div #qrcode></div>\n <span class=\"text-md\">微信支付二维码</span>\n </div>\n </div>\n } @else {\n <div>请确认当前订单状态, 如已经付款, 请返回查看</div>\n }\n </div>\n </div>\n </rolatech-container>\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule, Location } from '@angular/common';\nimport { BaseComponent, ContainerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { Order, OrderStatus } from '../../../interfaces';\nimport { FulfillmentService, OrderService } from '@rolatech/angular-services';\n\n@Component({\n selector: 'rolatech-order-tracking',\n imports: [CommonModule, ContainerComponent, ToolbarComponent],\n templateUrl: './order-tracking.component.html',\n styleUrl: './order-tracking.component.scss',\n})\nexport class OrderTrackingComponent extends BaseComponent implements OnInit {\n orderService = inject(OrderService);\n fulfillmentService = inject(FulfillmentService);\n location = inject(Location);\n status: any = OrderStatus;\n trackingEvent: any;\n ngOnInit(): void {\n this.tracking();\n }\n tracking() {\n this.fulfillmentService.tracking(this.id).subscribe({\n next: (res) => {\n this.trackingEvent = res.data;\n },\n });\n }\n goBack() {\n this.location.back();\n }\n}\n","<rolatech-container>\n <rolatech-toolbar title=\"Tracking\" large back></rolatech-toolbar>\n <div>\n <!-- <div class=\"font-bold text-lg\">#{{ order.id }}</div> -->\n </div>\n <div>\n <div class=\"text-lg py-3 font-medium\">Tracking info</div>\n @for (item of trackingEvent; track $index) {\n <div class=\"py-2\">\n <div>{{ item.time }}</div>\n <div>{{ item.text }}</div>\n </div>\n }\n </div>\n</rolatech-container>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseComponent, ContainerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { OrderService, FulfillmentService } from '@rolatech/angular-services';\nimport { OrderStatus, Order } from '../../../interfaces';\n\n@Component({\n selector: 'rolatech-order-suborder-tracking',\n imports: [CommonModule, ContainerComponent, ToolbarComponent],\n templateUrl: './order-suborder-tracking.component.html',\n styleUrl: './order-suborder-tracking.component.scss',\n})\nexport class OrderSubOrderTrackingComponent extends BaseComponent implements OnInit {\n orderService = inject(OrderService);\n fulfillmentService = inject(FulfillmentService);\n status: any = OrderStatus;\n trackingEvent: any;\n order!: Order;\n sub = this.route.snapshot.params['sub'];\n\n ngOnInit(): void {\n console.log(this.sub);\n this.get();\n this.tracking();\n }\n get() {\n this.orderService.get(this.id).subscribe({\n next: (res: any) => {\n this.order = res.data;\n },\n });\n }\n tracking() {\n this.fulfillmentService.tracking(this.id).subscribe({\n next: (res) => {\n this.trackingEvent = res.data;\n },\n });\n }\n}\n","<rolatech-container>\n <rolatech-toolbar title=\"Tracking\" large link=\"../../\"></rolatech-toolbar>\n <div>\n <!-- <div class=\"font-bold text-lg\">#{{ order.id }}</div> -->\n </div>\n <div>\n <div class=\"text-lg py-3 font-medium\">Tracking info</div>\n @for (item of trackingEvent; track $index) {\n <div class=\"py-2\">\n <div>{{ item.time }}</div>\n <div>{{ item.text }}</div>\n </div>\n }\n </div>\n</rolatech-container>\n","import { Routes } from '@angular/router';\nimport { OrderIndexComponent } from './order-index/order-index.component';\nimport { OrderDetailComponent } from './order-detail/order-detail.component';\nimport { OrderQrcodepayComponent } from './order-qrcodepay/order-qrcodepay.component';\nimport { OrderTrackingComponent } from './order-tracking/order-tracking.component';\nimport { OrderSubOrderTrackingComponent } from './order-suborder-tracking/order-suborder-tracking.component';\n\nexport const orderRoutes: Routes = [\n {\n path: '',\n component: OrderIndexComponent,\n },\n {\n path: ':id',\n component: OrderDetailComponent,\n },\n {\n path: ':id/tracking',\n component: OrderTrackingComponent,\n },\n {\n path: ':id/:sub/tracking',\n component: OrderSubOrderTrackingComponent,\n },\n {\n path: ':id/qrcodepay',\n component: OrderQrcodepayComponent,\n },\n];\n","import { Component, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FixedPipe } from '@rolatech/angular-common';\n\n@Component({\n selector: 'rolatech-order-manage-item-header',\n imports: [CommonModule, FixedPipe],\n templateUrl: './order-manage-item-header.component.html',\n styleUrl: './order-manage-item-header.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n id: 'rolatech-order-manage-item-header',\n class: 'rolatech-order-manage-item-header',\n },\n})\nexport class OrderManageItemHeaderComponent {\n orderId = input.required<string>();\n status = input<string>();\n fulfillmentStatus = input<string>();\n total = input.required<number>();\n}\n","<div class=\"w-full h-11 flex items-center justify-between\">\n <div class=\"text-md font-bold\">#{{ orderId() }}</div>\n <div class=\"flex items-center gap-3\">\n <div>{{ status() }}</div>\n <div>{{ fulfillmentStatus() }}</div>\n <div>¥{{ total() | fixed }}</div>\n </div>\n</div>\n","import { Component, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OrderItem } from '../../interfaces';\nimport { ThumbnailComponent } from '@rolatech/angular-components';\nimport { OrderItemOptionsFormatPipe } from '../../pipe/order-item-options.pipe';\n\n@Component({\n selector: 'rolatech-order-manage-item-content',\n imports: [CommonModule, ThumbnailComponent, OrderItemOptionsFormatPipe],\n templateUrl: './order-manage-item-content.component.html',\n styleUrl: './order-manage-item-content.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n id: 'rolatech-order-manage-item-content',\n class: 'rolatech-order-manage-item-content',\n },\n})\nexport class OrderManageItemContentComponent {\n items = input.required<OrderItem[]>();\n}\n","<div class=\"flex flex-row md:flex-col overflow-hidden\">\n @for (item of items(); track $index) {\n <div class=\"flex items-center py-2\">\n <div class=\"min-w-24 w-24 object-cover aspect-video rounded-md mr-3\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"item.media[0].url + '!w400'\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n <div class=\"hidden md:flex flex-col px-3\">\n <span class=\"text-lg font-bold hover:text-[--rt-brand-color] cursor-pointer\">{{ item.name }}</span>\n <span class=\"text-sm text-[--rt-text-secondary]\"> {{ item.options | orderItemoptions }}</span>\n </div>\n </div>\n }\n</div>\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-order-manage-item-container',\n imports: [CommonModule],\n templateUrl: './order-manage-item-container.component.html',\n styleUrl: './order-manage-item-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n id: 'rolatech-order-manage-item-container',\n class: 'rolatech-order-manage-item-container',\n },\n})\nexport class OrderManageItemContainerComponent {}\n","<div class=\"flex flex-col w-full\">\n <ng-content select=\"rolatech-order-manage-item-header\"></ng-content>\n <ng-content select=\"rolatech-order-manage-item-content\"></ng-content>\n</div>\n","import { Component, input, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { Order, OrderFulfillmentStatus, OrderStatus } from '../../interfaces';\nimport { OrderManageItemHeaderComponent } from '../order-manage-item-header/order-manage-item-header.component';\nimport { OrderManageItemContentComponent } from '../order-manage-item-content/order-manage-item-content.component';\nimport { OrderManageItemContainerComponent } from '../order-manage-item-container/order-manage-item-container.component';\n\n@Component({\n selector: 'rolatech-order-manage-item',\n imports: [\n CommonModule,\n MatButtonModule,\n MatMenuModule,\n OrderManageItemContainerComponent,\n OrderManageItemHeaderComponent,\n OrderManageItemContentComponent,\n ],\n templateUrl: './order-manage-item.component.html',\n styleUrl: './order-manage-item.component.scss',\n})\nexport class OrderManageItemComponent {\n order = input.required<Order>();\n thumbnail = input();\n status = OrderStatus;\n fulfillmentStatus = OrderFulfillmentStatus;\n fulfill = output();\n onFulfill() {\n this.fulfill.emit();\n }\n archived() {}\n delete() {}\n}\n","<div class=\"flex p-3 items-center hover:bg-[--rt-raised-background] cursor-pointer\">\n <rolatech-order-manage-item-container>\n <rolatech-order-manage-item-header\n [orderId]=\"order().subOrders ? order().subOrders[0].id : order().id\"\n [status]=\"order().subOrders ? status[order().subOrders[0].status] : status[order().status]\"\n [fulfillmentStatus]=\"fulfillmentStatus[order().fulfillmentStatus]\"\n [total]=\"order().items ? order().total : order().subOrders[0].subTotal\"\n ></rolatech-order-manage-item-header>\n <rolatech-order-manage-item-content\n [items]=\"order().items ? order().items : order().subOrders[0].items\"\n ></rolatech-order-manage-item-content>\n </rolatech-order-manage-item-container>\n</div>\n<div class=\"h-[1px] px-3 bg-[--rt-raised-background]\"></div>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabComponent, TabsComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { OrderService, TitleService } from '@rolatech/angular-services';\nimport { Order } from '../../../interfaces';\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator';\nimport { OrderManageItemComponent } from '../../../components/order-manage-item/order-manage-item.component';\nimport { ActivatedRoute, RouterLink } from '@angular/router';\n\n@Component({\n selector: 'rolatech-order-manage-index',\n imports: [\n CommonModule,\n RouterLink,\n ToolbarComponent,\n TabsComponent,\n TabComponent,\n MatPaginatorModule,\n OrderManageItemComponent,\n ],\n templateUrl: './order-manage-index.component.html',\n styleUrl: './order-manage-index.component.scss',\n})\nexport class OrderManageIndexComponent implements OnInit {\n orderService = inject(OrderService);\n titleService = inject(TitleService);\n route = inject(ActivatedRoute);\n pageEvent!: PageEvent;\n length = 100;\n pageSize = 15;\n pageSizeOptions: number[] = [5, 10, 25, 100];\n orders: Order[] = [];\n filterOptions: any = {\n type: '',\n status: '',\n };\n orderOptions = [\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'createdAt',\n value: '创建时间',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n {\n key: 'status',\n value: '状态',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'status',\n value: '状态',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n ];\n orderString = 'createdAt desc';\n select = 0;\n links = [\n {\n name: '全部',\n icon: 'dashboard',\n },\n {\n name: '待付款',\n icon: 'category',\n status: 'created',\n },\n {\n name: '已支付',\n icon: 'category',\n status: 'paid',\n },\n {\n name: '已退款',\n icon: 'category',\n status: 'refunded',\n },\n {\n name: '已取消',\n icon: 'category',\n status: 'canceled',\n },\n ];\n ngOnInit(): void {\n this.titleService.setTitle('Orders');\n this.route.queryParams.subscribe(({ status }) => {\n this.select = this.links.findIndex((item) => item.status === status);\n if (status) {\n this.filterOptions.status = (status as string).toUpperCase();\n } else {\n delete this.filterOptions.status;\n }\n this.findOrders();\n });\n }\n findOrders(event?: PageEvent | null): any {\n const filterString = this.convertFilterOptions(this.filterOptions);\n\n const page = event ? event.pageIndex + 1 : 1;\n const limit = event ? event.pageSize : 15;\n const sort = this.orderString;\n\n const options = {\n page,\n limit,\n sort,\n };\n if (filterString) {\n options['filter'] = filterString;\n }\n this.orderService.merchant(options).subscribe({\n next: (res) => {\n this.orders = res.data;\n this.length = res.meta.pagination.count;\n },\n });\n }\n onFulfill(orderId: string) {}\n convertFilterOptions(jsonObj) {\n return Object.entries(jsonObj)\n .filter(([key, value]) => value !== '' && value !== undefined)\n .map(([key, value]) => {\n return `${key}:${value}`;\n })\n .join(',');\n }\n}\n","<rolatech-toolbar title=\"Orders\">\n <div class=\"flex items-center gap-2\"></div>\n</rolatech-toolbar>\n<rolatech-tabs [select]=\"select\">\n @for (item of links; track item) {\n @if (item.status) {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\" [queryParams]=\"{ status: item.status }\"></rolatech-tab>\n } @else {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\"></rolatech-tab>\n }\n }\n</rolatech-tabs>\n<div>\n @for (item of orders; track $index) {\n <rolatech-order-manage-item\n [order]=\"item\"\n routerLink=\"./{{ item.subOrders ? item.subOrders[0].id : item.id }}\"\n (fulfill)=\"onFulfill(item.id)\"\n ></rolatech-order-manage-item>\n }\n</div>\n<mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"pageEvent = findOrders($event)\"\n hidePageSize\n showFirstLastButtons\n>\n</mat-paginator>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FulfillmentService, OrderService } from '@rolatech/angular-services';\nimport { Order } from '../../../interfaces';\n\n@Component({\n selector: 'rolatech-order-manage-fulfillment',\n imports: [\n CommonModule,\n ToolbarComponent,\n MatButtonModule,\n MatIcon,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n ],\n templateUrl: './order-manage-fulfillment.component.html',\n styleUrl: './order-manage-fulfillment.component.scss',\n})\nexport class OrderManageFulfillmentComponent extends BaseComponent implements OnInit {\n fulfillmentService = inject(FulfillmentService);\n orderService = inject(OrderService);\n order: any = {};\n fulfillments: any = {};\n ngOnInit(): void {\n this.findOrder();\n }\n findOrder() {\n this.orderService.get(this.id).subscribe({\n next: (res: any) => {\n this.order = res.data;\n },\n });\n }\n fulfill() {\n this.fulfillments['orderId'] = this.id;\n this.fulfillmentService.fulfill(this.id, this.fulfillments).subscribe({\n next: (res) => {},\n });\n }\n}\n","<rolatech-toolbar large link=\"../\" title=\"Ship\"> </rolatech-toolbar>\n<div class=\"flex flex-col w-full md:w-1/3\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n>Tracking number</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"fulfillments.trackingNumber\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n>Carrier</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"fulfillments.carrierId\" />\n </mat-form-field>\n</div>\n<button mat-flat-button (click)=\"fulfill()\">\n <mat-icon>local_shipping</mat-icon>\n <span i18n>Ship</span>\n</button>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-order-variant-item',\n imports: [CommonModule],\n templateUrl: './order-variant-item.component.html',\n styleUrl: './order-variant-item.component.scss',\n})\nexport class OrderVariantItemComponent {}\n","<p>order-variant-item works!</p>\n","import { Component, DoCheck, inject, model, OnInit, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\n\n@Component({\n selector: 'rolatech-order-fulfill',\n imports: [CommonModule, MatFormFieldModule, MatInputModule, FormsModule, ReactiveFormsModule],\n templateUrl: './order-fulfill.component.html',\n styleUrl: './order-fulfill.component.scss',\n})\nexport class OrderFulfillComponent implements OnInit, DoCheck {\n formBuilder = inject(FormBuilder);\n fulfillments = model<any>();\n output = output<any>();\n fulfillmentForm!: FormGroup;\n ngOnInit(): void {\n this.fulfillmentForm = this.formBuilder.group({\n trackingNumber: [null, Validators.required],\n carrierId: [null, Validators.required],\n });\n }\n ngDoCheck(): void {\n this.output.emit(this.fulfillmentForm.value);\n }\n}\n","<div class=\"flex flex-col w-full\">\n <form [formGroup]=\"fulfillmentForm\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Tracking number </mat-label>\n <input matInput formControlName=\"trackingNumber\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Carrier </mat-label>\n <input matInput formControlName=\"carrierId\" required />\n </mat-form-field>\n </form>\n</div>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { BaseComponent, SpinnerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { CourseType, CourseService } from '@rolatech/angular-course';\nimport { OrderService, ProductService, NavigationService, FulfillmentService } from '@rolatech/angular-services';\nimport moment from 'moment';\nimport { OrderDetailItemComponent, OrderReturnRequestComponent } from '../../../components';\nimport { Order, OrderStatus, OrderType, OrderTimelineStatus } from '../../../interfaces';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FixedPipe, ShippingAddressPipe } from '@rolatech/angular-common';\nimport { OrderItemOptionsFormatPipe } from '../../../pipe/order-item-options.pipe';\nimport { OrderFulfillComponent } from '../../../components/order-fulfill/order-fulfill.component';\n\n@Component({\n selector: 'rolatech-order-manage-detail',\n imports: [\n MatButtonModule,\n MatIconModule,\n NgClass,\n SpinnerComponent,\n ToolbarComponent,\n OrderDetailItemComponent,\n OrderItemOptionsFormatPipe,\n FixedPipe,\n ShippingAddressPipe,\n ],\n templateUrl: './order-manage-detail.component.html',\n styleUrl: './order-manage-detail.component.scss',\n})\nexport class OrderManageDetailComponent extends BaseComponent implements OnInit {\n order!: Order;\n status: any = OrderStatus;\n type = CourseType;\n orderType = OrderType;\n orderService = inject(OrderService);\n courseService = inject(CourseService);\n productService = inject(ProductService);\n fulfillmentService = inject(FulfillmentService);\n navigationService = inject(NavigationService);\n timelineData: any;\n info = false;\n loadingTimeline = false;\n timelineStatus: any = OrderTimelineStatus;\n countDown = '';\n ngOnInit(): void {\n this.get();\n }\n get(): any {\n this.orderService.getMerchantOrder(this.id).subscribe({\n next: (res: any) => {\n this.order = res.data;\n if (this.order.status === 'CREATED') {\n setInterval(() => {\n const start = moment();\n const end = moment(this.order.createdAt).add(15, 'minute');\n const diff = end.diff(start);\n const duration = moment.duration(diff);\n this.countDown = moment.utc(duration.as('milliseconds')).format('mm:ss');\n }, 1000);\n }\n },\n });\n }\n refund() {\n const options = {\n width: '500px',\n title: '申请退款',\n height: '90%',\n cancelText: 'Cancel',\n confirmText: '确认',\n component: OrderReturnRequestComponent,\n data: {\n reason: '',\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe((res) => {\n if (res) {\n this.orderService.refund(this.id, { reason: res }).subscribe({\n next: (res) => {\n this.snackBarService.open('退款申请成功, 等待审核');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n });\n }\n cancel() {\n this.orderService.cancel(this.id).subscribe({\n next: (res) => {\n this.order.status = 'CANCELED';\n this.snackBarService.open('Cancelled');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n pay() {\n this.router.navigateByUrl(`/orders/${this.id}/qrcodepay`);\n }\n timeline() {\n this.info = true;\n this.loadingTimeline = true;\n this.orderService.timeline(this.id).subscribe({\n next: (res) => {\n this.timelineData = res.data;\n this.loadingTimeline = false;\n },\n error: (error) => {\n this.loadingTimeline = false;\n },\n });\n }\n fulfill() {\n const options = {\n title: 'Ship',\n cancelText: 'Cancel',\n confirmText: 'Confirm',\n component: OrderFulfillComponent,\n data: {},\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n if (result) {\n this.fulfillmentService.fulfill(this.id, result).subscribe({\n next: (res) => {\n this.snackBarService.open('Ship successfully');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n },\n });\n }\n}\n","@if (order) {\n <rolatech-toolbar [title]=\"order.subOrders ? status[order.subOrders[0].status] : status[order.status]\" large link=\"../\">\n <button mat-flat-button (click)=\"fulfill()\">\n <mat-icon>local_shipping</mat-icon>\n <span i18n>Ship</span>\n </button>\n <button mat-flat-button (click)=\"timeline()\">\n <mat-icon>history</mat-icon>\n <span i18n>Order status</span>\n </button>\n </rolatech-toolbar>\n @if (info) {\n <div\n [ngClass]=\"loadingTimeline ? 'translate-x-full' : 'translate-none'\"\n class=\"fixed top-0 right-0 z-[1001] h-screen p-4 overflow-y-auto transition-transform bg-[--rt-raised-background] w-80 sm:w-[300px] shadow-xl\"\n >\n <div class=\"flex justify-between items-center sm:p-4\">\n <div class=\"text-xl font-bold\" i18n>Order status</div>\n <button mat-icon-button (click)=\"info = !info\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n @if (loadingTimeline) {\n <div>\n <rolatech-spinner></rolatech-spinner>\n </div>\n } @else {\n <div class=\"mt-3 p-1 sm:p-4\">\n <ol class=\"relative border-l border-[--rt-border-color]\">\n @for (item of timelineData; track item) {\n <li class=\"mb-8 ml-4\">\n <div\n class=\"absolute w-3 h-3 rounded-full mt-1.5 -left-1.5 border border-[--rt-raised-background] bg-[--rt-text-primary]\"\n ></div>\n <div class=\"text-md font-bold mb-1\">{{ timelineStatus[item.status] }}</div>\n @if (item.status === 'BOOKING_RETURN_REJECTED') {\n <div class=\"text-sm mb-1\">{{ item.return.note }}</div>\n }\n @if (item.status === 'BOOKING_RETURN_REQUESTED') {\n <div class=\"text-sm mb-1\">{{ item.return.reason }}</div>\n }\n <div class=\"text-sm text-[--rt-text-secondary]\">{{ item.date }}</div>\n </li>\n }\n </ol>\n </div>\n }\n </div>\n }\n\n <div\n (click)=\"info = !info\"\n [ngClass]=\"info ? 'visible' : 'invisible'\"\n class=\"bg-[--rt-10-percent-layer] fixed inset-0 z-[1000]\"\n ></div>\n\n <div class=\"flex flex-col gap-3 px-3 justify-between\">\n <div class=\"\">\n <div class=\"flex flex-col py-2\">\n <a class=\"text-xl font-bold\">Order ID: {{ order.subOrders ? order.subOrders[0].id : order.id }}</a>\n <span class=\"text-sm\"> {{ order.createdAt }}</span>\n </div>\n <div class=\"text-lg py-2 font-medium\" i18n>Order info</div>\n <div>\n <div>\n @if (order.subOrders) {\n @for (item of order.subOrders[0].items; track $index) {\n <rolatech-order-detail-item\n [thumbnail]=\"item.media[0].url + '!w200 '\"\n [link]=\"\n order.type.toString() === 'PRODUCT' ? '/products/' + item.refId + '/manage/info' : '/courses/' + item.refId\n \"\n [title]=\"item.name\"\n [total]=\"item.total\"\n [description]=\"item.options | orderItemoptions: order.type\"\n [quantity]=\"item.quantity\"\n ></rolatech-order-detail-item>\n }\n } @else {\n @for (item of order.items; track $index) {\n <rolatech-order-detail-item\n [thumbnail]=\"item.media[0].url + '!w200 '\"\n [link]=\"order.type.toString() === 'PRODUCT' ? '/products/' + item.refId : '/courses/' + item.refId\"\n [title]=\"item.name\"\n [total]=\"item.total\"\n [description]=\"item.options | orderItemoptions: order.type\"\n [quantity]=\"item.quantity\"\n ></rolatech-order-detail-item>\n }\n }\n </div>\n\n <div class=\"mt-3\">\n @if (order.deposit) {\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Deposit</span>\n <span class=\"text-sm\">¥{{ order.deposit | fixed }}</span>\n </div>\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Remaining</span>\n <span class=\"text-sm\">¥{{ order.total - order.deposit | fixed }}</span>\n </div>\n }\n <div class=\"flex items-center justify-between py-1\">\n <span class=\"font-medium\" i18n>Total</span>\n <span class=\"text-sm\">¥{{ order.items ? (order.total | fixed) : (order.subOrders[0].subTotal | fixed) }}</span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"\">\n <div class=\"text-lg py-2 font-medium\" i18n>Tracking</div>\n <div class=\"flex items-baseline justify-between py-1\">\n <span class=\"font-medium min-w-20\" i18n>Shipping address</span>\n <span class=\"text-sm\">{{ order.shippingAddress | shippingAddress }}</span>\n </div>\n <div class=\"flex items-baseline justify-between py-1\">\n <span class=\"font-medium min-w-20\" i18n>Note</span>\n <span class=\"text-sm\">{{ order.note || 'Untitled' }}</span>\n </div>\n </div>\n </div>\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-order-manage-tracking',\n imports: [CommonModule],\n templateUrl: './order-manage-tracking.component.html',\n styleUrl: './order-manage-tracking.component.scss',\n})\nexport class OrderManageTrackingComponent {}\n","<p>order-manage-tracking works!</p>\n","import { Routes } from '@angular/router';\nimport { OrderManageIndexComponent } from './order-manage-index/order-manage-index.component';\nimport { OrderManageFulfillmentComponent } from './order-manage-fulfillment/order-manage-fulfillment.component';\nimport { OrderManageDetailComponent } from './order-manage-detail/order-manage-detail.component';\nimport { OrderManageTrackingComponent } from './order-manage-tracking/order-manage-tracking.component';\n\nexport const orderMangeRoutes: Routes = [\n {\n path: '',\n component: OrderManageIndexComponent,\n },\n {\n path: ':id',\n component: OrderManageDetailComponent,\n },\n {\n path: ':id/fulfillments',\n component: OrderManageFulfillmentComponent,\n },\n {\n path: ':id/tracking',\n component: OrderManageTrackingComponent,\n },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i4","i5","i2","i1"],"mappings":"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"}
|