@ebuilding/runtime 2.7.3 → 2.8.0
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/auth/auth-routing.module.d.ts +7 -0
- package/auth/auth.tokens.d.ts +7 -0
- package/auth/authmodule.d.ts +10 -0
- package/auth/index.d.ts +2 -0
- package/auth/login/login.component.d.ts +48 -0
- package/auth/login-cust/login.component.d.ts +47 -0
- package/core/app-feature-config.service.d.ts +26 -0
- package/core/app-feature.guard.d.ts +3 -0
- package/core/i18n/i18n.service.d.ts +25 -0
- package/core/index.d.ts +7 -0
- package/core/net/default.interceptor.d.ts +2 -0
- package/core/net/helper.d.ts +11 -0
- package/core/net/index.d.ts +2 -0
- package/core/net/refresh-token.d.ts +11 -0
- package/core/runtime-core.tokens.d.ts +18 -0
- package/core/start-default.guard.d.ts +2 -0
- package/core/startup/startup.service.d.ts +24 -0
- package/exception/index.d.ts +2 -0
- package/exception/index.module.d.ts +8 -0
- package/exception/main/index.d.ts +11 -0
- package/fesm2022/auth.mjs +500 -0
- package/fesm2022/auth.mjs.map +1 -0
- package/fesm2022/core.mjs +615 -0
- package/fesm2022/core.mjs.map +1 -0
- package/fesm2022/exception.mjs +52 -0
- package/fesm2022/exception.mjs.map +1 -0
- package/fesm2022/home.mjs +683 -0
- package/fesm2022/home.mjs.map +1 -0
- package/fesm2022/layout.mjs +2393 -0
- package/fesm2022/layout.mjs.map +1 -0
- package/home/box-bench/index.d.ts +23 -0
- package/home/box-custom/index.d.ts +18 -0
- package/home/box-item/index.d.ts +12 -0
- package/home/components/item.app/index.component.d.ts +14 -0
- package/home/components/item.calendar/index.component.d.ts +24 -0
- package/home/components/item.carousel/index.component.d.ts +21 -0
- package/home/components/item.chart/index.component.d.ts +20 -0
- package/home/components/item.notice/index.component.d.ts +17 -0
- package/home/components/item.report/index.component.d.ts +9 -0
- package/home/components/item.single/index.component.d.ts +9 -0
- package/home/components/item.workflow/index.component.d.ts +11 -0
- package/home/home-routing.module.d.ts +7 -0
- package/home/home.module.d.ts +8 -0
- package/home/home.service.d.ts +14 -0
- package/home/home.tokens.d.ts +11 -0
- package/home/index.d.ts +3 -0
- package/home/main/index.component.d.ts +25 -0
- package/layout/admin/index.component.d.ts +18 -0
- package/layout/auth/index.component.d.ts +19 -0
- package/layout/base.service.d.ts +48 -0
- package/layout/basic/basic.component.d.ts +13 -0
- package/layout/basic/widgets/clear-storage.component.d.ts +8 -0
- package/layout/basic/widgets/fullscreen.component.d.ts +8 -0
- package/layout/basic/widgets/i18n.component.d.ts +18 -0
- package/layout/basic/widgets/icon.component.d.ts +8 -0
- package/layout/basic/widgets/notify.component.d.ts +16 -0
- package/layout/basic/widgets/rtl.component.d.ts +8 -0
- package/layout/basic/widgets/search.component.d.ts +23 -0
- package/layout/basic/widgets/task.component.d.ts +8 -0
- package/layout/basic/widgets/user.component.d.ts +11 -0
- package/layout/blank/blank.component.d.ts +5 -0
- package/layout/components/nav-menu/index.d.ts +16 -0
- package/layout/components/nav-user/index.d.ts +54 -0
- package/layout/components/user/user.component.d.ts +57 -0
- package/layout/home/index.component.d.ts +20 -0
- package/layout/index.d.ts +7 -0
- package/layout/manage/index.component.d.ts +27 -0
- package/layout/manage/view.component.d.ts +21 -0
- package/package.json +50 -27
|
@@ -0,0 +1,2393 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Inject, Component, ChangeDetectionStrategy, Directive, ViewChild, Input, inject, HostListener, booleanAttribute, ChangeDetectorRef, ElementRef, EventEmitter, Output, HostBinding } from '@angular/core';
|
|
3
|
+
import * as i4 from '@angular/common';
|
|
4
|
+
import { CommonModule, DOCUMENT, UpperCasePipe } from '@angular/common';
|
|
5
|
+
import * as i1$1 from '@angular/router';
|
|
6
|
+
import { RouterOutlet, NavigationEnd, RouterLink, RouterModule, Router } from '@angular/router';
|
|
7
|
+
import { DA_SERVICE_TOKEN } from '@delon/auth';
|
|
8
|
+
import * as i2 from '@delon/theme';
|
|
9
|
+
import { I18nPipe, SettingsService, ALAIN_I18N_TOKEN, RTLService } from '@delon/theme';
|
|
10
|
+
import * as i5$1 from '@delon/theme/layout-default';
|
|
11
|
+
import { LayoutDefaultModule } from '@delon/theme/layout-default';
|
|
12
|
+
import * as i8 from '@ebuilding/runtime/shared-imports';
|
|
13
|
+
import { RuntimeSharedImportsModule } from '@ebuilding/runtime/shared-imports';
|
|
14
|
+
import * as i5$2 from '@ebuilding/abc/header-user';
|
|
15
|
+
import { GramDeonHeaderUserModule } from '@ebuilding/abc/header-user';
|
|
16
|
+
import * as i5 from '@angular/forms';
|
|
17
|
+
import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
18
|
+
import * as i1 from 'ng-zorro-antd/modal';
|
|
19
|
+
import { NzModalModule, NzModalService } from 'ng-zorro-antd/modal';
|
|
20
|
+
import { ModuleAPI, globalKey, Gram_App_Module } from '@ebuilding/base/shared.var/shared.constant';
|
|
21
|
+
import { AppCustomerId, AppSetData, AppSetName, AppSetId } from '@ebuilding/base/shared.var/shared.variable';
|
|
22
|
+
import screenfull from 'screenfull';
|
|
23
|
+
import { base64Encode } from '@ebuilding/base/shared.util/tool';
|
|
24
|
+
import * as i4$1 from 'ng-zorro-antd/message';
|
|
25
|
+
import { NzMessageService } from 'ng-zorro-antd/message';
|
|
26
|
+
import * as i6 from '@ebuilding/base/shared.srv/global.event';
|
|
27
|
+
import * as i3 from '@delon/acl';
|
|
28
|
+
import * as i10 from 'ng-zorro-antd/button';
|
|
29
|
+
import * as i6$1 from 'ng-zorro-antd/core/transition-patch';
|
|
30
|
+
import * as i12 from 'ng-zorro-antd/core/wave';
|
|
31
|
+
import * as i1$2 from 'ng-zorro-antd/menu';
|
|
32
|
+
import { NzMenuModule } from 'ng-zorro-antd/menu';
|
|
33
|
+
import * as i2$1 from 'ng-zorro-antd/dropdown';
|
|
34
|
+
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
|
|
35
|
+
import * as i15 from 'ng-zorro-antd/grid';
|
|
36
|
+
import { NzGridModule } from 'ng-zorro-antd/grid';
|
|
37
|
+
import * as i16 from 'ng-zorro-antd/select';
|
|
38
|
+
import * as i3$1 from 'ng-zorro-antd/icon';
|
|
39
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
40
|
+
import * as i2$2 from 'ng-zorro-antd/input';
|
|
41
|
+
import { NzInputModule } from 'ng-zorro-antd/input';
|
|
42
|
+
import * as i19 from 'ng-zorro-antd/form';
|
|
43
|
+
import * as i20 from 'ng-zorro-antd/avatar';
|
|
44
|
+
import { NzAvatarModule } from 'ng-zorro-antd/avatar';
|
|
45
|
+
import { filter } from 'rxjs/operators';
|
|
46
|
+
import * as i7 from '@ebuilding/runtime/core';
|
|
47
|
+
import { RUNTIME_CORE_ENVIRONMENT } from '@ebuilding/runtime/core';
|
|
48
|
+
import * as i17 from 'ng-zorro-antd/badge';
|
|
49
|
+
import { NzBadgeModule } from 'ng-zorro-antd/badge';
|
|
50
|
+
import _ from 'lodash';
|
|
51
|
+
import * as i10$1 from 'ng-zorro-antd/spin';
|
|
52
|
+
import { NzSpinModule } from 'ng-zorro-antd/spin';
|
|
53
|
+
import * as i6$2 from '@delon/theme/setting-drawer';
|
|
54
|
+
import { SettingDrawerModule } from '@delon/theme/setting-drawer';
|
|
55
|
+
import { ThemeBtnComponent } from '@delon/theme/theme-btn';
|
|
56
|
+
import * as i1$3 from '@delon/abc/notice-icon';
|
|
57
|
+
import { NoticeIconModule } from '@delon/abc/notice-icon';
|
|
58
|
+
import { parse, formatDistanceToNow, add } from 'date-fns';
|
|
59
|
+
import { NzI18nService } from 'ng-zorro-antd/i18n';
|
|
60
|
+
import * as i4$2 from 'ng-zorro-antd/auto-complete';
|
|
61
|
+
import { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';
|
|
62
|
+
import { BehaviorSubject, debounceTime, distinctUntilChanged, tap } from 'rxjs';
|
|
63
|
+
import * as i8$1 from 'ng-zorro-antd/card';
|
|
64
|
+
import { NzCardModule } from 'ng-zorro-antd/card';
|
|
65
|
+
|
|
66
|
+
class LayoutAuthComponent {
|
|
67
|
+
http;
|
|
68
|
+
tokenService;
|
|
69
|
+
copyrightShow = false;
|
|
70
|
+
copyrightName = null;
|
|
71
|
+
copyrightICP = null;
|
|
72
|
+
copyrightGAN = null;
|
|
73
|
+
constructor(http, tokenService) {
|
|
74
|
+
this.http = http;
|
|
75
|
+
this.tokenService = tokenService;
|
|
76
|
+
}
|
|
77
|
+
ngOnInit() {
|
|
78
|
+
this.tokenService.clear();
|
|
79
|
+
this.loadPageData();
|
|
80
|
+
}
|
|
81
|
+
loadPageData() {
|
|
82
|
+
this.http.get(`assets/tmp/copyright.json?rd=${Math.random()}`).subscribe((res) => {
|
|
83
|
+
if (res && res?.show) {
|
|
84
|
+
this.copyrightShow = true;
|
|
85
|
+
this.copyrightName = res?.name;
|
|
86
|
+
this.copyrightICP = res?.icp;
|
|
87
|
+
this.copyrightGAN = res?.ga;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
open1() {
|
|
92
|
+
window.open("https://beian.miit.gov.cn/#/Integrated/index", "_blank");
|
|
93
|
+
}
|
|
94
|
+
open2() {
|
|
95
|
+
window.open("https://beian.mps.gov.cn/#/query/webSearch", "_blank");
|
|
96
|
+
}
|
|
97
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutAuthComponent, deps: [{ token: i2._HttpClient }, { token: DA_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
|
|
98
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: LayoutAuthComponent, isStandalone: true, selector: "layout-auth", ngImport: i0, template: "<div class=\"log\"><img src=\"assets/images/logo3.png\" /></div>\n<div class=\"content\">\n <div class=\"left-box\">\n <img src=\"/assets/images/login/login-banner.png\">\n </div>\n <div class=\"right-box\">\n <router-outlet></router-outlet>\n </div>\n</div>\n<div class=\"copyright\" *ngIf=\"copyrightShow\">\n <ul>\n <li>Copyright @ {{copyrightName}}</li>\n <li> <a (click)=\"open1()\">{{copyrightICP}}</a></li>\n <ng-container *ngIf=\"copyrightGAN\">\n <li><img src=\"assets/images/110.png\"></li>\n <li><a (click)=\"open2()\">{{copyrightGAN}}</a></li>\n </ng-container>\n </ul>\n</div>", styles: [":host ::ng-deep{display:block;width:100%;min-width:1080px;height:100%;min-height:100%;background:#fff;background-image:url(/assets/images/login/login-bg.jpg);background-repeat:no-repeat;background-position:center 0;background-size:100% 100%}:host ::ng-deep .log{position:fixed;z-index:999;padding:19px}:host ::ng-deep .log img{width:62px;height:auto}:host ::ng-deep .content{position:fixed;top:50%;left:50%;display:-moz-flex;display:-ms-flexbox;display:-webkit-flex;display:flex;width:80%;min-width:1058px;max-width:1170px;height:500px;color:#fff;text-align:center;-ms-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}:host ::ng-deep .left-box{display:flex;flex:1;align-items:center;justify-content:center;height:100%;padding:20px 0 0;background:#331bcb;border-top-left-radius:12px;border-bottom-left-radius:12px}:host ::ng-deep .right-box{width:500px;background:#fff;border-top-right-radius:12px;border-bottom-right-radius:12px}:host ::ng-deep .copyright{position:absolute;bottom:5px;left:50%;transform:translate(-50%)}:host ::ng-deep .copyright ul{display:flex;flex-direction:row;align-items:center;padding:0;margin:0;font-size:14px}:host ::ng-deep .copyright ul li{display:flex;align-items:center;margin:0;padding:0;color:#000}:host ::ng-deep .copyright ul li a{color:#000}:host ::ng-deep .copyright ul li:after{padding:0 5px}:host ::ng-deep .copyright ul li:nth-child(1):after,:host ::ng-deep .copyright ul li:nth-child(2):after{content:\"|\"}:host ::ng-deep .copyright ul img{width:15px;display:block;margin-right:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
|
|
99
|
+
}
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutAuthComponent, decorators: [{
|
|
101
|
+
type: Component,
|
|
102
|
+
args: [{ selector: 'layout-auth', imports: [CommonModule, RouterOutlet], template: "<div class=\"log\"><img src=\"assets/images/logo3.png\" /></div>\n<div class=\"content\">\n <div class=\"left-box\">\n <img src=\"/assets/images/login/login-banner.png\">\n </div>\n <div class=\"right-box\">\n <router-outlet></router-outlet>\n </div>\n</div>\n<div class=\"copyright\" *ngIf=\"copyrightShow\">\n <ul>\n <li>Copyright @ {{copyrightName}}</li>\n <li> <a (click)=\"open1()\">{{copyrightICP}}</a></li>\n <ng-container *ngIf=\"copyrightGAN\">\n <li><img src=\"assets/images/110.png\"></li>\n <li><a (click)=\"open2()\">{{copyrightGAN}}</a></li>\n </ng-container>\n </ul>\n</div>", styles: [":host ::ng-deep{display:block;width:100%;min-width:1080px;height:100%;min-height:100%;background:#fff;background-image:url(/assets/images/login/login-bg.jpg);background-repeat:no-repeat;background-position:center 0;background-size:100% 100%}:host ::ng-deep .log{position:fixed;z-index:999;padding:19px}:host ::ng-deep .log img{width:62px;height:auto}:host ::ng-deep .content{position:fixed;top:50%;left:50%;display:-moz-flex;display:-ms-flexbox;display:-webkit-flex;display:flex;width:80%;min-width:1058px;max-width:1170px;height:500px;color:#fff;text-align:center;-ms-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}:host ::ng-deep .left-box{display:flex;flex:1;align-items:center;justify-content:center;height:100%;padding:20px 0 0;background:#331bcb;border-top-left-radius:12px;border-bottom-left-radius:12px}:host ::ng-deep .right-box{width:500px;background:#fff;border-top-right-radius:12px;border-bottom-right-radius:12px}:host ::ng-deep .copyright{position:absolute;bottom:5px;left:50%;transform:translate(-50%)}:host ::ng-deep .copyright ul{display:flex;flex-direction:row;align-items:center;padding:0;margin:0;font-size:14px}:host ::ng-deep .copyright ul li{display:flex;align-items:center;margin:0;padding:0;color:#000}:host ::ng-deep .copyright ul li a{color:#000}:host ::ng-deep .copyright ul li:after{padding:0 5px}:host ::ng-deep .copyright ul li:nth-child(1):after,:host ::ng-deep .copyright ul li:nth-child(2):after{content:\"|\"}:host ::ng-deep .copyright ul img{width:15px;display:block;margin-right:10px}\n"] }]
|
|
103
|
+
}], ctorParameters: () => [{ type: i2._HttpClient }, { type: undefined, decorators: [{
|
|
104
|
+
type: Inject,
|
|
105
|
+
args: [DA_SERVICE_TOKEN]
|
|
106
|
+
}] }] });
|
|
107
|
+
|
|
108
|
+
let HeaderUserComponent$1 = class HeaderUserComponent {
|
|
109
|
+
modalService;
|
|
110
|
+
settings;
|
|
111
|
+
router;
|
|
112
|
+
http;
|
|
113
|
+
modal;
|
|
114
|
+
msg;
|
|
115
|
+
fb;
|
|
116
|
+
tokenService;
|
|
117
|
+
globalSrv;
|
|
118
|
+
cdr;
|
|
119
|
+
get user() {
|
|
120
|
+
return this.settings.user;
|
|
121
|
+
}
|
|
122
|
+
get customerId() {
|
|
123
|
+
return this.settings.getData(AppCustomerId);
|
|
124
|
+
}
|
|
125
|
+
avatar = null;
|
|
126
|
+
listEId = [];
|
|
127
|
+
defaultEName = null;
|
|
128
|
+
setIdIsVisible = false;
|
|
129
|
+
setIdIsOkLoading = false;
|
|
130
|
+
validateEIdForm;
|
|
131
|
+
myIsVisible = false;
|
|
132
|
+
constructor(modalService, settings, router, http, modal, msg, fb, tokenService, globalSrv, cdr) {
|
|
133
|
+
this.modalService = modalService;
|
|
134
|
+
this.settings = settings;
|
|
135
|
+
this.router = router;
|
|
136
|
+
this.http = http;
|
|
137
|
+
this.modal = modal;
|
|
138
|
+
this.msg = msg;
|
|
139
|
+
this.fb = fb;
|
|
140
|
+
this.tokenService = tokenService;
|
|
141
|
+
this.globalSrv = globalSrv;
|
|
142
|
+
this.cdr = cdr;
|
|
143
|
+
this.avatar = this.user?.avatar;
|
|
144
|
+
if (this.avatar == null) {
|
|
145
|
+
this.avatar = '/assets/images/employee.png';
|
|
146
|
+
}
|
|
147
|
+
this.globalSrv.subscribe('reload-header-user', (res) => {
|
|
148
|
+
this.avatar = this.user?.avatar;
|
|
149
|
+
this.cdr.detectChanges();
|
|
150
|
+
});
|
|
151
|
+
let tmpEIds = this.settings.getData(AppSetData);
|
|
152
|
+
if (tmpEIds && tmpEIds.length > 0) {
|
|
153
|
+
this.listEId = tmpEIds;
|
|
154
|
+
}
|
|
155
|
+
this.defaultEName = this.settings.getData(AppSetName);
|
|
156
|
+
}
|
|
157
|
+
validateForm;
|
|
158
|
+
captchaTooltipIcon = {
|
|
159
|
+
type: 'info-circle',
|
|
160
|
+
theme: 'twotone',
|
|
161
|
+
};
|
|
162
|
+
submitForm() {
|
|
163
|
+
Object.values(this.validateForm.controls).forEach((control) => {
|
|
164
|
+
if (control.invalid) {
|
|
165
|
+
control.markAsDirty();
|
|
166
|
+
control.updateValueAndValidity({ onlySelf: true });
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
if (this.validateForm.valid) {
|
|
170
|
+
this.isOkLoading = true;
|
|
171
|
+
const password = base64Encode(this.validateForm.controls?.["password"]?.value);
|
|
172
|
+
const newPassword = base64Encode(this.validateForm.controls?.["newPassword"]?.value);
|
|
173
|
+
this.http
|
|
174
|
+
.post(`${ModuleAPI.system}/sys/user/updatePwd`, {
|
|
175
|
+
oldPwd: password,
|
|
176
|
+
newPwd: newPassword,
|
|
177
|
+
})
|
|
178
|
+
.subscribe((res) => {
|
|
179
|
+
this.isOkLoading = false;
|
|
180
|
+
if (res.success) {
|
|
181
|
+
this.isVisible = true;
|
|
182
|
+
this.msg.success('密码修改成功,请重新登录');
|
|
183
|
+
this.tokenService.clear();
|
|
184
|
+
this.router.navigateByUrl(this.tokenService.login_url);
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
updateConfirmValidator() {
|
|
190
|
+
Promise.resolve().then(() => this.validateForm.controls?.["confirmPassword"]?.updateValueAndValidity());
|
|
191
|
+
}
|
|
192
|
+
confirmationValidator = (control) => {
|
|
193
|
+
if (!control.value) {
|
|
194
|
+
return { required: true };
|
|
195
|
+
}
|
|
196
|
+
else if (control.value !== this.validateForm.controls?.["newPassword"]?.value) {
|
|
197
|
+
return { confirm: true, error: true };
|
|
198
|
+
}
|
|
199
|
+
return {};
|
|
200
|
+
};
|
|
201
|
+
getCaptcha(e) {
|
|
202
|
+
e.preventDefault();
|
|
203
|
+
}
|
|
204
|
+
ngOnInit() {
|
|
205
|
+
this.validateForm = this.fb.group({
|
|
206
|
+
password: [null, [Validators.required]],
|
|
207
|
+
newPassword: [null, [Validators.required]],
|
|
208
|
+
confirmPassword: [null, [Validators.required, this.confirmationValidator]],
|
|
209
|
+
});
|
|
210
|
+
this.validateEIdForm = this.fb.group({
|
|
211
|
+
eId: [null, [Validators.required]],
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
logout() {
|
|
215
|
+
this.modal.confirm({
|
|
216
|
+
nzTitle: '提示',
|
|
217
|
+
nzContent: `您确定需要退出吗?`,
|
|
218
|
+
nzOnOk: () => {
|
|
219
|
+
this.http.post(`${ModuleAPI.system}/auth/logout`, {
|
|
220
|
+
sourceType: "PC"
|
|
221
|
+
}).subscribe((res) => {
|
|
222
|
+
this.tokenService.clear();
|
|
223
|
+
this.router.navigateByUrl(this.tokenService.login_url);
|
|
224
|
+
});
|
|
225
|
+
},
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
nzFooter = null;
|
|
229
|
+
isVisible = false;
|
|
230
|
+
isOkLoading = false;
|
|
231
|
+
showModal() {
|
|
232
|
+
this.validateForm.reset();
|
|
233
|
+
this.isVisible = true;
|
|
234
|
+
}
|
|
235
|
+
showAdmin() {
|
|
236
|
+
window.open(`/admin/home`, '_blank');
|
|
237
|
+
}
|
|
238
|
+
showSettings() {
|
|
239
|
+
this.myIsVisible = true;
|
|
240
|
+
}
|
|
241
|
+
myCancel() {
|
|
242
|
+
this.myIsVisible = false;
|
|
243
|
+
}
|
|
244
|
+
setScreenfull() {
|
|
245
|
+
if (screenfull.isEnabled) {
|
|
246
|
+
screenfull.toggle();
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
handleOk() {
|
|
250
|
+
this.isOkLoading = true;
|
|
251
|
+
setTimeout(() => {
|
|
252
|
+
this.isVisible = false;
|
|
253
|
+
this.isOkLoading = false;
|
|
254
|
+
}, 3000);
|
|
255
|
+
}
|
|
256
|
+
handleCancel() {
|
|
257
|
+
this.validateForm.reset();
|
|
258
|
+
this.isVisible = false;
|
|
259
|
+
}
|
|
260
|
+
goToChangeSetId() {
|
|
261
|
+
this.setIdIsVisible = true;
|
|
262
|
+
}
|
|
263
|
+
setIdCancel() {
|
|
264
|
+
this.validateEIdForm.reset();
|
|
265
|
+
this.setIdIsVisible = false;
|
|
266
|
+
}
|
|
267
|
+
submitSetIdForm() {
|
|
268
|
+
Object.values(this.validateEIdForm.controls).forEach((control) => {
|
|
269
|
+
if (control.invalid) {
|
|
270
|
+
control.markAsDirty();
|
|
271
|
+
control.updateValueAndValidity({ onlySelf: true });
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
if (this.validateEIdForm.valid) {
|
|
275
|
+
let id = this.validateEIdForm.controls?.["eId"]?.value;
|
|
276
|
+
this.setIdIsOkLoading = true;
|
|
277
|
+
this.http.post(`${ModuleAPI.system}/sys/user/changeEId/${id}`).subscribe((res) => {
|
|
278
|
+
this.setIdIsOkLoading = false;
|
|
279
|
+
if (res.success) {
|
|
280
|
+
this.setIdIsVisible = false;
|
|
281
|
+
this.listEId.forEach((item) => {
|
|
282
|
+
if (item.id == id) {
|
|
283
|
+
this.settings.setData(AppSetId, id);
|
|
284
|
+
this.settings.setData(AppSetName, item.name);
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
this.msg.success('切换成功');
|
|
288
|
+
this.router.navigateByUrl('/home');
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderUserComponent, deps: [{ token: i1.NzModalService }, { token: i2.SettingsService }, { token: i1$1.Router }, { token: i2._HttpClient }, { token: i1.NzModalService }, { token: i4$1.NzMessageService }, { token: i5.FormBuilder }, { token: DA_SERVICE_TOKEN }, { token: i6.GramGlobalService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
294
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: HeaderUserComponent, isStandalone: true, selector: "header-user", ngImport: i0, template: "<div class=\"alain-default__nav-item d-flex align-items-center px-sm\" nz-dropdown nzPlacement=\"bottomRight\"\n nzTrigger=\"click\" [nzDropdownMenu]=\"userMenu\">\n <nz-avatar [nzSrc]=\"avatar\" nzSize=\"small\" class=\"mr-sm\"></nz-avatar>\n {{ user?.name }}\n</div>\n<nz-dropdown-menu #userMenu=\"nzDropdownMenu\">\n <div nz-menu class=\"width-sm menu-user-dropdown\">\n <ng-container *ngIf=\"listEId!! && listEId.length > 1\">\n <div nz-menu-item (click)=\"goToChangeSetId()\">\n <span nz-icon nzType=\"idcard\"></span>\n \u8EAB\u4EFD\u5207\u6362\n </div>\n <div nz-menu-divider></div>\n </ng-container>\n <div nz-menu-item (click)=\"setScreenfull()\">\n <i nz-icon nzType=\"fullscreen\" class=\"mr-sm\"></i>\n \u5168\u5C4F\u663E\u793A\n </div>\n <div nz-menu-item (click)=\"showAdmin()\" *aclIf=\"'SET'\">\n <i nz-icon nzType=\"setting\" class=\"mr-sm\"></i>\n \u540E\u53F0\u8BBE\u7F6E\n </div>\n <div nz-menu-divider></div>\n <div nz-menu-item (click)=\"showModal()\">\n <i nz-icon nzType=\"eye\" class=\"mr-sm\"></i>\n \u5BC6\u7801\u4FEE\u6539\n </div>\n <div nz-menu-item (click)=\"logout()\">\n <i nz-icon nzType=\"logout\" class=\"mr-sm\"></i>\n \u9000\u51FA\u7CFB\u7EDF\n </div>\n <div nz-menu-divider></div>\n <div nz-menu-item>\n <i nz-icon nzType=\"number\" class=\"mr-sm\"></i>\n <label class=\"customerId\">\u4F01\u4E1AID</label>{{ customerId }}\n </div>\n </div>\n</nz-dropdown-menu>\n\n<nz-modal [(nzVisible)]=\"isVisible\" nzTitle=\"\u5BC6\u7801\u4FEE\u6539\" (nzOnCancel)=\"handleCancel()\" nzClassName=\"modalPwd\"\n [nzFooter]=\"nzFooter\">\n <ng-container *nzModalContent>\n <form nz-form [formGroup]=\"validateForm\" (ngSubmit)=\"submitForm()\" class=\"frmPwd\">\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\" nzFor=\"password\" nzRequired>\u5BC6\u7801</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\" nzErrorTip=\"\u8BF7\u8F93\u5165\u5BC6\u7801\">\n <input nz-input type=\"password\" id=\"password\" formControlName=\"password\" maxLength=\"50\" />\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\" nzFor=\"newPassword\" nzRequired>\u65B0\u5BC6\u7801</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\" nzErrorTip=\"\u8BF7\u8F93\u5165\u65B0\u5BC6\u7801\">\n <input nz-input type=\"password\" id=\"newPassword\" formControlName=\"newPassword\" maxLength=\"50\"\n (ngModelChange)=\"updateConfirmValidator()\" />\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\" nzFor=\"confirmPassword\" nzRequired>\u786E\u8BA4\u5BC6\u7801</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\" [nzErrorTip]=\"errorTpl\">\n <input nz-input type=\"password\" formControlName=\"confirmPassword\" id=\"confirmPassword\" maxLength=\"50\"\n (ngModelChange)=\"updateConfirmValidator()\" />\n <ng-template #errorTpl let-control>\n <ng-container *ngIf=\"control.hasError('required')\">\u8BF7\u8F93\u5165\u786E\u8BA4\u5BC6\u7801</ng-container>\n <ng-container *ngIf=\"control.hasError('confirm')\"> \u60A8\u4FE9\u6B21\u8F93\u5165\u7684\u5BC6\u7801\u4E0D\u4E00\u81F4 </ng-container>\n </ng-template>\n </nz-form-control>\n </nz-form-item>\n <div class=\"button-box\">\n <div>\n <button nz-button nzType=\"default\" (click)=\"handleCancel()\" type=\"button\">\u53D6\u6D88</button>\n <button nz-button nzType=\"primary\" type=\"submit\" [nzLoading]=\"isOkLoading\">\u786E\u5B9A</button>\n </div>\n </div>\n </form>\n </ng-container>\n</nz-modal>\n\n<nz-modal [(nzVisible)]=\"setIdIsVisible\" nzTitle=\"\u8EAB\u4EFD\u5207\u6362\" (nzOnCancel)=\"setIdCancel()\" nzClassName=\"modalPwd\"\n [nzFooter]=\"nzFooter\">\n <form nz-form [formGroup]=\"validateEIdForm\" (ngSubmit)=\"submitSetIdForm()\" class=\"frmPwd\">\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\">\u5F53\u524D\u8EAB\u4EFD</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\">\n {{ defaultEName }}\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\" nzFor=\"setId\" nzRequired>\u5207\u6362\u8EAB\u4EFD</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\" nzErrorTip=\"\u8BF7\u9009\u62E9\u8EAB\u4EFD\">\n <nz-select id=\"eId\" formControlName=\"eId\" nzPlaceHolder=\"\u8BF7\u9009\u62E9\u8EAB\u4EFD\">\n <ng-container *ngFor=\"let item of listEId\">\n <nz-option [nzValue]=\"item.id\" [nzLabel]=\"item.name\"></nz-option>\n </ng-container>\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n\n <div class=\"button-box\">\n <div>\n <button nz-button nzType=\"default\" (click)=\"setIdCancel()\" type=\"button\">\u53D6\u6D88</button>\n <button nz-button nzType=\"primary\" type=\"submit\" [nzLoading]=\"setIdIsOkLoading\">\u786E\u5B9A</button>\n </div>\n </div>\n </form>\n</nz-modal>\n\n<nz-modal [(nzVisible)]=\"myIsVisible\" nzTitle=\"\u5173\u4E8E\u6211\u4EEC\" (nzOnCancel)=\"myCancel()\" nzClassName=\"modalMe\">\n <div *nzModalContent>\n <p>\n <label class=\"title\">\u7248\u672C\u53F7</label>\n <label>2.1.0</label>\n </p>\n <p>\n <label class=\"title\">\u8054\u7CFB\u4EBA</label>\n <label>Jack Ren</label>\n </p>\n <p>\n <label class=\"title\">\u8054\u7CFB\u90AE\u7BB1</label>\n <label>jackren0913@gmail.com</label>\n </p>\n <p>\n <label class=\"title\">\u4F01\u4E1A\u540D\u79F0</label>\n <label>\u897F\u5B89\u8398\u58A8\u79D1\u6280\u6709\u9650\u516C\u53F8</label>\n </p>\n </div>\n <div *nzModalFooter>\n <button nz-button nzType=\"default\" (click)=\"myCancel()\">\u5173\u95ED</button>\n </div>\n</nz-modal>", styles: [":host ::ng-deep{padding:0;overflow:auto;margin:auto}:host ::ng-deep header-user-pwd{display:flex;flex:1;width:100%;height:100%;padding:20px}:host ::ng-deep .alain-default__nav-item,:host ::ng-deep .alain-default__nav nz-badge{color:#262626}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: NzModalModule }, { kind: "component", type: i1.NzModalComponent, selector: "nz-modal", inputs: ["nzMask", "nzMaskClosable", "nzCloseOnNavigation", "nzVisible", "nzClosable", "nzOkLoading", "nzOkDisabled", "nzCancelDisabled", "nzCancelLoading", "nzKeyboard", "nzNoAnimation", "nzCentered", "nzDraggable", "nzContent", "nzFooter", "nzZIndex", "nzWidth", "nzWrapClassName", "nzClassName", "nzStyle", "nzTitle", "nzCloseIcon", "nzMaskStyle", "nzBodyStyle", "nzOkText", "nzCancelText", "nzOkType", "nzOkDanger", "nzIconType", "nzModalType", "nzAutofocus", "nzOnOk", "nzOnCancel"], outputs: ["nzOnOk", "nzOnCancel", "nzAfterOpen", "nzAfterClose", "nzVisibleChange"], exportAs: ["nzModal"] }, { kind: "directive", type: i1.NzModalFooterDirective, selector: "[nzModalFooter]", exportAs: ["nzModalFooter"] }, { kind: "directive", type: i1.NzModalContentDirective, selector: "[nzModalContent]", exportAs: ["nzModalContent"] }, { kind: "ngmodule", type: RuntimeSharedImportsModule }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8.FormSubmitTouchDirective, selector: "form[formGroup]" }, { kind: "directive", type: i3.ACLIfDirective, selector: "[aclIf]", inputs: ["aclIf", "aclIfThen", "aclIfElse", "except"], exportAs: ["aclIf"] }, { kind: "component", type: i10.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i6$1.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i12.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "directive", type: i1$2.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1$2.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i1$2.NzMenuDividerDirective, selector: "[nz-menu-divider]", exportAs: ["nzMenuDivider"] }, { kind: "directive", type: i2$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i2$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "directive", type: i15.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i15.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "component", type: i16.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i16.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i2$2.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "directive", type: i19.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzForm"] }, { kind: "component", type: i19.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i19.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i19.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "component", type: i20.NzAvatarComponent, selector: "nz-avatar", inputs: ["nzShape", "nzSize", "nzGap", "nzText", "nzSrc", "nzSrcSet", "nzAlt", "nzIcon"], outputs: ["nzError"], exportAs: ["nzAvatar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
295
|
+
};
|
|
296
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderUserComponent$1, decorators: [{
|
|
297
|
+
type: Component,
|
|
298
|
+
args: [{ selector: 'header-user', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
299
|
+
CommonModule,
|
|
300
|
+
FormsModule,
|
|
301
|
+
NzModalModule,
|
|
302
|
+
RuntimeSharedImportsModule
|
|
303
|
+
], template: "<div class=\"alain-default__nav-item d-flex align-items-center px-sm\" nz-dropdown nzPlacement=\"bottomRight\"\n nzTrigger=\"click\" [nzDropdownMenu]=\"userMenu\">\n <nz-avatar [nzSrc]=\"avatar\" nzSize=\"small\" class=\"mr-sm\"></nz-avatar>\n {{ user?.name }}\n</div>\n<nz-dropdown-menu #userMenu=\"nzDropdownMenu\">\n <div nz-menu class=\"width-sm menu-user-dropdown\">\n <ng-container *ngIf=\"listEId!! && listEId.length > 1\">\n <div nz-menu-item (click)=\"goToChangeSetId()\">\n <span nz-icon nzType=\"idcard\"></span>\n \u8EAB\u4EFD\u5207\u6362\n </div>\n <div nz-menu-divider></div>\n </ng-container>\n <div nz-menu-item (click)=\"setScreenfull()\">\n <i nz-icon nzType=\"fullscreen\" class=\"mr-sm\"></i>\n \u5168\u5C4F\u663E\u793A\n </div>\n <div nz-menu-item (click)=\"showAdmin()\" *aclIf=\"'SET'\">\n <i nz-icon nzType=\"setting\" class=\"mr-sm\"></i>\n \u540E\u53F0\u8BBE\u7F6E\n </div>\n <div nz-menu-divider></div>\n <div nz-menu-item (click)=\"showModal()\">\n <i nz-icon nzType=\"eye\" class=\"mr-sm\"></i>\n \u5BC6\u7801\u4FEE\u6539\n </div>\n <div nz-menu-item (click)=\"logout()\">\n <i nz-icon nzType=\"logout\" class=\"mr-sm\"></i>\n \u9000\u51FA\u7CFB\u7EDF\n </div>\n <div nz-menu-divider></div>\n <div nz-menu-item>\n <i nz-icon nzType=\"number\" class=\"mr-sm\"></i>\n <label class=\"customerId\">\u4F01\u4E1AID</label>{{ customerId }}\n </div>\n </div>\n</nz-dropdown-menu>\n\n<nz-modal [(nzVisible)]=\"isVisible\" nzTitle=\"\u5BC6\u7801\u4FEE\u6539\" (nzOnCancel)=\"handleCancel()\" nzClassName=\"modalPwd\"\n [nzFooter]=\"nzFooter\">\n <ng-container *nzModalContent>\n <form nz-form [formGroup]=\"validateForm\" (ngSubmit)=\"submitForm()\" class=\"frmPwd\">\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\" nzFor=\"password\" nzRequired>\u5BC6\u7801</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\" nzErrorTip=\"\u8BF7\u8F93\u5165\u5BC6\u7801\">\n <input nz-input type=\"password\" id=\"password\" formControlName=\"password\" maxLength=\"50\" />\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\" nzFor=\"newPassword\" nzRequired>\u65B0\u5BC6\u7801</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\" nzErrorTip=\"\u8BF7\u8F93\u5165\u65B0\u5BC6\u7801\">\n <input nz-input type=\"password\" id=\"newPassword\" formControlName=\"newPassword\" maxLength=\"50\"\n (ngModelChange)=\"updateConfirmValidator()\" />\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\" nzFor=\"confirmPassword\" nzRequired>\u786E\u8BA4\u5BC6\u7801</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\" [nzErrorTip]=\"errorTpl\">\n <input nz-input type=\"password\" formControlName=\"confirmPassword\" id=\"confirmPassword\" maxLength=\"50\"\n (ngModelChange)=\"updateConfirmValidator()\" />\n <ng-template #errorTpl let-control>\n <ng-container *ngIf=\"control.hasError('required')\">\u8BF7\u8F93\u5165\u786E\u8BA4\u5BC6\u7801</ng-container>\n <ng-container *ngIf=\"control.hasError('confirm')\"> \u60A8\u4FE9\u6B21\u8F93\u5165\u7684\u5BC6\u7801\u4E0D\u4E00\u81F4 </ng-container>\n </ng-template>\n </nz-form-control>\n </nz-form-item>\n <div class=\"button-box\">\n <div>\n <button nz-button nzType=\"default\" (click)=\"handleCancel()\" type=\"button\">\u53D6\u6D88</button>\n <button nz-button nzType=\"primary\" type=\"submit\" [nzLoading]=\"isOkLoading\">\u786E\u5B9A</button>\n </div>\n </div>\n </form>\n </ng-container>\n</nz-modal>\n\n<nz-modal [(nzVisible)]=\"setIdIsVisible\" nzTitle=\"\u8EAB\u4EFD\u5207\u6362\" (nzOnCancel)=\"setIdCancel()\" nzClassName=\"modalPwd\"\n [nzFooter]=\"nzFooter\">\n <form nz-form [formGroup]=\"validateEIdForm\" (ngSubmit)=\"submitSetIdForm()\" class=\"frmPwd\">\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\">\u5F53\u524D\u8EAB\u4EFD</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\">\n {{ defaultEName }}\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\" nzFor=\"setId\" nzRequired>\u5207\u6362\u8EAB\u4EFD</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\" nzErrorTip=\"\u8BF7\u9009\u62E9\u8EAB\u4EFD\">\n <nz-select id=\"eId\" formControlName=\"eId\" nzPlaceHolder=\"\u8BF7\u9009\u62E9\u8EAB\u4EFD\">\n <ng-container *ngFor=\"let item of listEId\">\n <nz-option [nzValue]=\"item.id\" [nzLabel]=\"item.name\"></nz-option>\n </ng-container>\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n\n <div class=\"button-box\">\n <div>\n <button nz-button nzType=\"default\" (click)=\"setIdCancel()\" type=\"button\">\u53D6\u6D88</button>\n <button nz-button nzType=\"primary\" type=\"submit\" [nzLoading]=\"setIdIsOkLoading\">\u786E\u5B9A</button>\n </div>\n </div>\n </form>\n</nz-modal>\n\n<nz-modal [(nzVisible)]=\"myIsVisible\" nzTitle=\"\u5173\u4E8E\u6211\u4EEC\" (nzOnCancel)=\"myCancel()\" nzClassName=\"modalMe\">\n <div *nzModalContent>\n <p>\n <label class=\"title\">\u7248\u672C\u53F7</label>\n <label>2.1.0</label>\n </p>\n <p>\n <label class=\"title\">\u8054\u7CFB\u4EBA</label>\n <label>Jack Ren</label>\n </p>\n <p>\n <label class=\"title\">\u8054\u7CFB\u90AE\u7BB1</label>\n <label>jackren0913@gmail.com</label>\n </p>\n <p>\n <label class=\"title\">\u4F01\u4E1A\u540D\u79F0</label>\n <label>\u897F\u5B89\u8398\u58A8\u79D1\u6280\u6709\u9650\u516C\u53F8</label>\n </p>\n </div>\n <div *nzModalFooter>\n <button nz-button nzType=\"default\" (click)=\"myCancel()\">\u5173\u95ED</button>\n </div>\n</nz-modal>", styles: [":host ::ng-deep{padding:0;overflow:auto;margin:auto}:host ::ng-deep header-user-pwd{display:flex;flex:1;width:100%;height:100%;padding:20px}:host ::ng-deep .alain-default__nav-item,:host ::ng-deep .alain-default__nav nz-badge{color:#262626}\n"] }]
|
|
304
|
+
}], ctorParameters: () => [{ type: i1.NzModalService }, { type: i2.SettingsService }, { type: i1$1.Router }, { type: i2._HttpClient }, { type: i1.NzModalService }, { type: i4$1.NzMessageService }, { type: i5.FormBuilder }, { type: undefined, decorators: [{
|
|
305
|
+
type: Inject,
|
|
306
|
+
args: [DA_SERVICE_TOKEN]
|
|
307
|
+
}] }, { type: i6.GramGlobalService }, { type: i0.ChangeDetectorRef }] });
|
|
308
|
+
|
|
309
|
+
class NavUserComponent {
|
|
310
|
+
settings;
|
|
311
|
+
router;
|
|
312
|
+
http;
|
|
313
|
+
cdr;
|
|
314
|
+
fb;
|
|
315
|
+
modal;
|
|
316
|
+
msg;
|
|
317
|
+
tokenService;
|
|
318
|
+
globalSrv;
|
|
319
|
+
featureConfig;
|
|
320
|
+
/**
|
|
321
|
+
* 头像
|
|
322
|
+
*/
|
|
323
|
+
avatar = null;
|
|
324
|
+
get user() {
|
|
325
|
+
return this.settings.user;
|
|
326
|
+
}
|
|
327
|
+
subscription = null;
|
|
328
|
+
itemKey = 'home';
|
|
329
|
+
listEId = [];
|
|
330
|
+
defaultEName = null;
|
|
331
|
+
setIdIsVisible = false;
|
|
332
|
+
setIdIsOkLoading = false;
|
|
333
|
+
validateEIdForm;
|
|
334
|
+
nzFooter = null;
|
|
335
|
+
wkCnt = 0;
|
|
336
|
+
enableWorkflow = true;
|
|
337
|
+
enableMessageCenter = true;
|
|
338
|
+
constructor(settings, router, http, cdr, fb, modal, msg, tokenService, globalSrv, featureConfig) {
|
|
339
|
+
this.settings = settings;
|
|
340
|
+
this.router = router;
|
|
341
|
+
this.http = http;
|
|
342
|
+
this.cdr = cdr;
|
|
343
|
+
this.fb = fb;
|
|
344
|
+
this.modal = modal;
|
|
345
|
+
this.msg = msg;
|
|
346
|
+
this.tokenService = tokenService;
|
|
347
|
+
this.globalSrv = globalSrv;
|
|
348
|
+
this.featureConfig = featureConfig;
|
|
349
|
+
this.avatar = this.user?.avatar;
|
|
350
|
+
if (this.avatar == null) {
|
|
351
|
+
this.avatar = '/assets/images/employee.png';
|
|
352
|
+
}
|
|
353
|
+
let tmpEIds = this.settings.getData(AppSetData);
|
|
354
|
+
if (tmpEIds && tmpEIds.length > 0) {
|
|
355
|
+
this.listEId = tmpEIds;
|
|
356
|
+
}
|
|
357
|
+
this.defaultEName = this.settings.getData(AppSetName);
|
|
358
|
+
this.globalSrv.subscribe(globalKey.workflow_cnt, (res) => {
|
|
359
|
+
this.getWorkflowCnt();
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
ngOnInit() {
|
|
363
|
+
this.validateEIdForm = this.fb.group({
|
|
364
|
+
eId: [null, [Validators.required]],
|
|
365
|
+
});
|
|
366
|
+
this.featureConfig.load().subscribe(config => {
|
|
367
|
+
this.enableWorkflow = config.enableWorkflow;
|
|
368
|
+
this.enableMessageCenter = config.enableMessageCenter;
|
|
369
|
+
this.getWorkflowCnt();
|
|
370
|
+
this.cdr.detectChanges();
|
|
371
|
+
});
|
|
372
|
+
this.getPageItemKey();
|
|
373
|
+
this.subscription = this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((event) => {
|
|
374
|
+
this.getPageItemKey();
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
ngOnDestroy() {
|
|
378
|
+
if (this.subscription) {
|
|
379
|
+
this.subscription.unsubscribe();
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
getPageItemKey() {
|
|
383
|
+
let url = this.router.url;
|
|
384
|
+
switch (url) {
|
|
385
|
+
case '/home':
|
|
386
|
+
this.itemKey = 'home';
|
|
387
|
+
break;
|
|
388
|
+
case '/workflow/list/apply':
|
|
389
|
+
case '/workflow/list/cc':
|
|
390
|
+
case '/workflow/list/processed':
|
|
391
|
+
this.itemKey = 'flow';
|
|
392
|
+
break;
|
|
393
|
+
case '/workflow/list/waiting':
|
|
394
|
+
this.itemKey = 'waiting';
|
|
395
|
+
break;
|
|
396
|
+
case '/message/list':
|
|
397
|
+
this.itemKey = 'message';
|
|
398
|
+
break;
|
|
399
|
+
default:
|
|
400
|
+
break;
|
|
401
|
+
}
|
|
402
|
+
this.cdr.detectChanges();
|
|
403
|
+
}
|
|
404
|
+
goToHome() {
|
|
405
|
+
this.router.navigateByUrl('/home');
|
|
406
|
+
}
|
|
407
|
+
goToFlowApply() {
|
|
408
|
+
this.router.navigateByUrl('/workflow/list/apply');
|
|
409
|
+
}
|
|
410
|
+
goToFlowWaiting() {
|
|
411
|
+
this.router.navigateByUrl('/workflow/list/waiting');
|
|
412
|
+
}
|
|
413
|
+
goToAdmin() {
|
|
414
|
+
window.open(`/admin/home`, '_blank');
|
|
415
|
+
}
|
|
416
|
+
goToMessage() {
|
|
417
|
+
this.router.navigateByUrl('/message/list');
|
|
418
|
+
}
|
|
419
|
+
goToChangeSetId() {
|
|
420
|
+
this.setIdIsVisible = true;
|
|
421
|
+
}
|
|
422
|
+
setIdCancel() {
|
|
423
|
+
this.validateEIdForm.reset();
|
|
424
|
+
this.setIdIsVisible = false;
|
|
425
|
+
}
|
|
426
|
+
submitSetIdForm() {
|
|
427
|
+
Object.values(this.validateEIdForm.controls).forEach((control) => {
|
|
428
|
+
if (control.invalid) {
|
|
429
|
+
control.markAsDirty();
|
|
430
|
+
control.updateValueAndValidity({ onlySelf: true });
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
if (this.validateEIdForm.valid) {
|
|
434
|
+
let id = this.validateEIdForm.controls?.['eId']?.value;
|
|
435
|
+
this.setIdIsOkLoading = true;
|
|
436
|
+
this.http.post(`${ModuleAPI.system}/sys/user/changeEId/${id}`).subscribe((res) => {
|
|
437
|
+
this.setIdIsOkLoading = false;
|
|
438
|
+
if (res.success) {
|
|
439
|
+
this.setIdIsVisible = false;
|
|
440
|
+
this.listEId.forEach((item) => {
|
|
441
|
+
if (item.id == id) {
|
|
442
|
+
this.settings.setData(AppSetId, id);
|
|
443
|
+
this.settings.setData(AppSetName, item.name);
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
this.msg.success('切换成功');
|
|
447
|
+
this.router.navigateByUrl('/home');
|
|
448
|
+
}
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
logout() {
|
|
453
|
+
this.modal.confirm({
|
|
454
|
+
nzTitle: '提示',
|
|
455
|
+
nzContent: `您确定需要退出吗?`,
|
|
456
|
+
nzOnOk: () => {
|
|
457
|
+
this.http.post(`${ModuleAPI.system}/auth/logout`, {
|
|
458
|
+
sourceType: "PC"
|
|
459
|
+
}).subscribe((res) => {
|
|
460
|
+
this.tokenService.clear();
|
|
461
|
+
this.router.navigateByUrl(this.tokenService.login_url);
|
|
462
|
+
});
|
|
463
|
+
},
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
getWorkflowCnt() {
|
|
467
|
+
if (!this.enableWorkflow) {
|
|
468
|
+
this.wkCnt = 0;
|
|
469
|
+
return;
|
|
470
|
+
}
|
|
471
|
+
this.wkCnt = 0;
|
|
472
|
+
this.http.post(`${ModuleAPI.user}/user/sys/getWorkflowCnt`).subscribe((res) => {
|
|
473
|
+
if (res && res.success && res.result) {
|
|
474
|
+
this.wkCnt = res.result;
|
|
475
|
+
}
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NavUserComponent, deps: [{ token: i2.SettingsService }, { token: i1$1.Router }, { token: i2._HttpClient }, { token: i0.ChangeDetectorRef }, { token: i5.FormBuilder }, { token: i1.NzModalService }, { token: i4$1.NzMessageService }, { token: DA_SERVICE_TOKEN }, { token: i6.GramGlobalService }, { token: i7.AppFeatureConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
479
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NavUserComponent, isStandalone: true, selector: "nav-user", ngImport: i0, template: "<div class=\"header\">\n <nz-avatar [nzSize]=\"96\" nzIcon=\"user\" [nzSrc]=\"avatar\"></nz-avatar>\n <label class=\"name\">{{user?.[\"empName\"]!!?user?.[\"empName\"]:user?.name}}</label>\n</div>\n<div class=\"waiting\">\n <div class=\"flow\" (click)=\"goToHome()\" [ngClass]=\"{'item-selected':itemKey=='home'}\">\n <span nz-icon nzType=\"home\"></span>\n <label>\u9996\u9875</label>\n </div>\n <!-- <div class=\"flow\" (click)=\"goToFlowApply()\" [ngClass]=\"{'item-selected':itemKey=='flow'}\">\n <span nz-icon nzType=\"node-index\"></span>\n <label>\u6D41\u7A0B\u4E2D\u5FC3</label>\n </div> -->\n\n <div class=\"flow\" *ngIf=\"enableWorkflow\" (click)=\"goToFlowWaiting()\" [ngClass]=\"{'item-selected':itemKey=='waiting'}\">\n <span nz-icon nzType=\"node-index\"></span>\n <label>\u5F85\u529E\u6D41\u7A0B</label>\n <ng-container *ngIf=\"wkCnt!! && wkCnt>0\">\n <nz-badge nzStandalone [nzCount]=\"wkCnt\"></nz-badge>\n </ng-container>\n </div>\n <div class=\"msg\" *ngIf=\"enableMessageCenter\" (click)=\"goToMessage()\" [ngClass]=\"{'item-selected':itemKey=='message'}\">\n <span nz-icon nzType=\"message\"></span>\n <label>\u6D88\u606F\u4E2D\u5FC3</label>\n </div>\n\n <!-- <div class=\"flow\" (click)=\"goToFlowWaiting()\" [ngClass]=\"{'item-selected':itemKey=='waiting'}\">\n <span nz-icon nzType=\"book\"></span>\n <label>\u5F85\u529E\u4E8B\u9879</label>\n <ng-container *ngIf=\"wkCnt!! && wkCnt>0\">\n <nz-badge nzStandalone [nzCount]=\"wkCnt\"></nz-badge>\n </ng-container>\n </div> -->\n</div>\n\n<div class=\"menu\"></div>\n\n<div class=\"footer\">\n <div (click)=\"goToChangeSetId()\" *ngIf=\"listEId!! && listEId.length>1\">\n <span nz-icon nzType=\"idcard\"></span>\n <label>\u8EAB\u4EFD\u5207\u6362</label>\n </div>\n <div (click)=\"goToAdmin()\" *aclIf=\"'SET'\">\n <span nz-icon nzType=\"setting\"></span>\n <label>\u540E\u53F0\u914D\u7F6E</label>\n </div>\n <div (click)=\"logout()\">\n <span nz-icon nzType=\"logout\"></span>\n <label>\u9000\u51FA\u7CFB\u7EDF</label>\n </div>\n</div>\n\n<ng-template #nzFooter></ng-template>\n<nz-modal [(nzVisible)]=\"setIdIsVisible\" nzTitle=\"\u8EAB\u4EFD\u5207\u6362\" (nzOnCancel)=\"setIdCancel()\" nzClassName=\"modalPwd\"\n [nzFooter]=\"nzFooter\">\n <form nz-form [formGroup]=\"validateEIdForm\" (ngSubmit)=\"submitSetIdForm()\" class=\"frmPwd\">\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\">\u5F53\u524D\u8EAB\u4EFD</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\"> {{defaultEName}} </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\" nzFor=\"eId\" nzRequired>\u5207\u6362\u8EAB\u4EFD</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\" nzErrorTip=\"\u8BF7\u9009\u62E9\u8EAB\u4EFD\">\n <nz-select id=\"eId\" formControlName=\"eId\" nzPlaceHolder=\"\u8BF7\u9009\u62E9\u8EAB\u4EFD\">\n <ng-container *ngFor=\"let item of listEId\">\n <nz-option [nzValue]=\"item.id\" [nzLabel]=\"item.name\"></nz-option>\n </ng-container>\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n\n <div class=\"button-box\">\n <div>\n <button nz-button nzType=\"default\" (click)=\"setIdCancel()\" type=\"button\">\u53D6\u6D88</button>\n <button nz-button nzType=\"primary\" type=\"submit\" [nzLoading]=\"setIdIsOkLoading\">\u786E\u5B9A</button>\n </div>\n </div>\n </form>\n</nz-modal>\n", styles: [":host ::ng-deep{display:flex;flex-direction:column;height:100%;padding:0;overflow:auto;overflow:hidden;font-size:14px}:host ::ng-deep .header{display:flex;flex-direction:column;align-items:center;padding:35px 0 0}:host ::ng-deep .header .name{margin-top:15px;font-weight:700;font-size:16px}:host ::ng-deep .waiting{margin-top:50px}:host ::ng-deep .waiting div{position:relative;display:flex;flex-direction:row;align-items:center;padding:10px 25px;cursor:pointer}:host ::ng-deep .waiting div span{margin-right:5px}:host ::ng-deep .waiting div label{cursor:pointer}:host ::ng-deep .waiting div:hover{background:#4f85ff}:host ::ng-deep .waiting nz-badge{position:absolute;top:10px;right:35px}:host ::ng-deep .waiting nz-badge nz-badge-sup{margin-left:4px;box-shadow:none}:host ::ng-deep .waiting nz-badge nz-badge-sup span{margin-right:0}:host ::ng-deep .waiting .flow{margin:0 0 12px}:host ::ng-deep .waiting .flow nz-badge-sup{background:#fdb02a}:host ::ng-deep .waiting .msg nz-badge-sup{background:#329afa}:host ::ng-deep .menu{position:relative;flex:1;padding:50px 20px 0}:host ::ng-deep .menu .item{height:44px;margin:0 0 15px;line-height:44px}:host ::ng-deep .menu .actived{width:120px;padding:0 0 0 15px;color:#1177fb;background:#fff;border-top-left-radius:22px;border-bottom-left-radius:22px}:host ::ng-deep .footer{display:flex;flex-direction:column;margin-bottom:30px}:host ::ng-deep .footer div{margin-top:15px;padding:10px 25px;cursor:pointer}:host ::ng-deep .footer div span{margin-right:6px}:host ::ng-deep .footer div label{cursor:pointer}:host ::ng-deep .footer div:hover{background:#4f85ff}:host ::ng-deep .item-selected{background:#4f85ff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: RuntimeSharedImportsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8.FormSubmitTouchDirective, selector: "form[formGroup]" }, { kind: "directive", type: i3.ACLIfDirective, selector: "[aclIf]", inputs: ["aclIf", "aclIfThen", "aclIfElse", "except"], exportAs: ["aclIf"] }, { kind: "component", type: i10.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i6$1.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i12.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "directive", type: i15.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i15.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "component", type: i16.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i16.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: i17.NzBadgeComponent, selector: "nz-badge", inputs: ["nzShowZero", "nzShowDot", "nzStandalone", "nzDot", "nzOverflowCount", "nzColor", "nzStyle", "nzText", "nzTitle", "nzStatus", "nzCount", "nzOffset", "nzSize"], exportAs: ["nzBadge"] }, { kind: "component", type: i1.NzModalComponent, selector: "nz-modal", inputs: ["nzMask", "nzMaskClosable", "nzCloseOnNavigation", "nzVisible", "nzClosable", "nzOkLoading", "nzOkDisabled", "nzCancelDisabled", "nzCancelLoading", "nzKeyboard", "nzNoAnimation", "nzCentered", "nzDraggable", "nzContent", "nzFooter", "nzZIndex", "nzWidth", "nzWrapClassName", "nzClassName", "nzStyle", "nzTitle", "nzCloseIcon", "nzMaskStyle", "nzBodyStyle", "nzOkText", "nzCancelText", "nzOkType", "nzOkDanger", "nzIconType", "nzModalType", "nzAutofocus", "nzOnOk", "nzOnCancel"], outputs: ["nzOnOk", "nzOnCancel", "nzAfterOpen", "nzAfterClose", "nzVisibleChange"], exportAs: ["nzModal"] }, { kind: "directive", type: i19.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzForm"] }, { kind: "component", type: i19.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i19.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i19.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "component", type: i20.NzAvatarComponent, selector: "nz-avatar", inputs: ["nzShape", "nzSize", "nzGap", "nzText", "nzSrc", "nzSrcSet", "nzAlt", "nzIcon"], outputs: ["nzError"], exportAs: ["nzAvatar"] }] });
|
|
480
|
+
}
|
|
481
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NavUserComponent, decorators: [{
|
|
482
|
+
type: Component,
|
|
483
|
+
args: [{ selector: 'nav-user', standalone: true, imports: [
|
|
484
|
+
CommonModule,
|
|
485
|
+
RuntimeSharedImportsModule
|
|
486
|
+
], template: "<div class=\"header\">\n <nz-avatar [nzSize]=\"96\" nzIcon=\"user\" [nzSrc]=\"avatar\"></nz-avatar>\n <label class=\"name\">{{user?.[\"empName\"]!!?user?.[\"empName\"]:user?.name}}</label>\n</div>\n<div class=\"waiting\">\n <div class=\"flow\" (click)=\"goToHome()\" [ngClass]=\"{'item-selected':itemKey=='home'}\">\n <span nz-icon nzType=\"home\"></span>\n <label>\u9996\u9875</label>\n </div>\n <!-- <div class=\"flow\" (click)=\"goToFlowApply()\" [ngClass]=\"{'item-selected':itemKey=='flow'}\">\n <span nz-icon nzType=\"node-index\"></span>\n <label>\u6D41\u7A0B\u4E2D\u5FC3</label>\n </div> -->\n\n <div class=\"flow\" *ngIf=\"enableWorkflow\" (click)=\"goToFlowWaiting()\" [ngClass]=\"{'item-selected':itemKey=='waiting'}\">\n <span nz-icon nzType=\"node-index\"></span>\n <label>\u5F85\u529E\u6D41\u7A0B</label>\n <ng-container *ngIf=\"wkCnt!! && wkCnt>0\">\n <nz-badge nzStandalone [nzCount]=\"wkCnt\"></nz-badge>\n </ng-container>\n </div>\n <div class=\"msg\" *ngIf=\"enableMessageCenter\" (click)=\"goToMessage()\" [ngClass]=\"{'item-selected':itemKey=='message'}\">\n <span nz-icon nzType=\"message\"></span>\n <label>\u6D88\u606F\u4E2D\u5FC3</label>\n </div>\n\n <!-- <div class=\"flow\" (click)=\"goToFlowWaiting()\" [ngClass]=\"{'item-selected':itemKey=='waiting'}\">\n <span nz-icon nzType=\"book\"></span>\n <label>\u5F85\u529E\u4E8B\u9879</label>\n <ng-container *ngIf=\"wkCnt!! && wkCnt>0\">\n <nz-badge nzStandalone [nzCount]=\"wkCnt\"></nz-badge>\n </ng-container>\n </div> -->\n</div>\n\n<div class=\"menu\"></div>\n\n<div class=\"footer\">\n <div (click)=\"goToChangeSetId()\" *ngIf=\"listEId!! && listEId.length>1\">\n <span nz-icon nzType=\"idcard\"></span>\n <label>\u8EAB\u4EFD\u5207\u6362</label>\n </div>\n <div (click)=\"goToAdmin()\" *aclIf=\"'SET'\">\n <span nz-icon nzType=\"setting\"></span>\n <label>\u540E\u53F0\u914D\u7F6E</label>\n </div>\n <div (click)=\"logout()\">\n <span nz-icon nzType=\"logout\"></span>\n <label>\u9000\u51FA\u7CFB\u7EDF</label>\n </div>\n</div>\n\n<ng-template #nzFooter></ng-template>\n<nz-modal [(nzVisible)]=\"setIdIsVisible\" nzTitle=\"\u8EAB\u4EFD\u5207\u6362\" (nzOnCancel)=\"setIdCancel()\" nzClassName=\"modalPwd\"\n [nzFooter]=\"nzFooter\">\n <form nz-form [formGroup]=\"validateEIdForm\" (ngSubmit)=\"submitSetIdForm()\" class=\"frmPwd\">\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\">\u5F53\u524D\u8EAB\u4EFD</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\"> {{defaultEName}} </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\" nzFor=\"eId\" nzRequired>\u5207\u6362\u8EAB\u4EFD</nz-form-label>\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\" nzErrorTip=\"\u8BF7\u9009\u62E9\u8EAB\u4EFD\">\n <nz-select id=\"eId\" formControlName=\"eId\" nzPlaceHolder=\"\u8BF7\u9009\u62E9\u8EAB\u4EFD\">\n <ng-container *ngFor=\"let item of listEId\">\n <nz-option [nzValue]=\"item.id\" [nzLabel]=\"item.name\"></nz-option>\n </ng-container>\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n\n <div class=\"button-box\">\n <div>\n <button nz-button nzType=\"default\" (click)=\"setIdCancel()\" type=\"button\">\u53D6\u6D88</button>\n <button nz-button nzType=\"primary\" type=\"submit\" [nzLoading]=\"setIdIsOkLoading\">\u786E\u5B9A</button>\n </div>\n </div>\n </form>\n</nz-modal>\n", styles: [":host ::ng-deep{display:flex;flex-direction:column;height:100%;padding:0;overflow:auto;overflow:hidden;font-size:14px}:host ::ng-deep .header{display:flex;flex-direction:column;align-items:center;padding:35px 0 0}:host ::ng-deep .header .name{margin-top:15px;font-weight:700;font-size:16px}:host ::ng-deep .waiting{margin-top:50px}:host ::ng-deep .waiting div{position:relative;display:flex;flex-direction:row;align-items:center;padding:10px 25px;cursor:pointer}:host ::ng-deep .waiting div span{margin-right:5px}:host ::ng-deep .waiting div label{cursor:pointer}:host ::ng-deep .waiting div:hover{background:#4f85ff}:host ::ng-deep .waiting nz-badge{position:absolute;top:10px;right:35px}:host ::ng-deep .waiting nz-badge nz-badge-sup{margin-left:4px;box-shadow:none}:host ::ng-deep .waiting nz-badge nz-badge-sup span{margin-right:0}:host ::ng-deep .waiting .flow{margin:0 0 12px}:host ::ng-deep .waiting .flow nz-badge-sup{background:#fdb02a}:host ::ng-deep .waiting .msg nz-badge-sup{background:#329afa}:host ::ng-deep .menu{position:relative;flex:1;padding:50px 20px 0}:host ::ng-deep .menu .item{height:44px;margin:0 0 15px;line-height:44px}:host ::ng-deep .menu .actived{width:120px;padding:0 0 0 15px;color:#1177fb;background:#fff;border-top-left-radius:22px;border-bottom-left-radius:22px}:host ::ng-deep .footer{display:flex;flex-direction:column;margin-bottom:30px}:host ::ng-deep .footer div{margin-top:15px;padding:10px 25px;cursor:pointer}:host ::ng-deep .footer div span{margin-right:6px}:host ::ng-deep .footer div label{cursor:pointer}:host ::ng-deep .footer div:hover{background:#4f85ff}:host ::ng-deep .item-selected{background:#4f85ff}\n"] }]
|
|
487
|
+
}], ctorParameters: () => [{ type: i2.SettingsService }, { type: i1$1.Router }, { type: i2._HttpClient }, { type: i0.ChangeDetectorRef }, { type: i5.FormBuilder }, { type: i1.NzModalService }, { type: i4$1.NzMessageService }, { type: undefined, decorators: [{
|
|
488
|
+
type: Inject,
|
|
489
|
+
args: [DA_SERVICE_TOKEN]
|
|
490
|
+
}] }, { type: i6.GramGlobalService }, { type: i7.AppFeatureConfigService }] });
|
|
491
|
+
|
|
492
|
+
class LayoutBaseService {
|
|
493
|
+
http;
|
|
494
|
+
router;
|
|
495
|
+
menuService;
|
|
496
|
+
settingService;
|
|
497
|
+
aclService;
|
|
498
|
+
loading = true;
|
|
499
|
+
visibleMenuData = [];
|
|
500
|
+
hasMoreItems = false;
|
|
501
|
+
moreItems = [];
|
|
502
|
+
/**
|
|
503
|
+
* layout属性
|
|
504
|
+
*/
|
|
505
|
+
options = {
|
|
506
|
+
logoExpanded: `./assets/images/logo3.png`,
|
|
507
|
+
logoCollapsed: `./assets/images/logo3.png`,
|
|
508
|
+
//title: AppName,
|
|
509
|
+
//hideCollapse: true,
|
|
510
|
+
hideAside: true,
|
|
511
|
+
};
|
|
512
|
+
/**
|
|
513
|
+
* 菜单集合
|
|
514
|
+
*/
|
|
515
|
+
menuData = [];
|
|
516
|
+
/**
|
|
517
|
+
* 当前用户
|
|
518
|
+
*/
|
|
519
|
+
get user() {
|
|
520
|
+
return this.settingService.user;
|
|
521
|
+
}
|
|
522
|
+
constructor(http, router, menuService, settingService, aclService) {
|
|
523
|
+
this.http = http;
|
|
524
|
+
this.router = router;
|
|
525
|
+
this.menuService = menuService;
|
|
526
|
+
this.settingService = settingService;
|
|
527
|
+
this.aclService = aclService;
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* 初始化菜单数据
|
|
531
|
+
*/
|
|
532
|
+
initMenuData() {
|
|
533
|
+
let moduelData = this.settingService.getData(Gram_App_Module);
|
|
534
|
+
if (moduelData && Array.isArray(moduelData)) {
|
|
535
|
+
moduelData = moduelData.filter((res) => {
|
|
536
|
+
return res?.izHome == true && res.code != 'user';
|
|
537
|
+
});
|
|
538
|
+
let splitItem = this.router.url.split('/');
|
|
539
|
+
let code = null;
|
|
540
|
+
if (splitItem && splitItem.length > 1) {
|
|
541
|
+
code = splitItem[1];
|
|
542
|
+
}
|
|
543
|
+
let roles = this.aclService.data.roles;
|
|
544
|
+
let showUser = false;
|
|
545
|
+
if (roles &&
|
|
546
|
+
roles.some((item) => {
|
|
547
|
+
return item == 'USER';
|
|
548
|
+
})) {
|
|
549
|
+
showUser = true;
|
|
550
|
+
}
|
|
551
|
+
if (this.user && this.user?.["empId"] && showUser == true) {
|
|
552
|
+
moduelData.unshift({
|
|
553
|
+
code: 'user',
|
|
554
|
+
text: '员工自助',
|
|
555
|
+
icon: 'desktop',
|
|
556
|
+
link: `/user/default/${this.user?.["empId"]}`,
|
|
557
|
+
children: [
|
|
558
|
+
{
|
|
559
|
+
code: '',
|
|
560
|
+
text: '',
|
|
561
|
+
},
|
|
562
|
+
],
|
|
563
|
+
});
|
|
564
|
+
}
|
|
565
|
+
moduelData.unshift({
|
|
566
|
+
code: 'home',
|
|
567
|
+
text: '首页',
|
|
568
|
+
icon: 'home',
|
|
569
|
+
link: '/home',
|
|
570
|
+
children: [
|
|
571
|
+
{
|
|
572
|
+
code: '',
|
|
573
|
+
text: '',
|
|
574
|
+
},
|
|
575
|
+
],
|
|
576
|
+
});
|
|
577
|
+
let moduleInfo = null;
|
|
578
|
+
moduelData.forEach((item) => {
|
|
579
|
+
item['selected'] = false;
|
|
580
|
+
if (item.code == code || (item.code == 'home' && (code == 'workflow' || code == 'message'))) {
|
|
581
|
+
item['selected'] = true;
|
|
582
|
+
moduleInfo = item;
|
|
583
|
+
}
|
|
584
|
+
});
|
|
585
|
+
this.addMenuData(moduleInfo);
|
|
586
|
+
this.menuData = moduelData;
|
|
587
|
+
}
|
|
588
|
+
else {
|
|
589
|
+
this.menuData = [];
|
|
590
|
+
}
|
|
591
|
+
this.loading = false;
|
|
592
|
+
}
|
|
593
|
+
/**
|
|
594
|
+
* 初始化菜单数据
|
|
595
|
+
*/
|
|
596
|
+
initMenuData2(url) {
|
|
597
|
+
let moduelData = this.settingService.getData(Gram_App_Module);
|
|
598
|
+
if (moduelData && Array.isArray(moduelData)) {
|
|
599
|
+
moduelData = moduelData.filter((res) => {
|
|
600
|
+
return res?.izHome == true && res.code != 'user';
|
|
601
|
+
});
|
|
602
|
+
let splitItem = url.split('/');
|
|
603
|
+
let code = null;
|
|
604
|
+
if (splitItem && splitItem.length > 1) {
|
|
605
|
+
code = splitItem[1];
|
|
606
|
+
}
|
|
607
|
+
let roles = this.aclService.data.roles;
|
|
608
|
+
let showUser = false;
|
|
609
|
+
if (roles &&
|
|
610
|
+
roles.some((item) => {
|
|
611
|
+
return item == 'USER';
|
|
612
|
+
})) {
|
|
613
|
+
showUser = true;
|
|
614
|
+
}
|
|
615
|
+
if (this.user && this.user?.["empId"] && showUser == true) {
|
|
616
|
+
moduelData.unshift({
|
|
617
|
+
code: 'user',
|
|
618
|
+
text: '员工自助',
|
|
619
|
+
icon: 'desktop',
|
|
620
|
+
link: `/user/default/${this.user?.["empId"]}`,
|
|
621
|
+
children: [
|
|
622
|
+
{
|
|
623
|
+
code: '',
|
|
624
|
+
text: '',
|
|
625
|
+
},
|
|
626
|
+
],
|
|
627
|
+
});
|
|
628
|
+
}
|
|
629
|
+
moduelData.unshift({
|
|
630
|
+
code: 'home',
|
|
631
|
+
text: '首页',
|
|
632
|
+
icon: 'home',
|
|
633
|
+
link: '/home',
|
|
634
|
+
children: [
|
|
635
|
+
{
|
|
636
|
+
code: '',
|
|
637
|
+
text: '',
|
|
638
|
+
},
|
|
639
|
+
],
|
|
640
|
+
});
|
|
641
|
+
let moduleInfo = null;
|
|
642
|
+
moduelData.forEach((item) => {
|
|
643
|
+
item['selected'] = false;
|
|
644
|
+
if (item.code == code || (item.code == 'home' && (code == 'workflow' || code == 'message'))) {
|
|
645
|
+
item['selected'] = true;
|
|
646
|
+
moduleInfo = item;
|
|
647
|
+
}
|
|
648
|
+
});
|
|
649
|
+
this.addMenuData(moduleInfo);
|
|
650
|
+
this.menuData = moduelData;
|
|
651
|
+
}
|
|
652
|
+
else {
|
|
653
|
+
this.menuData = [];
|
|
654
|
+
}
|
|
655
|
+
this.loading = false;
|
|
656
|
+
}
|
|
657
|
+
addMenuData(e) {
|
|
658
|
+
if (e) {
|
|
659
|
+
this.menuService.add([e]);
|
|
660
|
+
}
|
|
661
|
+
else {
|
|
662
|
+
this.menuService.add([]);
|
|
663
|
+
}
|
|
664
|
+
this.menuService.resume();
|
|
665
|
+
}
|
|
666
|
+
menuClick(e) {
|
|
667
|
+
if (e.link) {
|
|
668
|
+
let curUrl = this.router.url;
|
|
669
|
+
if (curUrl.indexOf(e.link) == -1) {
|
|
670
|
+
this.initMenuData2(e.link);
|
|
671
|
+
this.router.navigateByUrl(`${e.link}`);
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
filterMenu(e) {
|
|
676
|
+
let tmpData = _.cloneDeep(e);
|
|
677
|
+
if (tmpData && tmpData?.children && Array.isArray(tmpData.children)) {
|
|
678
|
+
tmpData.children.forEach((a) => {
|
|
679
|
+
if (a && a?.children && Array.isArray(a?.children)) {
|
|
680
|
+
a.children.forEach((b) => {
|
|
681
|
+
if (b && b?.children && Array.isArray(b?.children)) {
|
|
682
|
+
b.children = [];
|
|
683
|
+
}
|
|
684
|
+
});
|
|
685
|
+
}
|
|
686
|
+
});
|
|
687
|
+
}
|
|
688
|
+
return tmpData;
|
|
689
|
+
}
|
|
690
|
+
/**
|
|
691
|
+
* 判断是否隐藏
|
|
692
|
+
* @param item
|
|
693
|
+
* @returns
|
|
694
|
+
*/
|
|
695
|
+
checkMenuItemHide(item) {
|
|
696
|
+
let isHide = false;
|
|
697
|
+
if (item && item?.type) {
|
|
698
|
+
switch (item.type) {
|
|
699
|
+
case 'PAGE':
|
|
700
|
+
case 'TREE_FORM':
|
|
701
|
+
case 'TREE_LIST':
|
|
702
|
+
case 'MENU_GROUP':
|
|
703
|
+
case 'MENU_SINGLE':
|
|
704
|
+
isHide = true;
|
|
705
|
+
break;
|
|
706
|
+
default:
|
|
707
|
+
break;
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
return isHide;
|
|
711
|
+
}
|
|
712
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutBaseService, deps: [{ token: i2._HttpClient }, { token: i1$1.Router }, { token: i2.MenuService }, { token: i2.SettingsService }, { token: i3.ACLService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
713
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: LayoutBaseService, isStandalone: true, ngImport: i0 });
|
|
714
|
+
}
|
|
715
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutBaseService, decorators: [{
|
|
716
|
+
type: Directive
|
|
717
|
+
}], ctorParameters: () => [{ type: i2._HttpClient }, { type: i1$1.Router }, { type: i2.MenuService }, { type: i2.SettingsService }, { type: i3.ACLService }] });
|
|
718
|
+
|
|
719
|
+
class LayoutHomeComponent extends LayoutBaseService {
|
|
720
|
+
http;
|
|
721
|
+
router;
|
|
722
|
+
menuService;
|
|
723
|
+
settingService;
|
|
724
|
+
aclService;
|
|
725
|
+
menuContainer;
|
|
726
|
+
constructor(http, router, menuService, settingService, aclService) {
|
|
727
|
+
super(http, router, menuService, settingService, aclService);
|
|
728
|
+
this.http = http;
|
|
729
|
+
this.router = router;
|
|
730
|
+
this.menuService = menuService;
|
|
731
|
+
this.settingService = settingService;
|
|
732
|
+
this.aclService = aclService;
|
|
733
|
+
this.options = {
|
|
734
|
+
//hideCollapse: true,
|
|
735
|
+
hideAside: false,
|
|
736
|
+
//hideLogo: true,
|
|
737
|
+
//title: null,
|
|
738
|
+
showHeaderCollapse: false
|
|
739
|
+
};
|
|
740
|
+
this.initMenuData();
|
|
741
|
+
}
|
|
742
|
+
ngAfterViewInit() {
|
|
743
|
+
setTimeout(() => {
|
|
744
|
+
this.updateVisibleMenuData();
|
|
745
|
+
}, 0);
|
|
746
|
+
window.addEventListener('resize', this.updateVisibleMenuData.bind(this));
|
|
747
|
+
}
|
|
748
|
+
updateVisibleMenuData() {
|
|
749
|
+
const containerWidth = this.menuContainer.nativeElement.offsetWidth - 180;
|
|
750
|
+
if (containerWidth > 0) {
|
|
751
|
+
const itemWidth = 80;
|
|
752
|
+
const itemsToShow = Math.floor(containerWidth / itemWidth);
|
|
753
|
+
this.visibleMenuData = this.menuData.slice(0, itemsToShow - 1);
|
|
754
|
+
this.hasMoreItems = this.menuData.length > itemsToShow;
|
|
755
|
+
if (this.menuData.length > this.visibleMenuData.length) {
|
|
756
|
+
this.moreItems = this.menuData.slice(itemsToShow - 1, this.menuData.length);
|
|
757
|
+
}
|
|
758
|
+
else {
|
|
759
|
+
this.moreItems = [];
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
toggleShowAll() { }
|
|
764
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutHomeComponent, deps: [{ token: i2._HttpClient }, { token: i1$1.Router }, { token: i2.MenuService }, { token: i2.SettingsService }, { token: i3.ACLService }], target: i0.ɵɵFactoryTarget.Component });
|
|
765
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: LayoutHomeComponent, isStandalone: true, selector: "layout-home", host: { classAttribute: "layout-basic" }, viewQueries: [{ propertyName: "menuContainer", first: true, predicate: ["menuContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
766
|
+
<nz-spin [nzSpinning]="loading" nzTip="拼命加载中..." class="deon-list-spin">
|
|
767
|
+
<layout-default [options]="options" [content]="contentTpl" [nav]="asideUserTpl">
|
|
768
|
+
<layout-default-header-item direction="middle">
|
|
769
|
+
<ul nz-menu nzMode="horizontal" class="header-item-ul" #menuContainer *ngIf="visibleMenuData!!">
|
|
770
|
+
<li nz-menu-item *ngFor="let item of visibleMenuData; let index = index" [nzSelected]="item.selected" (click)="menuClick(item)">
|
|
771
|
+
<div class="menu-text">
|
|
772
|
+
<div class="icon">
|
|
773
|
+
<span nz-icon [ngClass]="'backgroup_' + index" [nzType]="item?.selected == true ? item.icon?.value : item.icon"></span>
|
|
774
|
+
</div>
|
|
775
|
+
<div class="text">{{ item.text }}</div>
|
|
776
|
+
</div>
|
|
777
|
+
</li>
|
|
778
|
+
<li nz-menu-item *ngIf="hasMoreItems" (click)="toggleShowAll()">
|
|
779
|
+
<div class="menu-text" nz-dropdown [nzDropdownMenu]="menu">
|
|
780
|
+
<div class="icon">
|
|
781
|
+
<span nz-icon nzType="ordered-list" class="backgroup_more"></span>
|
|
782
|
+
</div>
|
|
783
|
+
<div class="text">更多</div>
|
|
784
|
+
</div>
|
|
785
|
+
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
786
|
+
<ul nz-menu nzSelectable>
|
|
787
|
+
<ng-container *ngFor="let b of moreItems">
|
|
788
|
+
<li nz-menu-item (click)="menuClick(b)">{{ b.text }}</li>
|
|
789
|
+
</ng-container>
|
|
790
|
+
</ul>
|
|
791
|
+
</nz-dropdown-menu>
|
|
792
|
+
</li>
|
|
793
|
+
</ul>
|
|
794
|
+
</layout-default-header-item>
|
|
795
|
+
<layout-default-header-item direction="right">
|
|
796
|
+
<header-user></header-user>
|
|
797
|
+
</layout-default-header-item>
|
|
798
|
+
<ng-template #contentTpl>
|
|
799
|
+
<router-outlet></router-outlet>
|
|
800
|
+
</ng-template>
|
|
801
|
+
<ng-template #asideUserTpl>
|
|
802
|
+
<nav-user></nav-user>
|
|
803
|
+
</ng-template>
|
|
804
|
+
</layout-default>
|
|
805
|
+
</nz-spin>
|
|
806
|
+
`, isInline: true, styles: [":host ::ng-deep .backgroup_more{background:#e8a0d6}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: LayoutDefaultModule }, { kind: "component", type: i5$1.LayoutDefaultComponent, selector: "layout-default", inputs: ["options", "asideUser", "asideBottom", "nav", "content", "customError", "fetchingStrictly", "fetching"], exportAs: ["layoutDefault"] }, { kind: "component", type: i5$1.LayoutDefaultHeaderItemComponent, selector: "layout-default-header-item", inputs: ["hidden", "direction"] }, { kind: "ngmodule", type: RuntimeSharedImportsModule }, { kind: "directive", type: i1$1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i6$1.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i1$2.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1$2.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i2$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: i10$1.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "ngmodule", type: GramDeonHeaderUserModule }, { kind: "component", type: NavUserComponent, selector: "nav-user" }, { kind: "component", type: HeaderUserComponent$1, selector: "header-user" }] });
|
|
807
|
+
}
|
|
808
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutHomeComponent, decorators: [{
|
|
809
|
+
type: Component,
|
|
810
|
+
args: [{ selector: 'layout-home', template: `
|
|
811
|
+
<nz-spin [nzSpinning]="loading" nzTip="拼命加载中..." class="deon-list-spin">
|
|
812
|
+
<layout-default [options]="options" [content]="contentTpl" [nav]="asideUserTpl">
|
|
813
|
+
<layout-default-header-item direction="middle">
|
|
814
|
+
<ul nz-menu nzMode="horizontal" class="header-item-ul" #menuContainer *ngIf="visibleMenuData!!">
|
|
815
|
+
<li nz-menu-item *ngFor="let item of visibleMenuData; let index = index" [nzSelected]="item.selected" (click)="menuClick(item)">
|
|
816
|
+
<div class="menu-text">
|
|
817
|
+
<div class="icon">
|
|
818
|
+
<span nz-icon [ngClass]="'backgroup_' + index" [nzType]="item?.selected == true ? item.icon?.value : item.icon"></span>
|
|
819
|
+
</div>
|
|
820
|
+
<div class="text">{{ item.text }}</div>
|
|
821
|
+
</div>
|
|
822
|
+
</li>
|
|
823
|
+
<li nz-menu-item *ngIf="hasMoreItems" (click)="toggleShowAll()">
|
|
824
|
+
<div class="menu-text" nz-dropdown [nzDropdownMenu]="menu">
|
|
825
|
+
<div class="icon">
|
|
826
|
+
<span nz-icon nzType="ordered-list" class="backgroup_more"></span>
|
|
827
|
+
</div>
|
|
828
|
+
<div class="text">更多</div>
|
|
829
|
+
</div>
|
|
830
|
+
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
831
|
+
<ul nz-menu nzSelectable>
|
|
832
|
+
<ng-container *ngFor="let b of moreItems">
|
|
833
|
+
<li nz-menu-item (click)="menuClick(b)">{{ b.text }}</li>
|
|
834
|
+
</ng-container>
|
|
835
|
+
</ul>
|
|
836
|
+
</nz-dropdown-menu>
|
|
837
|
+
</li>
|
|
838
|
+
</ul>
|
|
839
|
+
</layout-default-header-item>
|
|
840
|
+
<layout-default-header-item direction="right">
|
|
841
|
+
<header-user></header-user>
|
|
842
|
+
</layout-default-header-item>
|
|
843
|
+
<ng-template #contentTpl>
|
|
844
|
+
<router-outlet></router-outlet>
|
|
845
|
+
</ng-template>
|
|
846
|
+
<ng-template #asideUserTpl>
|
|
847
|
+
<nav-user></nav-user>
|
|
848
|
+
</ng-template>
|
|
849
|
+
</layout-default>
|
|
850
|
+
</nz-spin>
|
|
851
|
+
`, host: {
|
|
852
|
+
class: 'layout-basic',
|
|
853
|
+
}, imports: [
|
|
854
|
+
CommonModule,
|
|
855
|
+
LayoutDefaultModule,
|
|
856
|
+
RuntimeSharedImportsModule,
|
|
857
|
+
GramDeonHeaderUserModule,
|
|
858
|
+
NavUserComponent,
|
|
859
|
+
HeaderUserComponent$1
|
|
860
|
+
], styles: [":host ::ng-deep .backgroup_more{background:#e8a0d6}\n"] }]
|
|
861
|
+
}], ctorParameters: () => [{ type: i2._HttpClient }, { type: i1$1.Router }, { type: i2.MenuService }, { type: i2.SettingsService }, { type: i3.ACLService }], propDecorators: { menuContainer: [{
|
|
862
|
+
type: ViewChild,
|
|
863
|
+
args: ['menuContainer']
|
|
864
|
+
}] } });
|
|
865
|
+
|
|
866
|
+
class NavMenuComponent {
|
|
867
|
+
router;
|
|
868
|
+
menuSrv;
|
|
869
|
+
data = null;
|
|
870
|
+
constructor(router, menuSrv) {
|
|
871
|
+
this.router = router;
|
|
872
|
+
this.menuSrv = menuSrv;
|
|
873
|
+
}
|
|
874
|
+
ngOnInit() {
|
|
875
|
+
}
|
|
876
|
+
ngOnChanges(changes) {
|
|
877
|
+
if (changes && changes["data"] && this.data) {
|
|
878
|
+
}
|
|
879
|
+
}
|
|
880
|
+
ngOnDestroy() {
|
|
881
|
+
}
|
|
882
|
+
isSubmenuOpen(item) {
|
|
883
|
+
if (!item?.children)
|
|
884
|
+
return false;
|
|
885
|
+
return item.children.some(child => this.router.url.includes(child.link));
|
|
886
|
+
}
|
|
887
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NavMenuComponent, deps: [{ token: i1$1.Router }, { token: i2.MenuService }], target: i0.ɵɵFactoryTarget.Component });
|
|
888
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: NavMenuComponent, isStandalone: true, selector: "nav-menu", inputs: { data: "data" }, usesOnChanges: true, ngImport: i0, template: "<ul nz-menu nzMode=\"inline\" *ngIf=\"data && data?.children && data.children.length>0\">\n <ng-container *ngFor=\"let item of data.children\">\n <li nz-submenu [nzTitle]=\"item.text\" [nzOpen]=\"isSubmenuOpen(item)\">\n <ng-container *ngIf=\"item?.children\">\n <ul>\n <ng-container *ngFor=\"let level of item.children\">\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"[level.link]\">\n {{level?.text}}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n </li>\n </ng-container>\n</ul>", styles: [":host ::ng-deep a,:host ::ng-deep .ant-menu-title-content{font-size:14px;color:#fff}:host ::ng-deep a:hover{color:#fff;background-color:unset!important}:host ::ng-deep .ant-menu{background-color:unset}:host ::ng-deep .ant-menu-submenu-arrow{color:#fff!important}:host ::ng-deep .ant-menu-item:hover,:host ::ng-deep .ant-menu-item-selected{background-color:#4f85ff!important}:host ::ng-deep .ant-menu-vertical .ant-menu-item:after,:host ::ng-deep .ant-menu-vertical-left .ant-menu-item:after,:host ::ng-deep .ant-menu-vertical-right .ant-menu-item:after,:host ::ng-deep .ant-menu-inline .ant-menu-item:after{border-right:0!important}:host ::ng-deep .ant-menu-item:active,:host ::ng-deep .ant-menu-submenu-title:active{background:unset!important}:host ::ng-deep .ant-menu-item{padding-left:36px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: NzMenuModule }, { kind: "directive", type: i1$2.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1$2.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "component", type: i1$2.NzSubMenuComponent, selector: "[nz-submenu]", inputs: ["nzMenuClassName", "nzPaddingLeft", "nzTitle", "nzIcon", "nzTriggerSubMenuAction", "nzOpen", "nzDisabled", "nzPlacement"], outputs: ["nzOpenChange"], exportAs: ["nzSubmenu"] }] });
|
|
889
|
+
}
|
|
890
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: NavMenuComponent, decorators: [{
|
|
891
|
+
type: Component,
|
|
892
|
+
args: [{ selector: 'nav-menu', imports: [
|
|
893
|
+
CommonModule,
|
|
894
|
+
FormsModule,
|
|
895
|
+
ReactiveFormsModule,
|
|
896
|
+
RouterLink,
|
|
897
|
+
NzMenuModule
|
|
898
|
+
], template: "<ul nz-menu nzMode=\"inline\" *ngIf=\"data && data?.children && data.children.length>0\">\n <ng-container *ngFor=\"let item of data.children\">\n <li nz-submenu [nzTitle]=\"item.text\" [nzOpen]=\"isSubmenuOpen(item)\">\n <ng-container *ngIf=\"item?.children\">\n <ul>\n <ng-container *ngFor=\"let level of item.children\">\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"[level.link]\">\n {{level?.text}}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n </li>\n </ng-container>\n</ul>", styles: [":host ::ng-deep a,:host ::ng-deep .ant-menu-title-content{font-size:14px;color:#fff}:host ::ng-deep a:hover{color:#fff;background-color:unset!important}:host ::ng-deep .ant-menu{background-color:unset}:host ::ng-deep .ant-menu-submenu-arrow{color:#fff!important}:host ::ng-deep .ant-menu-item:hover,:host ::ng-deep .ant-menu-item-selected{background-color:#4f85ff!important}:host ::ng-deep .ant-menu-vertical .ant-menu-item:after,:host ::ng-deep .ant-menu-vertical-left .ant-menu-item:after,:host ::ng-deep .ant-menu-vertical-right .ant-menu-item:after,:host ::ng-deep .ant-menu-inline .ant-menu-item:after{border-right:0!important}:host ::ng-deep .ant-menu-item:active,:host ::ng-deep .ant-menu-submenu-title:active{background:unset!important}:host ::ng-deep .ant-menu-item{padding-left:36px!important}\n"] }]
|
|
899
|
+
}], ctorParameters: () => [{ type: i1$1.Router }, { type: i2.MenuService }], propDecorators: { data: [{
|
|
900
|
+
type: Input
|
|
901
|
+
}] } });
|
|
902
|
+
|
|
903
|
+
class LayoutManageComponent extends LayoutBaseService {
|
|
904
|
+
router;
|
|
905
|
+
activatedRoute;
|
|
906
|
+
menuService;
|
|
907
|
+
settingService;
|
|
908
|
+
http;
|
|
909
|
+
aclService;
|
|
910
|
+
menuContainer;
|
|
911
|
+
options = {
|
|
912
|
+
//hideCollapse: true,
|
|
913
|
+
hideAside: false,
|
|
914
|
+
//hideLogo: true,
|
|
915
|
+
//title: null,
|
|
916
|
+
logoExpanded: `./assets/images/logo3.png`,
|
|
917
|
+
logoCollapsed: `./assets/images/logo3.png`,
|
|
918
|
+
showHeaderCollapse: false
|
|
919
|
+
};
|
|
920
|
+
navMenuData = null;
|
|
921
|
+
constructor(router, activatedRoute, menuService, settingService, http, aclService) {
|
|
922
|
+
super(http, router, menuService, settingService, aclService);
|
|
923
|
+
this.router = router;
|
|
924
|
+
this.activatedRoute = activatedRoute;
|
|
925
|
+
this.menuService = menuService;
|
|
926
|
+
this.settingService = settingService;
|
|
927
|
+
this.http = http;
|
|
928
|
+
this.aclService = aclService;
|
|
929
|
+
this.initMenuData();
|
|
930
|
+
}
|
|
931
|
+
toggleShowAll() { }
|
|
932
|
+
ngAfterViewInit() {
|
|
933
|
+
setTimeout(() => {
|
|
934
|
+
this.updateVisibleMenuData();
|
|
935
|
+
}, 0);
|
|
936
|
+
window.addEventListener('resize', this.updateVisibleMenuData.bind(this));
|
|
937
|
+
}
|
|
938
|
+
updateVisibleMenuData() {
|
|
939
|
+
const containerWidth = this.menuContainer.nativeElement.offsetWidth - 180;
|
|
940
|
+
if (containerWidth > 0) {
|
|
941
|
+
const itemWidth = 80;
|
|
942
|
+
const itemsToShow = Math.floor(containerWidth / itemWidth);
|
|
943
|
+
this.visibleMenuData = this.menuData.slice(0, itemsToShow - 1);
|
|
944
|
+
this.hasMoreItems = this.menuData.length > itemsToShow;
|
|
945
|
+
if (this.menuData.length > this.visibleMenuData.length) {
|
|
946
|
+
this.moreItems = this.menuData.slice(itemsToShow - 1, this.menuData.length);
|
|
947
|
+
}
|
|
948
|
+
else {
|
|
949
|
+
this.moreItems = [];
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
}
|
|
953
|
+
goToHome() {
|
|
954
|
+
this.router.navigateByUrl('/home');
|
|
955
|
+
}
|
|
956
|
+
addMenuData(e) {
|
|
957
|
+
this.menuService.clear();
|
|
958
|
+
if (e) {
|
|
959
|
+
let tmpData = _.cloneDeep(e);
|
|
960
|
+
if (tmpData?.children && Array.isArray(tmpData?.children)) {
|
|
961
|
+
this.initModuleMenuData(tmpData.children);
|
|
962
|
+
}
|
|
963
|
+
this.navMenuData = tmpData;
|
|
964
|
+
this.menuService.add([this.navMenuData]);
|
|
965
|
+
}
|
|
966
|
+
this.menuService.resume();
|
|
967
|
+
}
|
|
968
|
+
initModuleMenuData(a) {
|
|
969
|
+
a.forEach((b) => {
|
|
970
|
+
if (b?.children && Array.isArray(b?.children) && b.children.length > 0) {
|
|
971
|
+
b.children = b.children.filter((item) => {
|
|
972
|
+
const hasChildren = Array.isArray(item?.children) && item.children.length > 0;
|
|
973
|
+
const hasLink = !!item?.link;
|
|
974
|
+
return hasChildren || hasLink;
|
|
975
|
+
});
|
|
976
|
+
}
|
|
977
|
+
// item['hide'] = false;
|
|
978
|
+
// console.log(item);
|
|
979
|
+
// if (item?.type) {
|
|
980
|
+
// item["group"] = false;
|
|
981
|
+
// }
|
|
982
|
+
// if (item?.type == 'MENU_GROUP') {
|
|
983
|
+
// item["group"] = false;
|
|
984
|
+
// if (item?.children && Array.isArray(item?.children) && item.children.length > 0) {
|
|
985
|
+
// item?.children.forEach((b: any) => {
|
|
986
|
+
// b['hide'] = true;
|
|
987
|
+
// })
|
|
988
|
+
// }
|
|
989
|
+
// } else {
|
|
990
|
+
// if (item?.children && Array.isArray(item?.children) && item.children.length > 0) {
|
|
991
|
+
// this.initModuleMenuData(item, item.children);
|
|
992
|
+
// }
|
|
993
|
+
// }
|
|
994
|
+
});
|
|
995
|
+
}
|
|
996
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutManageComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: i2.MenuService }, { token: i2.SettingsService }, { token: i2._HttpClient }, { token: i3.ACLService }], target: i0.ɵɵFactoryTarget.Component });
|
|
997
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: LayoutManageComponent, isStandalone: true, selector: "layout-manage", host: { classAttribute: "layout-basic" }, viewQueries: [{ propertyName: "menuContainer", first: true, predicate: ["menuContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
998
|
+
<nz-spin [nzSpinning]="loading" nzTip="拼命加载中..." class="deon-list-spin">
|
|
999
|
+
<layout-default [options]="options" [content]="contentTpl" [asideUser]="asideUserTpl" [nav]="navTpl">
|
|
1000
|
+
<layout-default-header-item direction="middle">
|
|
1001
|
+
<ul nz-menu nzMode="horizontal" class="header-item-ul" #menuContainer *ngIf="visibleMenuData!! && visibleMenuData != null">
|
|
1002
|
+
<li nz-menu-item *ngFor="let item of visibleMenuData; let index = index" [nzSelected]="item.selected" (click)="menuClick(item)">
|
|
1003
|
+
<div class="menu-text">
|
|
1004
|
+
<div class="icon">
|
|
1005
|
+
<span nz-icon [ngClass]="'backgroup_' + index" [nzType]="item?.selected == true ? item.icon : item.icon"></span>
|
|
1006
|
+
</div>
|
|
1007
|
+
<div class="text">{{ item.text }}</div>
|
|
1008
|
+
</div>
|
|
1009
|
+
</li>
|
|
1010
|
+
<li nz-menu-item *ngIf="hasMoreItems" (click)="toggleShowAll()">
|
|
1011
|
+
<div class="menu-text" nz-dropdown [nzDropdownMenu]="menu">
|
|
1012
|
+
<div class="icon">
|
|
1013
|
+
<span nz-icon nzType="ordered-list" class="backgroup_more"></span>
|
|
1014
|
+
</div>
|
|
1015
|
+
<div class="text">更多</div>
|
|
1016
|
+
</div>
|
|
1017
|
+
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
1018
|
+
<ul nz-menu nzSelectable>
|
|
1019
|
+
<ng-container *ngFor="let b of moreItems">
|
|
1020
|
+
<li nz-menu-item (click)="menuClick(b)">{{ b.text }}</li>
|
|
1021
|
+
</ng-container>
|
|
1022
|
+
</ul>
|
|
1023
|
+
</nz-dropdown-menu>
|
|
1024
|
+
</li>
|
|
1025
|
+
</ul>
|
|
1026
|
+
</layout-default-header-item>
|
|
1027
|
+
<layout-default-header-item direction="right">
|
|
1028
|
+
<header-user></header-user>
|
|
1029
|
+
</layout-default-header-item>
|
|
1030
|
+
|
|
1031
|
+
<ng-template #contentTpl>
|
|
1032
|
+
<router-outlet></router-outlet>
|
|
1033
|
+
</ng-template>
|
|
1034
|
+
|
|
1035
|
+
<ng-template #asideUserTpl>
|
|
1036
|
+
<div class="logo">
|
|
1037
|
+
<img src="/assets/images/logo.png" />
|
|
1038
|
+
</div>
|
|
1039
|
+
<div class="home" (click)="goToHome()">
|
|
1040
|
+
<span nz-icon nzType="home"></span>
|
|
1041
|
+
<label>首页</label>
|
|
1042
|
+
</div>
|
|
1043
|
+
</ng-template>
|
|
1044
|
+
|
|
1045
|
+
<ng-template #navTpl>
|
|
1046
|
+
<div class="nav-menu">
|
|
1047
|
+
<nav-menu [data]="navMenuData"></nav-menu>
|
|
1048
|
+
</div>
|
|
1049
|
+
</ng-template>
|
|
1050
|
+
</layout-default>
|
|
1051
|
+
</nz-spin>
|
|
1052
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: LayoutDefaultModule }, { kind: "component", type: i5$1.LayoutDefaultComponent, selector: "layout-default", inputs: ["options", "asideUser", "asideBottom", "nav", "content", "customError", "fetchingStrictly", "fetching"], exportAs: ["layoutDefault"] }, { kind: "component", type: i5$1.LayoutDefaultHeaderItemComponent, selector: "layout-default-header-item", inputs: ["hidden", "direction"] }, { kind: "ngmodule", type: RuntimeSharedImportsModule }, { kind: "directive", type: i1$1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i6$1.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i1$2.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1$2.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i2$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: i10$1.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "ngmodule", type: GramDeonHeaderUserModule }, { kind: "component", type: NavMenuComponent, selector: "nav-menu", inputs: ["data"] }, { kind: "component", type: HeaderUserComponent$1, selector: "header-user" }] });
|
|
1053
|
+
}
|
|
1054
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutManageComponent, decorators: [{
|
|
1055
|
+
type: Component,
|
|
1056
|
+
args: [{
|
|
1057
|
+
selector: 'layout-manage',
|
|
1058
|
+
template: `
|
|
1059
|
+
<nz-spin [nzSpinning]="loading" nzTip="拼命加载中..." class="deon-list-spin">
|
|
1060
|
+
<layout-default [options]="options" [content]="contentTpl" [asideUser]="asideUserTpl" [nav]="navTpl">
|
|
1061
|
+
<layout-default-header-item direction="middle">
|
|
1062
|
+
<ul nz-menu nzMode="horizontal" class="header-item-ul" #menuContainer *ngIf="visibleMenuData!! && visibleMenuData != null">
|
|
1063
|
+
<li nz-menu-item *ngFor="let item of visibleMenuData; let index = index" [nzSelected]="item.selected" (click)="menuClick(item)">
|
|
1064
|
+
<div class="menu-text">
|
|
1065
|
+
<div class="icon">
|
|
1066
|
+
<span nz-icon [ngClass]="'backgroup_' + index" [nzType]="item?.selected == true ? item.icon : item.icon"></span>
|
|
1067
|
+
</div>
|
|
1068
|
+
<div class="text">{{ item.text }}</div>
|
|
1069
|
+
</div>
|
|
1070
|
+
</li>
|
|
1071
|
+
<li nz-menu-item *ngIf="hasMoreItems" (click)="toggleShowAll()">
|
|
1072
|
+
<div class="menu-text" nz-dropdown [nzDropdownMenu]="menu">
|
|
1073
|
+
<div class="icon">
|
|
1074
|
+
<span nz-icon nzType="ordered-list" class="backgroup_more"></span>
|
|
1075
|
+
</div>
|
|
1076
|
+
<div class="text">更多</div>
|
|
1077
|
+
</div>
|
|
1078
|
+
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
1079
|
+
<ul nz-menu nzSelectable>
|
|
1080
|
+
<ng-container *ngFor="let b of moreItems">
|
|
1081
|
+
<li nz-menu-item (click)="menuClick(b)">{{ b.text }}</li>
|
|
1082
|
+
</ng-container>
|
|
1083
|
+
</ul>
|
|
1084
|
+
</nz-dropdown-menu>
|
|
1085
|
+
</li>
|
|
1086
|
+
</ul>
|
|
1087
|
+
</layout-default-header-item>
|
|
1088
|
+
<layout-default-header-item direction="right">
|
|
1089
|
+
<header-user></header-user>
|
|
1090
|
+
</layout-default-header-item>
|
|
1091
|
+
|
|
1092
|
+
<ng-template #contentTpl>
|
|
1093
|
+
<router-outlet></router-outlet>
|
|
1094
|
+
</ng-template>
|
|
1095
|
+
|
|
1096
|
+
<ng-template #asideUserTpl>
|
|
1097
|
+
<div class="logo">
|
|
1098
|
+
<img src="/assets/images/logo.png" />
|
|
1099
|
+
</div>
|
|
1100
|
+
<div class="home" (click)="goToHome()">
|
|
1101
|
+
<span nz-icon nzType="home"></span>
|
|
1102
|
+
<label>首页</label>
|
|
1103
|
+
</div>
|
|
1104
|
+
</ng-template>
|
|
1105
|
+
|
|
1106
|
+
<ng-template #navTpl>
|
|
1107
|
+
<div class="nav-menu">
|
|
1108
|
+
<nav-menu [data]="navMenuData"></nav-menu>
|
|
1109
|
+
</div>
|
|
1110
|
+
</ng-template>
|
|
1111
|
+
</layout-default>
|
|
1112
|
+
</nz-spin>
|
|
1113
|
+
`,
|
|
1114
|
+
host: {
|
|
1115
|
+
class: 'layout-basic',
|
|
1116
|
+
},
|
|
1117
|
+
imports: [
|
|
1118
|
+
CommonModule,
|
|
1119
|
+
FormsModule, ReactiveFormsModule,
|
|
1120
|
+
LayoutDefaultModule,
|
|
1121
|
+
RuntimeSharedImportsModule,
|
|
1122
|
+
GramDeonHeaderUserModule,
|
|
1123
|
+
NavMenuComponent,
|
|
1124
|
+
HeaderUserComponent$1
|
|
1125
|
+
]
|
|
1126
|
+
}]
|
|
1127
|
+
}], ctorParameters: () => [{ type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: i2.MenuService }, { type: i2.SettingsService }, { type: i2._HttpClient }, { type: i3.ACLService }], propDecorators: { menuContainer: [{
|
|
1128
|
+
type: ViewChild,
|
|
1129
|
+
args: ['menuContainer']
|
|
1130
|
+
}] } });
|
|
1131
|
+
|
|
1132
|
+
class LayoutManageViewComponent extends LayoutBaseService {
|
|
1133
|
+
router;
|
|
1134
|
+
activatedRoute;
|
|
1135
|
+
menuService;
|
|
1136
|
+
settingService;
|
|
1137
|
+
http;
|
|
1138
|
+
aclService;
|
|
1139
|
+
options = {
|
|
1140
|
+
logoExpanded: `./assets/images/logo3.png`,
|
|
1141
|
+
logoCollapsed: `./assets/images/logo3.png`,
|
|
1142
|
+
// hideCollapse: true,
|
|
1143
|
+
hideAside: true,
|
|
1144
|
+
//hideLogo: true,
|
|
1145
|
+
// title: null,
|
|
1146
|
+
showHeaderCollapse: false
|
|
1147
|
+
};
|
|
1148
|
+
constructor(router, activatedRoute, menuService, settingService, http, aclService) {
|
|
1149
|
+
super(http, router, menuService, settingService, aclService);
|
|
1150
|
+
this.router = router;
|
|
1151
|
+
this.activatedRoute = activatedRoute;
|
|
1152
|
+
this.menuService = menuService;
|
|
1153
|
+
this.settingService = settingService;
|
|
1154
|
+
this.http = http;
|
|
1155
|
+
this.aclService = aclService;
|
|
1156
|
+
this.initMenuData();
|
|
1157
|
+
}
|
|
1158
|
+
goToHome() {
|
|
1159
|
+
this.router.navigateByUrl('/home');
|
|
1160
|
+
}
|
|
1161
|
+
addMenuData(e) { }
|
|
1162
|
+
initModuleMenuData(parentInfo, e) { }
|
|
1163
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutManageViewComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: i2.MenuService }, { token: i2.SettingsService }, { token: i2._HttpClient }, { token: i3.ACLService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1164
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: LayoutManageViewComponent, isStandalone: true, selector: "layout-manage-view", host: { classAttribute: "layout-basic" }, usesInheritance: true, ngImport: i0, template: `
|
|
1165
|
+
<nz-spin [nzSpinning]="loading" nzTip="拼命加载中..." class="deon-list-spin">
|
|
1166
|
+
<layout-default [options]="options" [content]="contentTpl">
|
|
1167
|
+
<layout-default-header-item direction="middle">
|
|
1168
|
+
<ul nz-menu nzMode="horizontal" class="header-item-ul">
|
|
1169
|
+
<li nz-menu-item *ngFor="let item of menuData; let index = index" [nzSelected]="item.selected" (click)="menuClick(item)">
|
|
1170
|
+
<div class="menu-text">
|
|
1171
|
+
<div class="icon">
|
|
1172
|
+
<span nz-icon [ngClass]="'backgroup_' + index" [nzType]="item?.selected == true ? item.icon?.value : item.icon"></span>
|
|
1173
|
+
</div>
|
|
1174
|
+
<div class="text">{{ item.text }}</div>
|
|
1175
|
+
</div>
|
|
1176
|
+
</li>
|
|
1177
|
+
</ul>
|
|
1178
|
+
</layout-default-header-item>
|
|
1179
|
+
<layout-default-header-item direction="right">
|
|
1180
|
+
<header-user></header-user>
|
|
1181
|
+
</layout-default-header-item>
|
|
1182
|
+
|
|
1183
|
+
<ng-template #contentTpl>
|
|
1184
|
+
<router-outlet></router-outlet>
|
|
1185
|
+
</ng-template>
|
|
1186
|
+
</layout-default>
|
|
1187
|
+
</nz-spin>
|
|
1188
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: RuntimeSharedImportsModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i6$1.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i1$2.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1$2.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: i10$1.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "ngmodule", type: LayoutDefaultModule }, { kind: "component", type: i5$1.LayoutDefaultComponent, selector: "layout-default", inputs: ["options", "asideUser", "asideBottom", "nav", "content", "customError", "fetchingStrictly", "fetching"], exportAs: ["layoutDefault"] }, { kind: "component", type: i5$1.LayoutDefaultHeaderItemComponent, selector: "layout-default-header-item", inputs: ["hidden", "direction"] }, { kind: "ngmodule", type: GramDeonHeaderUserModule }, { kind: "component", type: HeaderUserComponent$1, selector: "header-user" }] });
|
|
1189
|
+
}
|
|
1190
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutManageViewComponent, decorators: [{
|
|
1191
|
+
type: Component,
|
|
1192
|
+
args: [{
|
|
1193
|
+
selector: 'layout-manage-view',
|
|
1194
|
+
template: `
|
|
1195
|
+
<nz-spin [nzSpinning]="loading" nzTip="拼命加载中..." class="deon-list-spin">
|
|
1196
|
+
<layout-default [options]="options" [content]="contentTpl">
|
|
1197
|
+
<layout-default-header-item direction="middle">
|
|
1198
|
+
<ul nz-menu nzMode="horizontal" class="header-item-ul">
|
|
1199
|
+
<li nz-menu-item *ngFor="let item of menuData; let index = index" [nzSelected]="item.selected" (click)="menuClick(item)">
|
|
1200
|
+
<div class="menu-text">
|
|
1201
|
+
<div class="icon">
|
|
1202
|
+
<span nz-icon [ngClass]="'backgroup_' + index" [nzType]="item?.selected == true ? item.icon?.value : item.icon"></span>
|
|
1203
|
+
</div>
|
|
1204
|
+
<div class="text">{{ item.text }}</div>
|
|
1205
|
+
</div>
|
|
1206
|
+
</li>
|
|
1207
|
+
</ul>
|
|
1208
|
+
</layout-default-header-item>
|
|
1209
|
+
<layout-default-header-item direction="right">
|
|
1210
|
+
<header-user></header-user>
|
|
1211
|
+
</layout-default-header-item>
|
|
1212
|
+
|
|
1213
|
+
<ng-template #contentTpl>
|
|
1214
|
+
<router-outlet></router-outlet>
|
|
1215
|
+
</ng-template>
|
|
1216
|
+
</layout-default>
|
|
1217
|
+
</nz-spin>
|
|
1218
|
+
`,
|
|
1219
|
+
host: {
|
|
1220
|
+
class: 'layout-basic',
|
|
1221
|
+
},
|
|
1222
|
+
imports: [
|
|
1223
|
+
RuntimeSharedImportsModule,
|
|
1224
|
+
LayoutDefaultModule,
|
|
1225
|
+
GramDeonHeaderUserModule,
|
|
1226
|
+
HeaderUserComponent$1
|
|
1227
|
+
]
|
|
1228
|
+
}]
|
|
1229
|
+
}], ctorParameters: () => [{ type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: i2.MenuService }, { type: i2.SettingsService }, { type: i2._HttpClient }, { type: i3.ACLService }] });
|
|
1230
|
+
|
|
1231
|
+
class LayoutAdminComponent extends LayoutBaseService {
|
|
1232
|
+
router;
|
|
1233
|
+
activatedRoute;
|
|
1234
|
+
menuService;
|
|
1235
|
+
settingService;
|
|
1236
|
+
http;
|
|
1237
|
+
aclService;
|
|
1238
|
+
options = null;
|
|
1239
|
+
constructor(router, activatedRoute, menuService, settingService, http, aclService) {
|
|
1240
|
+
super(http, router, menuService, settingService, aclService);
|
|
1241
|
+
this.router = router;
|
|
1242
|
+
this.activatedRoute = activatedRoute;
|
|
1243
|
+
this.menuService = menuService;
|
|
1244
|
+
this.settingService = settingService;
|
|
1245
|
+
this.http = http;
|
|
1246
|
+
this.aclService = aclService;
|
|
1247
|
+
this.options = {
|
|
1248
|
+
logoExpanded: `./assets/images/logo.png`,
|
|
1249
|
+
logoCollapsed: `./assets/images/logo.png`,
|
|
1250
|
+
//title: null,
|
|
1251
|
+
//hideCollapse: true,
|
|
1252
|
+
hideAside: false,
|
|
1253
|
+
};
|
|
1254
|
+
//this.options.title = `${AppName} - 管理后台`;
|
|
1255
|
+
}
|
|
1256
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutAdminComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: i2.MenuService }, { token: i2.SettingsService }, { token: i2._HttpClient }, { token: i3.ACLService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1257
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: LayoutAdminComponent, isStandalone: true, selector: "layout-admin", usesInheritance: true, ngImport: i0, template: `
|
|
1258
|
+
<layout-default [options]="options" [content]="contentTpl">
|
|
1259
|
+
<layout-default-header-item direction="middle"> </layout-default-header-item>
|
|
1260
|
+
|
|
1261
|
+
<layout-default-header-item direction="right">
|
|
1262
|
+
<gram-header-user></gram-header-user>
|
|
1263
|
+
</layout-default-header-item>
|
|
1264
|
+
|
|
1265
|
+
<ng-template #contentTpl>
|
|
1266
|
+
<router-outlet></router-outlet>
|
|
1267
|
+
</ng-template>
|
|
1268
|
+
</layout-default>
|
|
1269
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: LayoutDefaultModule }, { kind: "component", type: i5$1.LayoutDefaultComponent, selector: "layout-default", inputs: ["options", "asideUser", "asideBottom", "nav", "content", "customError", "fetchingStrictly", "fetching"], exportAs: ["layoutDefault"] }, { kind: "component", type: i5$1.LayoutDefaultHeaderItemComponent, selector: "layout-default-header-item", inputs: ["hidden", "direction"] }, { kind: "ngmodule", type: GramDeonHeaderUserModule }, { kind: "component", type: i5$2.GramHeaderUserComponent, selector: "gram-header-user" }] });
|
|
1270
|
+
}
|
|
1271
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutAdminComponent, decorators: [{
|
|
1272
|
+
type: Component,
|
|
1273
|
+
args: [{
|
|
1274
|
+
selector: 'layout-admin',
|
|
1275
|
+
template: `
|
|
1276
|
+
<layout-default [options]="options" [content]="contentTpl">
|
|
1277
|
+
<layout-default-header-item direction="middle"> </layout-default-header-item>
|
|
1278
|
+
|
|
1279
|
+
<layout-default-header-item direction="right">
|
|
1280
|
+
<gram-header-user></gram-header-user>
|
|
1281
|
+
</layout-default-header-item>
|
|
1282
|
+
|
|
1283
|
+
<ng-template #contentTpl>
|
|
1284
|
+
<router-outlet></router-outlet>
|
|
1285
|
+
</ng-template>
|
|
1286
|
+
</layout-default>
|
|
1287
|
+
`,
|
|
1288
|
+
imports: [
|
|
1289
|
+
CommonModule,
|
|
1290
|
+
RouterModule,
|
|
1291
|
+
LayoutDefaultModule,
|
|
1292
|
+
GramDeonHeaderUserModule
|
|
1293
|
+
]
|
|
1294
|
+
}]
|
|
1295
|
+
}], ctorParameters: () => [{ type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: i2.MenuService }, { type: i2.SettingsService }, { type: i2._HttpClient }, { type: i3.ACLService }] });
|
|
1296
|
+
|
|
1297
|
+
class HeaderClearStorageComponent {
|
|
1298
|
+
modalSrv = inject(NzModalService);
|
|
1299
|
+
messageSrv = inject(NzMessageService);
|
|
1300
|
+
_click() {
|
|
1301
|
+
this.modalSrv.confirm({
|
|
1302
|
+
nzTitle: 'Make sure clear all local storage?',
|
|
1303
|
+
nzOnOk: () => {
|
|
1304
|
+
localStorage.clear();
|
|
1305
|
+
this.messageSrv.success('Clear Finished!');
|
|
1306
|
+
}
|
|
1307
|
+
});
|
|
1308
|
+
}
|
|
1309
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderClearStorageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1310
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: HeaderClearStorageComponent, isStandalone: true, selector: "header-clear-storage", host: { listeners: { "click": "_click()" }, properties: { "class.flex-1": "true" } }, ngImport: i0, template: `
|
|
1311
|
+
<i nz-icon nzType="tool"></i>
|
|
1312
|
+
{{ 'menu.clear.local.storage' | i18n }}
|
|
1313
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1314
|
+
}
|
|
1315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderClearStorageComponent, decorators: [{
|
|
1316
|
+
type: Component,
|
|
1317
|
+
args: [{
|
|
1318
|
+
selector: 'header-clear-storage',
|
|
1319
|
+
template: `
|
|
1320
|
+
<i nz-icon nzType="tool"></i>
|
|
1321
|
+
{{ 'menu.clear.local.storage' | i18n }}
|
|
1322
|
+
`,
|
|
1323
|
+
host: {
|
|
1324
|
+
'[class.flex-1]': 'true'
|
|
1325
|
+
},
|
|
1326
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1327
|
+
imports: [NzIconModule, I18nPipe]
|
|
1328
|
+
}]
|
|
1329
|
+
}], propDecorators: { _click: [{
|
|
1330
|
+
type: HostListener,
|
|
1331
|
+
args: ['click']
|
|
1332
|
+
}] } });
|
|
1333
|
+
|
|
1334
|
+
class HeaderFullScreenComponent {
|
|
1335
|
+
status = false;
|
|
1336
|
+
_resize() {
|
|
1337
|
+
this.status = screenfull.isFullscreen;
|
|
1338
|
+
}
|
|
1339
|
+
_click() {
|
|
1340
|
+
if (screenfull.isEnabled) {
|
|
1341
|
+
screenfull.toggle();
|
|
1342
|
+
}
|
|
1343
|
+
}
|
|
1344
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderFullScreenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1345
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: HeaderFullScreenComponent, isStandalone: true, selector: "header-fullscreen", host: { listeners: { "window:resize": "_resize()", "click": "_click()" }, properties: { "class.flex-1": "true" } }, ngImport: i0, template: `
|
|
1346
|
+
<i nz-icon [nzType]="status ? 'fullscreen-exit' : 'fullscreen'"></i>
|
|
1347
|
+
{{ (status ? 'menu.fullscreen.exit' : 'menu.fullscreen') | i18n }}
|
|
1348
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1349
|
+
}
|
|
1350
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderFullScreenComponent, decorators: [{
|
|
1351
|
+
type: Component,
|
|
1352
|
+
args: [{
|
|
1353
|
+
selector: 'header-fullscreen',
|
|
1354
|
+
template: `
|
|
1355
|
+
<i nz-icon [nzType]="status ? 'fullscreen-exit' : 'fullscreen'"></i>
|
|
1356
|
+
{{ (status ? 'menu.fullscreen.exit' : 'menu.fullscreen') | i18n }}
|
|
1357
|
+
`,
|
|
1358
|
+
host: {
|
|
1359
|
+
'[class.flex-1]': 'true'
|
|
1360
|
+
},
|
|
1361
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1362
|
+
imports: [NzIconModule, I18nPipe]
|
|
1363
|
+
}]
|
|
1364
|
+
}], propDecorators: { _resize: [{
|
|
1365
|
+
type: HostListener,
|
|
1366
|
+
args: ['window:resize']
|
|
1367
|
+
}], _click: [{
|
|
1368
|
+
type: HostListener,
|
|
1369
|
+
args: ['click']
|
|
1370
|
+
}] } });
|
|
1371
|
+
|
|
1372
|
+
class HeaderI18nComponent {
|
|
1373
|
+
settings = inject(SettingsService);
|
|
1374
|
+
i18n = inject(ALAIN_I18N_TOKEN);
|
|
1375
|
+
doc = inject(DOCUMENT);
|
|
1376
|
+
/** Whether to display language text */
|
|
1377
|
+
showLangText = true;
|
|
1378
|
+
get langs() {
|
|
1379
|
+
return this.i18n.getLangs();
|
|
1380
|
+
}
|
|
1381
|
+
get curLangCode() {
|
|
1382
|
+
return this.settings.layout.lang;
|
|
1383
|
+
}
|
|
1384
|
+
change(lang) {
|
|
1385
|
+
const spinEl = this.doc.createElement('div');
|
|
1386
|
+
spinEl.setAttribute('class', `page-loading ant-spin ant-spin-lg ant-spin-spinning`);
|
|
1387
|
+
spinEl.innerHTML = `<span class="ant-spin-dot ant-spin-dot-spin"><i></i><i></i><i></i><i></i></span>`;
|
|
1388
|
+
this.doc.body.appendChild(spinEl);
|
|
1389
|
+
this.i18n.loadLangData(lang).subscribe(res => {
|
|
1390
|
+
this.i18n.use(lang, res);
|
|
1391
|
+
this.settings.setLayout('lang', lang);
|
|
1392
|
+
setTimeout(() => this.doc.location.reload());
|
|
1393
|
+
});
|
|
1394
|
+
}
|
|
1395
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderI18nComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1396
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: HeaderI18nComponent, isStandalone: true, selector: "header-i18n", inputs: { showLangText: ["showLangText", "showLangText", booleanAttribute] }, host: { properties: { "class.flex-1": "true" } }, ngImport: i0, template: `
|
|
1397
|
+
@if (showLangText) {
|
|
1398
|
+
<div nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight">
|
|
1399
|
+
<i nz-icon nzType="global"></i>
|
|
1400
|
+
{{ 'menu.lang' | i18n }}
|
|
1401
|
+
<i nz-icon nzType="down"></i>
|
|
1402
|
+
</div>
|
|
1403
|
+
} @else {
|
|
1404
|
+
<i nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight" nz-icon nzType="global"></i>
|
|
1405
|
+
}
|
|
1406
|
+
<nz-dropdown-menu #langMenu="nzDropdownMenu">
|
|
1407
|
+
<ul nz-menu>
|
|
1408
|
+
@for (item of langs; track $index) {
|
|
1409
|
+
<li nz-menu-item [nzSelected]="item.code === curLangCode" (click)="change(item.code)">
|
|
1410
|
+
<span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
|
|
1411
|
+
{{ item.text }}
|
|
1412
|
+
</li>
|
|
1413
|
+
}
|
|
1414
|
+
</ul>
|
|
1415
|
+
</nz-dropdown-menu>
|
|
1416
|
+
`, isInline: true, dependencies: [{ kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1$2.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1$2.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i2$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzMenuModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1417
|
+
}
|
|
1418
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderI18nComponent, decorators: [{
|
|
1419
|
+
type: Component,
|
|
1420
|
+
args: [{
|
|
1421
|
+
selector: 'header-i18n',
|
|
1422
|
+
template: `
|
|
1423
|
+
@if (showLangText) {
|
|
1424
|
+
<div nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight">
|
|
1425
|
+
<i nz-icon nzType="global"></i>
|
|
1426
|
+
{{ 'menu.lang' | i18n }}
|
|
1427
|
+
<i nz-icon nzType="down"></i>
|
|
1428
|
+
</div>
|
|
1429
|
+
} @else {
|
|
1430
|
+
<i nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight" nz-icon nzType="global"></i>
|
|
1431
|
+
}
|
|
1432
|
+
<nz-dropdown-menu #langMenu="nzDropdownMenu">
|
|
1433
|
+
<ul nz-menu>
|
|
1434
|
+
@for (item of langs; track $index) {
|
|
1435
|
+
<li nz-menu-item [nzSelected]="item.code === curLangCode" (click)="change(item.code)">
|
|
1436
|
+
<span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
|
|
1437
|
+
{{ item.text }}
|
|
1438
|
+
</li>
|
|
1439
|
+
}
|
|
1440
|
+
</ul>
|
|
1441
|
+
</nz-dropdown-menu>
|
|
1442
|
+
`,
|
|
1443
|
+
host: {
|
|
1444
|
+
'[class.flex-1]': 'true'
|
|
1445
|
+
},
|
|
1446
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1447
|
+
imports: [I18nPipe, NzDropDownModule, NzIconModule, NzMenuModule]
|
|
1448
|
+
}]
|
|
1449
|
+
}], propDecorators: { showLangText: [{
|
|
1450
|
+
type: Input,
|
|
1451
|
+
args: [{ transform: booleanAttribute }]
|
|
1452
|
+
}] } });
|
|
1453
|
+
|
|
1454
|
+
class HeaderIconComponent {
|
|
1455
|
+
cdr = inject(ChangeDetectorRef);
|
|
1456
|
+
loading = true;
|
|
1457
|
+
change() {
|
|
1458
|
+
setTimeout(() => {
|
|
1459
|
+
this.loading = false;
|
|
1460
|
+
this.cdr.detectChanges();
|
|
1461
|
+
}, 500);
|
|
1462
|
+
}
|
|
1463
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1464
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: HeaderIconComponent, isStandalone: true, selector: "header-icon", ngImport: i0, template: `
|
|
1465
|
+
<div
|
|
1466
|
+
class="alain-default__nav-item"
|
|
1467
|
+
nz-dropdown
|
|
1468
|
+
[nzDropdownMenu]="iconMenu"
|
|
1469
|
+
nzTrigger="click"
|
|
1470
|
+
nzPlacement="bottomRight"
|
|
1471
|
+
(nzVisibleChange)="change()"
|
|
1472
|
+
>
|
|
1473
|
+
<i nz-icon nzType="appstore"></i>
|
|
1474
|
+
</div>
|
|
1475
|
+
<nz-dropdown-menu #iconMenu="nzDropdownMenu">
|
|
1476
|
+
<div nz-menu class="wd-xl animated jello">
|
|
1477
|
+
<nz-spin [nzSpinning]="loading" [nzTip]="'正在读取数据...'">
|
|
1478
|
+
<div nz-row [nzJustify]="'center'" [nzAlign]="'middle'" class="app-icons">
|
|
1479
|
+
<div nz-col [nzSpan]="6">
|
|
1480
|
+
<i nz-icon nzType="calendar" class="bg-error text-white"></i>
|
|
1481
|
+
<small>Calendar</small>
|
|
1482
|
+
</div>
|
|
1483
|
+
<div nz-col [nzSpan]="6">
|
|
1484
|
+
<i nz-icon nzType="file" class="bg-geekblue text-white"></i>
|
|
1485
|
+
<small>Files</small>
|
|
1486
|
+
</div>
|
|
1487
|
+
<div nz-col [nzSpan]="6">
|
|
1488
|
+
<i nz-icon nzType="cloud" class="bg-success text-white"></i>
|
|
1489
|
+
<small>Cloud</small>
|
|
1490
|
+
</div>
|
|
1491
|
+
<div nz-col [nzSpan]="6">
|
|
1492
|
+
<i nz-icon nzType="star" class="bg-magenta text-white"></i>
|
|
1493
|
+
<small>Star</small>
|
|
1494
|
+
</div>
|
|
1495
|
+
<div nz-col [nzSpan]="6">
|
|
1496
|
+
<i nz-icon nzType="team" class="bg-purple text-white"></i>
|
|
1497
|
+
<small>Team</small>
|
|
1498
|
+
</div>
|
|
1499
|
+
<div nz-col [nzSpan]="6">
|
|
1500
|
+
<i nz-icon nzType="scan" class="bg-warning text-white"></i>
|
|
1501
|
+
<small>QR</small>
|
|
1502
|
+
</div>
|
|
1503
|
+
<div nz-col [nzSpan]="6">
|
|
1504
|
+
<i nz-icon nzType="pay-circle" class="bg-cyan text-white"></i>
|
|
1505
|
+
<small>Pay</small>
|
|
1506
|
+
</div>
|
|
1507
|
+
<div nz-col [nzSpan]="6">
|
|
1508
|
+
<i nz-icon nzType="printer" class="bg-grey text-white"></i>
|
|
1509
|
+
<small>Print</small>
|
|
1510
|
+
</div>
|
|
1511
|
+
</div>
|
|
1512
|
+
</nz-spin>
|
|
1513
|
+
</div>
|
|
1514
|
+
</nz-dropdown-menu>
|
|
1515
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1$2.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "directive", type: i2$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i2$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzMenuModule }, { kind: "ngmodule", type: NzGridModule }, { kind: "directive", type: i15.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i15.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "ngmodule", type: NzSpinModule }, { kind: "component", type: i10$1.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1516
|
+
}
|
|
1517
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderIconComponent, decorators: [{
|
|
1518
|
+
type: Component,
|
|
1519
|
+
args: [{
|
|
1520
|
+
selector: 'header-icon',
|
|
1521
|
+
template: `
|
|
1522
|
+
<div
|
|
1523
|
+
class="alain-default__nav-item"
|
|
1524
|
+
nz-dropdown
|
|
1525
|
+
[nzDropdownMenu]="iconMenu"
|
|
1526
|
+
nzTrigger="click"
|
|
1527
|
+
nzPlacement="bottomRight"
|
|
1528
|
+
(nzVisibleChange)="change()"
|
|
1529
|
+
>
|
|
1530
|
+
<i nz-icon nzType="appstore"></i>
|
|
1531
|
+
</div>
|
|
1532
|
+
<nz-dropdown-menu #iconMenu="nzDropdownMenu">
|
|
1533
|
+
<div nz-menu class="wd-xl animated jello">
|
|
1534
|
+
<nz-spin [nzSpinning]="loading" [nzTip]="'正在读取数据...'">
|
|
1535
|
+
<div nz-row [nzJustify]="'center'" [nzAlign]="'middle'" class="app-icons">
|
|
1536
|
+
<div nz-col [nzSpan]="6">
|
|
1537
|
+
<i nz-icon nzType="calendar" class="bg-error text-white"></i>
|
|
1538
|
+
<small>Calendar</small>
|
|
1539
|
+
</div>
|
|
1540
|
+
<div nz-col [nzSpan]="6">
|
|
1541
|
+
<i nz-icon nzType="file" class="bg-geekblue text-white"></i>
|
|
1542
|
+
<small>Files</small>
|
|
1543
|
+
</div>
|
|
1544
|
+
<div nz-col [nzSpan]="6">
|
|
1545
|
+
<i nz-icon nzType="cloud" class="bg-success text-white"></i>
|
|
1546
|
+
<small>Cloud</small>
|
|
1547
|
+
</div>
|
|
1548
|
+
<div nz-col [nzSpan]="6">
|
|
1549
|
+
<i nz-icon nzType="star" class="bg-magenta text-white"></i>
|
|
1550
|
+
<small>Star</small>
|
|
1551
|
+
</div>
|
|
1552
|
+
<div nz-col [nzSpan]="6">
|
|
1553
|
+
<i nz-icon nzType="team" class="bg-purple text-white"></i>
|
|
1554
|
+
<small>Team</small>
|
|
1555
|
+
</div>
|
|
1556
|
+
<div nz-col [nzSpan]="6">
|
|
1557
|
+
<i nz-icon nzType="scan" class="bg-warning text-white"></i>
|
|
1558
|
+
<small>QR</small>
|
|
1559
|
+
</div>
|
|
1560
|
+
<div nz-col [nzSpan]="6">
|
|
1561
|
+
<i nz-icon nzType="pay-circle" class="bg-cyan text-white"></i>
|
|
1562
|
+
<small>Pay</small>
|
|
1563
|
+
</div>
|
|
1564
|
+
<div nz-col [nzSpan]="6">
|
|
1565
|
+
<i nz-icon nzType="printer" class="bg-grey text-white"></i>
|
|
1566
|
+
<small>Print</small>
|
|
1567
|
+
</div>
|
|
1568
|
+
</div>
|
|
1569
|
+
</nz-spin>
|
|
1570
|
+
</div>
|
|
1571
|
+
</nz-dropdown-menu>
|
|
1572
|
+
`,
|
|
1573
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1574
|
+
imports: [NzDropDownModule, NzIconModule, NzMenuModule, NzGridModule, NzSpinModule]
|
|
1575
|
+
}]
|
|
1576
|
+
}] });
|
|
1577
|
+
|
|
1578
|
+
class HeaderNotifyComponent {
|
|
1579
|
+
msg = inject(NzMessageService);
|
|
1580
|
+
nzI18n = inject(NzI18nService);
|
|
1581
|
+
cdr = inject(ChangeDetectorRef);
|
|
1582
|
+
data = [
|
|
1583
|
+
{
|
|
1584
|
+
title: '通知',
|
|
1585
|
+
list: [],
|
|
1586
|
+
emptyText: '你已查看所有通知',
|
|
1587
|
+
emptyImage: 'https://gw.alipayobjects.com/zos/rmsportal/wAhyIChODzsoKIOBHcBk.svg',
|
|
1588
|
+
clearText: '清空通知'
|
|
1589
|
+
},
|
|
1590
|
+
{
|
|
1591
|
+
title: '消息',
|
|
1592
|
+
list: [],
|
|
1593
|
+
emptyText: '您已读完所有消息',
|
|
1594
|
+
emptyImage: 'https://gw.alipayobjects.com/zos/rmsportal/sAuJeJzSKbUmHfBQRzmZ.svg',
|
|
1595
|
+
clearText: '清空消息'
|
|
1596
|
+
},
|
|
1597
|
+
{
|
|
1598
|
+
title: '待办',
|
|
1599
|
+
list: [],
|
|
1600
|
+
emptyText: '你已完成所有待办',
|
|
1601
|
+
emptyImage: 'https://gw.alipayobjects.com/zos/rmsportal/HsIsxMZiWKrNUavQUXqx.svg',
|
|
1602
|
+
clearText: '清空待办'
|
|
1603
|
+
}
|
|
1604
|
+
];
|
|
1605
|
+
count = 5;
|
|
1606
|
+
loading = false;
|
|
1607
|
+
updateNoticeData(notices) {
|
|
1608
|
+
const data = this.data.slice();
|
|
1609
|
+
data.forEach(i => (i.list = []));
|
|
1610
|
+
notices.forEach(item => {
|
|
1611
|
+
const newItem = { ...item };
|
|
1612
|
+
if (typeof newItem.datetime === 'string') {
|
|
1613
|
+
newItem.datetime = parse(newItem.datetime, 'yyyy-MM-dd', new Date());
|
|
1614
|
+
}
|
|
1615
|
+
if (newItem.datetime) {
|
|
1616
|
+
newItem.datetime = formatDistanceToNow(newItem.datetime, { locale: this.nzI18n.getDateLocale() });
|
|
1617
|
+
}
|
|
1618
|
+
if (newItem.extra && newItem['status']) {
|
|
1619
|
+
newItem['color'] = {
|
|
1620
|
+
todo: undefined,
|
|
1621
|
+
processing: 'blue',
|
|
1622
|
+
urgent: 'red',
|
|
1623
|
+
doing: 'gold'
|
|
1624
|
+
}[newItem['status']];
|
|
1625
|
+
}
|
|
1626
|
+
data.find(w => w.title === newItem['type']).list.push(newItem);
|
|
1627
|
+
});
|
|
1628
|
+
return data;
|
|
1629
|
+
}
|
|
1630
|
+
loadData() {
|
|
1631
|
+
if (this.loading) {
|
|
1632
|
+
return;
|
|
1633
|
+
}
|
|
1634
|
+
this.loading = true;
|
|
1635
|
+
setTimeout(() => {
|
|
1636
|
+
const now = new Date();
|
|
1637
|
+
this.data = this.updateNoticeData([
|
|
1638
|
+
{
|
|
1639
|
+
id: '000000001',
|
|
1640
|
+
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',
|
|
1641
|
+
title: '你收到了 14 份新周报',
|
|
1642
|
+
datetime: add(now, { days: 10 }),
|
|
1643
|
+
type: '通知'
|
|
1644
|
+
},
|
|
1645
|
+
{
|
|
1646
|
+
id: '000000002',
|
|
1647
|
+
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/OKJXDXrmkNshAMvwtvhu.png',
|
|
1648
|
+
title: '你推荐的 曲妮妮 已通过第三轮面试',
|
|
1649
|
+
datetime: add(now, { days: -3 }),
|
|
1650
|
+
type: '通知'
|
|
1651
|
+
},
|
|
1652
|
+
{
|
|
1653
|
+
id: '000000003',
|
|
1654
|
+
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/kISTdvpyTAhtGxpovNWd.png',
|
|
1655
|
+
title: '这种模板可以区分多种通知类型',
|
|
1656
|
+
datetime: add(now, { months: -3 }),
|
|
1657
|
+
read: true,
|
|
1658
|
+
type: '通知'
|
|
1659
|
+
},
|
|
1660
|
+
{
|
|
1661
|
+
id: '000000004',
|
|
1662
|
+
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/GvqBnKhFgObvnSGkDsje.png',
|
|
1663
|
+
title: '左侧图标用于区分不同的类型',
|
|
1664
|
+
datetime: add(now, { years: -1 }),
|
|
1665
|
+
type: '通知'
|
|
1666
|
+
},
|
|
1667
|
+
{
|
|
1668
|
+
id: '000000005',
|
|
1669
|
+
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png',
|
|
1670
|
+
title: '内容不要超过两行字,超出时自动截断',
|
|
1671
|
+
datetime: '2017-08-07',
|
|
1672
|
+
type: '通知'
|
|
1673
|
+
},
|
|
1674
|
+
{
|
|
1675
|
+
id: '000000006',
|
|
1676
|
+
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg',
|
|
1677
|
+
title: '曲丽丽 评论了你',
|
|
1678
|
+
description: '描述信息描述信息描述信息',
|
|
1679
|
+
datetime: '2017-08-07',
|
|
1680
|
+
type: '消息'
|
|
1681
|
+
},
|
|
1682
|
+
{
|
|
1683
|
+
id: '000000007',
|
|
1684
|
+
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg',
|
|
1685
|
+
title: '朱偏右 回复了你',
|
|
1686
|
+
description: '这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像',
|
|
1687
|
+
datetime: '2017-08-07',
|
|
1688
|
+
type: '消息'
|
|
1689
|
+
},
|
|
1690
|
+
{
|
|
1691
|
+
id: '000000008',
|
|
1692
|
+
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg',
|
|
1693
|
+
title: '标题',
|
|
1694
|
+
description: '这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像',
|
|
1695
|
+
datetime: '2017-08-07',
|
|
1696
|
+
type: '消息'
|
|
1697
|
+
},
|
|
1698
|
+
{
|
|
1699
|
+
id: '000000009',
|
|
1700
|
+
title: '任务名称',
|
|
1701
|
+
description: '任务需要在 2017-01-12 20:00 前启动',
|
|
1702
|
+
extra: '未开始',
|
|
1703
|
+
status: 'todo',
|
|
1704
|
+
type: '待办'
|
|
1705
|
+
},
|
|
1706
|
+
{
|
|
1707
|
+
id: '000000010',
|
|
1708
|
+
title: '第三方紧急代码变更',
|
|
1709
|
+
description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务',
|
|
1710
|
+
extra: '马上到期',
|
|
1711
|
+
status: 'urgent',
|
|
1712
|
+
type: '待办'
|
|
1713
|
+
},
|
|
1714
|
+
{
|
|
1715
|
+
id: '000000011',
|
|
1716
|
+
title: '信息安全考试',
|
|
1717
|
+
description: '指派竹尔于 2017-01-09 前完成更新并发布',
|
|
1718
|
+
extra: '已耗时 8 天',
|
|
1719
|
+
status: 'doing',
|
|
1720
|
+
type: '待办'
|
|
1721
|
+
},
|
|
1722
|
+
{
|
|
1723
|
+
id: '000000012',
|
|
1724
|
+
title: 'ABCD 版本发布',
|
|
1725
|
+
description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务',
|
|
1726
|
+
extra: '进行中',
|
|
1727
|
+
status: 'processing',
|
|
1728
|
+
type: '待办'
|
|
1729
|
+
}
|
|
1730
|
+
]);
|
|
1731
|
+
this.loading = false;
|
|
1732
|
+
this.cdr.detectChanges();
|
|
1733
|
+
}, 500);
|
|
1734
|
+
}
|
|
1735
|
+
clear(type) {
|
|
1736
|
+
this.msg.success(`清空了 ${type}`);
|
|
1737
|
+
}
|
|
1738
|
+
select(res) {
|
|
1739
|
+
this.msg.success(`点击了 ${res.title} 的 ${res.item.title}`);
|
|
1740
|
+
}
|
|
1741
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderNotifyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1742
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: HeaderNotifyComponent, isStandalone: true, selector: "header-notify", ngImport: i0, template: `
|
|
1743
|
+
<notice-icon
|
|
1744
|
+
[data]="data"
|
|
1745
|
+
[count]="count"
|
|
1746
|
+
[loading]="loading"
|
|
1747
|
+
btnClass="alain-default__nav-item"
|
|
1748
|
+
btnIconClass="alain-default__nav-item-icon"
|
|
1749
|
+
(select)="select($event)"
|
|
1750
|
+
(clear)="clear($event)"
|
|
1751
|
+
(popoverVisibleChange)="loadData()"
|
|
1752
|
+
/>
|
|
1753
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: NoticeIconModule }, { kind: "component", type: i1$3.NoticeIconComponent, selector: "notice-icon", inputs: ["data", "count", "loading", "popoverVisible", "btnClass", "btnIconClass", "centered"], outputs: ["select", "clear", "popoverVisibleChange"], exportAs: ["noticeIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1754
|
+
}
|
|
1755
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderNotifyComponent, decorators: [{
|
|
1756
|
+
type: Component,
|
|
1757
|
+
args: [{
|
|
1758
|
+
selector: 'header-notify',
|
|
1759
|
+
template: `
|
|
1760
|
+
<notice-icon
|
|
1761
|
+
[data]="data"
|
|
1762
|
+
[count]="count"
|
|
1763
|
+
[loading]="loading"
|
|
1764
|
+
btnClass="alain-default__nav-item"
|
|
1765
|
+
btnIconClass="alain-default__nav-item-icon"
|
|
1766
|
+
(select)="select($event)"
|
|
1767
|
+
(clear)="clear($event)"
|
|
1768
|
+
(popoverVisibleChange)="loadData()"
|
|
1769
|
+
/>
|
|
1770
|
+
`,
|
|
1771
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1772
|
+
imports: [NoticeIconModule]
|
|
1773
|
+
}]
|
|
1774
|
+
}] });
|
|
1775
|
+
|
|
1776
|
+
class HeaderRTLComponent {
|
|
1777
|
+
rtl = inject(RTLService);
|
|
1778
|
+
toggleDirection() {
|
|
1779
|
+
this.rtl.toggle();
|
|
1780
|
+
}
|
|
1781
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderRTLComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1782
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: HeaderRTLComponent, isStandalone: true, selector: "header-rtl", host: { listeners: { "click": "toggleDirection()" }, properties: { "class.flex-1": "true" } }, ngImport: i0, template: `
|
|
1783
|
+
<i nz-icon [nzType]="rtl.nextDir === 'rtl' ? 'border-left' : 'border-right'"></i>
|
|
1784
|
+
{{ rtl.nextDir | uppercase }}
|
|
1785
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1786
|
+
}
|
|
1787
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderRTLComponent, decorators: [{
|
|
1788
|
+
type: Component,
|
|
1789
|
+
args: [{
|
|
1790
|
+
selector: 'header-rtl',
|
|
1791
|
+
template: `
|
|
1792
|
+
<i nz-icon [nzType]="rtl.nextDir === 'rtl' ? 'border-left' : 'border-right'"></i>
|
|
1793
|
+
{{ rtl.nextDir | uppercase }}
|
|
1794
|
+
`,
|
|
1795
|
+
host: {
|
|
1796
|
+
'[class.flex-1]': 'true'
|
|
1797
|
+
},
|
|
1798
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1799
|
+
imports: [NzIconModule, UpperCasePipe]
|
|
1800
|
+
}]
|
|
1801
|
+
}], propDecorators: { toggleDirection: [{
|
|
1802
|
+
type: HostListener,
|
|
1803
|
+
args: ['click']
|
|
1804
|
+
}] } });
|
|
1805
|
+
|
|
1806
|
+
class HeaderSearchComponent {
|
|
1807
|
+
el = inject(ElementRef).nativeElement;
|
|
1808
|
+
cdr = inject(ChangeDetectorRef);
|
|
1809
|
+
q = '';
|
|
1810
|
+
qIpt = null;
|
|
1811
|
+
options = [];
|
|
1812
|
+
search$ = new BehaviorSubject('');
|
|
1813
|
+
loading = false;
|
|
1814
|
+
focus = false;
|
|
1815
|
+
searchToggled = false;
|
|
1816
|
+
set toggleChange(value) {
|
|
1817
|
+
if (typeof value === 'undefined') {
|
|
1818
|
+
return;
|
|
1819
|
+
}
|
|
1820
|
+
this.searchToggled = value;
|
|
1821
|
+
this.focus = value;
|
|
1822
|
+
if (value) {
|
|
1823
|
+
setTimeout(() => this.qIpt.focus());
|
|
1824
|
+
}
|
|
1825
|
+
}
|
|
1826
|
+
toggleChangeChange = new EventEmitter();
|
|
1827
|
+
ngAfterViewInit() {
|
|
1828
|
+
this.qIpt = this.el.querySelector('.ant-input');
|
|
1829
|
+
this.search$
|
|
1830
|
+
.pipe(debounceTime(500), distinctUntilChanged(), tap({
|
|
1831
|
+
complete: () => {
|
|
1832
|
+
this.loading = true;
|
|
1833
|
+
}
|
|
1834
|
+
}))
|
|
1835
|
+
.subscribe(value => {
|
|
1836
|
+
this.options = value ? [value, value + value, value + value + value] : [];
|
|
1837
|
+
this.loading = false;
|
|
1838
|
+
this.cdr.detectChanges();
|
|
1839
|
+
});
|
|
1840
|
+
}
|
|
1841
|
+
qFocus() {
|
|
1842
|
+
this.focus = true;
|
|
1843
|
+
}
|
|
1844
|
+
qBlur() {
|
|
1845
|
+
this.focus = false;
|
|
1846
|
+
this.searchToggled = false;
|
|
1847
|
+
this.options.length = 0;
|
|
1848
|
+
this.toggleChangeChange.emit(false);
|
|
1849
|
+
}
|
|
1850
|
+
search(ev) {
|
|
1851
|
+
this.search$.next(ev.target.value);
|
|
1852
|
+
}
|
|
1853
|
+
ngOnDestroy() {
|
|
1854
|
+
this.search$.complete();
|
|
1855
|
+
this.search$.unsubscribe();
|
|
1856
|
+
}
|
|
1857
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1858
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: HeaderSearchComponent, isStandalone: true, selector: "header-search", inputs: { toggleChange: "toggleChange" }, outputs: { toggleChangeChange: "toggleChangeChange" }, host: { properties: { "class.alain-default__search-focus": "this.focus", "class.alain-default__search-toggled": "this.searchToggled" } }, ngImport: i0, template: `
|
|
1859
|
+
<nz-input-group [nzPrefix]="iconTpl" [nzSuffix]="loadingTpl">
|
|
1860
|
+
<ng-template #iconTpl>
|
|
1861
|
+
<i nz-icon [nzType]="focus ? 'arrow-down' : 'search'"></i>
|
|
1862
|
+
</ng-template>
|
|
1863
|
+
<ng-template #loadingTpl>
|
|
1864
|
+
@if (loading) {
|
|
1865
|
+
<i nz-icon nzType="loading"></i>
|
|
1866
|
+
}
|
|
1867
|
+
</ng-template>
|
|
1868
|
+
<input
|
|
1869
|
+
type="text"
|
|
1870
|
+
nz-input
|
|
1871
|
+
[(ngModel)]="q"
|
|
1872
|
+
[nzAutocomplete]="auto"
|
|
1873
|
+
(input)="search($event)"
|
|
1874
|
+
(focus)="qFocus()"
|
|
1875
|
+
(blur)="qBlur()"
|
|
1876
|
+
hotkey="F1"
|
|
1877
|
+
[attr.placeholder]="'menu.search.placeholder' | i18n"
|
|
1878
|
+
/>
|
|
1879
|
+
</nz-input-group>
|
|
1880
|
+
<nz-autocomplete nzBackfill #auto>
|
|
1881
|
+
@for (i of options; track $index) {
|
|
1882
|
+
<nz-auto-option [nzValue]="i">{{ i }}</nz-auto-option>
|
|
1883
|
+
}
|
|
1884
|
+
</nz-autocomplete>
|
|
1885
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i2$2.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i2$2.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i2$2.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzAutocompleteModule }, { kind: "component", type: i4$2.NzAutocompleteComponent, selector: "nz-autocomplete", inputs: ["nzWidth", "nzOverlayClassName", "nzOverlayStyle", "nzDefaultActiveFirstOption", "nzBackfill", "compareWith", "nzDataSource"], outputs: ["selectionChange"], exportAs: ["nzAutocomplete"] }, { kind: "component", type: i4$2.NzAutocompleteOptionComponent, selector: "nz-auto-option", inputs: ["nzValue", "nzLabel", "nzDisabled"], outputs: ["selectionChange", "mouseEntered"], exportAs: ["nzAutoOption"] }, { kind: "directive", type: i4$2.NzAutocompleteTriggerDirective, selector: "input[nzAutocomplete], textarea[nzAutocomplete]", inputs: ["nzAutocomplete"], exportAs: ["nzAutocompleteTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1886
|
+
}
|
|
1887
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderSearchComponent, decorators: [{
|
|
1888
|
+
type: Component,
|
|
1889
|
+
args: [{
|
|
1890
|
+
selector: 'header-search',
|
|
1891
|
+
template: `
|
|
1892
|
+
<nz-input-group [nzPrefix]="iconTpl" [nzSuffix]="loadingTpl">
|
|
1893
|
+
<ng-template #iconTpl>
|
|
1894
|
+
<i nz-icon [nzType]="focus ? 'arrow-down' : 'search'"></i>
|
|
1895
|
+
</ng-template>
|
|
1896
|
+
<ng-template #loadingTpl>
|
|
1897
|
+
@if (loading) {
|
|
1898
|
+
<i nz-icon nzType="loading"></i>
|
|
1899
|
+
}
|
|
1900
|
+
</ng-template>
|
|
1901
|
+
<input
|
|
1902
|
+
type="text"
|
|
1903
|
+
nz-input
|
|
1904
|
+
[(ngModel)]="q"
|
|
1905
|
+
[nzAutocomplete]="auto"
|
|
1906
|
+
(input)="search($event)"
|
|
1907
|
+
(focus)="qFocus()"
|
|
1908
|
+
(blur)="qBlur()"
|
|
1909
|
+
hotkey="F1"
|
|
1910
|
+
[attr.placeholder]="'menu.search.placeholder' | i18n"
|
|
1911
|
+
/>
|
|
1912
|
+
</nz-input-group>
|
|
1913
|
+
<nz-autocomplete nzBackfill #auto>
|
|
1914
|
+
@for (i of options; track $index) {
|
|
1915
|
+
<nz-auto-option [nzValue]="i">{{ i }}</nz-auto-option>
|
|
1916
|
+
}
|
|
1917
|
+
</nz-autocomplete>
|
|
1918
|
+
`,
|
|
1919
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1920
|
+
imports: [FormsModule, I18nPipe, NzInputModule, NzIconModule, NzAutocompleteModule]
|
|
1921
|
+
}]
|
|
1922
|
+
}], propDecorators: { focus: [{
|
|
1923
|
+
type: HostBinding,
|
|
1924
|
+
args: ['class.alain-default__search-focus']
|
|
1925
|
+
}], searchToggled: [{
|
|
1926
|
+
type: HostBinding,
|
|
1927
|
+
args: ['class.alain-default__search-toggled']
|
|
1928
|
+
}], toggleChange: [{
|
|
1929
|
+
type: Input
|
|
1930
|
+
}], toggleChangeChange: [{
|
|
1931
|
+
type: Output
|
|
1932
|
+
}] } });
|
|
1933
|
+
|
|
1934
|
+
class HeaderTaskComponent {
|
|
1935
|
+
cdr = inject(ChangeDetectorRef);
|
|
1936
|
+
loading = true;
|
|
1937
|
+
change() {
|
|
1938
|
+
setTimeout(() => {
|
|
1939
|
+
this.loading = false;
|
|
1940
|
+
this.cdr.detectChanges();
|
|
1941
|
+
}, 500);
|
|
1942
|
+
}
|
|
1943
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderTaskComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1944
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: HeaderTaskComponent, isStandalone: true, selector: "header-task", ngImport: i0, template: `
|
|
1945
|
+
<div
|
|
1946
|
+
class="alain-default__nav-item"
|
|
1947
|
+
nz-dropdown
|
|
1948
|
+
[nzDropdownMenu]="taskMenu"
|
|
1949
|
+
nzTrigger="click"
|
|
1950
|
+
nzPlacement="bottomRight"
|
|
1951
|
+
(nzVisibleChange)="change()"
|
|
1952
|
+
>
|
|
1953
|
+
<nz-badge [nzDot]="true">
|
|
1954
|
+
<i nz-icon nzType="bell" class="alain-default__nav-item-icon"></i>
|
|
1955
|
+
</nz-badge>
|
|
1956
|
+
</div>
|
|
1957
|
+
<nz-dropdown-menu #taskMenu="nzDropdownMenu">
|
|
1958
|
+
<div nz-menu class="wd-lg">
|
|
1959
|
+
@if (loading) {
|
|
1960
|
+
<div class="mx-lg p-lg"><nz-spin /></div>
|
|
1961
|
+
} @else {
|
|
1962
|
+
<nz-card nzTitle="Notifications" nzBordered="false" class="ant-card__body-nopadding">
|
|
1963
|
+
<ng-template #extra><i nz-icon nzType="plus"></i></ng-template>
|
|
1964
|
+
<div nz-row [nzJustify]="'center'" [nzAlign]="'middle'" class="py-sm pr-md point bg-grey-lighter-h">
|
|
1965
|
+
<div nz-col [nzSpan]="4" class="text-center">
|
|
1966
|
+
<nz-avatar [nzSrc]="'./assets/tmp/img/1.png'" />
|
|
1967
|
+
</div>
|
|
1968
|
+
<div nz-col [nzSpan]="20">
|
|
1969
|
+
<strong>cipchk</strong>
|
|
1970
|
+
<p class="mb0">Please tell me what happened in a few words, don't go into details.</p>
|
|
1971
|
+
</div>
|
|
1972
|
+
</div>
|
|
1973
|
+
<div nz-row [nzJustify]="'center'" [nzAlign]="'middle'" class="py-sm pr-md point bg-grey-lighter-h">
|
|
1974
|
+
<div nz-col [nzSpan]="4" class="text-center">
|
|
1975
|
+
<nz-avatar [nzSrc]="'./assets/tmp/img/2.png'" />
|
|
1976
|
+
</div>
|
|
1977
|
+
<div nz-col [nzSpan]="20">
|
|
1978
|
+
<strong>はなさき</strong>
|
|
1979
|
+
<p class="mb0">ハルカソラトキヘダツヒカリ</p>
|
|
1980
|
+
</div>
|
|
1981
|
+
</div>
|
|
1982
|
+
<div nz-row [nzJustify]="'center'" [nzAlign]="'middle'" class="py-sm pr-md point bg-grey-lighter-h">
|
|
1983
|
+
<div nz-col [nzSpan]="4" class="text-center">
|
|
1984
|
+
<nz-avatar [nzSrc]="'./assets/tmp/img/3.png'" />
|
|
1985
|
+
</div>
|
|
1986
|
+
<div nz-col [nzSpan]="20">
|
|
1987
|
+
<strong>苏先生</strong>
|
|
1988
|
+
<p class="mb0">请告诉我,我应该说点什么好?</p>
|
|
1989
|
+
</div>
|
|
1990
|
+
</div>
|
|
1991
|
+
<div nz-row [nzJustify]="'center'" [nzAlign]="'middle'" class="py-sm pr-md point bg-grey-lighter-h">
|
|
1992
|
+
<div nz-col [nzSpan]="4" class="text-center">
|
|
1993
|
+
<nz-avatar [nzSrc]="'./assets/tmp/img/4.png'" />
|
|
1994
|
+
</div>
|
|
1995
|
+
<div nz-col [nzSpan]="20">
|
|
1996
|
+
<strong>Kent</strong>
|
|
1997
|
+
<p class="mb0">Please tell me what happened in a few words, don't go into details.</p>
|
|
1998
|
+
</div>
|
|
1999
|
+
</div>
|
|
2000
|
+
<div nz-row [nzJustify]="'center'" [nzAlign]="'middle'" class="py-sm pr-md point bg-grey-lighter-h">
|
|
2001
|
+
<div nz-col [nzSpan]="4" class="text-center">
|
|
2002
|
+
<nz-avatar [nzSrc]="'./assets/tmp/img/5.png'" />
|
|
2003
|
+
</div>
|
|
2004
|
+
<div nz-col [nzSpan]="20">
|
|
2005
|
+
<strong>Jefferson</strong>
|
|
2006
|
+
<p class="mb0">Please tell me what happened in a few words, don't go into details.</p>
|
|
2007
|
+
</div>
|
|
2008
|
+
</div>
|
|
2009
|
+
<div nz-row>
|
|
2010
|
+
<div nz-col [nzSpan]="24" class="pt-md border-top-1 text-center text-grey point">See All</div>
|
|
2011
|
+
</div>
|
|
2012
|
+
</nz-card>
|
|
2013
|
+
}
|
|
2014
|
+
</div>
|
|
2015
|
+
</nz-dropdown-menu>
|
|
2016
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1$2.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "directive", type: i2$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i2$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzBadgeModule }, { kind: "component", type: i17.NzBadgeComponent, selector: "nz-badge", inputs: ["nzShowZero", "nzShowDot", "nzStandalone", "nzDot", "nzOverflowCount", "nzColor", "nzStyle", "nzText", "nzTitle", "nzStatus", "nzCount", "nzOffset", "nzSize"], exportAs: ["nzBadge"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzSpinModule }, { kind: "component", type: i10$1.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "ngmodule", type: NzGridModule }, { kind: "directive", type: i15.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i15.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "ngmodule", type: NzAvatarModule }, { kind: "component", type: i20.NzAvatarComponent, selector: "nz-avatar", inputs: ["nzShape", "nzSize", "nzGap", "nzText", "nzSrc", "nzSrcSet", "nzAlt", "nzIcon"], outputs: ["nzError"], exportAs: ["nzAvatar"] }, { kind: "ngmodule", type: NzCardModule }, { kind: "component", type: i8$1.NzCardComponent, selector: "nz-card", inputs: ["nzBordered", "nzLoading", "nzHoverable", "nzBodyStyle", "nzCover", "nzActions", "nzType", "nzSize", "nzTitle", "nzExtra"], exportAs: ["nzCard"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2017
|
+
}
|
|
2018
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderTaskComponent, decorators: [{
|
|
2019
|
+
type: Component,
|
|
2020
|
+
args: [{
|
|
2021
|
+
selector: 'header-task',
|
|
2022
|
+
template: `
|
|
2023
|
+
<div
|
|
2024
|
+
class="alain-default__nav-item"
|
|
2025
|
+
nz-dropdown
|
|
2026
|
+
[nzDropdownMenu]="taskMenu"
|
|
2027
|
+
nzTrigger="click"
|
|
2028
|
+
nzPlacement="bottomRight"
|
|
2029
|
+
(nzVisibleChange)="change()"
|
|
2030
|
+
>
|
|
2031
|
+
<nz-badge [nzDot]="true">
|
|
2032
|
+
<i nz-icon nzType="bell" class="alain-default__nav-item-icon"></i>
|
|
2033
|
+
</nz-badge>
|
|
2034
|
+
</div>
|
|
2035
|
+
<nz-dropdown-menu #taskMenu="nzDropdownMenu">
|
|
2036
|
+
<div nz-menu class="wd-lg">
|
|
2037
|
+
@if (loading) {
|
|
2038
|
+
<div class="mx-lg p-lg"><nz-spin /></div>
|
|
2039
|
+
} @else {
|
|
2040
|
+
<nz-card nzTitle="Notifications" nzBordered="false" class="ant-card__body-nopadding">
|
|
2041
|
+
<ng-template #extra><i nz-icon nzType="plus"></i></ng-template>
|
|
2042
|
+
<div nz-row [nzJustify]="'center'" [nzAlign]="'middle'" class="py-sm pr-md point bg-grey-lighter-h">
|
|
2043
|
+
<div nz-col [nzSpan]="4" class="text-center">
|
|
2044
|
+
<nz-avatar [nzSrc]="'./assets/tmp/img/1.png'" />
|
|
2045
|
+
</div>
|
|
2046
|
+
<div nz-col [nzSpan]="20">
|
|
2047
|
+
<strong>cipchk</strong>
|
|
2048
|
+
<p class="mb0">Please tell me what happened in a few words, don't go into details.</p>
|
|
2049
|
+
</div>
|
|
2050
|
+
</div>
|
|
2051
|
+
<div nz-row [nzJustify]="'center'" [nzAlign]="'middle'" class="py-sm pr-md point bg-grey-lighter-h">
|
|
2052
|
+
<div nz-col [nzSpan]="4" class="text-center">
|
|
2053
|
+
<nz-avatar [nzSrc]="'./assets/tmp/img/2.png'" />
|
|
2054
|
+
</div>
|
|
2055
|
+
<div nz-col [nzSpan]="20">
|
|
2056
|
+
<strong>はなさき</strong>
|
|
2057
|
+
<p class="mb0">ハルカソラトキヘダツヒカリ</p>
|
|
2058
|
+
</div>
|
|
2059
|
+
</div>
|
|
2060
|
+
<div nz-row [nzJustify]="'center'" [nzAlign]="'middle'" class="py-sm pr-md point bg-grey-lighter-h">
|
|
2061
|
+
<div nz-col [nzSpan]="4" class="text-center">
|
|
2062
|
+
<nz-avatar [nzSrc]="'./assets/tmp/img/3.png'" />
|
|
2063
|
+
</div>
|
|
2064
|
+
<div nz-col [nzSpan]="20">
|
|
2065
|
+
<strong>苏先生</strong>
|
|
2066
|
+
<p class="mb0">请告诉我,我应该说点什么好?</p>
|
|
2067
|
+
</div>
|
|
2068
|
+
</div>
|
|
2069
|
+
<div nz-row [nzJustify]="'center'" [nzAlign]="'middle'" class="py-sm pr-md point bg-grey-lighter-h">
|
|
2070
|
+
<div nz-col [nzSpan]="4" class="text-center">
|
|
2071
|
+
<nz-avatar [nzSrc]="'./assets/tmp/img/4.png'" />
|
|
2072
|
+
</div>
|
|
2073
|
+
<div nz-col [nzSpan]="20">
|
|
2074
|
+
<strong>Kent</strong>
|
|
2075
|
+
<p class="mb0">Please tell me what happened in a few words, don't go into details.</p>
|
|
2076
|
+
</div>
|
|
2077
|
+
</div>
|
|
2078
|
+
<div nz-row [nzJustify]="'center'" [nzAlign]="'middle'" class="py-sm pr-md point bg-grey-lighter-h">
|
|
2079
|
+
<div nz-col [nzSpan]="4" class="text-center">
|
|
2080
|
+
<nz-avatar [nzSrc]="'./assets/tmp/img/5.png'" />
|
|
2081
|
+
</div>
|
|
2082
|
+
<div nz-col [nzSpan]="20">
|
|
2083
|
+
<strong>Jefferson</strong>
|
|
2084
|
+
<p class="mb0">Please tell me what happened in a few words, don't go into details.</p>
|
|
2085
|
+
</div>
|
|
2086
|
+
</div>
|
|
2087
|
+
<div nz-row>
|
|
2088
|
+
<div nz-col [nzSpan]="24" class="pt-md border-top-1 text-center text-grey point">See All</div>
|
|
2089
|
+
</div>
|
|
2090
|
+
</nz-card>
|
|
2091
|
+
}
|
|
2092
|
+
</div>
|
|
2093
|
+
</nz-dropdown-menu>
|
|
2094
|
+
`,
|
|
2095
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2096
|
+
imports: [NzDropDownModule, NzBadgeModule, NzIconModule, NzSpinModule, NzGridModule, NzAvatarModule, NzCardModule]
|
|
2097
|
+
}]
|
|
2098
|
+
}] });
|
|
2099
|
+
|
|
2100
|
+
class HeaderUserComponent {
|
|
2101
|
+
settings = inject(SettingsService);
|
|
2102
|
+
router = inject(Router);
|
|
2103
|
+
tokenService = inject(DA_SERVICE_TOKEN);
|
|
2104
|
+
get user() {
|
|
2105
|
+
return this.settings.user;
|
|
2106
|
+
}
|
|
2107
|
+
logout() {
|
|
2108
|
+
this.tokenService.clear();
|
|
2109
|
+
this.router.navigateByUrl(this.tokenService.login_url);
|
|
2110
|
+
}
|
|
2111
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderUserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2112
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: HeaderUserComponent, isStandalone: true, selector: "header-user", ngImport: i0, template: `
|
|
2113
|
+
<div class="alain-default__nav-item d-flex align-items-center px-sm" nz-dropdown nzPlacement="bottomRight" [nzDropdownMenu]="userMenu">
|
|
2114
|
+
<nz-avatar [nzSrc]="user.avatar" nzSize="small" class="mr-sm" />
|
|
2115
|
+
{{ user.name }}
|
|
2116
|
+
</div>
|
|
2117
|
+
<nz-dropdown-menu #userMenu="nzDropdownMenu">
|
|
2118
|
+
<div nz-menu class="width-sm">
|
|
2119
|
+
<div nz-menu-item routerLink="/pro/account/center">
|
|
2120
|
+
<i nz-icon nzType="user" class="mr-sm"></i>
|
|
2121
|
+
{{ 'menu.account.center' | i18n }}
|
|
2122
|
+
</div>
|
|
2123
|
+
<div nz-menu-item routerLink="/pro/account/settings">
|
|
2124
|
+
<i nz-icon nzType="setting" class="mr-sm"></i>
|
|
2125
|
+
{{ 'menu.account.settings' | i18n }}
|
|
2126
|
+
</div>
|
|
2127
|
+
<div nz-menu-item routerLink="/exception/trigger">
|
|
2128
|
+
<i nz-icon nzType="close-circle" class="mr-sm"></i>
|
|
2129
|
+
{{ 'menu.account.trigger' | i18n }}
|
|
2130
|
+
</div>
|
|
2131
|
+
<li nz-menu-divider></li>
|
|
2132
|
+
<div nz-menu-item (click)="logout()">
|
|
2133
|
+
<i nz-icon nzType="logout" class="mr-sm"></i>
|
|
2134
|
+
{{ 'menu.account.logout' | i18n }}
|
|
2135
|
+
</div>
|
|
2136
|
+
</div>
|
|
2137
|
+
</nz-dropdown-menu>
|
|
2138
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1$2.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1$2.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i1$2.NzMenuDividerDirective, selector: "[nz-menu-divider]", exportAs: ["nzMenuDivider"] }, { kind: "directive", type: i2$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i2$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzMenuModule }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: NzAvatarModule }, { kind: "component", type: i20.NzAvatarComponent, selector: "nz-avatar", inputs: ["nzShape", "nzSize", "nzGap", "nzText", "nzSrc", "nzSrcSet", "nzAlt", "nzIcon"], outputs: ["nzError"], exportAs: ["nzAvatar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2139
|
+
}
|
|
2140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: HeaderUserComponent, decorators: [{
|
|
2141
|
+
type: Component,
|
|
2142
|
+
args: [{
|
|
2143
|
+
selector: 'header-user',
|
|
2144
|
+
template: `
|
|
2145
|
+
<div class="alain-default__nav-item d-flex align-items-center px-sm" nz-dropdown nzPlacement="bottomRight" [nzDropdownMenu]="userMenu">
|
|
2146
|
+
<nz-avatar [nzSrc]="user.avatar" nzSize="small" class="mr-sm" />
|
|
2147
|
+
{{ user.name }}
|
|
2148
|
+
</div>
|
|
2149
|
+
<nz-dropdown-menu #userMenu="nzDropdownMenu">
|
|
2150
|
+
<div nz-menu class="width-sm">
|
|
2151
|
+
<div nz-menu-item routerLink="/pro/account/center">
|
|
2152
|
+
<i nz-icon nzType="user" class="mr-sm"></i>
|
|
2153
|
+
{{ 'menu.account.center' | i18n }}
|
|
2154
|
+
</div>
|
|
2155
|
+
<div nz-menu-item routerLink="/pro/account/settings">
|
|
2156
|
+
<i nz-icon nzType="setting" class="mr-sm"></i>
|
|
2157
|
+
{{ 'menu.account.settings' | i18n }}
|
|
2158
|
+
</div>
|
|
2159
|
+
<div nz-menu-item routerLink="/exception/trigger">
|
|
2160
|
+
<i nz-icon nzType="close-circle" class="mr-sm"></i>
|
|
2161
|
+
{{ 'menu.account.trigger' | i18n }}
|
|
2162
|
+
</div>
|
|
2163
|
+
<li nz-menu-divider></li>
|
|
2164
|
+
<div nz-menu-item (click)="logout()">
|
|
2165
|
+
<i nz-icon nzType="logout" class="mr-sm"></i>
|
|
2166
|
+
{{ 'menu.account.logout' | i18n }}
|
|
2167
|
+
</div>
|
|
2168
|
+
</div>
|
|
2169
|
+
</nz-dropdown-menu>
|
|
2170
|
+
`,
|
|
2171
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2172
|
+
imports: [RouterLink, NzDropDownModule, NzMenuModule, NzIconModule, I18nPipe, NzAvatarModule]
|
|
2173
|
+
}]
|
|
2174
|
+
}] });
|
|
2175
|
+
|
|
2176
|
+
class LayoutBasicComponent {
|
|
2177
|
+
settings = inject(SettingsService);
|
|
2178
|
+
environment = inject(RUNTIME_CORE_ENVIRONMENT);
|
|
2179
|
+
options = {
|
|
2180
|
+
logoExpanded: `./assets/logo-full.svg`,
|
|
2181
|
+
logoCollapsed: `./assets/logo.svg`
|
|
2182
|
+
};
|
|
2183
|
+
searchToggleStatus = false;
|
|
2184
|
+
showSettingDrawer = !this.environment.production;
|
|
2185
|
+
get user() {
|
|
2186
|
+
return this.settings.user;
|
|
2187
|
+
}
|
|
2188
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutBasicComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2189
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: LayoutBasicComponent, isStandalone: true, selector: "layout-basic", ngImport: i0, template: `
|
|
2190
|
+
<layout-default [options]="options" [asideUser]="asideUserTpl" [content]="contentTpl" [customError]="null">
|
|
2191
|
+
<layout-default-header-item direction="left">
|
|
2192
|
+
<a layout-default-header-item-trigger href="//github.com/ng-alain/ng-alain" target="_blank">
|
|
2193
|
+
<i nz-icon nzType="github"></i>
|
|
2194
|
+
</a>
|
|
2195
|
+
</layout-default-header-item>
|
|
2196
|
+
<layout-default-header-item direction="left" hidden="mobile">
|
|
2197
|
+
<a layout-default-header-item-trigger routerLink="/passport/lock">
|
|
2198
|
+
<i nz-icon nzType="lock"></i>
|
|
2199
|
+
</a>
|
|
2200
|
+
</layout-default-header-item>
|
|
2201
|
+
<layout-default-header-item direction="left" hidden="pc">
|
|
2202
|
+
<div layout-default-header-item-trigger (click)="searchToggleStatus = !searchToggleStatus">
|
|
2203
|
+
<i nz-icon nzType="search"></i>
|
|
2204
|
+
</div>
|
|
2205
|
+
</layout-default-header-item>
|
|
2206
|
+
<layout-default-header-item direction="middle">
|
|
2207
|
+
<header-search class="alain-default__search" [(toggleChange)]="searchToggleStatus" />
|
|
2208
|
+
</layout-default-header-item>
|
|
2209
|
+
<layout-default-header-item direction="right">
|
|
2210
|
+
<header-notify />
|
|
2211
|
+
</layout-default-header-item>
|
|
2212
|
+
<layout-default-header-item direction="right" hidden="mobile">
|
|
2213
|
+
<header-task />
|
|
2214
|
+
</layout-default-header-item>
|
|
2215
|
+
<layout-default-header-item direction="right" hidden="mobile">
|
|
2216
|
+
<header-icon />
|
|
2217
|
+
</layout-default-header-item>
|
|
2218
|
+
<layout-default-header-item direction="right" hidden="mobile">
|
|
2219
|
+
<div layout-default-header-item-trigger nz-dropdown [nzDropdownMenu]="settingsMenu" nzTrigger="click" nzPlacement="bottomRight">
|
|
2220
|
+
<i nz-icon nzType="setting"></i>
|
|
2221
|
+
</div>
|
|
2222
|
+
<nz-dropdown-menu #settingsMenu="nzDropdownMenu">
|
|
2223
|
+
<div nz-menu style="width: 200px;">
|
|
2224
|
+
<div nz-menu-item>
|
|
2225
|
+
<header-rtl />
|
|
2226
|
+
</div>
|
|
2227
|
+
<div nz-menu-item>
|
|
2228
|
+
<header-fullscreen />
|
|
2229
|
+
</div>
|
|
2230
|
+
<div nz-menu-item>
|
|
2231
|
+
<header-clear-storage />
|
|
2232
|
+
</div>
|
|
2233
|
+
<div nz-menu-item>
|
|
2234
|
+
<header-i18n />
|
|
2235
|
+
</div>
|
|
2236
|
+
</div>
|
|
2237
|
+
</nz-dropdown-menu>
|
|
2238
|
+
</layout-default-header-item>
|
|
2239
|
+
<layout-default-header-item direction="right">
|
|
2240
|
+
<header-user />
|
|
2241
|
+
</layout-default-header-item>
|
|
2242
|
+
<ng-template #asideUserTpl>
|
|
2243
|
+
<div nz-dropdown nzTrigger="click" [nzDropdownMenu]="userMenu" class="alain-default__aside-user">
|
|
2244
|
+
<nz-avatar class="alain-default__aside-user-avatar" [nzSrc]="user.avatar" />
|
|
2245
|
+
<div class="alain-default__aside-user-info">
|
|
2246
|
+
<strong>{{ user.name }}</strong>
|
|
2247
|
+
<p class="mb0">{{ user.email }}</p>
|
|
2248
|
+
</div>
|
|
2249
|
+
</div>
|
|
2250
|
+
<nz-dropdown-menu #userMenu="nzDropdownMenu">
|
|
2251
|
+
<ul nz-menu>
|
|
2252
|
+
<li nz-menu-item routerLink="/pro/account/center">{{ 'menu.account.center' | i18n }}</li>
|
|
2253
|
+
<li nz-menu-item routerLink="/pro/account/settings">{{ 'menu.account.settings' | i18n }}</li>
|
|
2254
|
+
</ul>
|
|
2255
|
+
</nz-dropdown-menu>
|
|
2256
|
+
</ng-template>
|
|
2257
|
+
<ng-template #contentTpl>
|
|
2258
|
+
<router-outlet />
|
|
2259
|
+
</ng-template>
|
|
2260
|
+
</layout-default>
|
|
2261
|
+
@if (showSettingDrawer) {
|
|
2262
|
+
<setting-drawer />
|
|
2263
|
+
}
|
|
2264
|
+
<theme-btn />
|
|
2265
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: LayoutDefaultModule }, { kind: "component", type: i5$1.LayoutDefaultComponent, selector: "layout-default", inputs: ["options", "asideUser", "asideBottom", "nav", "content", "customError", "fetchingStrictly", "fetching"], exportAs: ["layoutDefault"] }, { kind: "component", type: i5$1.LayoutDefaultHeaderItemComponent, selector: "layout-default-header-item", inputs: ["hidden", "direction"] }, { kind: "directive", type: i5$1.LayoutDefaultHeaderItemTriggerDirective, selector: "[layout-default-header-item-trigger]" }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzMenuModule }, { kind: "directive", type: i1$2.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1$2.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i2$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i2$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzAvatarModule }, { kind: "component", type: i20.NzAvatarComponent, selector: "nz-avatar", inputs: ["nzShape", "nzSize", "nzGap", "nzText", "nzSrc", "nzSrcSet", "nzAlt", "nzIcon"], outputs: ["nzError"], exportAs: ["nzAvatar"] }, { kind: "ngmodule", type: SettingDrawerModule }, { kind: "component", type: i6$2.SettingDrawerComponent, selector: "setting-drawer", inputs: ["autoApplyColor", "compilingText", "devTips", "lessJs"] }, { kind: "component", type: ThemeBtnComponent, selector: "theme-btn", inputs: ["types", "devTips", "deployUrl"], outputs: ["themeChange"] }, { kind: "component", type: HeaderSearchComponent, selector: "header-search", inputs: ["toggleChange"], outputs: ["toggleChangeChange"] }, { kind: "component", type: HeaderNotifyComponent, selector: "header-notify" }, { kind: "component", type: HeaderTaskComponent, selector: "header-task" }, { kind: "component", type: HeaderIconComponent, selector: "header-icon" }, { kind: "component", type: HeaderRTLComponent, selector: "header-rtl" }, { kind: "component", type: HeaderI18nComponent, selector: "header-i18n", inputs: ["showLangText"] }, { kind: "component", type: HeaderClearStorageComponent, selector: "header-clear-storage" }, { kind: "component", type: HeaderFullScreenComponent, selector: "header-fullscreen" }, { kind: "component", type: HeaderUserComponent, selector: "header-user" }] });
|
|
2266
|
+
}
|
|
2267
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutBasicComponent, decorators: [{
|
|
2268
|
+
type: Component,
|
|
2269
|
+
args: [{
|
|
2270
|
+
selector: 'layout-basic',
|
|
2271
|
+
template: `
|
|
2272
|
+
<layout-default [options]="options" [asideUser]="asideUserTpl" [content]="contentTpl" [customError]="null">
|
|
2273
|
+
<layout-default-header-item direction="left">
|
|
2274
|
+
<a layout-default-header-item-trigger href="//github.com/ng-alain/ng-alain" target="_blank">
|
|
2275
|
+
<i nz-icon nzType="github"></i>
|
|
2276
|
+
</a>
|
|
2277
|
+
</layout-default-header-item>
|
|
2278
|
+
<layout-default-header-item direction="left" hidden="mobile">
|
|
2279
|
+
<a layout-default-header-item-trigger routerLink="/passport/lock">
|
|
2280
|
+
<i nz-icon nzType="lock"></i>
|
|
2281
|
+
</a>
|
|
2282
|
+
</layout-default-header-item>
|
|
2283
|
+
<layout-default-header-item direction="left" hidden="pc">
|
|
2284
|
+
<div layout-default-header-item-trigger (click)="searchToggleStatus = !searchToggleStatus">
|
|
2285
|
+
<i nz-icon nzType="search"></i>
|
|
2286
|
+
</div>
|
|
2287
|
+
</layout-default-header-item>
|
|
2288
|
+
<layout-default-header-item direction="middle">
|
|
2289
|
+
<header-search class="alain-default__search" [(toggleChange)]="searchToggleStatus" />
|
|
2290
|
+
</layout-default-header-item>
|
|
2291
|
+
<layout-default-header-item direction="right">
|
|
2292
|
+
<header-notify />
|
|
2293
|
+
</layout-default-header-item>
|
|
2294
|
+
<layout-default-header-item direction="right" hidden="mobile">
|
|
2295
|
+
<header-task />
|
|
2296
|
+
</layout-default-header-item>
|
|
2297
|
+
<layout-default-header-item direction="right" hidden="mobile">
|
|
2298
|
+
<header-icon />
|
|
2299
|
+
</layout-default-header-item>
|
|
2300
|
+
<layout-default-header-item direction="right" hidden="mobile">
|
|
2301
|
+
<div layout-default-header-item-trigger nz-dropdown [nzDropdownMenu]="settingsMenu" nzTrigger="click" nzPlacement="bottomRight">
|
|
2302
|
+
<i nz-icon nzType="setting"></i>
|
|
2303
|
+
</div>
|
|
2304
|
+
<nz-dropdown-menu #settingsMenu="nzDropdownMenu">
|
|
2305
|
+
<div nz-menu style="width: 200px;">
|
|
2306
|
+
<div nz-menu-item>
|
|
2307
|
+
<header-rtl />
|
|
2308
|
+
</div>
|
|
2309
|
+
<div nz-menu-item>
|
|
2310
|
+
<header-fullscreen />
|
|
2311
|
+
</div>
|
|
2312
|
+
<div nz-menu-item>
|
|
2313
|
+
<header-clear-storage />
|
|
2314
|
+
</div>
|
|
2315
|
+
<div nz-menu-item>
|
|
2316
|
+
<header-i18n />
|
|
2317
|
+
</div>
|
|
2318
|
+
</div>
|
|
2319
|
+
</nz-dropdown-menu>
|
|
2320
|
+
</layout-default-header-item>
|
|
2321
|
+
<layout-default-header-item direction="right">
|
|
2322
|
+
<header-user />
|
|
2323
|
+
</layout-default-header-item>
|
|
2324
|
+
<ng-template #asideUserTpl>
|
|
2325
|
+
<div nz-dropdown nzTrigger="click" [nzDropdownMenu]="userMenu" class="alain-default__aside-user">
|
|
2326
|
+
<nz-avatar class="alain-default__aside-user-avatar" [nzSrc]="user.avatar" />
|
|
2327
|
+
<div class="alain-default__aside-user-info">
|
|
2328
|
+
<strong>{{ user.name }}</strong>
|
|
2329
|
+
<p class="mb0">{{ user.email }}</p>
|
|
2330
|
+
</div>
|
|
2331
|
+
</div>
|
|
2332
|
+
<nz-dropdown-menu #userMenu="nzDropdownMenu">
|
|
2333
|
+
<ul nz-menu>
|
|
2334
|
+
<li nz-menu-item routerLink="/pro/account/center">{{ 'menu.account.center' | i18n }}</li>
|
|
2335
|
+
<li nz-menu-item routerLink="/pro/account/settings">{{ 'menu.account.settings' | i18n }}</li>
|
|
2336
|
+
</ul>
|
|
2337
|
+
</nz-dropdown-menu>
|
|
2338
|
+
</ng-template>
|
|
2339
|
+
<ng-template #contentTpl>
|
|
2340
|
+
<router-outlet />
|
|
2341
|
+
</ng-template>
|
|
2342
|
+
</layout-default>
|
|
2343
|
+
@if (showSettingDrawer) {
|
|
2344
|
+
<setting-drawer />
|
|
2345
|
+
}
|
|
2346
|
+
<theme-btn />
|
|
2347
|
+
`,
|
|
2348
|
+
imports: [
|
|
2349
|
+
RouterOutlet,
|
|
2350
|
+
RouterLink,
|
|
2351
|
+
I18nPipe,
|
|
2352
|
+
LayoutDefaultModule,
|
|
2353
|
+
NzIconModule,
|
|
2354
|
+
NzMenuModule,
|
|
2355
|
+
NzDropDownModule,
|
|
2356
|
+
NzAvatarModule,
|
|
2357
|
+
SettingDrawerModule,
|
|
2358
|
+
ThemeBtnComponent,
|
|
2359
|
+
HeaderSearchComponent,
|
|
2360
|
+
HeaderNotifyComponent,
|
|
2361
|
+
HeaderTaskComponent,
|
|
2362
|
+
HeaderIconComponent,
|
|
2363
|
+
HeaderRTLComponent,
|
|
2364
|
+
HeaderI18nComponent,
|
|
2365
|
+
HeaderClearStorageComponent,
|
|
2366
|
+
HeaderFullScreenComponent,
|
|
2367
|
+
HeaderUserComponent
|
|
2368
|
+
]
|
|
2369
|
+
}]
|
|
2370
|
+
}] });
|
|
2371
|
+
|
|
2372
|
+
class LayoutBlankComponent {
|
|
2373
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutBlankComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2374
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: LayoutBlankComponent, isStandalone: true, selector: "layout-blank", host: { properties: { "class.alain-blank": "true" } }, ngImport: i0, template: `<router-outlet />`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
|
|
2375
|
+
}
|
|
2376
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LayoutBlankComponent, decorators: [{
|
|
2377
|
+
type: Component,
|
|
2378
|
+
args: [{
|
|
2379
|
+
selector: 'layout-blank',
|
|
2380
|
+
template: `<router-outlet />`,
|
|
2381
|
+
host: {
|
|
2382
|
+
'[class.alain-blank]': 'true'
|
|
2383
|
+
},
|
|
2384
|
+
imports: [RouterOutlet]
|
|
2385
|
+
}]
|
|
2386
|
+
}] });
|
|
2387
|
+
|
|
2388
|
+
/**
|
|
2389
|
+
* Generated bundle index. Do not edit.
|
|
2390
|
+
*/
|
|
2391
|
+
|
|
2392
|
+
export { LayoutAdminComponent, LayoutAuthComponent, LayoutBasicComponent, LayoutBlankComponent, LayoutHomeComponent, LayoutManageComponent, LayoutManageViewComponent };
|
|
2393
|
+
//# sourceMappingURL=layout.mjs.map
|