@rolatech/angular-order 20.1.0 → 20.1.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,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Pipe, input, computed, Component, inject, ViewEncapsulation, output, model, ViewChild, Renderer2, viewChild } from '@angular/core';
|
|
2
|
+
import { Pipe, input, computed, Component, inject, signal, ViewEncapsulation, output, model, ViewChild, Renderer2, viewChild } from '@angular/core';
|
|
3
3
|
import { Title } from '@angular/platform-browser';
|
|
4
4
|
import * as i1 from '@angular/router';
|
|
5
5
|
import { ActivatedRoute, RouterModule, RouterLink } from '@angular/router';
|
|
@@ -24,7 +24,6 @@ import * as i3$1 from '@angular/material/input';
|
|
|
24
24
|
import { MatInputModule } from '@angular/material/input';
|
|
25
25
|
import * as i3 from '@angular/forms';
|
|
26
26
|
import { FormsModule, FormBuilder, Validators, ReactiveFormsModule } from '@angular/forms';
|
|
27
|
-
import { trigger, state, transition, style, animate } from '@angular/animations';
|
|
28
27
|
import moment from 'moment';
|
|
29
28
|
import { AuthUserService } from '@rolatech/angular-auth';
|
|
30
29
|
import * as QRCode from 'qrcode';
|
|
@@ -152,10 +151,10 @@ class OrderItemOptionsFormatPipe {
|
|
|
152
151
|
// return result;
|
|
153
152
|
return type?.toString() === 'COURSE' ? this.courseType[result] : result;
|
|
154
153
|
}
|
|
155
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
156
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.
|
|
154
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderItemOptionsFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
155
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: OrderItemOptionsFormatPipe, isStandalone: true, name: "orderItemoptions" }); }
|
|
157
156
|
}
|
|
158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderItemOptionsFormatPipe, decorators: [{
|
|
159
158
|
type: Pipe,
|
|
160
159
|
args: [{
|
|
161
160
|
name: 'orderItemoptions',
|
|
@@ -171,10 +170,10 @@ class OrderItemComponent {
|
|
|
171
170
|
}, ...(ngDevMode ? [{ debugName: "total" }] : []));
|
|
172
171
|
this.quantity = computed(() => sumBy(this.order().items, (item) => item.quantity), ...(ngDevMode ? [{ debugName: "quantity" }] : []));
|
|
173
172
|
}
|
|
174
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
175
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
173
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
174
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: OrderItemComponent, isStandalone: true, selector: "rolatech-order-item", inputs: { order: { classPropertyName: "order", publicName: "order", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<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>\u8BA2\u5355ID: {{ order().id }}</span>\n <span class=\"text-sm\">(\u8BA2\u5355\u5DF2\u62C6\u5206)</span>\n <span>\u00A5{{ 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\">\u5B50\u8BA2\u5355ID: {{ subOrder.id }}</a>\n <a>\u00A5{{ 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\">\u00A5{{ 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>\u8BA2\u5355ID: {{ order().id }}</span>\n <span>\u00A5{{ 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\">\u00A5{{ 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", styles: [".scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: ImagePlaceholderComponent, selector: "rolatech-image-placeholder", inputs: ["ratio"] }, { kind: "pipe", type: OrderItemOptionsFormatPipe, name: "orderItemoptions" }, { kind: "pipe", type: FixedPipe, name: "fixed" }], deferBlockDependencies: [() => [ThumbnailComponent], () => [ThumbnailComponent]] }); }
|
|
176
175
|
}
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderItemComponent, decorators: [{
|
|
178
177
|
type: Component,
|
|
179
178
|
args: [{ selector: 'rolatech-order-item', imports: [MatIconModule, ThumbnailComponent, ImagePlaceholderComponent, OrderItemOptionsFormatPipe, FixedPipe], template: "<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>\u8BA2\u5355ID: {{ order().id }}</span>\n <span class=\"text-sm\">(\u8BA2\u5355\u5DF2\u62C6\u5206)</span>\n <span>\u00A5{{ 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\">\u5B50\u8BA2\u5355ID: {{ subOrder.id }}</a>\n <a>\u00A5{{ 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\">\u00A5{{ 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>\u8BA2\u5355ID: {{ order().id }}</span>\n <span>\u00A5{{ 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\">\u00A5{{ 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", styles: [".scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\n"] }]
|
|
180
179
|
}] });
|
|
@@ -190,6 +189,7 @@ class OrderIndexComponent {
|
|
|
190
189
|
type: '',
|
|
191
190
|
status: '',
|
|
192
191
|
};
|
|
192
|
+
this.isFilter = signal(false, ...(ngDevMode ? [{ debugName: "isFilter" }] : []));
|
|
193
193
|
this.links = [
|
|
194
194
|
{
|
|
195
195
|
name: '全部',
|
|
@@ -218,7 +218,6 @@ class OrderIndexComponent {
|
|
|
218
218
|
];
|
|
219
219
|
this.orders = [];
|
|
220
220
|
this.select = 0;
|
|
221
|
-
this.filter = false;
|
|
222
221
|
}
|
|
223
222
|
ngOnInit() {
|
|
224
223
|
this.title.setTitle('Orders');
|
|
@@ -247,11 +246,14 @@ class OrderIndexComponent {
|
|
|
247
246
|
},
|
|
248
247
|
});
|
|
249
248
|
}
|
|
249
|
+
toggleFilter() {
|
|
250
|
+
this.isFilter.update((isFilter) => !isFilter);
|
|
251
|
+
}
|
|
250
252
|
resetFilter() {
|
|
251
253
|
this.filterOptions = {
|
|
252
254
|
type: '',
|
|
253
255
|
};
|
|
254
|
-
this.
|
|
256
|
+
this.isFilter.update(() => false);
|
|
255
257
|
this.findOrders();
|
|
256
258
|
}
|
|
257
259
|
convertFilterOptions(jsonObj) {
|
|
@@ -265,16 +267,10 @@ class OrderIndexComponent {
|
|
|
265
267
|
statusCompareFn(t1, t2) {
|
|
266
268
|
return t1 === t2;
|
|
267
269
|
}
|
|
268
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
269
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
270
|
-
trigger('filter', [
|
|
271
|
-
state('collapsed', style({ height: '0px', minHeight: '0' })),
|
|
272
|
-
state('expanded', style({ height: '*' })),
|
|
273
|
-
transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
|
|
274
|
-
]),
|
|
275
|
-
], encapsulation: i0.ViewEncapsulation.None }); }
|
|
270
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
271
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: OrderIndexComponent, isStandalone: true, selector: "rolatech-order-index", ngImport: i0, template: "<rolatech-container>\n <rolatech-toolbar title=\"\u6211\u7684\u8BA2\u5355\" large>\n <button mat-button (click)=\"toggleFilter()\">\n <span>\u8FC7\u6EE4</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=\"\u7C7B\u578B\" [(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=\"\u72B6\u6001\" [(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()\">\u641C\u7D22</button>\n <button mat-stroked-button (click)=\"resetFilter()\" class=\"ml-3\">\u91CD\u7F6E</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", styles: ["mat-form-field{width:100%}.close{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .5s cubic-bezier(.4,0,.2,1)}.open{grid-template-rows:1fr}\n"], dependencies: [{ kind: "component", type: ContainerComponent, selector: "rolatech-container" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: TabsComponent, selector: "rolatech-tabs", inputs: ["select", "loading"], outputs: ["selectChange"] }, { kind: "component", type: TabComponent, selector: "rolatech-tab", inputs: ["label"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: ListComponent, selector: "rolatech-list" }, { kind: "component", type: OrderItemComponent, selector: "rolatech-order-item", inputs: ["order"] }, { kind: "component", type: EmptyComponent, selector: "rolatech-empty" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: FilterComponent, selector: "rolatech-filter" }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
276
272
|
}
|
|
277
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
273
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderIndexComponent, decorators: [{
|
|
278
274
|
type: Component,
|
|
279
275
|
args: [{ selector: 'rolatech-order-index', imports: [
|
|
280
276
|
ContainerComponent,
|
|
@@ -296,13 +292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImpor
|
|
|
296
292
|
MatButtonModule,
|
|
297
293
|
FilterComponent,
|
|
298
294
|
KeyValuePipe,
|
|
299
|
-
],
|
|
300
|
-
trigger('filter', [
|
|
301
|
-
state('collapsed', style({ height: '0px', minHeight: '0' })),
|
|
302
|
-
state('expanded', style({ height: '*' })),
|
|
303
|
-
transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
|
|
304
|
-
]),
|
|
305
|
-
], encapsulation: ViewEncapsulation.None, template: "<rolatech-container>\n <rolatech-toolbar title=\"\u6211\u7684\u8BA2\u5355\" large>\n <button mat-button (click)=\"filter = !filter\">\n <span>\u8FC7\u6EE4</span>\n <mat-icon>tune</mat-icon>\n </button>\n </rolatech-toolbar>\n <rolatech-filter>\n <div [@filter]=\"filter === true ? 'expanded' : 'collapsed'\">\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\">\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-select name=\"type\" placeholder=\"\u7C7B\u578B\" [(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=\"\u72B6\u6001\" [(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()\">\u641C\u7D22</button>\n <button mat-stroked-button (click)=\"resetFilter()\" class=\"ml-3\">\u91CD\u7F6E</button>\n </div>\n </div>\n </div>\n </div>\n </rolatech-filter>\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" }]
|
|
295
|
+
], encapsulation: ViewEncapsulation.None, template: "<rolatech-container>\n <rolatech-toolbar title=\"\u6211\u7684\u8BA2\u5355\" large>\n <button mat-button (click)=\"toggleFilter()\">\n <span>\u8FC7\u6EE4</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=\"\u7C7B\u578B\" [(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=\"\u72B6\u6001\" [(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()\">\u641C\u7D22</button>\n <button mat-stroked-button (click)=\"resetFilter()\" class=\"ml-3\">\u91CD\u7F6E</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", styles: ["mat-form-field{width:100%}.close{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .5s cubic-bezier(.4,0,.2,1)}.open{grid-template-rows:1fr}\n"] }]
|
|
306
296
|
}] });
|
|
307
297
|
|
|
308
298
|
class OrderReturnRequestComponent {
|
|
@@ -313,10 +303,10 @@ class OrderReturnRequestComponent {
|
|
|
313
303
|
ngDoCheck() {
|
|
314
304
|
this.output.emit(this.reason());
|
|
315
305
|
}
|
|
316
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
317
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
306
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderReturnRequestComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
307
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.4", type: OrderReturnRequestComponent, isStandalone: true, selector: "rolatech-order-return-request", inputs: { reason: { classPropertyName: "reason", publicName: "reason", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { output: "output", reason: "reasonChange" }, ngImport: i0, template: "<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", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }] }); }
|
|
318
308
|
}
|
|
319
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderReturnRequestComponent, decorators: [{
|
|
320
310
|
type: Component,
|
|
321
311
|
args: [{ selector: 'rolatech-order-return-request', imports: [AngularCommonModule, AngularComponentsModule], template: "<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", styles: ["mat-form-field{width:100%}\n"] }]
|
|
322
312
|
}] });
|
|
@@ -333,10 +323,10 @@ class OrderDetailItemComponent {
|
|
|
333
323
|
return (this.total() / 100)?.toFixed(2);
|
|
334
324
|
}, ...(ngDevMode ? [{ debugName: "priceDisplay" }] : []));
|
|
335
325
|
}
|
|
336
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
337
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
326
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderDetailItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
327
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: OrderDetailItemComponent, isStandalone: true, selector: "rolatech-order-detail-item", inputs: { thumbnail: { classPropertyName: "thumbnail", publicName: "thumbnail", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, quantity: { classPropertyName: "quantity", publicName: "quantity", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<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\">\u00A5{{ 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", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], deferBlockDependencies: [() => [import('@rolatech/angular-components').then(m => m.ThumbnailComponent)]] }); }
|
|
338
328
|
}
|
|
339
|
-
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "20.3.
|
|
329
|
+
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "20.3.4", ngImport: i0, type: OrderDetailItemComponent, resolveDeferredDeps: () => [import('@rolatech/angular-components').then(m => m.ThumbnailComponent)], resolveMetadata: ThumbnailComponent => ({ decorators: [{
|
|
340
330
|
type: Component,
|
|
341
331
|
args: [{ selector: 'rolatech-order-detail-item', imports: [CommonModule, ThumbnailComponent, RouterLink], template: "<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\">\u00A5{{ 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" }]
|
|
342
332
|
}], ctorParameters: null, propDecorators: null }) });
|
|
@@ -345,10 +335,10 @@ class OrderMerchantComponent {
|
|
|
345
335
|
constructor() {
|
|
346
336
|
this.merchant = input.required(...(ngDevMode ? [{ debugName: "merchant" }] : []));
|
|
347
337
|
}
|
|
348
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
349
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
338
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderMerchantComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
339
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: OrderMerchantComponent, isStandalone: true, selector: "rolatech-order-merchant", inputs: { merchant: { classPropertyName: "merchant", publicName: "merchant", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<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", styles: ["mat-icon{transform:scale(.8);color:var(--rt-brand-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
350
340
|
}
|
|
351
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
341
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderMerchantComponent, decorators: [{
|
|
352
342
|
type: Component,
|
|
353
343
|
args: [{ selector: 'rolatech-order-merchant', imports: [CommonModule, RouterLink, MatIcon], template: "<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", styles: ["mat-icon{transform:scale(.8);color:var(--rt-brand-color)}\n"] }]
|
|
354
344
|
}] });
|
|
@@ -360,10 +350,10 @@ class MerchantFilterPipe {
|
|
|
360
350
|
}
|
|
361
351
|
return merchants.find((item) => item.id === merchantId);
|
|
362
352
|
}
|
|
363
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
364
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.
|
|
353
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: MerchantFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
354
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: MerchantFilterPipe, isStandalone: true, name: "merchantFilter" }); }
|
|
365
355
|
}
|
|
366
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
356
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: MerchantFilterPipe, decorators: [{
|
|
367
357
|
type: Pipe,
|
|
368
358
|
args: [{
|
|
369
359
|
name: 'merchantFilter',
|
|
@@ -456,34 +446,6 @@ class OrderDetailComponent extends BaseComponent {
|
|
|
456
446
|
}
|
|
457
447
|
pay() {
|
|
458
448
|
this.router.navigateByUrl(`/orders/${this.id}/qrcodepay`);
|
|
459
|
-
// const data = {
|
|
460
|
-
// businessType: 'ORDER',
|
|
461
|
-
// businessId: this.id,
|
|
462
|
-
// provider: 'WECHAT',
|
|
463
|
-
// method: 'WECHAT_PAY_NATIVE',
|
|
464
|
-
// };
|
|
465
|
-
// // this.paymentService.createPaymentIntent(data).subscribe({
|
|
466
|
-
// // next: (res) => {
|
|
467
|
-
// // console.log(res);
|
|
468
|
-
// // },
|
|
469
|
-
// // });
|
|
470
|
-
// this.paymentService
|
|
471
|
-
// .createPaymentIntent(data)
|
|
472
|
-
// .pipe(
|
|
473
|
-
// switchMap((res: any) => {
|
|
474
|
-
// const intent = {
|
|
475
|
-
// intentId: res.data.id,
|
|
476
|
-
// provider: 'WECHAT',
|
|
477
|
-
// method: 'WECHAT_PAY_JSAPI',
|
|
478
|
-
// };
|
|
479
|
-
// return this.paymentService.createPayment(intent);
|
|
480
|
-
// }),
|
|
481
|
-
// )
|
|
482
|
-
// .subscribe({
|
|
483
|
-
// next: (res) => {
|
|
484
|
-
// console.log(res);
|
|
485
|
-
// },
|
|
486
|
-
// });
|
|
487
449
|
}
|
|
488
450
|
timeline() {
|
|
489
451
|
this.info = true;
|
|
@@ -509,10 +471,10 @@ class OrderDetailComponent extends BaseComponent {
|
|
|
509
471
|
},
|
|
510
472
|
});
|
|
511
473
|
}
|
|
512
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
513
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.2", type: OrderDetailComponent, isStandalone: true, selector: "rolatech-order-detail", viewQueries: [{ propertyName: "paymentElement", first: true, predicate: ["paymentElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@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\">\u652F\u4ED8\u5012\u8BA1\u65F6: {{ 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\">\u8BA2\u5355\u5DF2\u62C6\u5206</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\">\u00A5{{ 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 || '\u65E0' }}</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\">\u00A5{{ 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\">\u00A5{{ 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\">\u00A5{{ 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\">\u5FAE\u4FE1\u652F\u4ED8</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=\"\u9875\u9762-1\">\n <g id=\"\u753B\u677F\">\n <g id=\"\u7F16\u7EC4\">\n <path\n id=\"\u5F62\u72B6\u7ED3\u5408\"\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()\">\u7533\u8BF7\u9000\u6B3E</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", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SpinnerComponent, selector: "rolatech-spinner", inputs: ["title"] }, { kind: "component", type: ContainerComponent, selector: "rolatech-container" }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: OrderDetailItemComponent, selector: "rolatech-order-detail-item", inputs: ["thumbnail", "title", "description", "quantity", "total", "link"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: OrderMerchantComponent, selector: "rolatech-order-merchant", inputs: ["merchant"] }, { kind: "pipe", type: OrderItemOptionsFormatPipe, name: "orderItemoptions" }, { kind: "pipe", type: FixedPipe, name: "fixed" }, { kind: "pipe", type: MerchantFilterPipe, name: "merchantFilter" }, { kind: "pipe", type: ShippingAddressPipe, name: "shippingAddress" }] }); }
|
|
474
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
475
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: OrderDetailComponent, isStandalone: true, selector: "rolatech-order-detail", viewQueries: [{ propertyName: "paymentElement", first: true, predicate: ["paymentElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@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\">\u652F\u4ED8\u5012\u8BA1\u65F6: {{ 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\">\u8BA2\u5355\u5DF2\u62C6\u5206</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\">\u00A5{{ 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 || '\u65E0' }}</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\">\u00A5{{ 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\">\u00A5{{ 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\">\u00A5{{ 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\">\u5FAE\u4FE1\u652F\u4ED8</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=\"\u9875\u9762-1\">\n <g id=\"\u753B\u677F\">\n <g id=\"\u7F16\u7EC4\">\n <path\n id=\"\u5F62\u72B6\u7ED3\u5408\"\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()\">\u7533\u8BF7\u9000\u6B3E</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", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SpinnerComponent, selector: "rolatech-spinner", inputs: ["title"] }, { kind: "component", type: ContainerComponent, selector: "rolatech-container" }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: OrderDetailItemComponent, selector: "rolatech-order-detail-item", inputs: ["thumbnail", "title", "description", "quantity", "total", "link"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: OrderMerchantComponent, selector: "rolatech-order-merchant", inputs: ["merchant"] }, { kind: "pipe", type: OrderItemOptionsFormatPipe, name: "orderItemoptions" }, { kind: "pipe", type: FixedPipe, name: "fixed" }, { kind: "pipe", type: MerchantFilterPipe, name: "merchantFilter" }, { kind: "pipe", type: ShippingAddressPipe, name: "shippingAddress" }] }); }
|
|
514
476
|
}
|
|
515
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
477
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderDetailComponent, decorators: [{
|
|
516
478
|
type: Component,
|
|
517
479
|
args: [{ selector: 'rolatech-order-detail', imports: [
|
|
518
480
|
MatButtonModule,
|
|
@@ -560,31 +522,24 @@ class OrderQrcodepayComponent extends BaseComponent {
|
|
|
560
522
|
});
|
|
561
523
|
}
|
|
562
524
|
pay() {
|
|
563
|
-
// this.router.navigateByUrl(`/orders/${this.id}/qrcodepay`);
|
|
564
525
|
const data = {
|
|
565
526
|
businessType: 'ORDER',
|
|
566
527
|
businessId: this.id,
|
|
567
528
|
provider: 'WECHAT',
|
|
568
529
|
method: 'WECHAT_PAY_NATIVE',
|
|
569
530
|
};
|
|
570
|
-
// this.paymentService.createPaymentIntent(data).subscribe({
|
|
571
|
-
// next: (res) => {
|
|
572
|
-
// console.log(res);
|
|
573
|
-
// },
|
|
574
|
-
// });
|
|
575
531
|
this.paymentService
|
|
576
532
|
.createPaymentIntent(data)
|
|
577
533
|
.pipe(switchMap((res) => {
|
|
578
534
|
const intent = {
|
|
579
535
|
intentId: res.data.id,
|
|
580
536
|
provider: 'WECHAT',
|
|
581
|
-
method: '
|
|
537
|
+
method: 'WECHAT_PAY_NATIVE',
|
|
582
538
|
};
|
|
583
539
|
return this.paymentService.createPayment(intent);
|
|
584
540
|
}))
|
|
585
541
|
.subscribe({
|
|
586
542
|
next: (res) => {
|
|
587
|
-
console.log(res);
|
|
588
543
|
this.genQRCode(res.data.qrCodeUrl);
|
|
589
544
|
},
|
|
590
545
|
});
|
|
@@ -621,10 +576,10 @@ class OrderQrcodepayComponent extends BaseComponent {
|
|
|
621
576
|
this.renderer.removeChild(this.qrcElement().nativeElement, node);
|
|
622
577
|
}
|
|
623
578
|
}
|
|
624
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
625
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
579
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderQrcodepayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
580
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: OrderQrcodepayComponent, isStandalone: true, selector: "rolatech-order-qrcodepay", viewQueries: [{ propertyName: "qrcElement", first: true, predicate: ["qrcode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@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>\u8BA2\u5355: </span><span class=\"underline\">#{{ this.id }}</span></a\n >\n @if (order.status.toString() === 'CREATED') {\n @if (order.deposit) {\n <div>\u652F\u4ED8\u5B9A\u91D1: \u00A5{{ order.deposit | fixed }}</div>\n } @else {\n <div>\u652F\u4ED8\u91D1\u989D: \u00A5{{ order.total | fixed }}</div>\n }\n }\n @if (order.status.toString() === 'PARTIAL_PAID') {\n <div>\u652F\u4ED8\u5C3E\u6B3E \u00A5{{ order.total - order.deposit | fixed }}</div>\n }\n </div>\n <div class=\"mt-6\">\n @if (needPay) {\n <div>\n <div>\u8BF7\u4F7F\u7528\u5FAE\u4FE1\u626B\u7801\u652F\u4ED8, \u6211\u4EEC\u4F1A\u5728\u6536\u5230\u4ED8\u6B3E\u540E\u5904\u7406\u60A8\u7684\u8BA2\u5355</div>\n <div class=\"w-52 h-56 flex flex-col justify-end items-center\">\n <div #qrcode></div>\n <span class=\"text-md\">\u5FAE\u4FE1\u652F\u4ED8\u4E8C\u7EF4\u7801</span>\n </div>\n </div>\n } @else {\n <div>\u8BF7\u786E\u8BA4\u5F53\u524D\u8BA2\u5355\u72B6\u6001, \u5982\u5DF2\u7ECF\u4ED8\u6B3E, \u8BF7\u8FD4\u56DE\u67E5\u770B</div>\n }\n </div>\n </div>\n </rolatech-container>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: ContainerComponent, selector: "rolatech-container" }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "pipe", type: FixedPipe, name: "fixed" }] }); }
|
|
626
581
|
}
|
|
627
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
582
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderQrcodepayComponent, decorators: [{
|
|
628
583
|
type: Component,
|
|
629
584
|
args: [{ selector: 'rolatech-order-qrcodepay', imports: [RouterLink, ContainerComponent, ToolbarComponent, FixedPipe], template: "@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>\u8BA2\u5355: </span><span class=\"underline\">#{{ this.id }}</span></a\n >\n @if (order.status.toString() === 'CREATED') {\n @if (order.deposit) {\n <div>\u652F\u4ED8\u5B9A\u91D1: \u00A5{{ order.deposit | fixed }}</div>\n } @else {\n <div>\u652F\u4ED8\u91D1\u989D: \u00A5{{ order.total | fixed }}</div>\n }\n }\n @if (order.status.toString() === 'PARTIAL_PAID') {\n <div>\u652F\u4ED8\u5C3E\u6B3E \u00A5{{ order.total - order.deposit | fixed }}</div>\n }\n </div>\n <div class=\"mt-6\">\n @if (needPay) {\n <div>\n <div>\u8BF7\u4F7F\u7528\u5FAE\u4FE1\u626B\u7801\u652F\u4ED8, \u6211\u4EEC\u4F1A\u5728\u6536\u5230\u4ED8\u6B3E\u540E\u5904\u7406\u60A8\u7684\u8BA2\u5355</div>\n <div class=\"w-52 h-56 flex flex-col justify-end items-center\">\n <div #qrcode></div>\n <span class=\"text-md\">\u5FAE\u4FE1\u652F\u4ED8\u4E8C\u7EF4\u7801</span>\n </div>\n </div>\n } @else {\n <div>\u8BF7\u786E\u8BA4\u5F53\u524D\u8BA2\u5355\u72B6\u6001, \u5982\u5DF2\u7ECF\u4ED8\u6B3E, \u8BF7\u8FD4\u56DE\u67E5\u770B</div>\n }\n </div>\n </div>\n </rolatech-container>\n}\n" }]
|
|
630
585
|
}] });
|
|
@@ -650,10 +605,10 @@ class OrderTrackingComponent extends BaseComponent {
|
|
|
650
605
|
goBack() {
|
|
651
606
|
this.location.back();
|
|
652
607
|
}
|
|
653
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
654
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
608
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderTrackingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
609
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: OrderTrackingComponent, isStandalone: true, selector: "rolatech-order-tracking", usesInheritance: true, ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ContainerComponent, selector: "rolatech-container" }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }] }); }
|
|
655
610
|
}
|
|
656
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
611
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderTrackingComponent, decorators: [{
|
|
657
612
|
type: Component,
|
|
658
613
|
args: [{ selector: 'rolatech-order-tracking', imports: [CommonModule, ContainerComponent, ToolbarComponent], template: "<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" }]
|
|
659
614
|
}] });
|
|
@@ -685,10 +640,10 @@ class OrderSubOrderTrackingComponent extends BaseComponent {
|
|
|
685
640
|
},
|
|
686
641
|
});
|
|
687
642
|
}
|
|
688
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
689
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
643
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderSubOrderTrackingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
644
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: OrderSubOrderTrackingComponent, isStandalone: true, selector: "rolatech-order-suborder-tracking", usesInheritance: true, ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ContainerComponent, selector: "rolatech-container" }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }] }); }
|
|
690
645
|
}
|
|
691
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
646
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderSubOrderTrackingComponent, decorators: [{
|
|
692
647
|
type: Component,
|
|
693
648
|
args: [{ selector: 'rolatech-order-suborder-tracking', imports: [CommonModule, ContainerComponent, ToolbarComponent], template: "<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" }]
|
|
694
649
|
}] });
|
|
@@ -723,10 +678,10 @@ class OrderManageItemHeaderComponent {
|
|
|
723
678
|
this.fulfillmentStatus = input(...(ngDevMode ? [undefined, { debugName: "fulfillmentStatus" }] : []));
|
|
724
679
|
this.total = input.required(...(ngDevMode ? [{ debugName: "total" }] : []));
|
|
725
680
|
}
|
|
726
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
727
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
681
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageItemHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
682
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.4", type: OrderManageItemHeaderComponent, isStandalone: true, selector: "rolatech-order-manage-item-header", inputs: { orderId: { classPropertyName: "orderId", publicName: "orderId", isSignal: true, isRequired: true, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, fulfillmentStatus: { classPropertyName: "fulfillmentStatus", publicName: "fulfillmentStatus", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "id": "rolatech-order-manage-item-header" }, classAttribute: "rolatech-order-manage-item-header" }, ngImport: i0, template: "<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>\u00A5{{ total() | fixed }}</div>\n </div>\n</div>\n", styles: ["rolatech-order-manage-item-header{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: FixedPipe, name: "fixed" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
728
683
|
}
|
|
729
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
684
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageItemHeaderComponent, decorators: [{
|
|
730
685
|
type: Component,
|
|
731
686
|
args: [{ selector: 'rolatech-order-manage-item-header', imports: [CommonModule, FixedPipe], encapsulation: ViewEncapsulation.None, host: {
|
|
732
687
|
id: 'rolatech-order-manage-item-header',
|
|
@@ -738,22 +693,22 @@ class OrderManageItemContentComponent {
|
|
|
738
693
|
constructor() {
|
|
739
694
|
this.items = input.required(...(ngDevMode ? [{ debugName: "items" }] : []));
|
|
740
695
|
}
|
|
741
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
742
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
696
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageItemContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
697
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: OrderManageItemContentComponent, isStandalone: true, selector: "rolatech-order-manage-item-content", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "id": "rolatech-order-manage-item-content" }, classAttribute: "rolatech-order-manage-item-content" }, ngImport: i0, template: "<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", styles: [".scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: OrderItemOptionsFormatPipe, name: "orderItemoptions" }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [import('@rolatech/angular-components').then(m => m.ThumbnailComponent)]] }); }
|
|
743
698
|
}
|
|
744
|
-
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "20.3.
|
|
699
|
+
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "20.3.4", ngImport: i0, type: OrderManageItemContentComponent, resolveDeferredDeps: () => [import('@rolatech/angular-components').then(m => m.ThumbnailComponent)], resolveMetadata: ThumbnailComponent => ({ decorators: [{
|
|
745
700
|
type: Component,
|
|
746
701
|
args: [{ selector: 'rolatech-order-manage-item-content', imports: [CommonModule, ThumbnailComponent, OrderItemOptionsFormatPipe], encapsulation: ViewEncapsulation.None, host: {
|
|
747
702
|
id: 'rolatech-order-manage-item-content',
|
|
748
703
|
class: 'rolatech-order-manage-item-content',
|
|
749
|
-
}, template: "<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-
|
|
704
|
+
}, template: "<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", styles: [".scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\n"] }]
|
|
750
705
|
}], ctorParameters: null, propDecorators: null }) });
|
|
751
706
|
|
|
752
707
|
class OrderManageItemContainerComponent {
|
|
753
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
754
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
708
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageItemContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
709
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: OrderManageItemContainerComponent, isStandalone: true, selector: "rolatech-order-manage-item-container", host: { attributes: { "id": "rolatech-order-manage-item-container" }, classAttribute: "rolatech-order-manage-item-container" }, ngImport: i0, template: "<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", styles: ["rolatech-order-manage-item-container{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
755
710
|
}
|
|
756
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
711
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageItemContainerComponent, decorators: [{
|
|
757
712
|
type: Component,
|
|
758
713
|
args: [{ selector: 'rolatech-order-manage-item-container', imports: [CommonModule], encapsulation: ViewEncapsulation.None, host: {
|
|
759
714
|
id: 'rolatech-order-manage-item-container',
|
|
@@ -774,10 +729,10 @@ class OrderManageItemComponent {
|
|
|
774
729
|
}
|
|
775
730
|
archived() { }
|
|
776
731
|
delete() { }
|
|
777
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
778
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
732
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
733
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.4", type: OrderManageItemComponent, isStandalone: true, selector: "rolatech-order-manage-item", inputs: { order: { classPropertyName: "order", publicName: "order", isSignal: true, isRequired: true, transformFunction: null }, thumbnail: { classPropertyName: "thumbnail", publicName: "thumbnail", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fulfill: "fulfill" }, ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: OrderManageItemContainerComponent, selector: "rolatech-order-manage-item-container" }, { kind: "component", type: OrderManageItemHeaderComponent, selector: "rolatech-order-manage-item-header", inputs: ["orderId", "status", "fulfillmentStatus", "total"] }, { kind: "component", type: OrderManageItemContentComponent, selector: "rolatech-order-manage-item-content", inputs: ["items"] }] }); }
|
|
779
734
|
}
|
|
780
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
735
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageItemComponent, decorators: [{
|
|
781
736
|
type: Component,
|
|
782
737
|
args: [{ selector: 'rolatech-order-manage-item', imports: [
|
|
783
738
|
CommonModule,
|
|
@@ -899,10 +854,10 @@ class OrderManageIndexComponent {
|
|
|
899
854
|
})
|
|
900
855
|
.join(',');
|
|
901
856
|
}
|
|
902
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
903
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
857
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
858
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: OrderManageIndexComponent, isStandalone: true, selector: "rolatech-order-manage-index", ngImport: i0, template: "<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", styles: ["mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;max-width:64px;font-size:.8rem;padding:0 8px}.mat-mdc-header-cell.actions{text-align:right;max-width:64px;width:64px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: TabsComponent, selector: "rolatech-tabs", inputs: ["select", "loading"], outputs: ["selectChange"] }, { kind: "component", type: TabComponent, selector: "rolatech-tab", inputs: ["label"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i1$2.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: OrderManageItemComponent, selector: "rolatech-order-manage-item", inputs: ["order", "thumbnail"], outputs: ["fulfill"] }] }); }
|
|
904
859
|
}
|
|
905
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
860
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageIndexComponent, decorators: [{
|
|
906
861
|
type: Component,
|
|
907
862
|
args: [{ selector: 'rolatech-order-manage-index', imports: [
|
|
908
863
|
CommonModule,
|
|
@@ -939,10 +894,10 @@ class OrderManageFulfillmentComponent extends BaseComponent {
|
|
|
939
894
|
next: (res) => { },
|
|
940
895
|
});
|
|
941
896
|
}
|
|
942
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
943
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
897
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageFulfillmentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
898
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: OrderManageFulfillmentComponent, isStandalone: true, selector: "rolatech-order-manage-fulfillment", usesInheritance: true, ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: TextFieldModule }] }); }
|
|
944
899
|
}
|
|
945
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
900
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageFulfillmentComponent, decorators: [{
|
|
946
901
|
type: Component,
|
|
947
902
|
args: [{ selector: 'rolatech-order-manage-fulfillment', imports: [
|
|
948
903
|
CommonModule,
|
|
@@ -957,10 +912,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImpor
|
|
|
957
912
|
}] });
|
|
958
913
|
|
|
959
914
|
class OrderVariantItemComponent {
|
|
960
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
961
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
915
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderVariantItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
916
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: OrderVariantItemComponent, isStandalone: true, selector: "rolatech-order-variant-item", ngImport: i0, template: "<p>order-variant-item works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
962
917
|
}
|
|
963
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
918
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderVariantItemComponent, decorators: [{
|
|
964
919
|
type: Component,
|
|
965
920
|
args: [{ selector: 'rolatech-order-variant-item', imports: [CommonModule], template: "<p>order-variant-item works!</p>\n" }]
|
|
966
921
|
}] });
|
|
@@ -980,10 +935,10 @@ class OrderFulfillComponent {
|
|
|
980
935
|
ngDoCheck() {
|
|
981
936
|
this.output.emit(this.fulfillmentForm.value);
|
|
982
937
|
}
|
|
983
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
984
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
938
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderFulfillComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
939
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.4", type: OrderFulfillComponent, isStandalone: true, selector: "rolatech-order-fulfill", inputs: { fulfillments: { classPropertyName: "fulfillments", publicName: "fulfillments", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fulfillments: "fulfillmentsChange", output: "output" }, ngImport: i0, template: "<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", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
985
940
|
}
|
|
986
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
941
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderFulfillComponent, decorators: [{
|
|
987
942
|
type: Component,
|
|
988
943
|
args: [{ selector: 'rolatech-order-fulfill', imports: [CommonModule, MatFormFieldModule, MatInputModule, FormsModule, ReactiveFormsModule], template: "<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", styles: ["mat-form-field{width:100%}\n"] }]
|
|
989
944
|
}] });
|
|
@@ -1100,10 +1055,10 @@ class OrderManageDetailComponent extends BaseComponent {
|
|
|
1100
1055
|
},
|
|
1101
1056
|
});
|
|
1102
1057
|
}
|
|
1103
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1104
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
1058
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1059
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: OrderManageDetailComponent, isStandalone: true, selector: "rolatech-order-manage-detail", usesInheritance: true, ngImport: i0, template: "@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\">\u00A5{{ 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\">\u00A5{{ 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\">\u00A5{{ 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", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SpinnerComponent, selector: "rolatech-spinner", inputs: ["title"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: OrderDetailItemComponent, selector: "rolatech-order-detail-item", inputs: ["thumbnail", "title", "description", "quantity", "total", "link"] }, { kind: "pipe", type: OrderItemOptionsFormatPipe, name: "orderItemoptions" }, { kind: "pipe", type: FixedPipe, name: "fixed" }, { kind: "pipe", type: ShippingAddressPipe, name: "shippingAddress" }] }); }
|
|
1105
1060
|
}
|
|
1106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1061
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageDetailComponent, decorators: [{
|
|
1107
1062
|
type: Component,
|
|
1108
1063
|
args: [{ selector: 'rolatech-order-manage-detail', imports: [
|
|
1109
1064
|
MatButtonModule,
|
|
@@ -1119,10 +1074,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImpor
|
|
|
1119
1074
|
}] });
|
|
1120
1075
|
|
|
1121
1076
|
class OrderManageTrackingComponent {
|
|
1122
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
1123
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
1077
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageTrackingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1078
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.4", type: OrderManageTrackingComponent, isStandalone: true, selector: "rolatech-order-manage-tracking", ngImport: i0, template: "<p>order-manage-tracking works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
1124
1079
|
}
|
|
1125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
1080
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OrderManageTrackingComponent, decorators: [{
|
|
1126
1081
|
type: Component,
|
|
1127
1082
|
args: [{ selector: 'rolatech-order-manage-tracking', imports: [CommonModule], template: "<p>order-manage-tracking works!</p>\n" }]
|
|
1128
1083
|
}] });
|