@ebuilding/runtime 3.2.6 → 3.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"user-center.mjs","sources":["../../../../packages/runtime/user-center/src/detail/user-center-detail.component.ts","../../../../packages/runtime/user-center/src/detail/user-center-detail.component.html","../../../../packages/runtime/user-center/src/user-center.constants.ts","../../../../packages/runtime/user-center/src/user-center-main.component.ts","../../../../packages/runtime/user-center/src/user-center-main.component.html","../../../../packages/runtime/user-center/src/user-center.module.ts","../../../../packages/runtime/user-center/user-center.ts"],"sourcesContent":["import { Component, Input, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { NzMessageService } from 'ng-zorro-antd/message';\nimport { Observable, finalize } from 'rxjs';\n\nimport { NzDrawerRef } from '@ebuilding/base/components/drawer';\nimport {\n UserCenterApiResult,\n UserCenterMessageItem,\n UserCenterNoticeItem,\n UserCenterService,\n UserCenterWaitingItem,\n UserCenterAttachment,\n} from '@ebuilding/base/shared.srv/user-center.service';\nimport { RuntimeSharedImportsModule } from '@ebuilding/runtime/shared-imports';\n\nimport { UserCenterType } from '../user-center.constants';\n\ntype UserCenterDetail = UserCenterMessageItem &\n Partial<UserCenterWaitingItem> &\n Partial<UserCenterNoticeItem>;\n\nexport interface UserCenterDetailConfig {\n type: UserCenterType;\n id: string;\n}\n\n@Component({\n selector: 'user-center-detail',\n templateUrl: './user-center-detail.component.html',\n styleUrls: ['./user-center-detail.component.less'],\n imports: [RuntimeSharedImportsModule],\n})\nexport class UserCenterDetailComponent {\n private readonly userCenter = inject(UserCenterService);\n private readonly router = inject(Router);\n private readonly message = inject(NzMessageService);\n private readonly drawerRef = inject(NzDrawerRef<unknown>);\n\n loading = false;\n acknowledging = false;\n detail: UserCenterDetail | null = null;\n detailType: UserCenterType = 'message';\n loadError = '';\n\n @Input()\n set config(value: UserCenterDetailConfig | null) {\n if (!value?.id) return;\n this.detailType = value.type;\n this.load(value.id);\n }\n\n content(): string {\n return this.detail?.body ?? this.detail?.content ?? '';\n }\n\n isRichContent(): boolean {\n return /<\\/?[a-z][^>]*>/i.test(this.content());\n }\n\n time(): string | undefined {\n return (\n this.detail?.publishTime ??\n this.detail?.dueTime ??\n this.detail?.createDate\n );\n }\n\n needAcknowledge(): boolean {\n return (\n this.detailType === 'notice' &&\n Boolean(this.detail?.needAck) &&\n Boolean(this.detail?.read) &&\n !Boolean(this.detail?.acked)\n );\n }\n\n attachments(): UserCenterAttachment[] {\n return this.detailType === 'notice' ? this.detail?.attachments ?? [] : [];\n }\n\n downloadAttachment(attachment: UserCenterAttachment): void {\n const url = attachment.fileUrl || attachment.allFileUrl;\n if (!url) {\n this.message.warning('附件地址为空');\n return;\n }\n const link = document.createElement('a');\n link.href = url;\n link.target = '_blank';\n link.rel = 'noopener';\n link.download = attachment.fileName || '';\n link.click();\n }\n\n acknowledge(): void {\n if (!this.detail?.id || this.acknowledging || !this.needAcknowledge())\n return;\n this.acknowledging = true;\n this.userCenter\n .acknowledgeNotice(this.detail.id)\n .pipe(finalize(() => (this.acknowledging = false)))\n .subscribe(() => {\n if (this.detail) {\n this.detail.read = true;\n this.detail.acked = true;\n this.detail.ackTime = new Date().toISOString();\n }\n this.message.success('确认成功');\n });\n }\n\n hasActionUrl(): boolean {\n return this.internalRoute(this.detail?.actionUrl) != null;\n }\n\n goToBusiness(): void {\n const actionUrl = this.internalRoute(this.detail?.actionUrl);\n if (!actionUrl) return;\n this.drawerRef.close({ type: 'navigate' });\n void this.router.navigateByUrl(actionUrl);\n }\n\n private load(id: string): void {\n this.loading = true;\n this.detail = null;\n this.loadError = '';\n\n if (this.detailType === 'message') {\n this.loadMessage(id);\n return;\n }\n\n const request = (\n this.detailType === 'notice'\n ? this.userCenter.noticeDetail(id)\n : this.userCenter.waitingDetail(id)\n ) as Observable<UserCenterApiResult<UserCenterDetail>>;\n\n request\n .pipe(finalize(() => (this.loading = false)))\n .subscribe({\n next: (response) => {\n if (!response?.success || !response.result) {\n this.showLoadError(response?.message || '详情不存在或不可查看');\n return;\n }\n this.detail = response.result;\n this.recordRead(id);\n },\n error: () => {\n this.showLoadError('详情不存在或不可查看');\n },\n });\n }\n\n private loadMessage(id: string): void {\n this.userCenter.messageDetail(id).subscribe({\n next: (response) => {\n const detail = response?.result;\n if (!response?.success || !detail) {\n this.showLoadError(response?.message || '消息不存在或不可查看');\n return;\n }\n\n if (\n detail.sourceType?.toUpperCase() === 'SYS_NOTICE' &&\n detail.sourceId\n ) {\n this.validateSourceNotice(id, detail);\n return;\n }\n\n this.completeLoad(id, detail);\n },\n error: () => {\n this.showLoadError('消息不存在或不可查看');\n },\n });\n }\n\n private validateSourceNotice(\n id: string,\n detail: UserCenterMessageItem,\n ): void {\n this.userCenter.noticeDetail(detail.sourceId!).subscribe({\n next: (response) => {\n if (!response?.success || !response.result) {\n this.showLoadError('关联公告已删除或不可查看');\n return;\n }\n this.completeLoad(id, detail);\n },\n error: () => {\n this.showLoadError('关联公告已删除或不可查看');\n },\n });\n }\n\n private completeLoad(id: string, detail: UserCenterDetail): void {\n this.detail = detail;\n this.loading = false;\n this.recordRead(id);\n }\n\n private showLoadError(message: string): void {\n this.detail = null;\n this.loadError = message;\n this.loading = false;\n }\n\n private recordRead(id: string): void {\n if (this.detail?.read) return;\n const request =\n this.detailType === 'notice'\n ? this.userCenter.readNotice(id)\n : this.detailType === 'waiting'\n ? this.userCenter.readWaiting(id)\n : this.userCenter.readMessage(id);\n request.subscribe(() => {\n if (this.detail) this.detail.read = true;\n });\n }\n\n private internalRoute(value?: string): string | null {\n if (!value || !value.startsWith('/') || value.startsWith('//')) return null;\n return value;\n }\n}\n","<nz-spin class=\"deon-list-spin\" [nzSpinning]=\"loading\">\n <div *ngIf=\"!loading && !detail && loadError\" class=\"detail-unavailable\">\n {{ loadError }}\n </div>\n <div *ngIf=\"detail\" class=\"detail-page\">\n <h2 class=\"detail-title\">{{ detail.title || \"详情\" }}</h2>\n\n <div class=\"detail-meta\">\n <span>{{ time() | date: \"yyyy-MM-dd HH:mm\" }}</span>\n <nz-tag *ngIf=\"detailType === 'notice' && detail.read\">已读</nz-tag>\n <nz-tag *ngIf=\"detailType === 'notice' && detail.acked\" nzColor=\"green\">已确认</nz-tag>\n </div>\n\n <div class=\"detail-scroll\">\n <div *ngIf=\"isRichContent(); else plainContent\" class=\"detail-content rich-content\" [innerHTML]=\"content()\"></div>\n <ng-template #plainContent>\n <div class=\"detail-content plain-content\">{{ content() }}</div>\n </ng-template>\n <div *ngIf=\"attachments().length\" class=\"detail-attachments\">\n <div class=\"detail-attachments-title\">附件</div>\n <div *ngFor=\"let attachment of attachments()\" class=\"detail-attachment-row\">\n <span nz-icon nzType=\"paper-clip\"></span>\n <span class=\"detail-attachment-name\">{{ attachment.fileName }}</span>\n <button nz-button nzType=\"link\" type=\"button\" (click)=\"downloadAttachment(attachment)\">\n 下载\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"hasActionUrl() || needAcknowledge()\" class=\"detail-actions\">\n <button *ngIf=\"hasActionUrl()\" nz-button nzType=\"default\" (click)=\"goToBusiness()\">\n 前往处理\n </button>\n <button *ngIf=\"needAcknowledge()\" nz-button nzType=\"primary\" [nzLoading]=\"acknowledging\" (click)=\"acknowledge()\">\n 确认已阅读\n </button>\n </div>\n </div>\n</nz-spin>\n","export type UserCenterType = 'message' | 'waiting' | 'notice';\n\nexport interface UserCenterDefinition {\n label: string;\n}\n\nexport const USER_CENTER_DEFINITIONS: Record<\n UserCenterType,\n UserCenterDefinition\n> = {\n notice: { label: '公告通知' },\n message: { label: '站内消息' },\n waiting: { label: '待办事项' },\n};\n\nexport const USER_CENTER_ORDER: readonly UserCenterType[] = [\n 'notice',\n 'message',\n 'waiting',\n];\n","import {\n Component, OnInit, inject,\n HostListener,\n ElementRef,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NzMessageService } from 'ng-zorro-antd/message';\nimport { Observable, finalize } from 'rxjs';\n\nimport { GramBaseDialogService } from '@ebuilding/base/shared.srv/base-dialog.service';\nimport {\n UserCenterApiResult,\n UserCenterMessageItem,\n UserCenterNoticeItem,\n UserCenterPageResult,\n UserCenterService,\n UserCenterWaitingItem,\n} from '@ebuilding/base/shared.srv/user-center.service';\nimport { RuntimeSharedImportsModule } from '@ebuilding/runtime/shared-imports';\nimport { GramDeonEmptyModule } from '@ebuilding/abc/empty';\nimport { GramPipeModule } from \"@ebuilding/base/shared.pipe\";\n\nimport { UserCenterDetailComponent } from './detail/user-center-detail.component';\nimport {\n USER_CENTER_DEFINITIONS,\n USER_CENTER_ORDER,\n UserCenterType,\n} from './user-center.constants';\n\ntype UserCenterListItem =\n | UserCenterMessageItem\n | UserCenterWaitingItem\n | UserCenterNoticeItem;\n\n@Component({\n selector: 'user-center-main',\n templateUrl: './user-center-main.component.html',\n styleUrls: ['./user-center-main.component.less'],\n imports: [GramDeonEmptyModule, GramPipeModule, RuntimeSharedImportsModule],\n})\nexport class UserCenterMainComponent implements OnInit {\n private readonly dialogService = inject(GramBaseDialogService);\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly userCenter = inject(UserCenterService);\n private readonly message = inject(NzMessageService);\n\n readonly tabs = USER_CENTER_ORDER;\n activeType: UserCenterType = 'message';\n selectedIndex = 0;\n unreadOnly = false;\n loading = false;\n list: UserCenterListItem[] = [];\n\n keyWord = '';\n pageIndex: number = 1;\n listTotal: number = 0;\n pageSize: number = 20;\n\n constructor(\n public elementRef: ElementRef) {\n\n }\n\n ngOnInit(): void {\n const requestedType = this.route.snapshot.queryParamMap.get('type');\n if (this.isUserCenterType(requestedType)) {\n this.activeType = requestedType;\n this.selectedIndex = this.tabs.indexOf(requestedType);\n }\n this.loadPage();\n this.resizeTable();\n }\n\n\n deonTableContentHG: any = null;\n @HostListener('window:resize', ['$event'])\n resize() {\n this.resizeTable();\n }\n resizeTable() {\n\n setTimeout(() => {\n let content = 0;//this.elementRef.nativeElement.clientHeight;\n\n let tableHeader = 0;\n\n if (this.elementRef.nativeElement.querySelector('.default-work')) {\n content = this.elementRef.nativeElement.querySelector('.default-work').clientHeight;\n console.log(\"total\", content);\n }\n if (this.elementRef.nativeElement.querySelector('.ant-tabs')) {\n content = content - this.elementRef.nativeElement.querySelector('.ant-tabs').clientHeight;\n console.log(\"ant-tabs\", this.elementRef.nativeElement.querySelector('.ant-tabs').clientHeight);\n }\n if (this.elementRef.nativeElement.querySelector('.content-info-header')) {\n content = content - this.elementRef.nativeElement.querySelector('.content-info-header').clientHeight;\n console.log(\"header\", this.elementRef.nativeElement.querySelector('.content-info-header').clientHeight);\n }\n\n if (this.elementRef.nativeElement.querySelector('.content-info-footer')) {\n content = content - this.elementRef.nativeElement.querySelector('.content-info-footer').clientHeight;\n console.log(\"footer\", this.elementRef.nativeElement.querySelector('.content-info-footer').clientHeight);\n }\n\n if (this.elementRef.nativeElement.querySelector('.ant-table-thead')) {\n tableHeader = +this.elementRef.nativeElement.querySelector('.ant-table-thead').clientHeight;\n }\n\n if (tableHeader == 0 || tableHeader <= 50) {\n tableHeader = 50;\n }\n this.deonTableContentHG = {\n y: content - tableHeader - 24 + 'px',\n };\n }, 200);\n }\n\n tabLabel(type: UserCenterType): string {\n return USER_CENTER_DEFINITIONS[type].label;\n }\n\n tabChanged(index: number): void {\n this.selectedIndex = index;\n this.activeType = this.tabs[index] ?? 'message';\n this.unreadOnly = false;\n this.pageIndex = 1;\n void this.router.navigate([], {\n relativeTo: this.route,\n queryParams: { type: this.activeType },\n replaceUrl: true,\n });\n this.loadPage();\n }\n\n unreadChanged(): void {\n this.pageIndex = 1;\n this.loadPage();\n }\n\n pageChanged(pageIndex: number): void {\n this.pageIndex = pageIndex;\n this.loadPage();\n }\n\n queryClick(): void {\n this.pageIndex = 1;\n this.loadPage();\n }\n\n listPageIndexChange(pageIndex: number): void {\n this.pageIndex = pageIndex;\n this.loadPage();\n }\n\n listPageSizeChange(pageSize: number): void {\n this.pageSize = pageSize;\n this.pageIndex = 1;\n this.loadPage();\n }\n\n displayContent(item: UserCenterListItem): string {\n return 'body' in item ? item.body : item.content;\n }\n\n displayTime(item: UserCenterListItem): string | undefined {\n return 'publishTime' in item\n ? item.publishTime\n : 'dueTime' in item\n ? (item.dueTime ?? item.createDate)\n : (item as UserCenterMessageItem).createDate;\n }\n\n openDetail(id: string): void {\n const definition = USER_CENTER_DEFINITIONS[this.activeType];\n this.dialogService.CreateDrawerDialog(\n {\n nzTitle: definition.label,\n nzContent: UserCenterDetailComponent,\n },\n { config: { type: this.activeType, id } },\n () => this.loadPage(),\n );\n }\n\n private loadPage(): void {\n this.loading = true;\n let request: Observable<\n UserCenterApiResult<UserCenterPageResult<UserCenterListItem>>\n >;\n if (this.activeType === 'message') {\n request = this.userCenter.messagePage(\n this.pageIndex,\n this.pageSize,\n this.unreadOnly,\n this.keyWord,\n );\n } else if (this.activeType === 'waiting') {\n request = this.userCenter.waitingPage(\n this.pageIndex,\n this.pageSize,\n this.keyWord,\n );\n } else {\n request = this.userCenter.noticePage(\n this.pageIndex,\n this.pageSize,\n this.keyWord,\n );\n }\n\n request.pipe(finalize(() => (this.loading = false))).subscribe({\n next: (response) => {\n const page = response.result;\n this.list = page?.list ?? [];\n this.listTotal = page?.total ?? 0;\n },\n error: () => {\n this.list = [];\n this.listTotal = 0;\n this.message.error('加载消息中心数据失败');\n },\n });\n }\n\n private isUserCenterType(value: string | null): value is UserCenterType {\n return value != null && this.tabs.includes(value as UserCenterType);\n }\n}\n","<page-header [title]=\"'消息中心'\" class=\"header_hide\" [syncTitle]=\"true\" [breadcrumb]=\"breadcrumb\">\n <ng-template #breadcrumb>\n <nz-breadcrumb>\n <nz-breadcrumb-item><a [routerLink]=\"['/home']\">首页</a></nz-breadcrumb-item>\n <nz-breadcrumb-item>消息中心</nz-breadcrumb-item>\n </nz-breadcrumb>\n </ng-template>\n</page-header>\n\n<div class=\"default-work user-center-page\">\n <nz-tabset [nzSelectedIndex]=\"selectedIndex\" (nzSelectedIndexChange)=\"tabChanged($event)\">\n <nz-tab *ngFor=\"let type of tabs\" [nzTitle]=\"tabLabel(type)\"></nz-tab>\n </nz-tabset>\n <div class=\"content-info\">\n <div class=\"content-info-header\">\n <div class=\"search\">\n <nz-input-group nzSearch [nzAddOnAfter]=\"suffixButton\">\n <input type=\"text\" [(ngModel)]=\"keyWord\" nz-input placeholder=\"请输入标题关键字\" />\n </nz-input-group>\n <ng-template #suffixButton>\n <button nz-button nzType=\"primary\" type=\"button\" nzSearch (click)=\"queryClick()\"><i nz-icon\n nzType=\"search\"></i>查询</button>\n </ng-template>\n </div>\n </div>\n\n <div class=\"content-info-body\">\n <nz-table class=\"default-table\" [nzData]=\"list\" [nzLoading]=\"loading\" [nzFrontPagination]=\"false\"\n [nzShowPagination]=\"false\" [nzNoResult]=\"noResult\" [nzScroll]=\"deonTableContentHG\">\n <thead>\n <tr>\n <th>标题</th>\n <!-- <th>内容</th> -->\n <th nzWidth=\"120px\">日期</th>\n <th nzWidth=\"80px\">状态</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of list\">\n <td>\n <a (click)=\"openDetail(item.id)\">{{ item.title }}</a>\n </td>\n <!-- <td class=\"content-cell\">\n <div [innerHtml]=\"displayContent(item) | safeHtml\">\n </div>\n </td> -->\n <td>{{ displayTime(item) | date: \"yyyy-MM-dd HH:mm\" }}</td>\n <td>\n <nz-tag *ngIf=\"item.read === false\" nzColor=\"blue\">未读</nz-tag>\n <nz-tag *ngIf=\"item.read !== false\" nzColor=\"default\">已读</nz-tag>\n </td>\n </tr>\n </tbody>\n </nz-table>\n </div>\n\n <div class=\"content-info-footer\">\n <nz-pagination [nzPageIndex]=\"pageIndex\" [nzTotal]=\"listTotal\" nzShowSizeChanger [nzPageSize]=\"pageSize\"\n (nzPageIndexChange)=\"listPageIndexChange($event)\" (nzPageSizeChange)=\"listPageSizeChange($event)\">\n </nz-pagination>\n </div>\n\n </div>\n</div>\n\n<ng-template #noResult>\n <div class=\"result-empty\">\n <gram-empty></gram-empty>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { UserCenterMainComponent } from './user-center-main.component';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'list' },\n { path: 'list', component: UserCenterMainComponent },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes), UserCenterMainComponent],\n exports: [RouterModule],\n})\nexport class UserCenterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4","i5","i6","i7","i8","i9","i13"],"mappings":"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"}
1
+ {"version":3,"file":"user-center.mjs","sources":["../../../../packages/runtime/user-center/src/detail/user-center-detail.component.ts","../../../../packages/runtime/user-center/src/detail/user-center-detail.component.html","../../../../packages/runtime/user-center/src/user-center.constants.ts","../../../../packages/runtime/user-center/src/user-center-main.component.ts","../../../../packages/runtime/user-center/src/user-center-main.component.html","../../../../packages/runtime/user-center/src/user-center.module.ts","../../../../packages/runtime/user-center/user-center.ts"],"sourcesContent":["import { Component, Input, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { NzMessageService } from 'ng-zorro-antd/message';\nimport { Observable, finalize } from 'rxjs';\n\nimport { NzDrawerRef } from '@ebuilding/base/components/drawer';\nimport {\n UserCenterApiResult,\n UserCenterMessageItem,\n UserCenterNoticeItem,\n UserCenterService,\n UserCenterWaitingItem,\n UserCenterAttachment,\n} from '@ebuilding/base/shared.srv/user-center.service';\nimport { RuntimeSharedImportsModule } from '@ebuilding/runtime/shared-imports';\n\nimport { UserCenterType } from '../user-center.constants';\n\ntype UserCenterDetail = UserCenterMessageItem &\n Partial<UserCenterWaitingItem> &\n Partial<UserCenterNoticeItem>;\n\nexport interface UserCenterDetailConfig {\n type: UserCenterType;\n id: string;\n}\n\n@Component({\n selector: 'user-center-detail',\n templateUrl: './user-center-detail.component.html',\n styleUrls: ['./user-center-detail.component.less'],\n imports: [RuntimeSharedImportsModule],\n})\nexport class UserCenterDetailComponent {\n private readonly userCenter = inject(UserCenterService);\n private readonly router = inject(Router);\n private readonly message = inject(NzMessageService);\n private readonly drawerRef = inject(NzDrawerRef<unknown>);\n\n loading = false;\n acknowledging = false;\n detail: UserCenterDetail | null = null;\n detailType: UserCenterType = 'message';\n loadError = '';\n\n @Input()\n set config(value: UserCenterDetailConfig | null) {\n if (!value?.id) return;\n this.detailType = value.type;\n this.load(value.id);\n }\n\n content(): string {\n return this.detail?.body ?? this.detail?.content ?? '';\n }\n\n isRichContent(): boolean {\n return /<\\/?[a-z][^>]*>/i.test(this.content());\n }\n\n time(): string | undefined {\n return (\n this.detail?.publishTime ??\n this.detail?.dueTime ??\n this.detail?.createDate\n );\n }\n\n needAcknowledge(): boolean {\n return (\n this.detailType === 'notice' &&\n Boolean(this.detail?.needAck) &&\n Boolean(this.detail?.read) &&\n !Boolean(this.detail?.acked)\n );\n }\n\n attachments(): UserCenterAttachment[] {\n return this.detailType === 'notice' ? this.detail?.attachments ?? [] : [];\n }\n\n downloadAttachment(attachment: UserCenterAttachment): void {\n const url = attachment.fileUrl || attachment.allFileUrl;\n if (!url) {\n this.message.warning('附件地址为空');\n return;\n }\n const link = document.createElement('a');\n link.href = url;\n link.target = '_blank';\n link.rel = 'noopener';\n link.download = attachment.fileName || '';\n link.click();\n }\n\n acknowledge(): void {\n if (!this.detail?.id || this.acknowledging || !this.needAcknowledge())\n return;\n this.acknowledging = true;\n this.userCenter\n .acknowledgeNotice(this.detail.id)\n .pipe(finalize(() => (this.acknowledging = false)))\n .subscribe(() => {\n if (this.detail) {\n this.detail.read = true;\n this.detail.acked = true;\n this.detail.ackTime = new Date().toISOString();\n }\n this.message.success('确认成功');\n });\n }\n\n hasActionUrl(): boolean {\n return this.internalRoute(this.detail?.actionUrl) != null;\n }\n\n goToBusiness(): void {\n const actionUrl = this.internalRoute(this.detail?.actionUrl);\n if (!actionUrl) return;\n this.drawerRef.close({ type: 'navigate' });\n void this.router.navigateByUrl(actionUrl);\n }\n\n private load(id: string): void {\n this.loading = true;\n this.detail = null;\n this.loadError = '';\n\n if (this.detailType === 'message') {\n this.loadMessage(id);\n return;\n }\n\n const request = (\n this.detailType === 'notice'\n ? this.userCenter.noticeDetail(id)\n : this.userCenter.waitingDetail(id)\n ) as Observable<UserCenterApiResult<UserCenterDetail>>;\n\n request\n .pipe(finalize(() => (this.loading = false)))\n .subscribe({\n next: (response) => {\n if (!response?.success || !response.result) {\n this.showLoadError(response?.message || '详情不存在或不可查看');\n return;\n }\n this.detail = response.result;\n this.recordRead(id);\n },\n error: () => {\n this.showLoadError('详情不存在或不可查看');\n },\n });\n }\n\n private loadMessage(id: string): void {\n this.userCenter.messageDetail(id).subscribe({\n next: (response) => {\n const detail = response?.result;\n if (!response?.success || !detail) {\n this.showLoadError(response?.message || '消息不存在或不可查看');\n return;\n }\n\n if (\n detail.sourceType?.toUpperCase() === 'SYS_NOTICE' &&\n detail.sourceId\n ) {\n this.validateSourceNotice(id, detail);\n return;\n }\n\n this.completeLoad(id, detail);\n },\n error: () => {\n this.showLoadError('消息不存在或不可查看');\n },\n });\n }\n\n private validateSourceNotice(\n id: string,\n detail: UserCenterMessageItem,\n ): void {\n this.userCenter.noticeDetail(detail.sourceId!).subscribe({\n next: (response) => {\n if (!response?.success || !response.result) {\n this.showLoadError('关联公告已删除或不可查看');\n return;\n }\n this.completeLoad(id, detail);\n },\n error: () => {\n this.showLoadError('关联公告已删除或不可查看');\n },\n });\n }\n\n private completeLoad(id: string, detail: UserCenterDetail): void {\n this.detail = detail;\n this.loading = false;\n this.recordRead(id);\n }\n\n private showLoadError(message: string): void {\n this.detail = null;\n this.loadError = message;\n this.loading = false;\n }\n\n private recordRead(id: string): void {\n if (this.detail?.read) return;\n const request =\n this.detailType === 'notice'\n ? this.userCenter.readNotice(id)\n : this.detailType === 'waiting'\n ? this.userCenter.readWaiting(id)\n : this.userCenter.readMessage(id);\n request.subscribe(() => {\n if (this.detail) this.detail.read = true;\n });\n }\n\n private internalRoute(value?: string): string | null {\n if (!value || !value.startsWith('/') || value.startsWith('//')) return null;\n return value;\n }\n}\n","<nz-spin class=\"deon-list-spin\" [nzSpinning]=\"loading\">\n <div *ngIf=\"!loading && !detail && loadError\" class=\"detail-unavailable\">\n {{ loadError }}\n </div>\n <div *ngIf=\"detail\" class=\"detail-page\">\n <h2 class=\"detail-title\">{{ detail.title || \"详情\" }}</h2>\n\n <div class=\"detail-meta\">\n <span>{{ time() | date: \"yyyy-MM-dd HH:mm\" }}</span>\n <nz-tag *ngIf=\"detailType === 'notice' && detail.read\">已读</nz-tag>\n <nz-tag *ngIf=\"detailType === 'notice' && detail.acked\" nzColor=\"green\">已确认</nz-tag>\n </div>\n\n <div class=\"detail-scroll\">\n <div *ngIf=\"isRichContent(); else plainContent\" class=\"detail-content rich-content\" [innerHTML]=\"content()\"></div>\n <ng-template #plainContent>\n <div class=\"detail-content plain-content\">{{ content() }}</div>\n </ng-template>\n <div *ngIf=\"attachments().length\" class=\"detail-attachments\">\n <div class=\"detail-attachments-title\">附件</div>\n <div *ngFor=\"let attachment of attachments()\" class=\"detail-attachment-row\">\n <span nz-icon nzType=\"paper-clip\"></span>\n <span class=\"detail-attachment-name\">{{ attachment.fileName }}</span>\n <button nz-button nzType=\"link\" type=\"button\" (click)=\"downloadAttachment(attachment)\">\n 下载\n </button>\n </div>\n </div>\n </div>\n <div *ngIf=\"hasActionUrl() || needAcknowledge()\" class=\"detail-actions\">\n <button *ngIf=\"hasActionUrl()\" nz-button nzType=\"default\" (click)=\"goToBusiness()\">\n 前往处理\n </button>\n <button *ngIf=\"needAcknowledge()\" nz-button nzType=\"primary\" [nzLoading]=\"acknowledging\" (click)=\"acknowledge()\">\n 确认已阅读\n </button>\n </div>\n </div>\n</nz-spin>\n","export type UserCenterType = 'message' | 'waiting' | 'notice';\n\nexport interface UserCenterDefinition {\n label: string;\n}\n\nexport const USER_CENTER_DEFINITIONS: Record<\n UserCenterType,\n UserCenterDefinition\n> = {\n notice: { label: '公告通知' },\n message: { label: '站内消息' },\n waiting: { label: '待办事项' },\n};\n\nexport const USER_CENTER_ORDER: readonly UserCenterType[] = [\n 'notice',\n 'message',\n 'waiting',\n];\n","import {\n Component, OnInit, inject,\n HostListener,\n ElementRef,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NzMessageService } from 'ng-zorro-antd/message';\nimport { Observable, finalize } from 'rxjs';\n\nimport { GramBaseDialogService } from '@ebuilding/base/shared.srv/base-dialog.service';\nimport {\n UserCenterApiResult,\n UserCenterMessageItem,\n UserCenterNoticeItem,\n UserCenterPageResult,\n UserCenterService,\n UserCenterWaitingItem,\n} from '@ebuilding/base/shared.srv/user-center.service';\nimport { RuntimeSharedImportsModule } from '@ebuilding/runtime/shared-imports';\nimport { GramDeonEmptyModule } from '@ebuilding/abc/empty';\nimport { GramPipeModule } from \"@ebuilding/base/shared.pipe\";\n\nimport { UserCenterDetailComponent } from './detail/user-center-detail.component';\nimport {\n USER_CENTER_DEFINITIONS,\n USER_CENTER_ORDER,\n UserCenterType,\n} from './user-center.constants';\n\ntype UserCenterListItem =\n | UserCenterMessageItem\n | UserCenterWaitingItem\n | UserCenterNoticeItem;\n\n@Component({\n selector: 'user-center-main',\n templateUrl: './user-center-main.component.html',\n styleUrls: ['./user-center-main.component.less'],\n imports: [GramDeonEmptyModule, GramPipeModule, RuntimeSharedImportsModule],\n})\nexport class UserCenterMainComponent implements OnInit {\n private readonly dialogService = inject(GramBaseDialogService);\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly userCenter = inject(UserCenterService);\n private readonly message = inject(NzMessageService);\n\n readonly tabs = USER_CENTER_ORDER;\n activeType: UserCenterType = 'message';\n selectedIndex = 0;\n unreadOnly = false;\n loading = false;\n list: UserCenterListItem[] = [];\n\n keyWord = '';\n pageIndex: number = 1;\n listTotal: number = 0;\n pageSize: number = 20;\n\n constructor(\n public elementRef: ElementRef) {\n\n }\n\n ngOnInit(): void {\n const requestedType = this.route.snapshot.queryParamMap.get('type');\n if (this.isUserCenterType(requestedType)) {\n this.activeType = requestedType;\n this.selectedIndex = this.tabs.indexOf(requestedType);\n }\n this.loadPage();\n this.resizeTable();\n }\n\n\n deonTableContentHG: any = null;\n @HostListener('window:resize', ['$event'])\n resize() {\n this.resizeTable();\n }\n resizeTable() {\n\n setTimeout(() => {\n let content = 0;//this.elementRef.nativeElement.clientHeight;\n\n let tableHeader = 0;\n\n if (this.elementRef.nativeElement.querySelector('.default-work')) {\n content = this.elementRef.nativeElement.querySelector('.default-work').clientHeight;\n console.log(\"total\", content);\n }\n if (this.elementRef.nativeElement.querySelector('.ant-tabs')) {\n content = content - this.elementRef.nativeElement.querySelector('.ant-tabs').clientHeight;\n console.log(\"ant-tabs\", this.elementRef.nativeElement.querySelector('.ant-tabs').clientHeight);\n }\n if (this.elementRef.nativeElement.querySelector('.content-info-header')) {\n content = content - this.elementRef.nativeElement.querySelector('.content-info-header').clientHeight;\n console.log(\"header\", this.elementRef.nativeElement.querySelector('.content-info-header').clientHeight);\n }\n\n if (this.elementRef.nativeElement.querySelector('.content-info-footer')) {\n content = content - this.elementRef.nativeElement.querySelector('.content-info-footer').clientHeight;\n console.log(\"footer\", this.elementRef.nativeElement.querySelector('.content-info-footer').clientHeight);\n }\n\n if (this.elementRef.nativeElement.querySelector('.ant-table-thead')) {\n tableHeader = +this.elementRef.nativeElement.querySelector('.ant-table-thead').clientHeight;\n }\n\n if (tableHeader == 0 || tableHeader <= 50) {\n tableHeader = 50;\n }\n this.deonTableContentHG = {\n y: content - tableHeader - 24 + 'px',\n };\n }, 200);\n }\n\n tabLabel(type: UserCenterType): string {\n return USER_CENTER_DEFINITIONS[type].label;\n }\n\n tabChanged(index: number): void {\n this.selectedIndex = index;\n this.activeType = this.tabs[index] ?? 'message';\n this.unreadOnly = false;\n this.pageIndex = 1;\n void this.router.navigate([], {\n relativeTo: this.route,\n queryParams: { type: this.activeType },\n replaceUrl: true,\n });\n this.loadPage();\n }\n\n unreadChanged(): void {\n this.pageIndex = 1;\n this.loadPage();\n }\n\n pageChanged(pageIndex: number): void {\n this.pageIndex = pageIndex;\n this.loadPage();\n }\n\n queryClick(): void {\n this.pageIndex = 1;\n this.loadPage();\n }\n\n listPageIndexChange(pageIndex: number): void {\n this.pageIndex = pageIndex;\n this.loadPage();\n }\n\n listPageSizeChange(pageSize: number): void {\n this.pageSize = pageSize;\n this.pageIndex = 1;\n this.loadPage();\n }\n\n displayContent(item: UserCenterListItem): string {\n return 'body' in item ? item.body : item.content;\n }\n\n displayTime(item: UserCenterListItem): string | undefined {\n return 'publishTime' in item\n ? item.publishTime\n : 'dueTime' in item\n ? (item.dueTime ?? item.createDate)\n : (item as UserCenterMessageItem).createDate;\n }\n\n openDetail(id: string): void {\n const definition = USER_CENTER_DEFINITIONS[this.activeType];\n this.dialogService.CreateDrawerDialog(\n {\n nzTitle: definition.label,\n nzContent: UserCenterDetailComponent,\n },\n { config: { type: this.activeType, id } },\n () => this.loadPage(),\n );\n }\n\n private loadPage(): void {\n this.loading = true;\n let request: Observable<\n UserCenterApiResult<UserCenterPageResult<UserCenterListItem>>\n >;\n if (this.activeType === 'message') {\n request = this.userCenter.messagePage(\n this.pageIndex,\n this.pageSize,\n this.unreadOnly,\n this.keyWord,\n );\n } else if (this.activeType === 'waiting') {\n request = this.userCenter.waitingPage(\n this.pageIndex,\n this.pageSize,\n this.keyWord,\n );\n } else {\n request = this.userCenter.noticePage(\n this.pageIndex,\n this.pageSize,\n this.keyWord,\n );\n }\n\n request.pipe(finalize(() => (this.loading = false))).subscribe({\n next: (response) => {\n const page = response.result;\n this.list = page?.list ?? [];\n this.listTotal = page?.total ?? 0;\n },\n error: () => {\n this.list = [];\n this.listTotal = 0;\n this.message.error('加载消息中心数据失败');\n },\n });\n }\n\n private isUserCenterType(value: string | null): value is UserCenterType {\n return value != null && this.tabs.includes(value as UserCenterType);\n }\n}\n","<page-header [title]=\"'消息中心'\" class=\"header_hide\" [syncTitle]=\"true\" [breadcrumb]=\"breadcrumb\">\n <ng-template #breadcrumb>\n <nz-breadcrumb>\n <nz-breadcrumb-item><a [routerLink]=\"['/home']\">首页</a></nz-breadcrumb-item>\n <nz-breadcrumb-item>消息中心</nz-breadcrumb-item>\n </nz-breadcrumb>\n </ng-template>\n</page-header>\n\n<div class=\"default-work user-center-page\">\n <nz-tabset [nzSelectedIndex]=\"selectedIndex\" (nzSelectedIndexChange)=\"tabChanged($event)\">\n <nz-tab *ngFor=\"let type of tabs\" [nzTitle]=\"tabLabel(type)\"></nz-tab>\n </nz-tabset>\n <div class=\"content-info\">\n <div class=\"content-info-header\">\n <div class=\"search\">\n <nz-input-group nzSearch [nzAddOnAfter]=\"suffixButton\">\n <input type=\"text\" [(ngModel)]=\"keyWord\" nz-input placeholder=\"请输入标题关键字\" />\n </nz-input-group>\n <ng-template #suffixButton>\n <button nz-button nzType=\"primary\" type=\"button\" nzSearch (click)=\"queryClick()\"><i nz-icon\n nzType=\"search\"></i>查询</button>\n </ng-template>\n </div>\n </div>\n\n <div class=\"content-info-body\">\n <nz-table class=\"default-table\" [nzData]=\"list\" [nzLoading]=\"loading\" [nzFrontPagination]=\"false\"\n [nzShowPagination]=\"false\" [nzNoResult]=\"noResult\" [nzScroll]=\"deonTableContentHG\">\n <thead>\n <tr>\n <th>标题</th>\n <!-- <th>内容</th> -->\n <th nzWidth=\"120px\">日期</th>\n <th nzWidth=\"80px\">状态</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of list\">\n <td>\n <a (click)=\"openDetail(item.id)\">{{ item.title }}</a>\n </td>\n <!-- <td class=\"content-cell\">\n <div [innerHtml]=\"displayContent(item) | safeHtml\">\n </div>\n </td> -->\n <td>{{ displayTime(item) | date: \"yyyy-MM-dd HH:mm\" }}</td>\n <td>\n <nz-tag *ngIf=\"item.read === false\" nzColor=\"blue\">未读</nz-tag>\n <nz-tag *ngIf=\"item.read !== false\" nzColor=\"default\">已读</nz-tag>\n </td>\n </tr>\n </tbody>\n </nz-table>\n </div>\n\n <div class=\"content-info-footer\">\n <nz-pagination [nzPageIndex]=\"pageIndex\" [nzTotal]=\"listTotal\" nzShowSizeChanger [nzPageSize]=\"pageSize\"\n (nzPageIndexChange)=\"listPageIndexChange($event)\" (nzPageSizeChange)=\"listPageSizeChange($event)\">\n </nz-pagination>\n </div>\n\n </div>\n</div>\n\n<ng-template #noResult>\n <div class=\"result-empty\">\n <gram-empty></gram-empty>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { UserCenterMainComponent } from './user-center-main.component';\n\nconst routes: Routes = [\n { path: '', pathMatch: 'full', redirectTo: 'list' },\n { path: 'list', component: UserCenterMainComponent },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes), UserCenterMainComponent],\n exports: [RouterModule],\n})\nexport class UserCenterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4","i5","i6","i7","i8","i9","i13"],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@ebuilding/runtime",
3
- "version": "3.2.6",
3
+ "version": "3.3.0",
4
4
  "dependencies": {
5
- "@ebuilding/base": "3.2.6",
6
- "@ebuilding/abc": "3.2.6",
7
- "@ebuilding/biz-comm": "3.2.6",
8
- "@ebuilding/biz-form": "3.2.6",
9
- "@ebuilding/biz-list": "3.2.6",
10
- "@ebuilding/chart": "3.2.6",
11
- "@ebuilding/report": "3.2.6",
5
+ "@ebuilding/base": "3.3.0",
6
+ "@ebuilding/abc": "3.3.0",
7
+ "@ebuilding/biz-comm": "3.3.0",
8
+ "@ebuilding/biz-form": "3.3.0",
9
+ "@ebuilding/biz-list": "3.3.0",
10
+ "@ebuilding/chart": "3.3.0",
11
+ "@ebuilding/report": "3.3.0",
12
12
  "@ebuilding-form/core": "20.0.0",
13
13
  "screenfull": "^6.0.2",
14
14
  "tslib": "^2.3.0"
@@ -23,66 +23,66 @@
23
23
  "types": "./index.d.ts",
24
24
  "default": "./fesm2022/ebuilding-runtime.mjs"
25
25
  },
26
- "./comm": {
27
- "types": "./comm/index.d.ts",
28
- "default": "./fesm2022/comm.mjs"
29
- },
30
26
  "./auth": {
31
27
  "types": "./auth/index.d.ts",
32
28
  "default": "./fesm2022/auth.mjs"
33
29
  },
34
- "./dynamic": {
35
- "types": "./dynamic/index.d.ts",
36
- "default": "./fesm2022/dynamic.mjs"
37
- },
38
30
  "./core": {
39
31
  "types": "./core/index.d.ts",
40
32
  "default": "./fesm2022/core.mjs"
41
33
  },
34
+ "./comm": {
35
+ "types": "./comm/index.d.ts",
36
+ "default": "./fesm2022/comm.mjs"
37
+ },
38
+ "./dynamic": {
39
+ "types": "./dynamic/index.d.ts",
40
+ "default": "./fesm2022/dynamic.mjs"
41
+ },
42
42
  "./exception": {
43
43
  "types": "./exception/index.d.ts",
44
44
  "default": "./fesm2022/exception.mjs"
45
45
  },
46
- "./external": {
47
- "types": "./external/index.d.ts",
48
- "default": "./fesm2022/external.mjs"
49
- },
50
46
  "./e-web": {
51
47
  "types": "./e-web/index.d.ts",
52
48
  "default": "./fesm2022/e-web.mjs"
53
49
  },
50
+ "./shared-imports": {
51
+ "types": "./shared-imports/index.d.ts",
52
+ "default": "./fesm2022/shared-imports.mjs"
53
+ },
54
54
  "./home": {
55
55
  "types": "./home/index.d.ts",
56
56
  "default": "./fesm2022/home.mjs"
57
57
  },
58
- "./comm/default": {
59
- "types": "./comm/default/index.d.ts",
60
- "default": "./fesm2022/comm.default.mjs"
58
+ "./external": {
59
+ "types": "./external/index.d.ts",
60
+ "default": "./fesm2022/external.mjs"
61
61
  },
62
- "./shared-imports": {
63
- "types": "./shared-imports/index.d.ts",
64
- "default": "./fesm2022/shared-imports.mjs"
62
+ "./layout": {
63
+ "types": "./layout/index.d.ts",
64
+ "default": "./fesm2022/layout.mjs"
65
65
  },
66
66
  "./user-center": {
67
67
  "types": "./user-center/index.d.ts",
68
68
  "default": "./fesm2022/user-center.mjs"
69
69
  },
70
+ "./comm/default": {
71
+ "types": "./comm/default/index.d.ts",
72
+ "default": "./fesm2022/comm.default.mjs"
73
+ },
70
74
  "./comm/form": {
71
75
  "types": "./comm/form/index.d.ts",
72
76
  "default": "./fesm2022/comm.form.mjs"
73
77
  },
74
- "./layout": {
75
- "types": "./layout/index.d.ts",
76
- "default": "./fesm2022/layout.mjs"
78
+ "./comm/list": {
79
+ "types": "./comm/list/index.d.ts",
80
+ "default": "./fesm2022/comm.list.mjs"
77
81
  },
78
82
  "./comm/tree": {
79
83
  "types": "./comm/tree/index.d.ts",
80
84
  "default": "./fesm2022/comm.tree.mjs"
81
85
  },
82
- "./comm/list": {
83
- "types": "./comm/list/index.d.ts",
84
- "default": "./fesm2022/comm.list.mjs"
85
- },
86
86
  "./comm/page": {
87
87
  "types": "./comm/page/index.d.ts",
88
88
  "default": "./fesm2022/comm.page.mjs"
@@ -91,14 +91,14 @@
91
91
  "types": "./e-web/extend/index.d.ts",
92
92
  "default": "./fesm2022/e-web-extend.mjs"
93
93
  },
94
- "./e-web/list": {
95
- "types": "./e-web/list/index.d.ts",
96
- "default": "./fesm2022/e-web-list.mjs"
97
- },
98
94
  "./e-web/form": {
99
95
  "types": "./e-web/form/index.d.ts",
100
96
  "default": "./fesm2022/e-web-form.mjs"
101
97
  },
98
+ "./e-web/list": {
99
+ "types": "./e-web/list/index.d.ts",
100
+ "default": "./fesm2022/e-web-list.mjs"
101
+ },
102
102
  "./e-web/report": {
103
103
  "types": "./e-web/report/index.d.ts",
104
104
  "default": "./fesm2022/e-web-report.mjs"