diff --git a/src/app/view/admin/admin-article/admin-article.component.html b/src/app/view/admin/admin-article/admin-article.component.html index 9442a03..0333611 100644 --- a/src/app/view/admin/admin-article/admin-article.component.html +++ b/src/app/view/admin/admin-article/admin-article.component.html @@ -1,61 +1,32 @@ -
- - - - 标题 - 发布日期 - 更新日期 - 文章类型 - 阅读量 - 👍赞 - 👎踩 - 是否可见 - 操作 - - - - {{data.title}} - {{data.publishDateFormat}} - {{data.updateDateFormat}} - - 原创 - 转载 - - - {{data.readingNumber}} - - - {{data.likeCount}} - - - {{data.dislikeCount}} - - - - 编辑 - - 查看 - - 删除 - - - + + - - - - - -
+ + {{value}} + + + {{value}} + + + {{value}} + + + + {{value}} + + + + + diff --git a/src/app/view/admin/admin-article/admin-article.component.less b/src/app/view/admin/admin-article/admin-article.component.less deleted file mode 100644 index 5bfd2a0..0000000 --- a/src/app/view/admin/admin-article/admin-article.component.less +++ /dev/null @@ -1,3 +0,0 @@ -td { - max-width: 200px; -} diff --git a/src/app/view/admin/admin-article/admin-article.component.ts b/src/app/view/admin/admin-article/admin-article.component.ts index 59d37c3..a2398d2 100644 --- a/src/app/view/admin/admin-article/admin-article.component.ts +++ b/src/app/view/admin/admin-article/admin-article.component.ts @@ -1,49 +1,70 @@ -import {Component, OnInit} from '@angular/core'; +import {Component, OnInit, ViewChild} from '@angular/core'; import {NzMessageService} from 'ng-zorro-antd'; import {ApiService} from '../../../api/api.service'; -import {PageList} from '../../../class/HttpReqAndResp'; +import {RequestObj} from '../../../class/HttpReqAndResp'; import {Article} from '../../../class/Article'; import {Title} from '@angular/platform-browser'; +import {Data} from '../components/common-table/data'; +import {CommonTableComponent} from '../components/common-table/common-table.component'; +import {Router} from '@angular/router'; @Component({ selector: 'app-admin-article', - templateUrl: './admin-article.component.html', - styleUrls: ['./admin-article.component.less'] + templateUrl: './admin-article.component.html' }) export class AdminArticleComponent implements OnInit { - constructor(private apiService: ApiService, private nzMessage: NzMessageService, private title: Title) { + constructor(private apiService: ApiService, private nzMessage: NzMessageService, private title: Title, + private router: Router) { + this.request = { + path: '/admin/articles', + method: 'GET', + queryParam: { + page: 1, + count: 10 + } + } } - page: number = 1; - pageSize: number = 10; - - pageList: PageList
= new PageList
(); - - loading: boolean = true; + request: RequestObj; + headData: Data
[] + @ViewChild('commonTableComponent') private commonTableComponent: CommonTableComponent
ngOnInit(): void { this.title.setTitle('小海博客 | 文章管理') - this.getArticle(); + this.headData = [ + {fieldName: '主键', fieldValue: 'id', show: false, primaryKey: true}, + {fieldName: '标题', fieldValue: 'title', show: true}, + {fieldName: '分类', fieldValue: 'category', show: true}, + {fieldName: '文章类型', fieldValue: 'original', show: true}, + {fieldName: '阅读量', fieldValue: 'readingNumber', show: true}, + {fieldName: '👍数', fieldValue: 'likeCount', show: true}, + {fieldName: '👎数', fieldValue: 'dislikeCount', show: true}, + {fieldName: '发布日期', fieldValue: 'publishDateFormat', show: true}, + {fieldName: '更新日期', fieldValue: 'updateDateFormat', show: true}, + {fieldName: '状态', fieldValue: 'open', show: true}, + {fieldName: '简介', fieldValue: 'summary', show: false}, + {fieldName: '作者', fieldValue: 'author.displayName', show: false}, + {fieldName: '标签数', fieldValue: 'tags.length', show: false}, + { + fieldName: '操作', fieldValue: '', show: true, isActionColumns: true, + action: [ + {name: '查看', click: (d) => this.router.navigateByUrl(`/article/${d.id}`)}, + {name: '删除', color: '#ff0000', needConfirm: true, click: (d) => this.deleteArticle(d)}, + {name: '编辑', color: '#2db7f5', click: (d) => this.router.navigateByUrl(`/write?id=${d.id}`)}, + ] + } + ] } - getArticle = () => this.apiService.adminArticles(this.page, this.pageSize).subscribe({ - next: data => this.pageList = data.result, - complete: () => this.loading = false, - error: err => this.loading = false - }) - - deleteArticle(id) { - this.loading = true; - this.apiService.deleteArticle(id).subscribe({ + deleteArticle(article: Article) { + this.apiService.deleteArticle(article.id).subscribe({ next: data => { this.nzMessage.success('删除成功') - this.loading = false; - this.getArticle(); + this.commonTableComponent.getData(); }, error: err => { this.nzMessage.error(err.msg) - this.loading = false } }) } diff --git a/src/app/view/admin/admin-article/admin-article.module.ts b/src/app/view/admin/admin-article/admin-article.module.ts index 7331c83..2bf601d 100644 --- a/src/app/view/admin/admin-article/admin-article.module.ts +++ b/src/app/view/admin/admin-article/admin-article.module.ts @@ -2,14 +2,9 @@ import {NgModule} from '@angular/core'; import {CommonModule} from '@angular/common'; import {RouterModule} from '@angular/router'; import {AdminArticleComponent} from './admin-article.component'; -import { - NzCardModule, - NzDividerModule, NzIconModule, - NzPopconfirmModule, - NzTableModule, NzTagModule, - NzToolTipModule, - NzTypographyModule -} from 'ng-zorro-antd'; +import {CommonTableModule} from '../components/common-table/common-table.module'; +import {FormsModule} from '@angular/forms'; +import {NzCheckboxModule, NzTagModule} from 'ng-zorro-antd'; @NgModule({ declarations: [ @@ -18,14 +13,10 @@ import { imports: [ CommonModule, RouterModule.forChild([{path: '', component: AdminArticleComponent}]), - NzTableModule, - NzTypographyModule, - NzToolTipModule, - NzCardModule, - NzDividerModule, - NzPopconfirmModule, + CommonTableModule, + FormsModule, NzTagModule, - NzIconModule, + NzCheckboxModule, ] }) export class AdminArticleModule {