从"Blog"仓库中分离出来

This commit is contained in:
小海
2019-11-28 19:26:45 +08:00
commit c2aaf280db
616 changed files with 104128 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
import {NgModule} from '@angular/core';
import {NavigationStart, Router, RouterModule, Routes} from '@angular/router';
import {filter} from 'rxjs/operators';
import {UserService} from './services/user/user.service';
import {AIndexComponent} from './pages/a-index/a-index.component';
import {ArticleManagerComponent} from './pages/article-manager/article-manager.component';
import {CommentManagerComponent} from './pages/comment-manager/comment-manager.component';
import {TagManagerComponent} from './pages/tag-manager/tag-manager.component';
import {UserInfoComponent} from './pages/user-info/user-info.component';
import {CategoryManagerComponent} from './pages/category-manager/category-manager.component';
import {LinksManagerComponent} from './pages/links-manager/links.component';
import {VisitorManagerComponent} from './pages/visitor-manager/visitor-manager.component';
import {UpdateManagerComponent} from './pages/update-manager/update.component';
import {UserManagerComponent} from './pages/user-manager/user-manager.component';
const routes: Routes = [
{path: '', component: AIndexComponent},
{path: 'articles', component: ArticleManagerComponent},
{path: 'comments', component: CommentManagerComponent},
{path: 'tags', component: TagManagerComponent},
{path: 'userInfo', component: UserInfoComponent},
{path: 'categories', component: CategoryManagerComponent},
{path: 'links', component: LinksManagerComponent},
{path: 'visitors', component: VisitorManagerComponent},
{path: 'update', component: UpdateManagerComponent},
{path: 'users', component: UserManagerComponent},
{path: '**', component: AIndexComponent}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {
// todo 换用路由守卫
constructor(private router: Router, private userService: UserService) {
this.router.events.pipe(filter((event) => event instanceof NavigationStart)
).subscribe((event: NavigationStart) => {
if (!this.userService.userInfo) {
this.userService.getUserInfo().subscribe(data => {
if (data.code === 0) {
this.checkPermission(event);
} else if (data.code === 301) {
window.location.href = '/login';
} else {
window.location.href = '/';
}
});
} else {
this.checkPermission(event);
}
});
}
private checkPermission(event) {
if (this.userService.userInfo.role === 'user') {
switch (event.url) {
case '/':
case '/comments':
case '/userInfo':
break;
default :
this.router.navigateByUrl('/');
}
}
}
}