diff --git a/package.json b/package.json index a2d9663..9cabd49 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.0.0", "scripts": { "ng": "ng", - "start:admin": "ng serve admin", + "start:admin": "ng serve admin --proxy-config ./projects/admin/proxy.conf.json", "start:client": "ng serve client", "build:admin": "ng build admin", "build:client": "ng build client", @@ -22,6 +22,8 @@ "@angular/platform-browser-dynamic": "^16.1.0", "@angular/router": "^16.1.0", "@ant-design/icons-angular": "^16.0.0", + "crypto-js": "^4.1.1", + "date-fns": "^2.30.0", "immer": "^10.0.2", "ng-zorro-antd": "16.1.0", "ngx-permissions": "^15.0.1", @@ -33,6 +35,7 @@ "@angular-devkit/build-angular": "^16.1.4", "@angular/cli": "~16.1.4", "@angular/compiler-cli": "^16.1.0", + "@types/crypto-js": "^4.1.2", "@types/jasmine": "~4.3.0", "autoprefixer": "^10.4.14", "jasmine-core": "~4.6.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d06e5b2..07dac89 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,6 +35,12 @@ dependencies: '@ant-design/icons-angular': specifier: ^16.0.0 version: 16.0.0(@angular/common@16.1.0)(@angular/core@16.1.0)(@angular/platform-browser@16.1.0)(rxjs@7.8.0) + crypto-js: + specifier: ^4.1.1 + version: 4.1.1 + date-fns: + specifier: ^2.30.0 + version: 2.30.0 immer: specifier: ^10.0.2 version: 10.0.2 @@ -64,6 +70,9 @@ devDependencies: '@angular/compiler-cli': specifier: ^16.1.0 version: 16.1.0(@angular/compiler@16.1.0)(typescript@5.1.3) + '@types/crypto-js': + specifier: ^4.1.2 + version: 4.1.2 '@types/jasmine': specifier: ~4.3.0 version: 4.3.0 @@ -2311,6 +2320,10 @@ packages: '@types/node': 20.4.10 dev: true + /@types/crypto-js@4.1.2: + resolution: {integrity: sha512-t33RNmTu5ufG/sorROIafiCVJMx3jz95bXUMoPAZcUD14fxMXnuTzqzXZoxpR0tNx2xpw11Dlmem9vGCsrSOfA==} + dev: true + /@types/eslint-scope@3.7.4: resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} dependencies: @@ -3341,6 +3354,10 @@ packages: which: 2.0.2 dev: true + /crypto-js@4.1.1: + resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==} + dev: false + /css-loader@6.8.1(webpack@5.86.0): resolution: {integrity: sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==} engines: {node: '>= 12.13.0'} diff --git a/projects/admin/proxy.conf.json b/projects/admin/proxy.conf.json new file mode 100644 index 0000000..58f8922 --- /dev/null +++ b/projects/admin/proxy.conf.json @@ -0,0 +1,6 @@ +{ + "/api": { + "target": "http://47.109.27.8:9527", + "secure": false + } +} diff --git a/projects/admin/src/app/app-routing.module.ts b/projects/admin/src/app/app-routing.module.ts index 8e4caad..47a3f6e 100644 --- a/projects/admin/src/app/app-routing.module.ts +++ b/projects/admin/src/app/app-routing.module.ts @@ -17,12 +17,14 @@ import { StandardSettingComponent, } from "./pages"; import { AppLayoutComponent } from "./components"; +import { authGuard } from "./services/auth.guard"; const routes: Routes = [ { path: "login", component: LoginComponent }, { path: "", component: AppLayoutComponent, + canActivate: [authGuard], children: [ { path: "", pathMatch: "full", redirectTo: "home" }, { path: "home", component: HomeComponent }, diff --git a/projects/admin/src/app/components/app-layout/app-layout.component.ts b/projects/admin/src/app/components/app-layout/app-layout.component.ts index 4c4de7b..4b583fb 100644 --- a/projects/admin/src/app/components/app-layout/app-layout.component.ts +++ b/projects/admin/src/app/components/app-layout/app-layout.component.ts @@ -1,8 +1,10 @@ +import { ApiService } from "@admin/app/services"; import { Component } from "@angular/core"; import { NavigationEnd, Router, RouterModule } from "@angular/router"; +import { NzMessageService } from "ng-zorro-antd/message"; import { NzModalService } from "ng-zorro-antd/modal"; -import { Subject, filter, takeUntil } from "rxjs"; +import { Subject, filter, lastValueFrom, takeUntil } from "rxjs"; @Component({ selector: "app-layout", @@ -10,7 +12,12 @@ import { Subject, filter, takeUntil } from "rxjs"; styleUrls: ["./app-layout.component.less"], }) export class AppLayoutComponent { - constructor(private router: Router, private modal: NzModalService) { + constructor( + private router: Router, + private modal: NzModalService, + private api: ApiService, + private msg: NzMessageService + ) { this.router.events .pipe( takeUntil(this.unSubscribe$), @@ -29,7 +36,12 @@ export class AppLayoutComponent { this.modal.confirm({ nzTitle: "警告", nzContent: "是否要退出登录?", - nzOnOk: () => {}, + nzOnOk: async () => { + const res = await lastValueFrom(this.api.logout()); + this.msg.success(res.desc); + localStorage.removeItem("account"); + this.router.navigate(["/login"]); + }, }); } } diff --git a/projects/admin/src/app/components/role-permission/role-permission.component.html b/projects/admin/src/app/components/role-permission/role-permission.component.html index 26725c4..74b4cab 100644 --- a/projects/admin/src/app/components/role-permission/role-permission.component.html +++ b/projects/admin/src/app/components/role-permission/role-permission.component.html @@ -15,7 +15,7 @@