36 changed files with 20104 additions and 2 deletions
@ -0,0 +1,16 @@ |
|||||||
|
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. |
||||||
|
# For additional information regarding the format and rule options, please see: |
||||||
|
# https://github.com/browserslist/browserslist#queries |
||||||
|
|
||||||
|
# For the full list of supported browsers by the Angular framework, please see: |
||||||
|
# https://angular.io/guide/browser-support |
||||||
|
|
||||||
|
# You can see what browsers were selected by your queries by running: |
||||||
|
# npx browserslist |
||||||
|
|
||||||
|
last 1 Chrome version |
||||||
|
last 1 Firefox version |
||||||
|
last 2 Edge major versions |
||||||
|
last 2 Safari major versions |
||||||
|
last 2 iOS major versions |
||||||
|
Firefox ESR |
@ -0,0 +1,16 @@ |
|||||||
|
# Editor configuration, see https://editorconfig.org |
||||||
|
root = true |
||||||
|
|
||||||
|
[*] |
||||||
|
charset = utf-8 |
||||||
|
indent_style = space |
||||||
|
indent_size = 2 |
||||||
|
insert_final_newline = true |
||||||
|
trim_trailing_whitespace = true |
||||||
|
|
||||||
|
[*.ts] |
||||||
|
quote_type = single |
||||||
|
|
||||||
|
[*.md] |
||||||
|
max_line_length = off |
||||||
|
trim_trailing_whitespace = false |
@ -0,0 +1,42 @@ |
|||||||
|
# See http://help.github.com/ignore-files/ for more about ignoring files. |
||||||
|
|
||||||
|
# Compiled output |
||||||
|
/dist |
||||||
|
/tmp |
||||||
|
/out-tsc |
||||||
|
/bazel-out |
||||||
|
|
||||||
|
# Node |
||||||
|
/node_modules |
||||||
|
npm-debug.log |
||||||
|
yarn-error.log |
||||||
|
|
||||||
|
# IDEs and editors |
||||||
|
.idea/ |
||||||
|
.project |
||||||
|
.classpath |
||||||
|
.c9/ |
||||||
|
*.launch |
||||||
|
.settings/ |
||||||
|
*.sublime-workspace |
||||||
|
|
||||||
|
# Visual Studio Code |
||||||
|
.vscode/* |
||||||
|
!.vscode/settings.json |
||||||
|
!.vscode/tasks.json |
||||||
|
!.vscode/launch.json |
||||||
|
!.vscode/extensions.json |
||||||
|
.history/* |
||||||
|
|
||||||
|
# Miscellaneous |
||||||
|
/.angular/cache |
||||||
|
.sass-cache/ |
||||||
|
/connect.lock |
||||||
|
/coverage |
||||||
|
/libpeerconnection.log |
||||||
|
testem.log |
||||||
|
/typings |
||||||
|
|
||||||
|
# System files |
||||||
|
.DS_Store |
||||||
|
Thumbs.db |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 |
||||||
|
"recommendations": ["angular.ng-template"] |
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
{ |
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 |
||||||
|
"version": "0.2.0", |
||||||
|
"configurations": [ |
||||||
|
{ |
||||||
|
"name": "ng serve", |
||||||
|
"type": "pwa-chrome", |
||||||
|
"request": "launch", |
||||||
|
"preLaunchTask": "npm: start", |
||||||
|
"url": "http://localhost:4200/" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "ng test", |
||||||
|
"type": "chrome", |
||||||
|
"request": "launch", |
||||||
|
"preLaunchTask": "npm: test", |
||||||
|
"url": "http://localhost:9876/debug.html" |
||||||
|
} |
||||||
|
] |
||||||
|
} |
@ -0,0 +1,42 @@ |
|||||||
|
{ |
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 |
||||||
|
"version": "2.0.0", |
||||||
|
"tasks": [ |
||||||
|
{ |
||||||
|
"type": "npm", |
||||||
|
"script": "start", |
||||||
|
"isBackground": true, |
||||||
|
"problemMatcher": { |
||||||
|
"owner": "typescript", |
||||||
|
"pattern": "$tsc", |
||||||
|
"background": { |
||||||
|
"activeOnStart": true, |
||||||
|
"beginsPattern": { |
||||||
|
"regexp": "(.*?)" |
||||||
|
}, |
||||||
|
"endsPattern": { |
||||||
|
"regexp": "bundle generation complete" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
"type": "npm", |
||||||
|
"script": "test", |
||||||
|
"isBackground": true, |
||||||
|
"problemMatcher": { |
||||||
|
"owner": "typescript", |
||||||
|
"pattern": "$tsc", |
||||||
|
"background": { |
||||||
|
"activeOnStart": true, |
||||||
|
"beginsPattern": { |
||||||
|
"regexp": "(.*?)" |
||||||
|
}, |
||||||
|
"endsPattern": { |
||||||
|
"regexp": "bundle generation complete" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
] |
||||||
|
} |
@ -1,3 +1,27 @@ |
|||||||
# Edge-host-maintenance |
# EdgeHostMaintenance |
||||||
|
|
||||||
中化项目-边缘主机维护-前端项目 |
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.1.4. |
||||||
|
|
||||||
|
## Development server |
||||||
|
|
||||||
|
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. |
||||||
|
|
||||||
|
## Code scaffolding |
||||||
|
|
||||||
|
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. |
||||||
|
|
||||||
|
## Build |
||||||
|
|
||||||
|
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. |
||||||
|
|
||||||
|
## Running unit tests |
||||||
|
|
||||||
|
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). |
||||||
|
|
||||||
|
## Running end-to-end tests |
||||||
|
|
||||||
|
Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. |
||||||
|
|
||||||
|
## Further help |
||||||
|
|
||||||
|
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. |
||||||
|
@ -0,0 +1,112 @@ |
|||||||
|
{ |
||||||
|
"$schema": "./node_modules/@angular/cli/lib/config/schema.json", |
||||||
|
"version": 1, |
||||||
|
"newProjectRoot": "projects", |
||||||
|
"projects": { |
||||||
|
"EdgeHostMaintenance": { |
||||||
|
"projectType": "application", |
||||||
|
"schematics": { |
||||||
|
"@schematics/angular:component": { |
||||||
|
"style": "scss" |
||||||
|
}, |
||||||
|
"@schematics/angular:application": { |
||||||
|
"strict": true |
||||||
|
} |
||||||
|
}, |
||||||
|
"root": "", |
||||||
|
"sourceRoot": "src", |
||||||
|
"prefix": "app", |
||||||
|
"architect": { |
||||||
|
"build": { |
||||||
|
"builder": "@angular-devkit/build-angular:browser", |
||||||
|
"options": { |
||||||
|
"outputPath": "dist/edge-host-maintenance", |
||||||
|
"index": "src/index.html", |
||||||
|
"main": "src/main.ts", |
||||||
|
"polyfills": "src/polyfills.ts", |
||||||
|
"tsConfig": "tsconfig.app.json", |
||||||
|
"inlineStyleLanguage": "scss", |
||||||
|
"assets": [ |
||||||
|
"src/favicon.ico", |
||||||
|
"src/assets" |
||||||
|
], |
||||||
|
"styles": [ |
||||||
|
"src/styles.scss", |
||||||
|
"node_modules/ng-zorro-antd/ng-zorro-antd.min.css" |
||||||
|
], |
||||||
|
"scripts": [] |
||||||
|
}, |
||||||
|
"configurations": { |
||||||
|
"production": { |
||||||
|
"budgets": [ |
||||||
|
{ |
||||||
|
"type": "initial", |
||||||
|
"maximumWarning": "500kb", |
||||||
|
"maximumError": "1mb" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"type": "anyComponentStyle", |
||||||
|
"maximumWarning": "2kb", |
||||||
|
"maximumError": "4kb" |
||||||
|
} |
||||||
|
], |
||||||
|
"fileReplacements": [ |
||||||
|
{ |
||||||
|
"replace": "src/environments/environment.ts", |
||||||
|
"with": "src/environments/environment.prod.ts" |
||||||
|
} |
||||||
|
], |
||||||
|
"outputHashing": "all" |
||||||
|
}, |
||||||
|
"development": { |
||||||
|
"buildOptimizer": false, |
||||||
|
"optimization": false, |
||||||
|
"vendorChunk": true, |
||||||
|
"extractLicenses": false, |
||||||
|
"sourceMap": true, |
||||||
|
"namedChunks": true |
||||||
|
} |
||||||
|
}, |
||||||
|
"defaultConfiguration": "production" |
||||||
|
}, |
||||||
|
"serve": { |
||||||
|
"builder": "@angular-devkit/build-angular:dev-server", |
||||||
|
"configurations": { |
||||||
|
"production": { |
||||||
|
"browserTarget": "EdgeHostMaintenance:build:production" |
||||||
|
}, |
||||||
|
"development": { |
||||||
|
"browserTarget": "EdgeHostMaintenance:build:development" |
||||||
|
} |
||||||
|
}, |
||||||
|
"defaultConfiguration": "development" |
||||||
|
}, |
||||||
|
"extract-i18n": { |
||||||
|
"builder": "@angular-devkit/build-angular:extract-i18n", |
||||||
|
"options": { |
||||||
|
"browserTarget": "EdgeHostMaintenance:build" |
||||||
|
} |
||||||
|
}, |
||||||
|
"test": { |
||||||
|
"builder": "@angular-devkit/build-angular:karma", |
||||||
|
"options": { |
||||||
|
"main": "src/test.ts", |
||||||
|
"polyfills": "src/polyfills.ts", |
||||||
|
"tsConfig": "tsconfig.spec.json", |
||||||
|
"karmaConfig": "karma.conf.js", |
||||||
|
"inlineStyleLanguage": "scss", |
||||||
|
"assets": [ |
||||||
|
"src/favicon.ico", |
||||||
|
"src/assets" |
||||||
|
], |
||||||
|
"styles": [ |
||||||
|
"src/styles.scss" |
||||||
|
], |
||||||
|
"scripts": [] |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"defaultProject": "EdgeHostMaintenance" |
||||||
|
} |
@ -0,0 +1,44 @@ |
|||||||
|
// Karma configuration file, see link for more information
|
||||||
|
// https://karma-runner.github.io/1.0/config/configuration-file.html
|
||||||
|
|
||||||
|
module.exports = function (config) { |
||||||
|
config.set({ |
||||||
|
basePath: '', |
||||||
|
frameworks: ['jasmine', '@angular-devkit/build-angular'], |
||||||
|
plugins: [ |
||||||
|
require('karma-jasmine'), |
||||||
|
require('karma-chrome-launcher'), |
||||||
|
require('karma-jasmine-html-reporter'), |
||||||
|
require('karma-coverage'), |
||||||
|
require('@angular-devkit/build-angular/plugins/karma') |
||||||
|
], |
||||||
|
client: { |
||||||
|
jasmine: { |
||||||
|
// you can add configuration options for Jasmine here
|
||||||
|
// the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
|
||||||
|
// for example, you can disable the random execution with `random: false`
|
||||||
|
// or set a specific seed with `seed: 4321`
|
||||||
|
}, |
||||||
|
clearContext: false // leave Jasmine Spec Runner output visible in browser
|
||||||
|
}, |
||||||
|
jasmineHtmlReporter: { |
||||||
|
suppressAll: true // removes the duplicated traces
|
||||||
|
}, |
||||||
|
coverageReporter: { |
||||||
|
dir: require('path').join(__dirname, './coverage/edge-host-maintenance'), |
||||||
|
subdir: '.', |
||||||
|
reporters: [ |
||||||
|
{ type: 'html' }, |
||||||
|
{ type: 'text-summary' } |
||||||
|
] |
||||||
|
}, |
||||||
|
reporters: ['progress', 'kjhtml'], |
||||||
|
port: 9876, |
||||||
|
colors: true, |
||||||
|
logLevel: config.LOG_INFO, |
||||||
|
autoWatch: true, |
||||||
|
browsers: ['Chrome'], |
||||||
|
singleRun: false, |
||||||
|
restartOnFileChange: true |
||||||
|
}); |
||||||
|
}; |
@ -0,0 +1,40 @@ |
|||||||
|
{ |
||||||
|
"name": "edge-host-maintenance", |
||||||
|
"version": "0.0.0", |
||||||
|
"scripts": { |
||||||
|
"ng": "ng", |
||||||
|
"start": "ng serve", |
||||||
|
"build": "ng build", |
||||||
|
"watch": "ng build --watch --configuration development", |
||||||
|
"test": "ng test" |
||||||
|
}, |
||||||
|
"private": true, |
||||||
|
"dependencies": { |
||||||
|
"@angular/animations": "~13.1.0", |
||||||
|
"@angular/common": "~13.1.0", |
||||||
|
"@angular/compiler": "~13.1.0", |
||||||
|
"@angular/core": "~13.1.0", |
||||||
|
"@angular/forms": "~13.1.0", |
||||||
|
"@angular/platform-browser": "~13.1.0", |
||||||
|
"@angular/platform-browser-dynamic": "~13.1.0", |
||||||
|
"@angular/router": "~13.1.0", |
||||||
|
"ng-zorro-antd": "^13.0.1", |
||||||
|
"rxjs": "~7.4.0", |
||||||
|
"tslib": "^2.3.0", |
||||||
|
"zone.js": "~0.11.4" |
||||||
|
}, |
||||||
|
"devDependencies": { |
||||||
|
"@angular-devkit/build-angular": "~13.1.4", |
||||||
|
"@angular/cli": "~13.1.4", |
||||||
|
"@angular/compiler-cli": "~13.1.0", |
||||||
|
"@types/jasmine": "~3.10.0", |
||||||
|
"@types/node": "^12.11.1", |
||||||
|
"jasmine-core": "~3.10.0", |
||||||
|
"karma": "~6.3.0", |
||||||
|
"karma-chrome-launcher": "~3.1.0", |
||||||
|
"karma-coverage": "~2.1.0", |
||||||
|
"karma-jasmine": "~4.0.0", |
||||||
|
"karma-jasmine-html-reporter": "~1.7.0", |
||||||
|
"typescript": "~4.5.2" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
import { NgModule } from '@angular/core'; |
||||||
|
import { RouterModule, Routes } from '@angular/router'; |
||||||
|
import { HomeComponent } from './pages/home/home.component'; |
||||||
|
import { LoginComponent } from './pages/login/login.component'; |
||||||
|
|
||||||
|
const routes: Routes = [ |
||||||
|
{path:'', redirectTo:'/login', pathMatch:'full'}, |
||||||
|
{path:'login',component: LoginComponent,}, |
||||||
|
{ |
||||||
|
path:'home',component: HomeComponent, |
||||||
|
children:[ |
||||||
|
{path:'home',loadChildren:() => import('./pages/pages.module').then(m => m.PagesModule)}, |
||||||
|
] |
||||||
|
}, |
||||||
|
]; |
||||||
|
|
||||||
|
@NgModule({ |
||||||
|
imports: [RouterModule.forRoot(routes)], |
||||||
|
exports: [RouterModule] |
||||||
|
}) |
||||||
|
export class AppRoutingModule { } |
@ -0,0 +1,10 @@ |
|||||||
|
import { Component } from '@angular/core'; |
||||||
|
|
||||||
|
@Component({ |
||||||
|
selector: 'app-root', |
||||||
|
templateUrl: './app.component.html', |
||||||
|
styleUrls: ['./app.component.scss'] |
||||||
|
}) |
||||||
|
export class AppComponent { |
||||||
|
|
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
import { NgModule } from '@angular/core'; |
||||||
|
import { BrowserModule } from '@angular/platform-browser'; |
||||||
|
import { AppRoutingModule } from './app-routing.module'; |
||||||
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; |
||||||
|
import { FormsModule } from '@angular/forms'; |
||||||
|
import { HttpClientModule } from '@angular/common/http'; |
||||||
|
import { NzNotificationModule } from 'ng-zorro-antd/notification'; |
||||||
|
import { NzMessageModule } from 'ng-zorro-antd/message'; |
||||||
|
|
||||||
|
import { AppComponent } from './app.component'; |
||||||
|
|
||||||
|
@NgModule({ |
||||||
|
declarations: [ |
||||||
|
AppComponent |
||||||
|
], |
||||||
|
imports: [ |
||||||
|
BrowserModule, |
||||||
|
AppRoutingModule, |
||||||
|
BrowserAnimationsModule, |
||||||
|
FormsModule, |
||||||
|
HttpClientModule, |
||||||
|
NzNotificationModule, |
||||||
|
NzMessageModule |
||||||
|
], |
||||||
|
providers: [], |
||||||
|
bootstrap: [AppComponent] |
||||||
|
}) |
||||||
|
export class AppModule { } |
@ -0,0 +1,50 @@ |
|||||||
|
<div class="content"> |
||||||
|
<div class="leftMenu"> |
||||||
|
<ul nz-menu nzMode="inline"> |
||||||
|
<li nz-submenu nzTitle="Navigation One" nzOpen> |
||||||
|
<ul> |
||||||
|
<li nz-menu-group nzTitle="Item 1"> |
||||||
|
<ul> |
||||||
|
<li nz-menu-item nzSelected>Option 1</li> |
||||||
|
<li nz-menu-item>Option 2</li> |
||||||
|
</ul> |
||||||
|
</li> |
||||||
|
<li nz-menu-group nzTitle="Item 2"> |
||||||
|
<ul> |
||||||
|
<li nz-menu-item>Option 3</li> |
||||||
|
<li nz-menu-item>Option 4</li> |
||||||
|
</ul> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
</li> |
||||||
|
<li nz-submenu nzTitle="Navigation Two"> |
||||||
|
<ul> |
||||||
|
<li nz-menu-item>Option 5</li> |
||||||
|
<li nz-menu-item>Option 6</li> |
||||||
|
<li nz-submenu nzTitle="Submenu"> |
||||||
|
<ul> |
||||||
|
<li nz-menu-item>Option 7</li> |
||||||
|
<li nz-menu-item>Option 8</li> |
||||||
|
<li nz-submenu nzTitle="Submenu"> |
||||||
|
<ul> |
||||||
|
<li nz-menu-item>Option 9</li> |
||||||
|
<li nz-menu-item>Option 10</li> |
||||||
|
</ul> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
</li> |
||||||
|
<li nz-submenu nzTitle="Navigation Three"> |
||||||
|
<ul> |
||||||
|
<li nz-menu-item>Option 11</li> |
||||||
|
<li nz-menu-item>Option 12</li> |
||||||
|
<li nz-menu-item>Option 13</li> |
||||||
|
</ul> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
<div class="rightContent"> |
||||||
|
<router-outlet></router-outlet> |
||||||
|
</div> |
||||||
|
</div> |
@ -0,0 +1,8 @@ |
|||||||
|
.content{ |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
overflow: hidden; |
||||||
|
display: flex; |
||||||
|
.leftMenu{ width: 300px; height: 100%; } |
||||||
|
.rightContent{ flex: 1; overflow: hidden; } |
||||||
|
} |
@ -0,0 +1,15 @@ |
|||||||
|
import { Component, OnInit } from '@angular/core'; |
||||||
|
|
||||||
|
@Component({ |
||||||
|
selector: 'app-home', |
||||||
|
templateUrl: './home.component.html', |
||||||
|
styleUrls: ['./home.component.scss'] |
||||||
|
}) |
||||||
|
export class HomeComponent implements OnInit { |
||||||
|
|
||||||
|
constructor() { } |
||||||
|
|
||||||
|
ngOnInit(): void { |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
<div class="login" id="login"> |
||||||
|
<div class="card"> |
||||||
|
<h1 class="cardheader">欢迎登录</h1> |
||||||
|
<h1 class="cardheader">加油站智能安全管理系统</h1> |
||||||
|
|
||||||
|
<!-- <form nz-form [formGroup]="validateForm" class="login-form" (ngSubmit)="submitForm()"> |
||||||
|
<nz-form-item> |
||||||
|
<nz-form-control nzErrorTip="请输入账号!"> |
||||||
|
<nz-input-group nzPrefixIcon="user"> |
||||||
|
<input required nz-input type="text" formControlName="userName" placeholder="请输入账号" nzSize="large" /> |
||||||
|
</nz-input-group> |
||||||
|
</nz-form-control> |
||||||
|
</nz-form-item> |
||||||
|
<nz-form-item> |
||||||
|
<nz-form-control nzErrorTip="请输入密码!"> |
||||||
|
<nz-input-group nzPrefixIcon="lock"> |
||||||
|
<input required nz-input type="password" formControlName="password" placeholder="请输入密码" |
||||||
|
[nzSize]="'small'" /> |
||||||
|
</nz-input-group> |
||||||
|
</nz-form-control> |
||||||
|
</nz-form-item> |
||||||
|
|
||||||
|
<button nz-button class="login-form-button login-form-margin" [nzType]="'primary'">登录</button> |
||||||
|
</form> --> |
||||||
|
<p class="company">中化石油销售有限公司 北京安信科创软件有限公司 版权所有</p> |
||||||
|
</div> |
||||||
|
|
||||||
|
|
||||||
|
<div class="name"> |
||||||
|
</div> |
||||||
|
|
||||||
|
</div> |
||||||
|
|
@ -0,0 +1,92 @@ |
|||||||
|
.login { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
background-size: 100% 100%; |
||||||
|
position: relative; |
||||||
|
} |
||||||
|
|
||||||
|
.card { |
||||||
|
position: absolute; |
||||||
|
top: 50%; |
||||||
|
left: 50%; |
||||||
|
transform: translate(-50%,-50%); |
||||||
|
background-color: rgba(0, 13, 33, 0.24); |
||||||
|
border-radius: 16px; |
||||||
|
width: 468px; |
||||||
|
height: 548px; |
||||||
|
box-sizing: border-box; |
||||||
|
padding: 79px 45px 42px 45px; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.cardheader { |
||||||
|
font-size: 22px; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
} |
||||||
|
.cardheader:nth-child(2) { |
||||||
|
margin-bottom: 40px; |
||||||
|
} |
||||||
|
|
||||||
|
label { |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
|
||||||
|
.hint { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
margin-bottom: 6px; |
||||||
|
align-items: center; |
||||||
|
.forget { |
||||||
|
cursor: pointer; |
||||||
|
color: #2399FF; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.autologin { |
||||||
|
margin-bottom: 40px; |
||||||
|
} |
||||||
|
|
||||||
|
button { |
||||||
|
width: 100%; |
||||||
|
height: 42px; |
||||||
|
font-size: 16px; |
||||||
|
border-radius: 4px; |
||||||
|
} |
||||||
|
|
||||||
|
p { |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
|
||||||
|
.role { |
||||||
|
color: #2399FF; |
||||||
|
margin-top: 38px; |
||||||
|
font-size: 15px; |
||||||
|
} |
||||||
|
|
||||||
|
.company { |
||||||
|
color: #666262; |
||||||
|
margin-top: 25px; |
||||||
|
font-size: 14px; |
||||||
|
} |
||||||
|
|
||||||
|
.name { |
||||||
|
position: absolute; |
||||||
|
left:40px; |
||||||
|
top:40px; |
||||||
|
|
||||||
|
img { |
||||||
|
// margin-bottom: 32px; |
||||||
|
width: 254px; |
||||||
|
height: 56px; |
||||||
|
} |
||||||
|
|
||||||
|
h1 { |
||||||
|
font-size: 63px; |
||||||
|
color: #feffff; |
||||||
|
font-weight: 600; |
||||||
|
|
||||||
|
text-shadow: 0px 2px 8px #2399FF; |
||||||
|
letter-spacing: 5px; |
||||||
|
margin-bottom: 0px; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,26 @@ |
|||||||
|
import { Component, OnInit } from '@angular/core'; |
||||||
|
import { FormBuilder, FormGroup, Validators } from '@angular/forms'; |
||||||
|
|
||||||
|
@Component({ |
||||||
|
selector: 'app-login', |
||||||
|
templateUrl: './login.component.html', |
||||||
|
styleUrls: ['./login.component.scss'] |
||||||
|
}) |
||||||
|
export class LoginComponent implements OnInit { |
||||||
|
|
||||||
|
constructor() { } |
||||||
|
|
||||||
|
ngOnInit(): void { |
||||||
|
// this.validateForm = this.fb.group({
|
||||||
|
// userName: [null, [Validators.required]],
|
||||||
|
// password: [null, [Validators.required]],
|
||||||
|
// remember: [null],
|
||||||
|
// autologin: [null],
|
||||||
|
// });
|
||||||
|
} |
||||||
|
|
||||||
|
validateForm!: FormGroup; |
||||||
|
submitForm() { |
||||||
|
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,84 @@ |
|||||||
|
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; |
||||||
|
import { CommonModule } from '@angular/common'; |
||||||
|
import { A11yModule } from '@angular/cdk/a11y'; |
||||||
|
import { DragDropModule } from '@angular/cdk/drag-drop'; |
||||||
|
import { PortalModule } from '@angular/cdk/portal'; |
||||||
|
import { ScrollingModule } from '@angular/cdk/scrolling'; |
||||||
|
import { CdkStepperModule } from '@angular/cdk/stepper'; |
||||||
|
import { CdkTableModule } from '@angular/cdk/table'; |
||||||
|
import { CdkTreeModule } from '@angular/cdk/tree'; |
||||||
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms'; |
||||||
|
import { RouterModule } from '@angular/router'; |
||||||
|
import { NzMenuModule } from 'ng-zorro-antd/menu'; |
||||||
|
import { NzFormModule } from 'ng-zorro-antd/form'; |
||||||
|
import { NzButtonModule } from 'ng-zorro-antd/button'; |
||||||
|
import { NzInputModule } from 'ng-zorro-antd/input'; |
||||||
|
import { NzSelectModule } from 'ng-zorro-antd/select'; |
||||||
|
import { NzDatePickerModule } from 'ng-zorro-antd/date-picker'; |
||||||
|
import { NzIconModule } from 'ng-zorro-antd/icon'; |
||||||
|
import { NzGridModule } from 'ng-zorro-antd/grid'; |
||||||
|
import { NzModalModule } from 'ng-zorro-antd/modal'; |
||||||
|
import { NzPaginationModule } from 'ng-zorro-antd/pagination'; |
||||||
|
import { NzDropDownModule } from 'ng-zorro-antd/dropdown'; |
||||||
|
import { NzMessageModule } from 'ng-zorro-antd/message'; |
||||||
|
import { NzSpinModule } from 'ng-zorro-antd/spin'; |
||||||
|
import { NzTreeModule } from 'ng-zorro-antd/tree'; |
||||||
|
import { NzCollapseModule } from 'ng-zorro-antd/collapse'; |
||||||
|
import { NzStepsModule } from 'ng-zorro-antd/steps'; |
||||||
|
import { NzTableModule } from 'ng-zorro-antd/table'; |
||||||
|
import { NzCheckboxModule } from 'ng-zorro-antd/checkbox'; |
||||||
|
import { NzTimePickerModule } from 'ng-zorro-antd/time-picker'; |
||||||
|
import { NzProgressModule } from 'ng-zorro-antd/progress'; |
||||||
|
import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm'; |
||||||
|
import { NzBadgeModule } from 'ng-zorro-antd/badge'; |
||||||
|
import { NzTreeSelectModule } from 'ng-zorro-antd/tree-select'; |
||||||
|
import { NzNotificationModule } from 'ng-zorro-antd/notification'; |
||||||
|
|
||||||
|
import { LoginComponent } from './login/login.component'; |
||||||
|
import { HomeComponent } from './home/home.component'; |
||||||
|
|
||||||
|
@NgModule({ |
||||||
|
declarations: [ |
||||||
|
LoginComponent, |
||||||
|
HomeComponent |
||||||
|
], |
||||||
|
imports: [ |
||||||
|
CommonModule, |
||||||
|
A11yModule, |
||||||
|
DragDropModule, |
||||||
|
PortalModule, |
||||||
|
ScrollingModule, |
||||||
|
CdkStepperModule, |
||||||
|
CdkTableModule, |
||||||
|
CdkTreeModule, |
||||||
|
FormsModule, |
||||||
|
ReactiveFormsModule, |
||||||
|
RouterModule, |
||||||
|
NzMenuModule, |
||||||
|
NzFormModule, |
||||||
|
NzButtonModule, |
||||||
|
NzInputModule, |
||||||
|
NzSelectModule, |
||||||
|
NzDatePickerModule, |
||||||
|
NzIconModule, |
||||||
|
NzGridModule, |
||||||
|
NzModalModule, |
||||||
|
NzPaginationModule, |
||||||
|
NzDropDownModule, |
||||||
|
NzMessageModule, |
||||||
|
NzSpinModule, |
||||||
|
NzTreeModule, |
||||||
|
NzCollapseModule, |
||||||
|
NzStepsModule, |
||||||
|
NzTableModule, |
||||||
|
NzCheckboxModule, |
||||||
|
NzTimePickerModule, |
||||||
|
NzProgressModule, |
||||||
|
NzPopconfirmModule, |
||||||
|
NzBadgeModule, |
||||||
|
NzTreeSelectModule, |
||||||
|
NzNotificationModule |
||||||
|
], |
||||||
|
schemas: [CUSTOM_ELEMENTS_SCHEMA] |
||||||
|
}) |
||||||
|
export class PagesModule { } |
@ -0,0 +1,16 @@ |
|||||||
|
import { NgModule } from '@angular/core'; |
||||||
|
import { Routes, RouterModule } from '@angular/router'; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const routes: Routes = [ |
||||||
|
|
||||||
|
]; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@NgModule({ |
||||||
|
imports: [RouterModule.forChild(routes)], |
||||||
|
exports: [RouterModule] |
||||||
|
}) |
||||||
|
export class pagesRoutingModule { } |
@ -0,0 +1,3 @@ |
|||||||
|
export const environment = { |
||||||
|
production: true |
||||||
|
}; |
@ -0,0 +1,16 @@ |
|||||||
|
// This file can be replaced during build by using the `fileReplacements` array.
|
||||||
|
// `ng build` replaces `environment.ts` with `environment.prod.ts`.
|
||||||
|
// The list of file replacements can be found in `angular.json`.
|
||||||
|
|
||||||
|
export const environment = { |
||||||
|
production: false |
||||||
|
}; |
||||||
|
|
||||||
|
/* |
||||||
|
* For easier debugging in development mode, you can import the following file |
||||||
|
* to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. |
||||||
|
* |
||||||
|
* This import should be commented out in production mode because it will have a negative impact |
||||||
|
* on performance if an error is thrown. |
||||||
|
*/ |
||||||
|
// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.
|
After Width: | Height: | Size: 948 B |
@ -0,0 +1,13 @@ |
|||||||
|
<!doctype html> |
||||||
|
<html lang="en"> |
||||||
|
<head> |
||||||
|
<meta charset="utf-8"> |
||||||
|
<title>EdgeHostMaintenance</title> |
||||||
|
<base href="/"> |
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"> |
||||||
|
<link rel="icon" type="image/x-icon" href="favicon.ico"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<app-root></app-root> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,12 @@ |
|||||||
|
import { enableProdMode } from '@angular/core'; |
||||||
|
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; |
||||||
|
|
||||||
|
import { AppModule } from './app/app.module'; |
||||||
|
import { environment } from './environments/environment'; |
||||||
|
|
||||||
|
if (environment.production) { |
||||||
|
enableProdMode(); |
||||||
|
} |
||||||
|
|
||||||
|
platformBrowserDynamic().bootstrapModule(AppModule) |
||||||
|
.catch(err => console.error(err)); |
@ -0,0 +1,53 @@ |
|||||||
|
/** |
||||||
|
* This file includes polyfills needed by Angular and is loaded before the app. |
||||||
|
* You can add your own extra polyfills to this file. |
||||||
|
* |
||||||
|
* This file is divided into 2 sections: |
||||||
|
* 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. |
||||||
|
* 2. Application imports. Files imported after ZoneJS that should be loaded before your main |
||||||
|
* file. |
||||||
|
* |
||||||
|
* The current setup is for so-called "evergreen" browsers; the last versions of browsers that |
||||||
|
* automatically update themselves. This includes recent versions of Safari, Chrome (including |
||||||
|
* Opera), Edge on the desktop, and iOS and Chrome on mobile. |
||||||
|
* |
||||||
|
* Learn more in https://angular.io/guide/browser-support
|
||||||
|
*/ |
||||||
|
|
||||||
|
/*************************************************************************************************** |
||||||
|
* BROWSER POLYFILLS |
||||||
|
*/ |
||||||
|
|
||||||
|
/** |
||||||
|
* By default, zone.js will patch all possible macroTask and DomEvents |
||||||
|
* user can disable parts of macroTask/DomEvents patch by setting following flags |
||||||
|
* because those flags need to be set before `zone.js` being loaded, and webpack |
||||||
|
* will put import in the top of bundle, so user need to create a separate file |
||||||
|
* in this directory (for example: zone-flags.ts), and put the following flags |
||||||
|
* into that file, and then add the following code before importing zone.js. |
||||||
|
* import './zone-flags'; |
||||||
|
* |
||||||
|
* The flags allowed in zone-flags.ts are listed here. |
||||||
|
* |
||||||
|
* The following flags will work for all browsers. |
||||||
|
* |
||||||
|
* (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
|
||||||
|
* (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
|
||||||
|
* (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
|
||||||
|
* |
||||||
|
* in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js |
||||||
|
* with the following flag, it will bypass `zone.js` patch for IE/Edge |
||||||
|
* |
||||||
|
* (window as any).__Zone_enable_cross_context_check = true; |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
/*************************************************************************************************** |
||||||
|
* Zone JS is required by default for Angular itself. |
||||||
|
*/ |
||||||
|
import 'zone.js'; // Included with Angular CLI.
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************************************** |
||||||
|
* APPLICATION IMPORTS |
||||||
|
*/ |
@ -0,0 +1,21 @@ |
|||||||
|
@import "~ng-zorro-antd/ng-zorro-antd.min.css"; |
||||||
|
|
||||||
|
@import "~ng-zorro-antd/style/index.min.css"; /* 引入基本样式 */ |
||||||
|
@import "~ng-zorro-antd/button/style/index.min.css"; /* 引入组件样式 */ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* css初始化 */ |
||||||
|
html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; } |
||||||
|
body { font-family: Roboto, "Helvetica Neue", sans-serif; } |
||||||
|
ul,ol,dl,li,dt,dd,p,form,input,h1,h2,h3,h4,h5,h6,section,article,aside,header,footer,nav,figure,time,mark,main,canvas { margin: 0; padding: 0; } |
||||||
|
b,strong,i,em,h1,h2,h3,h4,h5,h6 { font-weight: 500; font-style: normal; } |
||||||
|
img { border: none; outline: none; } |
||||||
|
a { text-decoration: none; color:#000; } |
||||||
|
ul,ol,li { list-style: none; overflow-x: hidden; } |
||||||
|
textarea { resize: none; } |
||||||
|
/* 滚动条样式 */ |
||||||
|
::-webkit-scrollbar { width: 5px; background-color: white; } |
||||||
|
::-webkit-scrollbar-thumb { background-color: #999; } |
||||||
|
|
||||||
|
app-root { height: 100%; } |
@ -0,0 +1,26 @@ |
|||||||
|
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
||||||
|
|
||||||
|
import 'zone.js/testing'; |
||||||
|
import { getTestBed } from '@angular/core/testing'; |
||||||
|
import { |
||||||
|
BrowserDynamicTestingModule, |
||||||
|
platformBrowserDynamicTesting |
||||||
|
} from '@angular/platform-browser-dynamic/testing'; |
||||||
|
|
||||||
|
declare const require: { |
||||||
|
context(path: string, deep?: boolean, filter?: RegExp): { |
||||||
|
<T>(id: string): T; |
||||||
|
keys(): string[]; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
// First, initialize the Angular testing environment.
|
||||||
|
getTestBed().initTestEnvironment( |
||||||
|
BrowserDynamicTestingModule, |
||||||
|
platformBrowserDynamicTesting(), |
||||||
|
); |
||||||
|
|
||||||
|
// Then we find all the tests.
|
||||||
|
const context = require.context('./', true, /\.spec\.ts$/); |
||||||
|
// And load the modules.
|
||||||
|
context.keys().map(context); |
@ -0,0 +1,15 @@ |
|||||||
|
/* To learn more about this file see: https://angular.io/config/tsconfig. */ |
||||||
|
{ |
||||||
|
"extends": "./tsconfig.json", |
||||||
|
"compilerOptions": { |
||||||
|
"outDir": "./out-tsc/app", |
||||||
|
"types": [] |
||||||
|
}, |
||||||
|
"files": [ |
||||||
|
"src/main.ts", |
||||||
|
"src/polyfills.ts" |
||||||
|
], |
||||||
|
"include": [ |
||||||
|
"src/**/*.d.ts" |
||||||
|
] |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
/* To learn more about this file see: https://angular.io/config/tsconfig. */ |
||||||
|
{ |
||||||
|
"compileOnSave": false, |
||||||
|
"compilerOptions": { |
||||||
|
"baseUrl": "./", |
||||||
|
"outDir": "./dist/out-tsc", |
||||||
|
"forceConsistentCasingInFileNames": true, |
||||||
|
"strict": true, |
||||||
|
"noImplicitOverride": true, |
||||||
|
"noPropertyAccessFromIndexSignature": true, |
||||||
|
"noImplicitReturns": true, |
||||||
|
"noFallthroughCasesInSwitch": true, |
||||||
|
"sourceMap": true, |
||||||
|
"declaration": false, |
||||||
|
"downlevelIteration": true, |
||||||
|
"experimentalDecorators": true, |
||||||
|
"moduleResolution": "node", |
||||||
|
"importHelpers": true, |
||||||
|
"target": "es2017", |
||||||
|
"module": "es2020", |
||||||
|
"lib": [ |
||||||
|
"es2020", |
||||||
|
"dom" |
||||||
|
] |
||||||
|
}, |
||||||
|
"angularCompilerOptions": { |
||||||
|
"enableI18nLegacyMessageIdFormat": false, |
||||||
|
"strictInjectionParameters": true, |
||||||
|
"strictInputAccessModifiers": true, |
||||||
|
"strictTemplates": true |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
/* To learn more about this file see: https://angular.io/config/tsconfig. */ |
||||||
|
{ |
||||||
|
"extends": "./tsconfig.json", |
||||||
|
"compilerOptions": { |
||||||
|
"outDir": "./out-tsc/spec", |
||||||
|
"types": [ |
||||||
|
"jasmine" |
||||||
|
] |
||||||
|
}, |
||||||
|
"files": [ |
||||||
|
"src/test.ts", |
||||||
|
"src/polyfills.ts" |
||||||
|
], |
||||||
|
"include": [ |
||||||
|
"src/**/*.spec.ts", |
||||||
|
"src/**/*.d.ts" |
||||||
|
] |
||||||
|
} |
Loading…
Reference in new issue