@rolatech/angular-course 17.3.28 → 17.3.30
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.
- package/esm2022/lib/components/course-pricing-add-dialog/course-pricing-add-dialog.component.mjs +10 -18
- package/esm2022/lib/components/course-schedule-add-dialog/course-schedule-add-dialog.component.mjs +10 -18
- package/esm2022/lib/components/course-section-lecture-video-dialog/course-section-lecture-video-dialog.component.mjs +3 -3
- package/esm2022/lib/pages/course-manage/course-manage-pricing/course-manage-pricing.component.mjs +42 -41
- package/esm2022/lib/pages/course-manage/course-manage-schedule/course-manage-schedule.component.mjs +20 -22
- package/fesm2022/{rolatech-angular-course-course-index.component-DqjxHkQv.mjs → rolatech-angular-course-course-index.component-BILowjd2.mjs} +4 -4
- package/fesm2022/{rolatech-angular-course-course-index.component-DqjxHkQv.mjs.map → rolatech-angular-course-course-index.component-BILowjd2.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-course-rolatech-angular-course-B3LpO9fo.mjs → rolatech-angular-course-rolatech-angular-course-Du0SRSCJ.mjs} +76 -81
- package/fesm2022/rolatech-angular-course-rolatech-angular-course-Du0SRSCJ.mjs.map +1 -0
- package/fesm2022/rolatech-angular-course.mjs +1 -1
- package/lib/components/course-pricing-add-dialog/course-pricing-add-dialog.component.d.ts +5 -7
- package/lib/components/course-schedule-add-dialog/course-schedule-add-dialog.component.d.ts +5 -7
- package/lib/pages/course-manage/course-manage-pricing/course-manage-pricing.component.d.ts +2 -9
- package/lib/pages/course-manage/course-manage-schedule/course-manage-schedule.component.d.ts +0 -2
- package/package.json +1 -1
- package/themes/_default.scss +1 -1
- package/fesm2022/rolatech-angular-course-rolatech-angular-course-B3LpO9fo.mjs.map +0 -1
|
@@ -891,7 +891,7 @@ class CourseSectionLectureVideoDialogComponent {
|
|
|
891
891
|
});
|
|
892
892
|
}
|
|
893
893
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseSectionLectureVideoDialogComponent, deps: [{ token: i1$3.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
894
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: CourseSectionLectureVideoDialogComponent, isStandalone: true, selector: "rolatech-course-section-lecture-video-dialog", outputs: { thumbnailUpload: "thumbnailUpload" }, ngImport: i0, template: "<div class=\"flex flex-col-reverse
|
|
894
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: CourseSectionLectureVideoDialogComponent, isStandalone: true, selector: "rolatech-course-section-lecture-video-dialog", outputs: { thumbnailUpload: "thumbnailUpload" }, ngImport: i0, template: "<div class=\"flex flex-col-reverse md:flex-row justify-between h-full gap-3\">\n <div class=\"w-full md:w-1/2\">\n <div>\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> \u5C01\u9762 </span>\n <span class=\"text-sm\">\u4E00\u4E2A\u597D\u7684\u5C01\u9762\u53EF\u4EE5\u5F15\u8D77\u66F4\u591A\u7684\u5173\u6CE8</span>\n </div>\n\n <div class=\"flex gap-3\">\n <div\n class=\"p-3 w-36 flex flex-col items-center justify-center outline-dashed outline-1 rounded cursor-pointer\"\n (click)=\"fileInput.click()\"\n >\n <mat-icon>upload</mat-icon>\n <span class=\"text-sm\">\u4E0A\u4F20\u5C01\u9762</span>\n </div>\n <input type=\"file\" accept=\"image/*\" (change)=\"onThumbnailUpload($event)\" #fileInput style=\"display: none\" />\n @if (lecture.item.thumbnail) {\n <div class=\"aspect-video w-32 h-auto bg-black\">\n <img [src]=\"lecture.item.thumbnail\" class=\"aspect-video object-contain\" />\n </div>\n } @else {\n <div class=\"aspect-video w-32 h-auto\">\n <img [src]=\"mediaSrc\" class=\"aspect-video object-contain\" />\n </div>\n }\n </div>\n </div>\n <div class=\"mt-3\">\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> \u8BD5\u770B\u5185\u5BB9 </span>\n <span class=\"text-sm\">\u5C11\u91CF\u7684\u8BD5\u770B\u5185\u5BB9, \u53EF\u4EE5\u589E\u52A0\u8D2D\u4E70\u7387</span>\n </div>\n <mat-checkbox color=\"primary\" (change)=\"onPreviewChange($event)\" [checked]=\"lecture.item.canBePreviewed\"\n >\u5141\u8BB8\u8BD5\u770B</mat-checkbox\n >\n </div>\n </div>\n <div class=\"w-full md:w-1/2\">\n @if (lecture) {\n <div>\n <div id=\"dplayer\" class=\"w-full h-auto aspect-video md:rounded-xl\"></div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatStepperModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }] }); }
|
|
895
895
|
}
|
|
896
896
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseSectionLectureVideoDialogComponent, decorators: [{
|
|
897
897
|
type: Component,
|
|
@@ -904,7 +904,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
904
904
|
MatButtonModule,
|
|
905
905
|
MatDialogClose,
|
|
906
906
|
MatCheckboxModule,
|
|
907
|
-
], template: "<div class=\"flex flex-col-reverse
|
|
907
|
+
], template: "<div class=\"flex flex-col-reverse md:flex-row justify-between h-full gap-3\">\n <div class=\"w-full md:w-1/2\">\n <div>\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> \u5C01\u9762 </span>\n <span class=\"text-sm\">\u4E00\u4E2A\u597D\u7684\u5C01\u9762\u53EF\u4EE5\u5F15\u8D77\u66F4\u591A\u7684\u5173\u6CE8</span>\n </div>\n\n <div class=\"flex gap-3\">\n <div\n class=\"p-3 w-36 flex flex-col items-center justify-center outline-dashed outline-1 rounded cursor-pointer\"\n (click)=\"fileInput.click()\"\n >\n <mat-icon>upload</mat-icon>\n <span class=\"text-sm\">\u4E0A\u4F20\u5C01\u9762</span>\n </div>\n <input type=\"file\" accept=\"image/*\" (change)=\"onThumbnailUpload($event)\" #fileInput style=\"display: none\" />\n @if (lecture.item.thumbnail) {\n <div class=\"aspect-video w-32 h-auto bg-black\">\n <img [src]=\"lecture.item.thumbnail\" class=\"aspect-video object-contain\" />\n </div>\n } @else {\n <div class=\"aspect-video w-32 h-auto\">\n <img [src]=\"mediaSrc\" class=\"aspect-video object-contain\" />\n </div>\n }\n </div>\n </div>\n <div class=\"mt-3\">\n <div class=\"py-3 flex flex-col\">\n <span class=\"text-lg font-bold\"> \u8BD5\u770B\u5185\u5BB9 </span>\n <span class=\"text-sm\">\u5C11\u91CF\u7684\u8BD5\u770B\u5185\u5BB9, \u53EF\u4EE5\u589E\u52A0\u8D2D\u4E70\u7387</span>\n </div>\n <mat-checkbox color=\"primary\" (change)=\"onPreviewChange($event)\" [checked]=\"lecture.item.canBePreviewed\"\n >\u5141\u8BB8\u8BD5\u770B</mat-checkbox\n >\n </div>\n </div>\n <div class=\"w-full md:w-1/2\">\n @if (lecture) {\n <div>\n <div id=\"dplayer\" class=\"w-full h-auto aspect-video md:rounded-xl\"></div>\n </div>\n }\n </div>\n</div>\n" }]
|
|
908
908
|
}], ctorParameters: () => [{ type: i1$3.MatDialogRef }, { type: undefined, decorators: [{
|
|
909
909
|
type: Inject,
|
|
910
910
|
args: [MAT_DIALOG_DATA]
|
|
@@ -1071,33 +1071,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
1071
1071
|
}], ctorParameters: () => [] });
|
|
1072
1072
|
|
|
1073
1073
|
class CoursePricingAddDialogComponent {
|
|
1074
|
-
constructor(
|
|
1075
|
-
this.
|
|
1076
|
-
this.data = data;
|
|
1074
|
+
constructor() {
|
|
1075
|
+
this.output = output();
|
|
1077
1076
|
this.pricing = {
|
|
1078
1077
|
min: 0,
|
|
1079
1078
|
max: 0,
|
|
1080
1079
|
total: 0,
|
|
1081
1080
|
};
|
|
1082
1081
|
}
|
|
1083
|
-
|
|
1084
|
-
this.
|
|
1082
|
+
ngDoCheck() {
|
|
1083
|
+
this.output.emit(this.pricing);
|
|
1085
1084
|
}
|
|
1086
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CoursePricingAddDialogComponent, deps: [
|
|
1087
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1085
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CoursePricingAddDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1086
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: CoursePricingAddDialogComponent, isStandalone: true, selector: "rolatech-course-pricing-add-dialog", outputs: { output: "output" }, ngImport: i0, template: "<rolatech-pricing-item [pricing]=\"pricing\"></rolatech-pricing-item>\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: PricingItemComponent, selector: "rolatech-pricing-item", inputs: ["actions", "pricing"], outputs: ["pricingChange", "delete", "save"] }, { kind: "ngmodule", type: MatButtonModule }] }); }
|
|
1088
1087
|
}
|
|
1089
1088
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CoursePricingAddDialogComponent, decorators: [{
|
|
1090
1089
|
type: Component,
|
|
1091
|
-
args: [{ selector: 'rolatech-course-pricing-add-dialog', standalone: true, imports: [MatIconModule, PricingItemComponent, MatButtonModule
|
|
1092
|
-
}]
|
|
1093
|
-
type: Inject,
|
|
1094
|
-
args: [MAT_DIALOG_DATA]
|
|
1095
|
-
}] }] });
|
|
1090
|
+
args: [{ selector: 'rolatech-course-pricing-add-dialog', standalone: true, imports: [MatIconModule, PricingItemComponent, MatButtonModule], template: "<rolatech-pricing-item [pricing]=\"pricing\"></rolatech-pricing-item>\n", styles: ["mat-form-field{width:100%}\n"] }]
|
|
1091
|
+
}] });
|
|
1096
1092
|
|
|
1097
1093
|
class CourseScheduleAddDialogComponent {
|
|
1098
|
-
constructor(
|
|
1099
|
-
this.
|
|
1100
|
-
this.data = data;
|
|
1094
|
+
constructor() {
|
|
1095
|
+
this.output = output();
|
|
1101
1096
|
this.schedule = {
|
|
1102
1097
|
title: '',
|
|
1103
1098
|
content: '',
|
|
@@ -1105,19 +1100,16 @@ class CourseScheduleAddDialogComponent {
|
|
|
1105
1100
|
endAt: '',
|
|
1106
1101
|
};
|
|
1107
1102
|
}
|
|
1108
|
-
|
|
1109
|
-
this.
|
|
1103
|
+
ngDoCheck() {
|
|
1104
|
+
this.output.emit(this.schedule);
|
|
1110
1105
|
}
|
|
1111
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseScheduleAddDialogComponent, deps: [
|
|
1112
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseScheduleAddDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1107
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: CourseScheduleAddDialogComponent, isStandalone: true, selector: "rolatech-course-schedule-add-dialog", outputs: { output: "output" }, ngImport: i0, template: "<rolatech-schedule-item [value]=\"schedule\"></rolatech-schedule-item>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: ScheduleItemComponent, selector: "rolatech-schedule-item", inputs: ["value", "actions"], outputs: ["delete", "save"] }, { kind: "ngmodule", type: MatButtonModule }] }); }
|
|
1113
1108
|
}
|
|
1114
1109
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseScheduleAddDialogComponent, decorators: [{
|
|
1115
1110
|
type: Component,
|
|
1116
|
-
args: [{ selector: 'rolatech-course-schedule-add-dialog', standalone: true, imports: [MatIconModule, ScheduleItemComponent, MatButtonModule
|
|
1117
|
-
}]
|
|
1118
|
-
type: Inject,
|
|
1119
|
-
args: [MAT_DIALOG_DATA]
|
|
1120
|
-
}] }] });
|
|
1111
|
+
args: [{ selector: 'rolatech-course-schedule-add-dialog', standalone: true, imports: [MatIconModule, ScheduleItemComponent, MatButtonModule], template: "<rolatech-schedule-item [value]=\"schedule\"></rolatech-schedule-item>\n" }]
|
|
1112
|
+
}] });
|
|
1121
1113
|
|
|
1122
1114
|
class CoursePricingDialogComponent {
|
|
1123
1115
|
constructor(dialogRef, data, courseService, snackBar, dialog) {
|
|
@@ -1932,7 +1924,7 @@ const courseRoutes = [
|
|
|
1932
1924
|
children: [
|
|
1933
1925
|
{
|
|
1934
1926
|
path: '',
|
|
1935
|
-
loadComponent: () => import('./rolatech-angular-course-course-index.component-
|
|
1927
|
+
loadComponent: () => import('./rolatech-angular-course-course-index.component-BILowjd2.mjs').then((x) => x.CourseIndexComponent),
|
|
1936
1928
|
},
|
|
1937
1929
|
{
|
|
1938
1930
|
path: 'categories/:id',
|
|
@@ -2111,7 +2103,6 @@ class CourseManageScheduleComponent extends BaseComponent {
|
|
|
2111
2103
|
constructor() {
|
|
2112
2104
|
super(...arguments);
|
|
2113
2105
|
this.courseService = inject(CourseService);
|
|
2114
|
-
this.snackBar = inject(MatSnackBar);
|
|
2115
2106
|
this.isLoading = false;
|
|
2116
2107
|
this.schedule = [];
|
|
2117
2108
|
this.status = CourseStatus;
|
|
@@ -2136,7 +2127,7 @@ class CourseManageScheduleComponent extends BaseComponent {
|
|
|
2136
2127
|
title: '添加课表',
|
|
2137
2128
|
cancelText: '取消',
|
|
2138
2129
|
confirmText: '确认',
|
|
2139
|
-
component:
|
|
2130
|
+
component: CourseScheduleAddDialogComponent,
|
|
2140
2131
|
data: {},
|
|
2141
2132
|
};
|
|
2142
2133
|
this.dialogService.open(options);
|
|
@@ -2146,10 +2137,10 @@ class CourseManageScheduleComponent extends BaseComponent {
|
|
|
2146
2137
|
this.courseService.addSchedule(this.id, schedule).subscribe({
|
|
2147
2138
|
next: (res) => {
|
|
2148
2139
|
this.schedule.push(res.data);
|
|
2149
|
-
this.
|
|
2140
|
+
this.snackBarService.open('添加成功');
|
|
2150
2141
|
},
|
|
2151
2142
|
error: (error) => {
|
|
2152
|
-
this.
|
|
2143
|
+
this.snackBarService.open(error.message);
|
|
2153
2144
|
},
|
|
2154
2145
|
});
|
|
2155
2146
|
}
|
|
@@ -2175,10 +2166,10 @@ class CourseManageScheduleComponent extends BaseComponent {
|
|
|
2175
2166
|
if (result) {
|
|
2176
2167
|
this.courseService.addSchedule(this.id, { schedule: result }).subscribe({
|
|
2177
2168
|
next: (res) => {
|
|
2178
|
-
this.
|
|
2169
|
+
this.snackBarService.open('编辑成功');
|
|
2179
2170
|
},
|
|
2180
2171
|
error: (error) => {
|
|
2181
|
-
this.
|
|
2172
|
+
this.snackBarService.open(error.message);
|
|
2182
2173
|
},
|
|
2183
2174
|
});
|
|
2184
2175
|
}
|
|
@@ -2188,32 +2179,32 @@ class CourseManageScheduleComponent extends BaseComponent {
|
|
|
2188
2179
|
onScheduleSave(schedule) {
|
|
2189
2180
|
this.courseService.updateSchedule(this.id, schedule.id, schedule).subscribe({
|
|
2190
2181
|
next: (res) => {
|
|
2191
|
-
this.
|
|
2182
|
+
this.snackBarService.open('保存成功');
|
|
2192
2183
|
},
|
|
2193
2184
|
error: (e) => {
|
|
2194
|
-
this.
|
|
2185
|
+
this.snackBarService.open(e.message);
|
|
2195
2186
|
},
|
|
2196
2187
|
});
|
|
2197
2188
|
}
|
|
2198
2189
|
onScheduleDelete(schedule) {
|
|
2199
|
-
const
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2190
|
+
const options = {
|
|
2191
|
+
title: '删除课表',
|
|
2192
|
+
message: '确定删除此课表吗?',
|
|
2193
|
+
cancelText: '取消',
|
|
2194
|
+
confirmText: '确认',
|
|
2195
|
+
};
|
|
2196
|
+
this.dialogService.open(options);
|
|
2197
|
+
this.dialogService.confirmed().subscribe((result) => {
|
|
2207
2198
|
if (result) {
|
|
2208
2199
|
this.courseService.deleteSchedule(this.id, schedule.id).subscribe({
|
|
2209
2200
|
next: (res) => {
|
|
2210
2201
|
remove(this.schedule, {
|
|
2211
2202
|
id: schedule.id,
|
|
2212
2203
|
});
|
|
2213
|
-
this.
|
|
2204
|
+
this.snackBarService.open(res.data);
|
|
2214
2205
|
},
|
|
2215
2206
|
error: (e) => {
|
|
2216
|
-
this.
|
|
2207
|
+
this.snackBarService.open(e.message);
|
|
2217
2208
|
},
|
|
2218
2209
|
});
|
|
2219
2210
|
}
|
|
@@ -2227,19 +2218,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
2227
2218
|
args: [{ selector: 'rolatech-course-manage-schedule', standalone: true, imports: [ScheduleItemComponent, MatButtonModule, MatIconModule, ToolbarComponent, CourseManageContentComponent], template: "<rolatech-course-manage-content>\n <rolatech-toolbar title=\"\u8BFE\u7A0B\u8868\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (item of schedule; track item) {\n <rolatech-schedule-item\n [value]=\"item\"\n [actions]=\"true\"\n (save)=\"onScheduleSave($event)\"\n (delete)=\"onScheduleDelete($event)\"\n >\n </rolatech-schedule-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addSchedule()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>\u589E\u52A0\u8BFE\u8868</span>\n </button>\n </div>\n</rolatech-course-manage-content>\n" }]
|
|
2228
2219
|
}] });
|
|
2229
2220
|
|
|
2230
|
-
class CourseManagePricingComponent {
|
|
2221
|
+
class CourseManagePricingComponent extends BaseComponent {
|
|
2231
2222
|
constructor() {
|
|
2232
|
-
|
|
2223
|
+
super(...arguments);
|
|
2233
2224
|
this.courseService = inject(CourseService);
|
|
2234
|
-
this.dialog = inject(MatDialog);
|
|
2235
|
-
this.snackBar = inject(MatSnackBar);
|
|
2236
2225
|
this.isLoading = false;
|
|
2237
2226
|
this.pricing = [];
|
|
2238
2227
|
this.status = CourseStatus;
|
|
2239
2228
|
this.courseType = CourseType;
|
|
2240
|
-
this.id = this.route.parent?.snapshot.paramMap.get('id');
|
|
2241
2229
|
}
|
|
2242
2230
|
ngOnInit() {
|
|
2231
|
+
this.id = this.route.parent?.snapshot.paramMap.get('id');
|
|
2243
2232
|
this.find();
|
|
2244
2233
|
}
|
|
2245
2234
|
find() {
|
|
@@ -2252,45 +2241,51 @@ class CourseManagePricingComponent {
|
|
|
2252
2241
|
});
|
|
2253
2242
|
}
|
|
2254
2243
|
editPricing() {
|
|
2255
|
-
const
|
|
2244
|
+
const options = {
|
|
2256
2245
|
width: '500px',
|
|
2246
|
+
title: '编辑价格',
|
|
2257
2247
|
height: '90%',
|
|
2248
|
+
cancelText: '取消',
|
|
2249
|
+
confirmText: '确认',
|
|
2250
|
+
component: CoursePricingAddDialogComponent,
|
|
2258
2251
|
data: {
|
|
2259
|
-
title: '编辑价格',
|
|
2260
2252
|
courseId: this.id,
|
|
2261
2253
|
pricing: this.pricing,
|
|
2262
2254
|
},
|
|
2263
|
-
}
|
|
2264
|
-
|
|
2255
|
+
};
|
|
2256
|
+
this.dialogService.open(options);
|
|
2257
|
+
this.dialogService.confirmed().subscribe((result) => {
|
|
2265
2258
|
if (result) {
|
|
2266
2259
|
this.courseService.addPricing(this.id, { pricing: result }).subscribe({
|
|
2267
2260
|
next: (res) => {
|
|
2268
|
-
this.
|
|
2261
|
+
this.snackBarService.open('编辑成功');
|
|
2269
2262
|
},
|
|
2270
2263
|
error: (error) => {
|
|
2271
|
-
this.
|
|
2264
|
+
this.snackBarService.open(error.message);
|
|
2272
2265
|
},
|
|
2273
2266
|
});
|
|
2274
2267
|
}
|
|
2275
2268
|
});
|
|
2276
2269
|
}
|
|
2277
2270
|
addPricing() {
|
|
2278
|
-
const
|
|
2279
|
-
disableClose: true,
|
|
2271
|
+
const options = {
|
|
2280
2272
|
width: '500px',
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2273
|
+
title: '添加价格',
|
|
2274
|
+
cancelText: '取消',
|
|
2275
|
+
confirmText: '确认',
|
|
2276
|
+
component: CoursePricingAddDialogComponent,
|
|
2277
|
+
data: {},
|
|
2278
|
+
};
|
|
2279
|
+
this.dialogService.open(options);
|
|
2280
|
+
this.dialogService.confirmed().subscribe((pricing) => {
|
|
2286
2281
|
if (pricing) {
|
|
2287
2282
|
this.courseService.addPricing(this.id, { ...pricing, total: pricing.total * 100 }).subscribe({
|
|
2288
2283
|
next: (res) => {
|
|
2289
2284
|
this.pricing.push(res.data);
|
|
2290
|
-
this.
|
|
2285
|
+
this.snackBarService.open('添加成功');
|
|
2291
2286
|
},
|
|
2292
2287
|
error: (error) => {
|
|
2293
|
-
this.
|
|
2288
|
+
this.snackBarService.open(error.message);
|
|
2294
2289
|
},
|
|
2295
2290
|
});
|
|
2296
2291
|
}
|
|
@@ -2299,44 +2294,44 @@ class CourseManagePricingComponent {
|
|
|
2299
2294
|
onPricingSave(pricing) {
|
|
2300
2295
|
this.courseService.updatePricing(this.id, pricing.id, pricing).subscribe({
|
|
2301
2296
|
next: (res) => {
|
|
2302
|
-
this.
|
|
2297
|
+
this.snackBarService.open('保存成功');
|
|
2303
2298
|
},
|
|
2304
2299
|
error: (e) => {
|
|
2305
|
-
this.
|
|
2300
|
+
this.snackBarService.open(e.message);
|
|
2306
2301
|
},
|
|
2307
2302
|
});
|
|
2308
2303
|
}
|
|
2309
2304
|
onPricingDelete(pricing) {
|
|
2310
|
-
const
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2305
|
+
const options = {
|
|
2306
|
+
title: '删除价格',
|
|
2307
|
+
message: '确定删除此价格吗?',
|
|
2308
|
+
cancelText: '取消',
|
|
2309
|
+
confirmText: '确认',
|
|
2310
|
+
};
|
|
2311
|
+
this.dialogService.open(options);
|
|
2312
|
+
this.dialogService.confirmed().subscribe((result) => {
|
|
2318
2313
|
if (result) {
|
|
2319
2314
|
this.courseService.deletePricing(this.id, pricing.id).subscribe({
|
|
2320
2315
|
next: (res) => {
|
|
2321
2316
|
remove(this.pricing, {
|
|
2322
2317
|
id: pricing.id,
|
|
2323
2318
|
});
|
|
2324
|
-
this.
|
|
2319
|
+
this.snackBarService.open(res.data);
|
|
2325
2320
|
},
|
|
2326
2321
|
error: (e) => {
|
|
2327
|
-
this.
|
|
2322
|
+
this.snackBarService.open(e.message);
|
|
2328
2323
|
},
|
|
2329
2324
|
});
|
|
2330
2325
|
}
|
|
2331
2326
|
});
|
|
2332
2327
|
}
|
|
2333
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseManagePricingComponent, deps:
|
|
2334
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: CourseManagePricingComponent, isStandalone: true, selector: "rolatech-course-manage-pricing", ngImport: i0, template: "<rolatech-course-manage-content>\n <rolatech-toolbar title=\"\u4EF7\u683C\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (item of pricing; track item) {\n <rolatech-pricing-item\n [pricing]=\"item\"\n [actions]=\"true\"\n (save)=\"onPricingSave($event)\"\n (delete)=\"onPricingDelete($event)\"\n >\n </rolatech-pricing-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addPricing()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>\u6DFB\u52A0\u4EF7\u683C</span>\n </button>\n </div>\n</rolatech-course-manage-content>\n", styles: [""], dependencies: [{ kind: "component", type: PricingItemComponent, selector: "rolatech-pricing-item", inputs: ["actions", "pricing"], outputs: ["pricingChange", "delete", "save"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: CourseManageContentComponent, selector: "rolatech-course-manage-content" }] }); }
|
|
2328
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseManagePricingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2329
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: CourseManagePricingComponent, isStandalone: true, selector: "rolatech-course-manage-pricing", usesInheritance: true, ngImport: i0, template: "<rolatech-course-manage-content>\n <rolatech-toolbar title=\"\u4EF7\u683C\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (item of pricing; track item) {\n <rolatech-pricing-item\n [pricing]=\"item\"\n [actions]=\"true\"\n (save)=\"onPricingSave($event)\"\n (delete)=\"onPricingDelete($event)\"\n >\n </rolatech-pricing-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addPricing()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>\u6DFB\u52A0\u4EF7\u683C</span>\n </button>\n </div>\n</rolatech-course-manage-content>\n", styles: [""], dependencies: [{ kind: "component", type: PricingItemComponent, selector: "rolatech-pricing-item", inputs: ["actions", "pricing"], outputs: ["pricingChange", "delete", "save"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: CourseManageContentComponent, selector: "rolatech-course-manage-content" }] }); }
|
|
2335
2330
|
}
|
|
2336
2331
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: CourseManagePricingComponent, decorators: [{
|
|
2337
2332
|
type: Component,
|
|
2338
2333
|
args: [{ selector: 'rolatech-course-manage-pricing', standalone: true, imports: [PricingItemComponent, MatButtonModule, MatIconModule, ToolbarComponent, CourseManageContentComponent], template: "<rolatech-course-manage-content>\n <rolatech-toolbar title=\"\u4EF7\u683C\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (item of pricing; track item) {\n <rolatech-pricing-item\n [pricing]=\"item\"\n [actions]=\"true\"\n (save)=\"onPricingSave($event)\"\n (delete)=\"onPricingDelete($event)\"\n >\n </rolatech-pricing-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addPricing()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>\u6DFB\u52A0\u4EF7\u683C</span>\n </button>\n </div>\n</rolatech-course-manage-content>\n" }]
|
|
2339
|
-
}]
|
|
2334
|
+
}] });
|
|
2340
2335
|
|
|
2341
2336
|
class BookingService extends BaseService {
|
|
2342
2337
|
init() {
|
|
@@ -3049,4 +3044,4 @@ const courseManageRoutes = [
|
|
|
3049
3044
|
*/
|
|
3050
3045
|
|
|
3051
3046
|
export { CourseDetailsComponent as A, CourseMediaOwnerRendererComponent as B, CourseService as C, CourseSectionLectureVideoDialogComponent as D, ScheduleItemComponent as E, DetailItemComponent as F, courseItem_component as G, PricingItemComponent as P, ScheduleDate as S, CategoryService as a, courseManageRoutes as b, courseRoutes as c, CourseStatus as d, CourseRequestStatus as e, CourseType as f, CourseReviewStatus as g, CourseSectionLectureContentType as h, CoursePreviewComponent as i, CourseInfoComponent as j, CourseMediaComponent as k, CoursePricingComponent as l, CourseActionComponent as m, CourseScheduleComponent as n, CourseSectionsComponent as o, provideAngulaCourse as p, CourseSectionItemComponent as q, CourseSectionLectureItemComponent as r, CourseSectionLectureVideoItemComponent as s, CourseItemComponent as t, CoursePricingAddDialogComponent as u, CourseScheduleAddDialogComponent as v, CoursePricingDialogComponent as w, CourseScheduleDialogComponent as x, CourseDetailsDialogComponent as y, CourseEditDialogComponent as z };
|
|
3052
|
-
//# sourceMappingURL=rolatech-angular-course-rolatech-angular-course-
|
|
3047
|
+
//# sourceMappingURL=rolatech-angular-course-rolatech-angular-course-Du0SRSCJ.mjs.map
|