添加维护页面,修复bug

This commit is contained in:
禾几海
2020-08-05 23:20:38 +08:00
committed by GitHub
15 changed files with 235 additions and 128 deletions

View File

@@ -1,10 +1,7 @@
import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {forwardRef, Inject, Injectable} from '@angular/core';
import {Article} from '../class/Article';
import {HttpService} from './http/http.service';
import {PageList} from '../class/HttpReqAndResp';
import {ErrDispatch} from '../class/ErrDispatch';
import {ArticleReq} from '../class/Article';
import {Category, Tag} from '../class/Tag';
import {Comment} from '../class/Comment';
@@ -12,28 +9,21 @@ import {CommentReq} from '../class/Comment';
import {ApplyLinkReq, Link} from '../class/Link';
import {User} from '../class/User';
import {LoginReq} from '../class/User';
import {LocalStorageService} from '../services/local-storage.service';
import {Visitor} from '../class/Visitor';
import {UpdateInfo} from '../class/UpdateInfo';
@Injectable({
providedIn: 'root'
})
export class ApiService extends HttpService {
export class ApiService {
constructor(httpClient: HttpClient,
localStorageService: LocalStorageService) {
super(httpClient, localStorageService);
}
setErrDispatch(errDispatch: ErrDispatch) {
super.setErrDispatch(errDispatch);
constructor(private httpService: HttpService) {
}
createArticle(article: ArticleReq) {
article.id = null;
return super.Service<Article>({
return this.httpService.Service<Article>({
path: '/admin/article/create',
contentType: 'application/json',
method: 'POST',
@@ -42,7 +32,7 @@ export class ApiService extends HttpService {
}
deleteArticle(id: number) {
return super.Service<boolean>({
return this.httpService.Service<boolean>({
path: '/admin/article/del',
method: 'DELETE',
queryParam: {articleID: id}
@@ -50,7 +40,7 @@ export class ApiService extends HttpService {
}
articles(pageNumber: number = 1, pageSize: number = 5) {
return super.Service<PageList<Article>>({
return this.httpService.Service<PageList<Article>>({
path: '/articles',
method: 'GET',
queryParam: {
@@ -61,7 +51,7 @@ export class ApiService extends HttpService {
}
adminArticles(pageNumber: number = 1, pageSize: number = 10) {
return super.Service<PageList<Article>>({
return this.httpService.Service<PageList<Article>>({
path: '/admin/articles',
method: 'GET',
queryParam: {
@@ -72,7 +62,7 @@ export class ApiService extends HttpService {
}
updateArticle(article: ArticleReq) {
return super.Service<Article>({
return this.httpService.Service<Article>({
path: '/admin/article/update',
method: 'PUT',
contentType: 'application/json',
@@ -81,7 +71,7 @@ export class ApiService extends HttpService {
}
getArticle(articleId: number, is4Update: boolean = false) {
return super.Service<Article>({
return this.httpService.Service<Article>({
path: `/article/articleID/${articleId}`,
method: 'GET',
queryParam: {update: is4Update},
@@ -89,7 +79,7 @@ export class ApiService extends HttpService {
}
articlesByCategory(category: string, pageNumber: number = 1, pageSize: number = 10) {
return super.Service<PageList<Article>>({
return this.httpService.Service<PageList<Article>>({
path: `/articles/category/${category}`,
method: 'GET',
queryParam: {
@@ -100,7 +90,7 @@ export class ApiService extends HttpService {
}
articlesByTag(tag: string, pageNumber: number = 1, pageSize: number = 10) {
return super.Service<PageList<Article>>({
return this.httpService.Service<PageList<Article>>({
path: `/articles/tag/${tag}`,
method: 'GET',
queryParam: {
@@ -111,14 +101,14 @@ export class ApiService extends HttpService {
}
categories() {
return super.Service<PageList<Category>>({
return this.httpService.Service<PageList<Category>>({
path: '/categories',
method: 'GET'
});
}
createCategory(nameStr: string) {
return super.Service<Category>({
return this.httpService.Service<Category>({
path: '/admin/category/create',
method: 'POST',
queryParam: {name: nameStr}
@@ -126,7 +116,7 @@ export class ApiService extends HttpService {
}
deleteCategory(categoryId: number) {
return super.Service<boolean>({
return this.httpService.Service<boolean>({
path: '/admin/category/del',
method: 'DELETE',
queryParam: {id: categoryId}
@@ -134,7 +124,7 @@ export class ApiService extends HttpService {
}
updateCategory(categoryId: number, nameStr: string) {
return super.Service<Category>({
return this.httpService.Service<Category>({
path: '/admin/category/update',
method: 'PUT',
queryParam: {id: categoryId, name: nameStr}
@@ -142,7 +132,7 @@ export class ApiService extends HttpService {
}
tags(pageNumber: number = 1, pageSize: number = 10) {
return super.Service<PageList<Tag>>({
return this.httpService.Service<PageList<Tag>>({
path: '/tags',
method: 'GET',
queryParam: {
@@ -153,14 +143,14 @@ export class ApiService extends HttpService {
}
tagsNac() {
return super.Service<{ name: string, size: number }[]>({
return this.httpService.Service<{ name: string, size: number }[]>({
path: '/tags/nac',
method: 'GET'
});
}
createTag(nameStr: string) {
return super.Service<Tag>({
return this.httpService.Service<Tag>({
path: '/admin/tag/create',
method: 'POST',
queryParam: {name: nameStr}
@@ -168,7 +158,7 @@ export class ApiService extends HttpService {
}
deleteTag(TagId: number) {
return super.Service<boolean>({
return this.httpService.Service<boolean>({
path: '/admin/tag/del',
method: 'DELETE',
queryParam: {id: TagId}
@@ -176,7 +166,7 @@ export class ApiService extends HttpService {
}
updateTag(TagId: number, nameStr: string) {
return super.Service<Tag>({
return this.httpService.Service<Tag>({
path: '/admin/tag/update',
method: 'PUT',
queryParam: {id: TagId, name: nameStr}
@@ -184,7 +174,7 @@ export class ApiService extends HttpService {
}
getCommentByTypeForAdmin(pagePath: string, pageNumber: number = 1, pageSize: number = 10) {
return super.Service<PageList<Comment>>({
return this.httpService.Service<PageList<Comment>>({
path: `/admin/comment/pagePath/${pagePath}`,
method: 'GET',
queryParam: {
@@ -195,7 +185,7 @@ export class ApiService extends HttpService {
}
getCommentByTypeForUser(pagePath: string, pageNumber: number = 1, pageSize: number = 10) {
return super.Service<PageList<Comment>>({
return this.httpService.Service<PageList<Comment>>({
path: `/user/comment/pagePath/${pagePath}`,
method: 'GET',
queryParam: {
@@ -206,7 +196,7 @@ export class ApiService extends HttpService {
}
deleteComment(idNumer: number) {
return super.Service<boolean>({
return this.httpService.Service<boolean>({
path: `/user/comment/del`,
method: 'DELETE',
queryParam: {id: idNumer}
@@ -214,7 +204,7 @@ export class ApiService extends HttpService {
}
updateComment(commentReq: CommentReq) {
return super.Service<Comment>({
return this.httpService.Service<Comment>({
path: `/user/comment/update`,
method: 'PUT',
data: commentReq,
@@ -223,7 +213,7 @@ export class ApiService extends HttpService {
}
comments(pagePath: string, pageSize: number = 10, pageNumber: number = 1) {
return super.Service<PageList<Comment>>({
return this.httpService.Service<PageList<Comment>>({
path: `/comment/pagePath/${pagePath}`,
method: 'GET',
queryParam: {
@@ -234,7 +224,7 @@ export class ApiService extends HttpService {
}
createComment(commentReq: CommentReq) {
return super.Service<Comment>({
return this.httpService.Service<Comment>({
path: '/user/comment/create',
method: 'POST',
contentType: 'application/json',
@@ -244,7 +234,7 @@ export class ApiService extends HttpService {
counts() {
return super.Service<{
return this.httpService.Service<{
articleCount: number,
visitorCount: number,
categoryCount: number,
@@ -257,7 +247,7 @@ export class ApiService extends HttpService {
}
adminLinks(pageSize: number = 10, pageNumber: number = 1) {
return super.Service<PageList<Link>>({
return this.httpService.Service<PageList<Link>>({
path: '/admin/links',
method: 'GET',
queryParam: {
@@ -268,7 +258,7 @@ export class ApiService extends HttpService {
}
createLink(linkReq: Link) {
return super.Service<Link>({
return this.httpService.Service<Link>({
path: '/admin/links/create',
method: 'POST',
data: linkReq,
@@ -277,14 +267,14 @@ export class ApiService extends HttpService {
}
deleteLink(idNumber: number) {
return super.Service<boolean>({
return this.httpService.Service<boolean>({
path: `/admin/links/del/${idNumber}`,
method: 'DELETE',
});
}
updateLink(linkReq: Link) {
return super.Service<Link>({
return this.httpService.Service<Link>({
path: '/admin/links/update',
method: 'PUT',
data: linkReq,
@@ -293,7 +283,7 @@ export class ApiService extends HttpService {
}
applyLink(link: ApplyLinkReq) {
return super.Service<string>({
return this.httpService.Service<string>({
path: '/apply',
method: 'POST',
data: link,
@@ -302,7 +292,7 @@ export class ApiService extends HttpService {
}
reapplyLink(keyStr: string) {
return super.Service<string>({
return this.httpService.Service<string>({
path: '/reapply',
method: 'POST',
queryParam: {
@@ -312,14 +302,14 @@ export class ApiService extends HttpService {
}
links() {
return super.Service<Link[]>({
return this.httpService.Service<Link[]>({
path: '/links',
method: 'GET',
});
}
verifyImgCode(codeStr: string) {
return super.Service<string>({
return this.httpService.Service<string>({
path: '/verCode',
method: 'POST',
queryParam: {code: codeStr}
@@ -328,7 +318,7 @@ export class ApiService extends HttpService {
login(loginReq: LoginReq) {
return super.Service<User>({
return this.httpService.Service<User>({
path: '/login',
method: 'POST',
contentType: 'application/json',
@@ -337,14 +327,14 @@ export class ApiService extends HttpService {
}
logout() {
return super.Service<string>({
return this.httpService.Service<string>({
path: '/logout',
method: 'GET',
});
}
registration(emailStr: string, pwd: string) {
return super.Service<boolean>({
return this.httpService.Service<boolean>({
path: '/registration',
method: 'POST',
queryParam: {
@@ -355,7 +345,7 @@ export class ApiService extends HttpService {
}
resetPwd(idStr: string, emailStr: string, pwdStr: string) {
return super.Service<string>({
return this.httpService.Service<string>({
path: '/resetPwd',
method: 'POST',
queryParam: {
@@ -367,7 +357,7 @@ export class ApiService extends HttpService {
}
emailVerify(idStr: string, emailStr: string) {
return super.Service<void>({
return this.httpService.Service<void>({
path: '/emailVerify',
method: 'POST',
queryParam: {
@@ -379,7 +369,7 @@ export class ApiService extends HttpService {
sendResetPwdEmail(emailStr: string) {
return super.Service<string>({
return this.httpService.Service<string>({
path: '/sendResetPwdEmail',
method: 'POST',
queryParam: {email: emailStr}
@@ -387,7 +377,7 @@ export class ApiService extends HttpService {
}
sendVerifyEmail(emailStr: string) {
return super.Service<string>({
return this.httpService.Service<string>({
path: '/sendVerifyEmail',
method: 'POST',
queryParam: {email: emailStr}
@@ -395,14 +385,14 @@ export class ApiService extends HttpService {
}
userInfo() {
return super.Service<User>({
return this.httpService.Service<User>({
path: '/user/userInfo',
method: 'GET',
});
}
adminUpdateUser(user: User) {
return super.Service<User>({
return this.httpService.Service<User>({
path: '/admin/user',
method: 'PUT',
data: user,
@@ -411,14 +401,14 @@ export class ApiService extends HttpService {
}
deleteUser(id: number) {
return super.Service<boolean>({
return this.httpService.Service<boolean>({
path: `/admin/user/delete/${id}`,
method: 'DELETE',
});
}
multipleDeleteUser(idArray: number[]) {
return super.Service<{ id: number; msg: string; status: boolean }[]>({
return this.httpService.Service<{ id: number; msg: string; status: boolean }[]>({
path: `/admin/user/delete`,
method: 'DELETE',
data: idArray,
@@ -428,14 +418,14 @@ export class ApiService extends HttpService {
// 获取邮件是否已注册
emailStatus(email: string) {
return super.Service<boolean>({
return this.httpService.Service<boolean>({
path: `/emailStatus/${email}`,
method: 'GET'
})
}
updateUserInfo(descStr: string, disPlayNameStr: string) {
return super.Service<User>({
return this.httpService.Service<User>({
path: '/user/userInfo/update',
method: 'PUT',
queryParam: {
@@ -446,7 +436,7 @@ export class ApiService extends HttpService {
}
adminUsers(pageSize: number = 10, pageNumber: number = 1) {
return super.Service<PageList<User>>({
return this.httpService.Service<PageList<User>>({
path: '/admin/users',
method: 'GET',
queryParam: {
@@ -457,14 +447,14 @@ export class ApiService extends HttpService {
}
visit() {
return super.Service<Visitor>({
return this.httpService.Service<Visitor>({
path: '/visit',
method: 'POST'
});
}
adminVisitors(location: boolean = false, pageSize: number = 10, pageNumber: number = 1) {
return super.Service<PageList<Visitor>>({
return this.httpService.Service<PageList<Visitor>>({
path: '/admin/visitor/page',
method: 'GET',
queryParam: {
@@ -476,42 +466,42 @@ export class ApiService extends HttpService {
}
dayVisitCount() {
return super.Service<number>({
return this.httpService.Service<number>({
path: '/dayVisitCount',
method: 'GET',
});
}
getLocalIp() {
return super.Service<string>({
return this.httpService.Service<string>({
path: '/ip',
method: 'GET',
});
}
getIpLocation(ip: string) {
return super.Service<string>({
return this.httpService.Service<string>({
path: `/ip/${ip}`,
method: 'GET',
});
}
visitorCount() {
return super.Service<number>({
return this.httpService.Service<number>({
path: `/visitor/count`,
method: 'GET',
});
}
webUpdate() {
return super.Service<{ id: number, info: string, time: string }[]>({
return this.httpService.Service<{ id: number, info: string, time: string }[]>({
path: '/webUpdate',
method: 'GET'
});
}
webUpdatePage(pageSize: number = 10, pageNumber: number = 1) {
return super.Service<PageList<{ id: number, info: string, time: string }>>({
return this.httpService.Service<PageList<{ id: number, info: string, time: string }>>({
path: '/webUpdate/pages',
method: 'GET',
queryParam: {
@@ -522,7 +512,7 @@ export class ApiService extends HttpService {
}
lastestUpdate() {
return super.Service<{
return this.httpService.Service<{
lastUpdateTime: string;
lastUpdateInfo: string;
lastCommit: string;
@@ -536,7 +526,7 @@ export class ApiService extends HttpService {
}
createWebUpdateInfo(infoStr: string) {
return super.Service<UpdateInfo>({
return this.httpService.Service<UpdateInfo>({
path: '/admin/webUpdate/create',
method: 'POST',
queryParam: {info: infoStr}
@@ -544,14 +534,14 @@ export class ApiService extends HttpService {
}
deleteWebUpdateInfo(idNumber: number) {
return super.Service<boolean>({
return this.httpService.Service<boolean>({
path: `/admin/webUpdate/del/${idNumber}`,
method: 'DELETE',
});
}
updateWebUpdateInfo(idNumber: number, infoStr: string) {
return super.Service<UpdateInfo>({
return this.httpService.Service<UpdateInfo>({
path: '/admin/webUpdate/update',
method: 'PUT',
queryParam: {id: idNumber, info: infoStr}
@@ -559,14 +549,14 @@ export class ApiService extends HttpService {
}
bingPic() {
return super.Service<string>({
return this.httpService.Service<string>({
path: '/bingPic',
method: 'GET'
});
}
setPwd(pwdStr: string, newPwdStr: string, confirmPwdStr: string,) {
return super.Service<string>({
return this.httpService.Service<string>({
path: '/user/setPwd',
method: 'POST',
queryParam: {

View File

@@ -1,28 +1,27 @@
import {Injectable} from '@angular/core';
import {RequestObj} from '../../class/HttpReqAndResp';
import {Injectable, Injector} from '@angular/core';
import {RequestObj, Response} from '../../class/HttpReqAndResp';
import {HttpClient, HttpResponse} from '@angular/common/http';
import {environment} from '../../../environments/environment';
import {LocalStorageService} from '../../services/local-storage.service';
import {Response} from '../../class/HttpReqAndResp';
import {Observable, Observer, Subject} from 'rxjs';
import {ErrDispatch} from '../../class/ErrDispatch';
import {Observable, Observer, Subscription} from 'rxjs';
import {ErrorService} from '../../services/error.service';
@Injectable({
providedIn: 'root'
providedIn: 'root',
})
export class HttpService {
constructor(private httpClient: HttpClient,
protected localStorageService: LocalStorageService) {
private localStorageService: LocalStorageService,
private injector: Injector) {
}
private errorDispatch: ErrDispatch;
private subscriptionQueue: Subscription[] = [];
setErrDispatch(errDispatch: ErrDispatch) {
this.errorDispatch = errDispatch;
}
public getSubscriptionQueue = () => this.subscriptionQueue;
Service<T>(request: RequestObj) {
const errorService = this.injector.get(ErrorService);
request.url = null;
// 设置默认值
request.contentType = request.contentType == null ? 'application/x-www-form-urlencoded' : request.contentType;
@@ -55,25 +54,32 @@ export class HttpService {
const oob = new Observable<Response<T>>(o => observer = o);
observable.subscribe(o => {
const tokenFromReps = o.headers.get('Authorization');
if (tokenFromReps) {
this.localStorageService.setToken(tokenFromReps);
}
if (o.body.code !== 0) {
observer.error(o.body);
if (this.errorDispatch) {
this.errorDispatch.errHandler(o.body.code, o.body.msg, request);
const subscription = observable.subscribe({
next: o => {
const tokenFromReps = o.headers.get('Authorization');
if (tokenFromReps) {
this.localStorageService.setToken(tokenFromReps);
}
} else {
observer.next(o.body);
}
observer.complete();
if (o.body.code !== 0) {
observer.error(o.body);
errorService.httpException(o.body)
} else {
observer.next(o.body);
}
observer.complete();
},
error: err => {
errorService.httpError(err);
errorService.checkConnection();
this.subscriptionQueue.splice(this.subscriptionQueue.indexOf(subscription), 1)
},
complete: () => this.subscriptionQueue.splice(this.subscriptionQueue.indexOf(subscription), 1)
});
this.subscriptionQueue.push(subscription);
return oob;
}
private get<T>(request: RequestObj) {
get<T>(request: RequestObj) {
return this.httpClient.get<T>(request.url,
{
headers: request.header,
@@ -82,7 +88,7 @@ export class HttpService {
});
}
private post<T>(request: RequestObj) {
post<T>(request: RequestObj) {
return this.httpClient.post<T>(request.url, request.data,
{
headers: request.header,
@@ -91,7 +97,7 @@ export class HttpService {
});
}
private put<T>(request: RequestObj) {
put<T>(request: RequestObj) {
return this.httpClient.put<T>(request.url, request.data,
{
headers: request.header,
@@ -100,7 +106,7 @@ export class HttpService {
});
}
private delete<T>(request: RequestObj) {
delete<T>(request: RequestObj) {
return this.httpClient.delete<T>(request.url,
{
headers: request.header,

View File

@@ -11,17 +11,15 @@ const routes: Routes = [
{path: 'resetPwd', loadChildren: () => import('./view/reset-pwd/reset-pwd.module').then(mod => mod.ResetPwdModule)},
{path: 'write', loadChildren: () => import('./view/write/write.module').then(mod => mod.WriteModule)},
{path: 'links', loadChildren: () => import('./view/link/link.module').then(mod => mod.LinkModule)},
{path: 'admin', loadChildren: () => import('./view/admin/admin.module').then(mod => mod.AdminModule)},
{path: 'maintain', loadChildren: () => import('./view/maintain/maintain.module').then(mod => mod.MaintainModule)},
{
path: 'emailVerify',
loadChildren: () => import('./view/email-verify/email-verify.module').then(mod => mod.EmailVerifyModule)
},
{
path: 'user', loadChildren: () => import('./view/login-registration/login-registration.module')
.then(mod => mod.LoginRegistrationModule)
},
{
path: 'admin',
loadChildren: () => import('./view/admin/admin.module').then(mod => mod.AdminModule),
path: 'user',
loadChildren: () => import('./view/login-registration/login-registration.module').then(mod => mod.LoginRegistrationModule)
},
{
path: '**',

View File

@@ -1,5 +1,5 @@
import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';
import {forwardRef, NgModule} from '@angular/core';
import {AppComponent} from './app.component';
import {NgZorroAntdModule, NZ_I18N, zh_CN} from 'ng-zorro-antd';
import {FormsModule} from '@angular/forms';
@@ -12,8 +12,14 @@ import {FooterComponent} from './components/footer/footer.component';
import {AppRoutingModule} from './app-routing.module';
import {LoginRegistrationModule} from './view/login-registration/login-registration.module';
import {AdminModule} from './view/admin/admin.module';
import { ServiceWorkerModule } from '@angular/service-worker';
import { environment } from '../environments/environment';
import {ServiceWorkerModule} from '@angular/service-worker';
import {environment} from '../environments/environment';
import {HttpService} from './api/http/http.service';
import {ErrorService} from './services/error.service';
import {ComponentStateService} from './services/component-state.service';
import {GlobalUserService} from './services/global-user.service';
import {LocalStorageService} from './services/local-storage.service';
import {ApiService} from './api/api.service';
registerLocaleData(zh);
@@ -33,9 +39,17 @@ registerLocaleData(zh);
BrowserAnimationsModule,
LoginRegistrationModule,
AdminModule,
ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })
ServiceWorkerModule.register('ngsw-worker.js', {enabled: environment.production})
],
providers: [
ComponentStateService,
GlobalUserService,
LocalStorageService,
HttpService,
ApiService,
ErrorService,
{provide: NZ_I18N, useValue: zh_CN},
],
providers: [{provide: NZ_I18N, useValue: zh_CN}],
exports: [],
bootstrap: [AppComponent]
})

View File

@@ -1,5 +0,0 @@
import {RequestObj} from './HttpReqAndResp';
export interface ErrDispatch {
errHandler(code: number, msg: string, request?: RequestObj): void;
}

View File

@@ -37,7 +37,8 @@ export class HeaderComponent implements OnInit {
});
// 订阅一级路由的变化
componentStateService.watchRouterChange().subscribe(prefix => {
if (prefix === '/user' || prefix === '/write' || prefix === '/update') {
// TODO:: 使用service来获取 size
if (prefix === '/user' || prefix === '/write' || prefix === '/update' || prefix === '/maintain') {
this.size = 'default';
} else {
this.size = 'large';

View File

@@ -0,0 +1,59 @@
import {Injectable} from '@angular/core';
import {RequestObj, Response} from '../class/HttpReqAndResp';
import {HttpService} from '../api/http/http.service';
import {environment} from '../../environments/environment';
import {Router} from '@angular/router';
import {ComponentStateService} from './component-state.service';
import {NzNotificationService} from 'ng-zorro-antd';
@Injectable({
providedIn: 'root'
})
export class ErrorService {
constructor(private httpService: HttpService, private router: Router,
private componentStateService: ComponentStateService,
private notification: NzNotificationService) {
}
private static HTTP_ERROR_COUNT: number = 0;
private readonly MAINTAIN_PAGE_PREFIX = '/maintain'
private readonly ADMIN_PAGE_PREFIX = '/admin'
public httpError(err: any) {
if (!environment.production) {
console.log('error=>', err)
}
ErrorService.HTTP_ERROR_COUNT++;
// this.httpService.getSubscriptionQueue().map(a => a.unsubscribe())
}
public httpException(response: Response<any>) {
if (!environment.production)
console.log('exception=>', response)
if (response.code === -1 && response.msg === '重复请求') return
if (this.componentStateService.currentPath === this.ADMIN_PAGE_PREFIX) {
this.notification.create('error', `请求失败<${response.code}>`, `${response.msg}`);
}
}
public checkConnection() {
// The HTTP_ERROR_COUNT is start with 1 in this function
if (ErrorService.HTTP_ERROR_COUNT === 1) {
const req: RequestObj = {
path: '/headerInfo',
method: 'GET',
url: environment.host + '/headerInfo'
}
this.httpService.get(req).subscribe({
next: () => null,
error: () => {
if (this.componentStateService.currentPath !== this.MAINTAIN_PAGE_PREFIX) {
this.router.navigateByUrl(this.MAINTAIN_PAGE_PREFIX)
}
ErrorService.HTTP_ERROR_COUNT = 0;
}
})
}
}
}

View File

@@ -4,6 +4,7 @@
[headData]="headData"
[template]="{open:{temp:open,param:{true:'可见',false:'不可见'}},delete:{temp:deleteTemp,param:{true:'已删除',false:'未删除'}}}"
>
<button nz-button (click)="addLink()">添加</button>
</common-table>
<ng-template #open let-value="value">

View File

@@ -3,7 +3,15 @@ import {CommonModule} from '@angular/common';
import {RouterModule} from '@angular/router';
import {AdminLinkComponent} from './admin-link.component';
import {CommonTableModule} from '../components/common-table/common-table.module';
import {NzCheckboxModule, NzFormModule, NzInputModule, NzModalModule, NzSelectModule, NzTagModule} from 'ng-zorro-antd';
import {
NzButtonModule,
NzCheckboxModule,
NzFormModule,
NzInputModule,
NzModalModule,
NzSelectModule,
NzTagModule
} from 'ng-zorro-antd';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
@@ -23,6 +31,7 @@ import {FormsModule, ReactiveFormsModule} from '@angular/forms';
NzInputModule,
NzSelectModule,
NzTagModule,
NzButtonModule,
]
})

View File

@@ -3,11 +3,9 @@ import {ApiService} from '../../api/api.service';
import {Article} from '../../class/Article';
import {NzIconService, NzMessageService} from 'ng-zorro-antd';
import {SvgIconUtil} from '../../utils/svgIconUtil';
import {PageList} from '../../class/HttpReqAndResp';
import {ErrDispatch} from '../../class/ErrDispatch';
import {RequestObj} from '../../class/HttpReqAndResp';
import {PageList, RequestObj} from '../../class/HttpReqAndResp';
import {Router} from '@angular/router';
import {Category, Tag} from '../../class/Tag';
import {Category} from '../../class/Tag';
import {Title} from '@angular/platform-browser';
@Component({
@@ -16,7 +14,7 @@ import {Title} from '@angular/platform-browser';
styleUrls: ['./index.component.less'],
providers: [ApiService]
})
export class IndexComponent implements OnInit, ErrDispatch {
export class IndexComponent implements OnInit {
constructor(private apiService: ApiService,
private iconService: NzIconService,
@@ -24,7 +22,6 @@ export class IndexComponent implements OnInit, ErrDispatch {
private router: Router,
private title: Title) {
this.iconService.addIconLiteral('blog:location', SvgIconUtil.locationIcon);
apiService.setErrDispatch(this);
title.setTitle('小海博客');
}

View File

@@ -3,7 +3,6 @@ import {environment} from '../../../../../environments/environment';
import {ApiService} from '../../../../api/api.service';
import {NzMessageService} from 'ng-zorro-antd';
import {Router} from '@angular/router';
import {ErrDispatch} from '../../../../class/ErrDispatch';
import {RequestObj} from '../../../../class/HttpReqAndResp';
import {LoginReq} from '../../../../class/User';
import {Title} from '@angular/platform-browser';
@@ -14,13 +13,12 @@ import {Title} from '@angular/platform-browser';
styleUrls: ['./registration.component.less'],
providers: [ApiService]
})
export class RegistrationComponent implements OnInit, ErrDispatch {
export class RegistrationComponent implements OnInit {
constructor(private apiService: ApiService,
private nzMessageService: NzMessageService,
private router: Router,
private title: Title) {
apiService.setErrDispatch(this);
this.title.setTitle('小海博客 | 注册');
}

View File

@@ -0,0 +1,5 @@
<nz-result nzStatus="500" nzTitle="暂时无法连接到后台服务器,可能正在维护更新">
<div nz-result-extra>
<button nz-button nzType="primary" routerLink="/">返回首页</button>
</div>
</nz-result>

View File

@@ -0,0 +1,16 @@
import {Component, OnInit} from '@angular/core';
@Component({
selector: 'app-maintain',
templateUrl: './maintain.component.html',
styleUrls: ['./maintain.component.less']
})
export class MaintainComponent implements OnInit {
constructor() {
}
ngOnInit(): void {
}
}

View File

@@ -0,0 +1,18 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {MaintainComponent} from './maintain.component';
import {RouterModule} from '@angular/router';
import {NzButtonModule, NzResultModule} from 'ng-zorro-antd';
@NgModule({
declarations: [MaintainComponent],
imports: [
CommonModule,
RouterModule.forChild([{path: '', component: MaintainComponent}]),
NzResultModule,
NzButtonModule
]
})
export class MaintainModule {
}