@rolatech/angular-course 19.0.0-beta.4 → 19.0.0-beta.5

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.
@@ -0,0 +1,65 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Component } from '@angular/core';
3
+ import { AngularCommonModule, FixedPipe } from '@rolatech/angular-common';
4
+ import { BaseComponent, AngularComponentsModule, RichViewComponent, RichItemComponent } from '@rolatech/angular-components';
5
+ import { CourseService, CategoryService } from './rolatech-angular-course.mjs';
6
+ import { CategoryBreadcrumbComponent } from '@rolatech/angular-category';
7
+ import * as i1 from '@angular/router';
8
+
9
+ class CourseCategoryIndexComponent extends BaseComponent {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.courses = [];
13
+ this.categories = [];
14
+ this.courseService = inject(CourseService);
15
+ this.categoryService = inject(CategoryService);
16
+ this.loading = false;
17
+ this.c = [{ name: '分类', path: '/categories' }];
18
+ }
19
+ ngOnInit() {
20
+ this.findCategories();
21
+ this.findCourses();
22
+ this.titleService.setTitle('课程');
23
+ }
24
+ findCourses() {
25
+ this.loading = true;
26
+ const options = {
27
+ sort: 'updatedAt desc',
28
+ filter: 'published:true',
29
+ };
30
+ this.courseService.find(options).subscribe({
31
+ next: (res) => {
32
+ this.courses = res.data;
33
+ this.meta = res.meta;
34
+ this.loading = false;
35
+ },
36
+ error: (error) => {
37
+ this.loading = false;
38
+ },
39
+ });
40
+ }
41
+ findCategories() {
42
+ this.categoryService.find({}).subscribe({
43
+ next: (res) => {
44
+ this.categories = res.data;
45
+ },
46
+ });
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CourseCategoryIndexComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: CourseCategoryIndexComponent, isStandalone: true, selector: "rolatech-course-category-index", usesInheritance: true, ngImport: i0, template: "<div>\n <div class=\"hidden md:block\">\n <rolatech-category-breadcrumb [categories]=\"c\"></rolatech-category-breadcrumb>\n <div class=\"text-2xl font-medium mt-2\">\u5168\u90E8\u8BFE\u7A0B</div>\n </div>\n\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view list>\n @for (item of courses; track $index) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['/courses/', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.pricing[0].total | fixed\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n", styles: ["rolatech-rich-item{--rt-rich-view-item-margin: 0px}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: RichViewComponent, selector: "rolatech-rich-view", inputs: ["list", "wrap"] }, { kind: "component", type: CategoryBreadcrumbComponent, selector: "rolatech-category-breadcrumb", inputs: ["categories"], outputs: ["categoriesChange"] }], deferBlockDependencies: [() => [i1.RouterLink, RichItemComponent,
50
+ FixedPipe]] }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CourseCategoryIndexComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'rolatech-course-category-index', imports: [
55
+ AngularCommonModule,
56
+ AngularComponentsModule,
57
+ RichViewComponent,
58
+ RichItemComponent,
59
+ FixedPipe,
60
+ CategoryBreadcrumbComponent,
61
+ ], template: "<div>\n <div class=\"hidden md:block\">\n <rolatech-category-breadcrumb [categories]=\"c\"></rolatech-category-breadcrumb>\n <div class=\"text-2xl font-medium mt-2\">\u5168\u90E8\u8BFE\u7A0B</div>\n </div>\n\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view list>\n @for (item of courses; track $index) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['/courses/', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.pricing[0].total | fixed\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n", styles: ["rolatech-rich-item{--rt-rich-view-item-margin: 0px}\n"] }]
62
+ }] });
63
+
64
+ export { CourseCategoryIndexComponent };
65
+ //# sourceMappingURL=rolatech-angular-course-course-category-index.component-CoWc72bH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rolatech-angular-course-course-category-index.component-CoWc72bH.mjs","sources":["../../../../packages/angular-course/src/lib/pages/course/course-category-index/course-category-index.component.ts","../../../../packages/angular-course/src/lib/pages/course/course-category-index/course-category-index.component.html"],"sourcesContent":["import { Component, inject, OnInit } from '@angular/core';\nimport { AngularCommonModule, FixedPipe } from '@rolatech/angular-common';\nimport { AngularComponentsModule, RichViewComponent, RichItemComponent, BaseComponent } from '@rolatech/angular-components';\nimport { Course, CourseCategory } from '../../../interfaces';\nimport { CourseService, CategoryService } from '../../../services';\nimport { CategoryBreadcrumbComponent } from '@rolatech/angular-category';\n\n@Component({\n selector: 'rolatech-course-category-index',\n imports: [\n AngularCommonModule,\n AngularComponentsModule,\n RichViewComponent,\n RichItemComponent,\n FixedPipe,\n CategoryBreadcrumbComponent,\n ],\n templateUrl: './course-category-index.component.html',\n styleUrl: './course-category-index.component.scss',\n})\nexport class CourseCategoryIndexComponent extends BaseComponent implements OnInit {\n courses: Course[] = [];\n categories: CourseCategory[] = [];\n courseService = inject(CourseService);\n categoryService = inject(CategoryService);\n meta: any;\n loading = false;\n c = [{ name: '分类', path: '/categories' }];\n ngOnInit(): void {\n this.findCategories();\n this.findCourses();\n this.titleService.setTitle('课程');\n }\n findCourses() {\n this.loading = true;\n const options = {\n sort: 'updatedAt desc',\n filter: 'published:true',\n };\n this.courseService.find(options).subscribe({\n next: (res: any) => {\n this.courses = res.data;\n this.meta = res.meta;\n this.loading = false;\n },\n error: (error) => {\n this.loading = false;\n },\n });\n }\n findCategories() {\n this.categoryService.find({}).subscribe({\n next: (res: any) => {\n this.categories = res.data;\n },\n });\n }\n}\n","<div>\n <div class=\"hidden md:block\">\n <rolatech-category-breadcrumb [categories]=\"c\"></rolatech-category-breadcrumb>\n <div class=\"text-2xl font-medium mt-2\">全部课程</div>\n </div>\n\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view list>\n @for (item of courses; track $index) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['/courses/', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.pricing[0].total | fixed\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n"],"names":[],"mappings":"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"}
@@ -1996,7 +1996,7 @@ const courseCategoryRoutes = [
1996
1996
  children: [
1997
1997
  {
1998
1998
  path: '',
1999
- loadComponent: () => import('./rolatech-angular-course-course-category-index.component-DNmnv2wu.mjs').then((x) => x.CourseCategoryIndexComponent),
1999
+ loadComponent: () => import('./rolatech-angular-course-course-category-index.component-CoWc72bH.mjs').then((x) => x.CourseCategoryIndexComponent),
2000
2000
  },
2001
2001
  {
2002
2002
  path: ':id',
@@ -3509,11 +3509,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
3509
3509
  ], template: "<rolatech-toolbar title=\"\u521B\u5EFA\u8BFE\u7A0B\" link=\"../\"> </rolatech-toolbar>\n<div class=\"p-3\">\n <section class=\"sample-app-content\">\n <form #courseForm=\"ngForm\">\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u8BFE\u7A0B\u540D\u79F0 </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"course.name\" name=\"name\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u8BFE\u7A0B\u63CF\u8FF0 </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"course.description\"\n name=\"description\"\n required\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n ></textarea>\n </mat-form-field>\n <div class=\"flex gap-3\">\n <mat-form-field appearance=\"fill\" required>\n <mat-label>\u4E00\u7EA7\u5206\u7C7B</mat-label>\n <mat-select name=\"id\" [(ngModel)]=\"parentCategory\" (selectionChange)=\"onParentCategoryChange($event)\">\n @for (item of categories; track item) {\n <mat-option [value]=\"item\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" required>\n <mat-label>\u4E8C\u7EA7\u5206\u7C7B</mat-label>\n <mat-select multiple name=\"id\" #select=\"matSelect\" (selectionChange)=\"onChildCategoryChange($event)\">\n @for (item of childrenCategories; track item) {\n <mat-option [value]=\"item\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label>\u7C7B\u578B</mat-label>\n <mat-select name=\"type\" [(ngModel)]=\"course.type\" required>\n @for (item of courseType; track item) {\n <mat-option [value]=\"item.key\">\n {{ item.value }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n @if (course.type && course.type.toString() !== 'ONLINE') {\n <mat-form-field appearance=\"fill\" ngModelGroup=\"classroom\">\n <mat-label>\u6559\u5BA4</mat-label>\n <mat-select [(ngModel)]=\"course.classroom\" name=\"id\" required>\n @for (classroom of classrooms; track classroom) {\n <mat-option [value]=\"classroom\" (selectionChange)=\"onClassroomSelected($event)\">\n <div class=\"flex gap-3\">\n <span>{{ classroom.name }}</span>\n <span> {{ classroom.address }}</span>\n </div>\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </div>\n <div>\n <div class=\"py-3\">\n <div class=\"text-xl font-medium\">\u56FE\u7247\u4FE1\u606F</div>\n <div class=\"text-sm font-thin text-gray-500\">\u56FE\u7247\u6587\u4EF6\u5927\u5C0F\u9650\u5236\u57285MB\u4EE5\u4E0B</div>\n </div>\n <rolatech-media-list (upload)=\"onUpload($event)\" [isUploading]=\"isUploading\">\n @for (item of media; track item; let i = $index) {\n <rolatech-media-list-item\n [media]=\"item\"\n (mediaItemClick)=\"onImageClick(i)\"\n (deleteMedia)=\"onMediaDelete($event)\"\n ></rolatech-media-list-item>\n }\n </rolatech-media-list>\n </div>\n </form>\n </section>\n <div class=\"mt-3\">\n <button mat-flat-button class=\"w-28\" (click)=\"create()\">\u521B\u5EFA</button>\n </div>\n</div>\n", styles: ["mat-form-field{width:100%}\n"] }]
3510
3510
  }] });
3511
3511
 
3512
- class CourseManageRequestComponent {
3513
- constructor(dialog, snackBar, courseService) {
3514
- this.dialog = dialog;
3515
- this.snackBar = snackBar;
3516
- this.courseService = courseService;
3512
+ class CourseManageApplicationComponent extends BaseComponent {
3513
+ constructor() {
3514
+ super(...arguments);
3515
+ this.courseService = inject(CourseService);
3517
3516
  this.isLoading = false;
3518
3517
  this.isSearch = false;
3519
3518
  this.length = 100;
@@ -3576,17 +3575,26 @@ class CourseManageRequestComponent {
3576
3575
  },
3577
3576
  error: (e) => {
3578
3577
  this.isLoading = false;
3579
- this.snackBar.open(e.message);
3578
+ this.snackBarService.open(e.message);
3580
3579
  },
3581
3580
  });
3582
3581
  }
3583
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CourseManageRequestComponent, deps: [{ token: i1$2.MatDialog }, { token: i3$3.MatSnackBar }, { token: CourseService }], target: i0.ɵɵFactoryTarget.Component }); }
3584
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.5", type: CourseManageRequestComponent, isStandalone: true, selector: "rolatech-course-manage-request", viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], ngImport: i0, template: "<rolatech-toolbar title=\"\u5B66\u751F\u6C42\u8BFE\"></rolatech-toolbar>\n<table mat-table [dataSource]=\"dataSource\">\n <!-- name Column -->\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef>\u6807\u9898</th>\n <td mat-cell *matCellDef=\"let item\">{{ item.title }}</td>\n </ng-container>\n\n <!-- status Column -->\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef>\u72B6\u6001</th>\n <td mat-cell *matCellDef=\"let item\">{{ status[item.status] }}</td>\n </ng-container>\n\n <!-- createdAt Column -->\n <ng-container matColumnDef=\"createdAt\">\n <th mat-header-cell *matHeaderCellDef>\u521B\u5EFA\u65E5\u671F</th>\n <td mat-cell *matCellDef=\"let item\">{{ item.createdAt }}</td>\n </ng-container>\n\n <!-- actions Column -->\n <ng-container matColumnDef=\"actions\" stickyEnd>\n <th mat-header-cell *matHeaderCellDef class=\"actions\">\u8BE6\u60C5</th>\n <td mat-cell *matCellDef=\"let item\" class=\"actions\">\n <!-- <a (click)=\"edit(item)\"> \u7F16\u8F91 </a> -->\n <!-- <a [routerLink]=\"['../', item.id]\"> \u8BE6\u60C5 </a> -->\n <a routerLink=\"/console/courses/requests/{{ item.id }}\" class=\"underline\"> \u8BE6\u60C5 </a>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n</table>\n<mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"pageEvent = find($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;min-width:80px;font-size:.8rem}.mat-mdc-header-cell.actions{text-align:right;max-width:180px;width:180px}.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: MatTableModule }, { kind: "component", type: i3$4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3$4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3$4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3$4.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3$4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3$4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3$4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3$4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3$4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3$4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i5$3.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }] }); }
3582
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CourseManageApplicationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3583
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.5", type: CourseManageApplicationComponent, isStandalone: true, selector: "rolatech-course-manage-application", viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<rolatech-toolbar title=\"\u5B66\u751F\u6C42\u8BFE\"></rolatech-toolbar>\n<table mat-table [dataSource]=\"dataSource\">\n <!-- name Column -->\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef>\u6807\u9898</th>\n <td mat-cell *matCellDef=\"let item\">{{ item.title }}</td>\n </ng-container>\n\n <!-- status Column -->\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef>\u72B6\u6001</th>\n <td mat-cell *matCellDef=\"let item\">{{ status[item.status] }}</td>\n </ng-container>\n\n <!-- createdAt Column -->\n <ng-container matColumnDef=\"createdAt\">\n <th mat-header-cell *matHeaderCellDef>\u521B\u5EFA\u65E5\u671F</th>\n <td mat-cell *matCellDef=\"let item\">{{ item.createdAt }}</td>\n </ng-container>\n\n <!-- actions Column -->\n <ng-container matColumnDef=\"actions\" stickyEnd>\n <th mat-header-cell *matHeaderCellDef class=\"actions\">\u8BE6\u60C5</th>\n <td mat-cell *matCellDef=\"let item\" class=\"actions\">\n <!-- <a (click)=\"edit(item)\"> \u7F16\u8F91 </a> -->\n <!-- <a [routerLink]=\"['../', item.id]\"> \u8BE6\u60C5 </a> -->\n <a routerLink=\"/console/courses/requests/{{ item.id }}\" class=\"underline\"> \u8BE6\u60C5 </a>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n</table>\n<mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"pageEvent = find($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;min-width:80px;font-size:.8rem}.mat-mdc-header-cell.actions{text-align:right;max-width:180px;width:180px}.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: MatTableModule }, { kind: "component", type: i3$4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3$4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3$4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3$4.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3$4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3$4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3$4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3$4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3$4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3$4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i5$3.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }] }); }
3585
3584
  }
3586
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CourseManageRequestComponent, decorators: [{
3585
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CourseManageApplicationComponent, decorators: [{
3587
3586
  type: Component,
3588
- args: [{ selector: 'rolatech-course-manage-request', imports: [MatTableModule, RouterLink, MatPaginatorModule, ToolbarComponent], template: "<rolatech-toolbar title=\"\u5B66\u751F\u6C42\u8BFE\"></rolatech-toolbar>\n<table mat-table [dataSource]=\"dataSource\">\n <!-- name Column -->\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef>\u6807\u9898</th>\n <td mat-cell *matCellDef=\"let item\">{{ item.title }}</td>\n </ng-container>\n\n <!-- status Column -->\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef>\u72B6\u6001</th>\n <td mat-cell *matCellDef=\"let item\">{{ status[item.status] }}</td>\n </ng-container>\n\n <!-- createdAt Column -->\n <ng-container matColumnDef=\"createdAt\">\n <th mat-header-cell *matHeaderCellDef>\u521B\u5EFA\u65E5\u671F</th>\n <td mat-cell *matCellDef=\"let item\">{{ item.createdAt }}</td>\n </ng-container>\n\n <!-- actions Column -->\n <ng-container matColumnDef=\"actions\" stickyEnd>\n <th mat-header-cell *matHeaderCellDef class=\"actions\">\u8BE6\u60C5</th>\n <td mat-cell *matCellDef=\"let item\" class=\"actions\">\n <!-- <a (click)=\"edit(item)\"> \u7F16\u8F91 </a> -->\n <!-- <a [routerLink]=\"['../', item.id]\"> \u8BE6\u60C5 </a> -->\n <a routerLink=\"/console/courses/requests/{{ item.id }}\" class=\"underline\"> \u8BE6\u60C5 </a>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n</table>\n<mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"pageEvent = find($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;min-width:80px;font-size:.8rem}.mat-mdc-header-cell.actions{text-align:right;max-width:180px;width:180px}.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"] }]
3589
- }], ctorParameters: () => [{ type: i1$2.MatDialog }, { type: i3$3.MatSnackBar }, { type: CourseService }] });
3587
+ args: [{ selector: 'rolatech-course-manage-application', imports: [MatTableModule, RouterLink, MatPaginatorModule, ToolbarComponent], template: "<rolatech-toolbar title=\"\u5B66\u751F\u6C42\u8BFE\"></rolatech-toolbar>\n<table mat-table [dataSource]=\"dataSource\">\n <!-- name Column -->\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef>\u6807\u9898</th>\n <td mat-cell *matCellDef=\"let item\">{{ item.title }}</td>\n </ng-container>\n\n <!-- status Column -->\n <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef>\u72B6\u6001</th>\n <td mat-cell *matCellDef=\"let item\">{{ status[item.status] }}</td>\n </ng-container>\n\n <!-- createdAt Column -->\n <ng-container matColumnDef=\"createdAt\">\n <th mat-header-cell *matHeaderCellDef>\u521B\u5EFA\u65E5\u671F</th>\n <td mat-cell *matCellDef=\"let item\">{{ item.createdAt }}</td>\n </ng-container>\n\n <!-- actions Column -->\n <ng-container matColumnDef=\"actions\" stickyEnd>\n <th mat-header-cell *matHeaderCellDef class=\"actions\">\u8BE6\u60C5</th>\n <td mat-cell *matCellDef=\"let item\" class=\"actions\">\n <!-- <a (click)=\"edit(item)\"> \u7F16\u8F91 </a> -->\n <!-- <a [routerLink]=\"['../', item.id]\"> \u8BE6\u60C5 </a> -->\n <a routerLink=\"/console/courses/requests/{{ item.id }}\" class=\"underline\"> \u8BE6\u60C5 </a>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n</table>\n<mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"pageEvent = find($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;min-width:80px;font-size:.8rem}.mat-mdc-header-cell.actions{text-align:right;max-width:180px;width:180px}.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"] }]
3588
+ }] });
3589
+
3590
+ class CourseManageApplicationDetailComponent {
3591
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CourseManageApplicationDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3592
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: CourseManageApplicationDetailComponent, isStandalone: true, selector: "rolatech-course-manage-application-detail", ngImport: i0, template: "<rolatech-toolbar title=\"\u8BE6\u60C5\" link=\"../\"></rolatech-toolbar>\n", styles: [""], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }] }); }
3593
+ }
3594
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CourseManageApplicationDetailComponent, decorators: [{
3595
+ type: Component,
3596
+ args: [{ selector: 'rolatech-course-manage-application-detail', imports: [ToolbarComponent], template: "<rolatech-toolbar title=\"\u8BE6\u60C5\" link=\"../\"></rolatech-toolbar>\n" }]
3597
+ }] });
3590
3598
 
3591
3599
  const courseManageRoutes = [
3592
3600
  {
@@ -3598,8 +3606,12 @@ const courseManageRoutes = [
3598
3606
  component: CourseManageCreateComponent,
3599
3607
  },
3600
3608
  {
3601
- path: 'request',
3602
- component: CourseManageRequestComponent,
3609
+ path: 'applications',
3610
+ component: CourseManageApplicationComponent,
3611
+ },
3612
+ {
3613
+ path: 'applications/:id',
3614
+ component: CourseManageApplicationDetailComponent,
3603
3615
  },
3604
3616
  {
3605
3617
  path: ':id/manage',