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 @@
-
+
+ {{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 {