Skip to content

Commit 36e1a90

Browse files
committed
feat: 联调用户
1 parent 5fb5bfb commit 36e1a90

File tree

79 files changed

+847
-412
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+847
-412
lines changed

Diff for: .prettierrc

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"tabWidth": 2,
3-
"printWidth": 100
2+
"singleQuote": true,
3+
"trailingComma": "all"
44
}

Diff for: angular.json

+1-3
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
}
4040
],
4141
"styles": [
42-
"./node_modules/ng-zorro-antd/ng-zorro-antd.less",
4342
"src/assets/styles/global.less"
4443
],
4544
"scripts": []
@@ -108,8 +107,7 @@
108107
"src/assets"
109108
],
110109
"styles": [
111-
"./node_modules/ng-zorro-antd/ng-zorro-antd.min.css",
112-
"src/styles.less"
110+
"src/assets/styles/global.less"
113111
],
114112
"scripts": []
115113
}

Diff for: e2e/protractor.conf.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,36 @@
22
// Protractor configuration file, see link for more information
33
// https://github.com/angular/protractor/blob/master/lib/config.ts
44

5-
const { SpecReporter, StacktraceOption } = require("jasmine-spec-reporter");
5+
const { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter');
66

77
/**
88
* @type { import("protractor").Config }
99
*/
1010
exports.config = {
1111
allScriptsTimeout: 11000,
12-
specs: ["./src/**/*.e2e-spec.ts"],
12+
specs: ['./src/**/*.e2e-spec.ts'],
1313
capabilities: {
14-
browserName: "chrome",
14+
browserName: 'chrome',
1515
},
1616
directConnect: true,
1717
SELENIUM_PROMISE_MANAGER: false,
18-
baseUrl: "http://localhost:4200/",
19-
framework: "jasmine",
18+
baseUrl: 'http://localhost:4200/',
19+
framework: 'jasmine',
2020
jasmineNodeOpts: {
2121
showColors: true,
2222
defaultTimeoutInterval: 30000,
2323
print: function () {},
2424
},
2525
onPrepare() {
26-
require("ts-node").register({
27-
project: require("path").join(__dirname, "./tsconfig.json"),
26+
require('ts-node').register({
27+
project: require('path').join(__dirname, './tsconfig.json'),
2828
});
2929
jasmine.getEnv().addReporter(
3030
new SpecReporter({
3131
spec: {
3232
displayStacktrace: StacktraceOption.PRETTY,
3333
},
34-
})
34+
}),
3535
);
3636
},
3737
};

Diff for: e2e/src/app.e2e-spec.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
import { browser, logging } from "protractor";
2-
import { AppPage } from "./app.po";
1+
import { browser, logging } from 'protractor';
2+
import { AppPage } from './app.po';
33

4-
describe("workspace-project App", () => {
4+
describe('workspace-project App', () => {
55
let page: AppPage;
66

77
beforeEach(() => {
88
page = new AppPage();
99
});
1010

11-
it("should display welcome message", () => {
11+
it('should display welcome message', () => {
1212
page.navigateTo();
1313
// expect(page.getTitleText()).toEqual("Welcome to ng-tabler!");
1414
});
@@ -19,7 +19,7 @@ describe("workspace-project App", () => {
1919
expect(logs).not.toContain(
2020
jasmine.objectContaining({
2121
level: logging.Level.SEVERE,
22-
} as logging.Entry)
22+
} as logging.Entry),
2323
);
2424
});
2525
});

Diff for: e2e/src/app.po.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { browser, by, element } from "protractor";
1+
import { browser, by, element } from 'protractor';
22

33
export class AppPage {
44
navigateTo() {
55
return browser.get(browser.baseUrl) as Promise<any>;
66
}
77

88
getTitleText() {
9-
return element(by.css("app-root h1")).getText() as Promise<string>;
9+
return element(by.css('app-root h1')).getText() as Promise<string>;
1010
}
1111
}

Diff for: package-lock.json

+7-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"@angular/platform-browser": "~12.2.0",
2020
"@angular/platform-browser-dynamic": "~12.2.0",
2121
"@angular/router": "~12.2.0",
22+
"lodash": "^4.17.21",
2223
"ng-zorro-antd": "^12.0.1",
2324
"ngx-cookie-service": "^12.0.3",
2425
"rxjs": "~6.6.0",
@@ -30,6 +31,7 @@
3031
"@angular/cli": "~12.2.0",
3132
"@angular/compiler-cli": "~12.2.0",
3233
"@types/jasmine": "~3.6.0",
34+
"@types/lodash": "^4.14.172",
3335
"@types/node": "^12.11.1",
3436
"codelyzer": "^6.0.0",
3537
"jasmine-core": "~3.8.0",

Diff for: src/app/app-routing.module.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import { NgModule } from "@angular/core";
2-
import { RouterModule, Routes } from "@angular/router";
1+
import { NgModule } from '@angular/core';
2+
import { RouterModule, Routes } from '@angular/router';
33

44
const routes: Routes = [
55
{
6-
path: "",
7-
loadChildren: () => import("./pages/pages.module").then((m) => m.PagesModule),
6+
path: '',
7+
loadChildren: () =>
8+
import('./pages/pages.module').then((m) => m.PagesModule),
89
},
910
];
1011

Diff for: src/app/app.component.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { Component } from "@angular/core";
1+
import { Component } from '@angular/core';
22

33
@Component({
4-
selector: "app-root",
5-
template: "<router-outlet></router-outlet>",
4+
selector: 'app-root',
5+
template: '<router-outlet></router-outlet>',
66
})
77
export class AppComponent {
8-
title = "angular-boilerplate";
8+
title = 'angular-boilerplate';
99
}

Diff for: src/app/app.module.ts

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import { registerLocaleData } from "@angular/common";
2-
import { HTTP_INTERCEPTORS, HttpClientModule } from "@angular/common/http";
3-
import zh from "@angular/common/locales/zh";
4-
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core";
5-
import { FormsModule } from "@angular/forms";
6-
import { BrowserModule } from "@angular/platform-browser";
7-
import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
8-
import { NZ_I18N, zh_CN } from "ng-zorro-antd/i18n";
9-
import { CookieService } from "ngx-cookie-service";
10-
import { CoreModule, RequestInterceptor, ResponseInterceptor } from "~/core";
11-
import { AppRoutingModule } from "./app-routing.module";
12-
import { AppComponent } from "./app.component";
1+
import { registerLocaleData } from '@angular/common';
2+
import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
3+
import zh from '@angular/common/locales/zh';
4+
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
5+
import { FormsModule } from '@angular/forms';
6+
import { BrowserModule } from '@angular/platform-browser';
7+
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
8+
import { NZ_I18N, zh_CN } from 'ng-zorro-antd/i18n';
9+
import { CookieService } from 'ngx-cookie-service';
10+
import { CoreModule, RequestInterceptor, ResponseInterceptor } from '~/core';
11+
import { AppRoutingModule } from './app-routing.module';
12+
import { AppComponent } from './app.component';
1313

1414
registerLocaleData(zh);
1515

Diff for: src/app/config/app-menu.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,16 @@ type IMenu = {
1212
export type IAppMenu = IMenu[];
1313

1414
export const APP_MENUS: IAppMenu = [
15-
{ level: 1, title: "首页", icon: "home", link: "/" },
15+
{ level: 1, title: '首页', icon: 'home', link: '/' },
1616
{
1717
level: 1,
18-
title: "系统管理",
19-
icon: "setting",
18+
title: '系统管理',
19+
icon: 'setting',
2020
children: [
21-
{ level: 2, title: "用户管理", link: "/system/user" },
22-
{ level: 2, title: "角色管理", link: "/system/role" },
23-
{ level: 2, title: "权限管理", link: "/system/access" },
24-
{ level: 2, title: "菜单管理", link: "/system/menu" },
21+
{ level: 2, title: '用户管理', link: '/system/user' },
22+
{ level: 2, title: '角色管理', link: '/system/role' },
23+
{ level: 2, title: '权限管理', link: '/system/access' },
24+
{ level: 2, title: '菜单管理', link: '/system/menu' },
2525
],
2626
},
2727
];

Diff for: src/app/config/index.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { NzMenuThemeType } from "ng-zorro-antd/menu";
2-
import { APP_MENUS, IAppMenu } from "./app-menu";
1+
import { NzMenuThemeType } from 'ng-zorro-antd/menu';
2+
import { APP_MENUS, IAppMenu } from './app-menu';
33

44
export interface IConfig {
55
menus: IAppMenu;
@@ -10,7 +10,7 @@ export interface IConfig {
1010

1111
export const CONFIG: IConfig = {
1212
menus: APP_MENUS,
13-
asideTheme: "dark",
13+
asideTheme: 'dark',
1414
fixedHeader: true,
1515
fluid: true,
1616
};

Diff for: src/app/core/core.module.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { CommonModule } from "@angular/common";
2-
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core";
3-
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
4-
import { NgZorroAntdModule } from "./ng-zorro-antd.module";
1+
import { CommonModule } from '@angular/common';
2+
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
3+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4+
import { NgZorroAntdModule } from './ng-zorro-antd.module';
55

66
@NgModule({
77
imports: [CommonModule, FormsModule, ReactiveFormsModule, NgZorroAntdModule],

Diff for: src/app/core/index.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export * from "./interfaces";
2-
export * from "./interceptors";
3-
export * from "./services";
4-
export * from "./core.module";
1+
export * from './interfaces';
2+
export * from './interceptors';
3+
export * from './services';
4+
export * from './core.module';

Diff for: src/app/core/interceptors/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export * from "./request.interceptor";
2-
export * from "./response.interceptor";
1+
export * from './request.interceptor';
2+
export * from './response.interceptor';

Diff for: src/app/core/interceptors/request.interceptor.ts

+13-10
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,33 @@ import {
44
HttpHeaders,
55
HttpInterceptor,
66
HttpRequest,
7-
} from "@angular/common/http";
8-
import { Injectable } from "@angular/core";
9-
import { CookieService } from "ngx-cookie-service";
10-
import { Observable } from "rxjs";
11-
import { environment } from "~/environments/environment";
7+
} from '@angular/common/http';
8+
import { Injectable } from '@angular/core';
9+
import { CookieService } from 'ngx-cookie-service';
10+
import { Observable } from 'rxjs';
11+
import { environment } from '~/environments/environment';
1212

1313
@Injectable()
1414
export class RequestInterceptor implements HttpInterceptor {
1515
constructor(private cookieService: CookieService) {}
1616

17-
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {
17+
intercept(
18+
request: HttpRequest<unknown>,
19+
next: HttpHandler,
20+
): Observable<HttpEvent<unknown>> {
1821
// 补全 URL
1922
let url = environment.ajaxBaseUrl;
20-
if (request.url.startsWith("/")) {
23+
if (request.url.startsWith('/')) {
2124
url += request.url;
2225
} else {
2326
url += `/${request.url}`;
2427
}
2528

2629
// 在 Header 中附加 Token
27-
const token = this.cookieService.get("token");
28-
let headers = new HttpHeaders({ "Content-Type": "application/json" });
30+
const token = this.cookieService.get('token');
31+
let headers = new HttpHeaders({ 'Content-Type': 'application/json' });
2932
if (token) {
30-
headers = headers.append("token", token);
33+
headers = headers.append('token', token);
3134
}
3235

3336
const cloned = request.clone({ url, headers });

Diff for: src/app/core/interceptors/response.interceptor.ts

+16-10
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,21 @@ import {
44
HttpInterceptor,
55
HttpRequest,
66
HttpResponse,
7-
} from "@angular/common/http";
8-
import { Injectable } from "@angular/core";
9-
import { Router } from "@angular/router";
10-
import { NzModalService } from "ng-zorro-antd/modal";
11-
import { Observable } from "rxjs";
12-
import { filter, timeout } from "rxjs/operators";
7+
} from '@angular/common/http';
8+
import { Injectable } from '@angular/core';
9+
import { Router } from '@angular/router';
10+
import { NzModalService } from 'ng-zorro-antd/modal';
11+
import { Observable } from 'rxjs';
12+
import { filter, timeout } from 'rxjs/operators';
1313

1414
@Injectable()
1515
export class ResponseInterceptor implements HttpInterceptor {
1616
constructor(private router: Router, private modalService: NzModalService) {}
1717

18-
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
18+
intercept(
19+
request: HttpRequest<any>,
20+
next: HttpHandler,
21+
): Observable<HttpEvent<any>> {
1922
return next
2023
.handle(request)
2124
.pipe(
@@ -25,17 +28,20 @@ export class ResponseInterceptor implements HttpInterceptor {
2528

2629
// 未登录
2730
if (res.statusCode === 401) {
28-
this.router.navigateByUrl("/login");
31+
this.router.navigateByUrl('/login');
2932
return false;
3033
}
3134

3235
if (res.statusCode !== 200) {
33-
this.modalService.error({ nzTitle: "Error", nzContent: res.message });
36+
this.modalService.error({
37+
nzTitle: 'Error',
38+
nzContent: res.message,
39+
});
3440
return false;
3541
}
3642
}
3743
return true;
38-
})
44+
}),
3945
)
4046
.pipe(timeout(1000 * 30));
4147
}

Diff for: src/app/core/interfaces/index.ts

+16-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,20 @@ export interface IResponse<T> {
66

77
export class IUserProfile {
88
id = 0;
9-
username = "";
10-
realname = "";
11-
email = "";
9+
username = '';
10+
realname = '';
11+
email = '';
12+
}
13+
14+
export interface IPageRes<T> {
15+
total: number;
16+
pageIndex: number;
17+
pageSize: number;
18+
items: T[];
19+
}
20+
21+
export class IPageReq {
22+
pageIndex: number = 1;
23+
pageSize: number = 10;
24+
[param: string]: string | number | boolean;
1225
}

0 commit comments

Comments
 (0)