47 changed files with 723 additions and 429 deletions
@ -1,27 +0,0 @@ |
|||||||
<mat-sidenav-container class="example-container" autosize> |
|
||||||
<mat-sidenav #drawer class="example-sidenav" mode="side" opened="true" color="primary" style="overflow-x: hidden;"> |
|
||||||
<div class="biglogobox"> |
|
||||||
<img src="../../assets/images/logo2.png" alt=""> |
|
||||||
</div> |
|
||||||
<div class="navbox"> |
|
||||||
<ul> |
|
||||||
<!-- basicinfo --> |
|
||||||
<!-- <li [routerLink]="['/datacollection/basicinfo']" routerLinkActive="router-link-active">基本信息</li> --> |
|
||||||
<li>基本信息</li> |
|
||||||
</ul> |
|
||||||
</div> |
|
||||||
</mat-sidenav> |
|
||||||
|
|
||||||
<button type="button" mat-button (click)="drawer.toggle()" class="shownav"> |
|
||||||
<mat-icon>menu</mat-icon> |
|
||||||
</button> |
|
||||||
|
|
||||||
<div class="example-sidenav-content"> |
|
||||||
<div style="height: 64px;"> |
|
||||||
<app-tabbar></app-tabbar> |
|
||||||
</div> |
|
||||||
<div style="flex: 1; overflow: hidden;"> |
|
||||||
<router-outlet></router-outlet> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</mat-sidenav-container> |
|
@ -1,152 +0,0 @@ |
|||||||
|
|
||||||
.example-container { |
|
||||||
width: 100%; |
|
||||||
height:100%; |
|
||||||
border: 1px solid rgba(0, 0, 0, 0.5); |
|
||||||
overflow: hidden; |
|
||||||
} |
|
||||||
mat-accordion{ |
|
||||||
height: 100%; |
|
||||||
} |
|
||||||
mat-sidenav{ |
|
||||||
box-shadow: 2px 0px 5px #888888; |
|
||||||
color: white; |
|
||||||
background-color: #3c4252; |
|
||||||
width: 240px; |
|
||||||
overflow-x: hidden; |
|
||||||
p{ |
|
||||||
height: 48px; |
|
||||||
cursor: pointer; |
|
||||||
font-size: 16px; |
|
||||||
line-height: 48px; |
|
||||||
} |
|
||||||
ul{ |
|
||||||
width: 100%; |
|
||||||
|
|
||||||
li{ |
|
||||||
list-style: none; |
|
||||||
height: 48px; |
|
||||||
line-height: 48px; |
|
||||||
cursor: pointer; |
|
||||||
background: white; |
|
||||||
padding-left: 55px; |
|
||||||
background-color: #3c4252; |
|
||||||
color: white; |
|
||||||
border: none; |
|
||||||
outline: none; |
|
||||||
} |
|
||||||
.superli{ |
|
||||||
padding-left: 66px; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
.logobox{ |
|
||||||
border-radius: 50%; |
|
||||||
width: 64px; |
|
||||||
height: 64px; |
|
||||||
|
|
||||||
background:url("https://img5.tianyancha.com/logo/lll/cce72488294fb8f4bc670a5bb7f0cc4d.png@!f_200x200") no-repeat; |
|
||||||
background-size: 100%; |
|
||||||
margin: 0px auto; |
|
||||||
|
|
||||||
img{ |
|
||||||
width: 100%; |
|
||||||
height: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
.shownav{ |
|
||||||
position: absolute; |
|
||||||
top: 13px; |
|
||||||
z-index: 200; |
|
||||||
|
|
||||||
} |
|
||||||
.mat-accordion .mat-expansion-panel:first-of-type { |
|
||||||
border-top-right-radius:0px; |
|
||||||
border-top-left-radius:0px; |
|
||||||
} |
|
||||||
.mat-accordion .mat-expansion-panel:last-of-type { |
|
||||||
border-bottom-right-radius: 0px; |
|
||||||
border-bottom-left-radius: 0px; |
|
||||||
} |
|
||||||
.mat-expansion-panel{ |
|
||||||
border-radius: 0px; |
|
||||||
} |
|
||||||
.mat-expansion-panel-spacing { |
|
||||||
margin: 0px; |
|
||||||
} |
|
||||||
.superdiv{ |
|
||||||
padding-left: 31px; |
|
||||||
} |
|
||||||
mat-icon{ |
|
||||||
color: white; |
|
||||||
} |
|
||||||
.navbox{ |
|
||||||
position: absolute; |
|
||||||
left: 0px; |
|
||||||
top: 153px; |
|
||||||
right: -18px; |
|
||||||
bottom: 0px; |
|
||||||
overflow-y: scroll; |
|
||||||
} |
|
||||||
mat-sidenav-container.myapp-dark-theme{ |
|
||||||
background-color: #fafafa; |
|
||||||
color: black; |
|
||||||
mat-panel-title{ |
|
||||||
color: black; |
|
||||||
} |
|
||||||
ul li{ |
|
||||||
background-color: white; |
|
||||||
color: black; |
|
||||||
} |
|
||||||
.biglogobox{ |
|
||||||
background-color: #d50000; |
|
||||||
} |
|
||||||
color: black; |
|
||||||
} |
|
||||||
.biglogobox{ |
|
||||||
width: 250px; |
|
||||||
background-color: #42a5f5; |
|
||||||
padding-top: 15px; |
|
||||||
display: block; |
|
||||||
text-align: center; |
|
||||||
line-height:40px; |
|
||||||
position: relative; |
|
||||||
color: #FFF; |
|
||||||
font-size: 2em; |
|
||||||
margin: 0 auto; |
|
||||||
margin-bottom: 100px; |
|
||||||
img{ |
|
||||||
margin-right: 11px; |
|
||||||
} |
|
||||||
} |
|
||||||
mat-panel-title mat-icon{ |
|
||||||
color: #afb2bb; |
|
||||||
font-size: 16px; |
|
||||||
line-height: 24px; |
|
||||||
margin-right: 6px; |
|
||||||
} |
|
||||||
mat-expansion-panel{ |
|
||||||
background-color: #3c4252; |
|
||||||
mat-panel-title{ |
|
||||||
color: white; |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.mat-expansion-indicator::after { |
|
||||||
color: white; |
|
||||||
} |
|
||||||
|
|
||||||
.example-container .navbox .router-link-active { |
|
||||||
background-color: rgba(225,225,225,.5); |
|
||||||
border:0 |
|
||||||
} |
|
||||||
.example-sidenav-content{ |
|
||||||
height: 100%; |
|
||||||
overflow: hidden; |
|
||||||
display: flex; |
|
||||||
flex-direction: column; |
|
||||||
} |
|
@ -1,25 +0,0 @@ |
|||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing'; |
|
||||||
|
|
||||||
import { NavigationComponent } from './navigation.component'; |
|
||||||
|
|
||||||
describe('NavigationComponent', () => { |
|
||||||
let component: NavigationComponent; |
|
||||||
let fixture: ComponentFixture<NavigationComponent>; |
|
||||||
|
|
||||||
beforeEach(async(() => { |
|
||||||
TestBed.configureTestingModule({ |
|
||||||
declarations: [ NavigationComponent ] |
|
||||||
}) |
|
||||||
.compileComponents(); |
|
||||||
})); |
|
||||||
|
|
||||||
beforeEach(() => { |
|
||||||
fixture = TestBed.createComponent(NavigationComponent); |
|
||||||
component = fixture.componentInstance; |
|
||||||
fixture.detectChanges(); |
|
||||||
}); |
|
||||||
|
|
||||||
it('should create', () => { |
|
||||||
expect(component).toBeTruthy(); |
|
||||||
}); |
|
||||||
}); |
|
@ -1,107 +0,0 @@ |
|||||||
import { NgModule } from '@angular/core'; |
|
||||||
import { CommonModule } from '@angular/common'; |
|
||||||
import { NavigationComponent } from './navigation.component'; |
|
||||||
import { MatIconModule } from '@angular/material/icon'; |
|
||||||
import { MatSidenavModule } from '@angular/material/sidenav'; |
|
||||||
import { RouterModule } from '@angular/router'; |
|
||||||
import { FormsModule } from '@angular/forms'; |
|
||||||
import { UiModule } from '../ui/ui.module'; |
|
||||||
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 {MatAutocompleteModule} from '@angular/material/autocomplete'; |
|
||||||
import {MatBadgeModule} from '@angular/material/badge'; |
|
||||||
import {MatBottomSheetModule} from '@angular/material/bottom-sheet'; |
|
||||||
import {MatButtonModule} from '@angular/material/button'; |
|
||||||
import {MatButtonToggleModule} from '@angular/material/button-toggle'; |
|
||||||
import {MatCardModule} from '@angular/material/card'; |
|
||||||
import {MatCheckboxModule} from '@angular/material/checkbox'; |
|
||||||
import {MatChipsModule} from '@angular/material/chips'; |
|
||||||
import {MatStepperModule} from '@angular/material/stepper'; |
|
||||||
import {MatDatepickerModule} from '@angular/material/datepicker'; |
|
||||||
import {MatDialogModule} from '@angular/material/dialog'; |
|
||||||
import {MatDividerModule} from '@angular/material/divider'; |
|
||||||
import {MatExpansionModule} from '@angular/material/expansion'; |
|
||||||
import {MatGridListModule} from '@angular/material/grid-list'; |
|
||||||
import {MatInputModule} from '@angular/material/input'; |
|
||||||
import {MatListModule} from '@angular/material/list'; |
|
||||||
import {MatMenuModule} from '@angular/material/menu'; |
|
||||||
import {MatNativeDateModule, MatRippleModule} from '@angular/material/core'; |
|
||||||
import {MatPaginatorModule} from '@angular/material/paginator'; |
|
||||||
import {MatProgressBarModule} from '@angular/material/progress-bar'; |
|
||||||
import {MatProgressSpinnerModule} from '@angular/material/progress-spinner'; |
|
||||||
import {MatRadioModule} from '@angular/material/radio'; |
|
||||||
import {MatSelectModule} from '@angular/material/select'; |
|
||||||
import {MatSliderModule} from '@angular/material/slider'; |
|
||||||
import {MatSlideToggleModule} from '@angular/material/slide-toggle'; |
|
||||||
import {MatSnackBarModule} from '@angular/material/snack-bar'; |
|
||||||
import {MatSortModule} from '@angular/material/sort'; |
|
||||||
import {MatTableModule} from '@angular/material/table'; |
|
||||||
import {MatTabsModule} from '@angular/material/tabs'; |
|
||||||
import {MatToolbarModule} from '@angular/material/toolbar'; |
|
||||||
import {MatTooltipModule} from '@angular/material/tooltip'; |
|
||||||
import {MatTreeModule} from '@angular/material/tree'; |
|
||||||
|
|
||||||
@NgModule({ |
|
||||||
declarations: [ |
|
||||||
NavigationComponent |
|
||||||
], |
|
||||||
imports: [ |
|
||||||
CommonModule, |
|
||||||
MatSidenavModule, |
|
||||||
RouterModule, |
|
||||||
MatIconModule, |
|
||||||
FormsModule, |
|
||||||
UiModule, |
|
||||||
A11yModule, |
|
||||||
CdkStepperModule, |
|
||||||
CdkTableModule, |
|
||||||
CdkTreeModule, |
|
||||||
DragDropModule, |
|
||||||
MatAutocompleteModule, |
|
||||||
MatBadgeModule, |
|
||||||
MatBottomSheetModule, |
|
||||||
MatButtonModule, |
|
||||||
MatButtonToggleModule, |
|
||||||
MatCardModule, |
|
||||||
MatCheckboxModule, |
|
||||||
MatChipsModule, |
|
||||||
MatStepperModule, |
|
||||||
MatDatepickerModule, |
|
||||||
MatDialogModule, |
|
||||||
MatDividerModule, |
|
||||||
MatExpansionModule, |
|
||||||
MatGridListModule, |
|
||||||
MatIconModule, |
|
||||||
MatInputModule, |
|
||||||
MatListModule, |
|
||||||
MatMenuModule, |
|
||||||
MatNativeDateModule, |
|
||||||
MatPaginatorModule, |
|
||||||
MatProgressBarModule, |
|
||||||
MatProgressSpinnerModule, |
|
||||||
MatRadioModule, |
|
||||||
MatRippleModule, |
|
||||||
MatSelectModule, |
|
||||||
MatSidenavModule, |
|
||||||
MatSliderModule, |
|
||||||
MatSlideToggleModule, |
|
||||||
MatSnackBarModule, |
|
||||||
MatSortModule, |
|
||||||
MatTableModule, |
|
||||||
MatTabsModule, |
|
||||||
MatToolbarModule, |
|
||||||
MatTooltipModule, |
|
||||||
MatTreeModule, |
|
||||||
PortalModule, |
|
||||||
ScrollingModule, |
|
||||||
], |
|
||||||
exports: [ |
|
||||||
NavigationComponent |
|
||||||
] |
|
||||||
}) |
|
||||||
export class NavigationModule { } |
|
@ -0,0 +1,159 @@ |
|||||||
|
<div class="recordsbox"> |
||||||
|
<div class="search"> |
||||||
|
<form nz-form [formGroup]="validateForm" class="login-form" (ngSubmit)="submitForm()"> |
||||||
|
<nz-form-item class="searchParams"> |
||||||
|
<nz-form-control> |
||||||
|
<nz-select id="level" formControlName="level" nzPlaceHolder="请选择级别"> |
||||||
|
<nz-option nzValue="1" nzLabel="一级"></nz-option> |
||||||
|
<nz-option nzValue="2" nzLabel="二级"></nz-option> |
||||||
|
<nz-option nzValue="3" nzLabel="三级"></nz-option> |
||||||
|
</nz-select> |
||||||
|
</nz-form-control> |
||||||
|
</nz-form-item> |
||||||
|
|
||||||
|
<nz-form-item class="searchParams"> |
||||||
|
<nz-form-control> |
||||||
|
<nz-select id="type" formControlName="type" nzPlaceHolder="请选择事件类型"> |
||||||
|
<nz-option nzValue="1" nzLabel="一级"></nz-option> |
||||||
|
<nz-option nzValue="2" nzLabel="二级"></nz-option> |
||||||
|
<nz-option nzValue="3" nzLabel="三级"></nz-option> |
||||||
|
</nz-select> |
||||||
|
</nz-form-control> |
||||||
|
</nz-form-item> |
||||||
|
|
||||||
|
<nz-form-item class="searchParams"> |
||||||
|
<nz-form-control> |
||||||
|
<nz-select id="site" formControlName="site" nzPlaceHolder="请选择地点"> |
||||||
|
<nz-option nzValue="1" nzLabel="一级"></nz-option> |
||||||
|
<nz-option nzValue="2" nzLabel="二级"></nz-option> |
||||||
|
<nz-option nzValue="3" nzLabel="三级"></nz-option> |
||||||
|
</nz-select> |
||||||
|
</nz-form-control> |
||||||
|
</nz-form-item> |
||||||
|
|
||||||
|
<nz-form-item class="searchParams"> |
||||||
|
<nz-form-control> |
||||||
|
<nz-range-picker formControlName="datePicker"></nz-range-picker> |
||||||
|
<br /> |
||||||
|
</nz-form-control> |
||||||
|
</nz-form-item> |
||||||
|
|
||||||
|
<nz-form-item class="btn"> |
||||||
|
<nz-form-control> |
||||||
|
<button nz-button type="submit" class="submit"><i nz-icon [nzType]="'search'"></i>查询</button> |
||||||
|
</nz-form-control> |
||||||
|
</nz-form-item> |
||||||
|
|
||||||
|
<nz-form-item class="btn"> |
||||||
|
<nz-form-control> |
||||||
|
<button nz-button type="button" class="reset" (click)="resetForm($event)"><i nz-icon |
||||||
|
[nzType]="'sync'"></i>重置</button> |
||||||
|
</nz-form-control> |
||||||
|
</nz-form-item> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
<div class="content"> |
||||||
|
<div class="title"> |
||||||
|
<app-title [name]="'违规类型统计'"></app-title> |
||||||
|
</div> |
||||||
|
<div class="chartsbox"> |
||||||
|
<div class="chart"> |
||||||
|
<div class="leftbox"> |
||||||
|
<span class="chartname"> |
||||||
|
<img src="../../../assets/images/flower.png" alt=""> |
||||||
|
违规事件统计 |
||||||
|
</span> |
||||||
|
<div class="centerContent"> |
||||||
|
<div class="numname">违规事件总数</div> |
||||||
|
<div class="num">206</div> |
||||||
|
</div> |
||||||
|
<div class="piechart" id="piechart"> |
||||||
|
|
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="rightbox"> |
||||||
|
<span class="chartname"> |
||||||
|
<img src="../../../assets/images/flower.png" alt=""> |
||||||
|
违规趋势 |
||||||
|
</span> |
||||||
|
<div class="barchart" id="barchart"> |
||||||
|
|
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="title"> |
||||||
|
<app-title [name]="'违规类型统计'"></app-title> |
||||||
|
</div> |
||||||
|
<div class="tablebox"> |
||||||
|
<div class="table"> |
||||||
|
<div nz-row class="th"> |
||||||
|
<div nz-col nzSpan="4" style="box-sizing: border-box;padding-left: 18px;"> |
||||||
|
事件编号 |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="2"> |
||||||
|
事件级别 |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="4"> |
||||||
|
事件类型 |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="2"> |
||||||
|
区域 |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="1"> |
||||||
|
|
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="4"> |
||||||
|
加油站 |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="3"> |
||||||
|
地点 |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="3"> |
||||||
|
违规时间 |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="1"> |
||||||
|
操作 |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="tbody"> |
||||||
|
<div nz-row class="tr" *ngFor="let item of list"> |
||||||
|
<div nz-col nzSpan="4" style="box-sizing: border-box;padding-left: 18px;"> |
||||||
|
{{item.id}} |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="2"> |
||||||
|
{{item.level}} |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="4"> |
||||||
|
{{item.type}} |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="2"> |
||||||
|
山东淄博 |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="1" style="text-align: right;box-sizing: border-box;padding-right: 8px;"> |
||||||
|
自营 |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="4"> |
||||||
|
{{item.name}} |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="3"> |
||||||
|
{{item.site}} |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="3"> |
||||||
|
{{item.time}} |
||||||
|
</div> |
||||||
|
<div nz-col nzSpan="1" > |
||||||
|
<span (click)="look()">查看</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="pagination"> |
||||||
|
<nz-pagination [nzPageIndex]="1" [nzTotal]="85" [nzPageSize]="20" [nzShowTotal]="totalTemplate" |
||||||
|
nzShowQuickJumper></nz-pagination> |
||||||
|
<ng-template #totalTemplate let-total> 16条/页,共100条 </ng-template> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
@ -0,0 +1,176 @@ |
|||||||
|
.recordsbox { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
} |
||||||
|
|
||||||
|
.search { |
||||||
|
box-sizing: border-box; |
||||||
|
padding: 0 36px; |
||||||
|
width: 100%; |
||||||
|
height: 32px; |
||||||
|
margin-top: 14px; |
||||||
|
|
||||||
|
form { |
||||||
|
width: 100%; |
||||||
|
height: 32px; |
||||||
|
display: flex; |
||||||
|
justify-content: space-around; |
||||||
|
|
||||||
|
.searchParams { |
||||||
|
width: 22%; |
||||||
|
} |
||||||
|
|
||||||
|
.btn { |
||||||
|
width: 5%; |
||||||
|
} |
||||||
|
|
||||||
|
nz-select { |
||||||
|
color: rgba(145, 204, 255, 0.95); |
||||||
|
} |
||||||
|
|
||||||
|
nz-range-picker { |
||||||
|
background-color: rgba(0, 0, 0, 0); |
||||||
|
width: 97%; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
.content { |
||||||
|
flex: 1; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
overflow: hidden; |
||||||
|
|
||||||
|
.title { |
||||||
|
width: 100%; |
||||||
|
height: 64px; |
||||||
|
box-sizing: border-box; |
||||||
|
padding: 0 28px; |
||||||
|
margin: 13px 0; |
||||||
|
} |
||||||
|
|
||||||
|
.chartsbox { |
||||||
|
width: 100%; |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
|
||||||
|
.chart { |
||||||
|
width: 97%; |
||||||
|
height: 360px; |
||||||
|
border: 0px; |
||||||
|
box-shadow: 0 0 26px 0px #1a7fd7 inset; |
||||||
|
box-sizing: border-box; |
||||||
|
padding: 18px 26px; |
||||||
|
display: flex; |
||||||
|
|
||||||
|
div { |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
|
||||||
|
span { |
||||||
|
font-family: titlefont; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
height: 28px; |
||||||
|
color: #bee1ff; |
||||||
|
font-size: 16px; |
||||||
|
} |
||||||
|
|
||||||
|
div { |
||||||
|
flex: 1; |
||||||
|
} |
||||||
|
|
||||||
|
.piechart {} |
||||||
|
|
||||||
|
.barchart { |
||||||
|
border: 1px solid rgba(145, 204, 255, 0.95); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.leftbox { |
||||||
|
width: 360px; |
||||||
|
position: relative; |
||||||
|
|
||||||
|
.centerContent { |
||||||
|
position: absolute; |
||||||
|
top: 42%; |
||||||
|
left: 11%; |
||||||
|
width: 170px; |
||||||
|
|
||||||
|
div { |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
|
||||||
|
.numname { |
||||||
|
font-family: titlefont; |
||||||
|
color: #bee1ff; |
||||||
|
} |
||||||
|
|
||||||
|
.num { |
||||||
|
color: #FFFFFF; |
||||||
|
font-size: 42px; |
||||||
|
text-shadow: 0px 0px 16px #3A9AFF; |
||||||
|
font-weight: bold; |
||||||
|
height: 49px; |
||||||
|
line-height: 50px; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.rightbox { |
||||||
|
flex: 1; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.tablebox { |
||||||
|
flex: 1; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
align-items: center; |
||||||
|
overflow: hidden; |
||||||
|
|
||||||
|
.table { |
||||||
|
color: white; |
||||||
|
flex: 1; |
||||||
|
width: 96%; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
overflow: hidden; |
||||||
|
|
||||||
|
.th { |
||||||
|
height: 38px; |
||||||
|
line-height: 38px; |
||||||
|
background: #054783; |
||||||
|
} |
||||||
|
|
||||||
|
.tbody { |
||||||
|
flex: 1; |
||||||
|
overflow-y: auto; |
||||||
|
|
||||||
|
.tr { |
||||||
|
height: 38px; |
||||||
|
line-height: 38px; |
||||||
|
border-bottom: 1px solid #0d3761; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.pagination { |
||||||
|
margin: 15px 0; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
} |
||||||
|
|
||||||
|
::-webkit-scrollbar { |
||||||
|
width: 0px; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,131 @@ |
|||||||
|
import { Component, OnInit } from '@angular/core'; |
||||||
|
import { FormBuilder, FormGroup, Validators } from '@angular/forms'; |
||||||
|
import { Router } from '@angular/router' |
||||||
|
import * as echarts from 'echarts'; |
||||||
|
@Component({ |
||||||
|
selector: 'app-criminal-records-admin', |
||||||
|
templateUrl: './criminal-records-admin.component.html', |
||||||
|
styleUrls: ['./criminal-records-admin.component.scss'] |
||||||
|
}) |
||||||
|
export class CriminalRecordsAdminComponent implements OnInit { |
||||||
|
|
||||||
|
validateForm!: FormGroup; |
||||||
|
constructor(private fb: FormBuilder, private router: Router) { } |
||||||
|
|
||||||
|
ngOnInit(): void { |
||||||
|
this.validateForm = this.fb.group({ |
||||||
|
level: [null], |
||||||
|
type: [null], |
||||||
|
site: [null], |
||||||
|
datePicker: [null] |
||||||
|
}); |
||||||
|
|
||||||
|
// 基于准备好的dom,初始化echarts实例
|
||||||
|
let myChart = echarts.init(document.getElementById('piechart')); |
||||||
|
let option = { |
||||||
|
color: ['#FF4B65', '#23D9FF', '#608AFF', '#B2FF6D', '#FFFF99', '#C4E2FC', '#FF7F00', '#0090FF', '#FFD634', '#105597', '#FF4B65', '#23D9FF', '#71FFF5', '#B2FF6D'], |
||||||
|
tooltip: { |
||||||
|
trigger: 'item'//触发类型
|
||||||
|
}, |
||||||
|
series: [ |
||||||
|
{ |
||||||
|
// name: 'Access From',
|
||||||
|
type: 'pie', |
||||||
|
radius: [85, 112],//内半径外,外半径
|
||||||
|
left: '-30%', |
||||||
|
avoidLabelOverlap: false,//防止标签重叠策略
|
||||||
|
label: {//每一个标签外网延伸的引导说明
|
||||||
|
show: false, |
||||||
|
position: 'outside' |
||||||
|
}, |
||||||
|
labelLine: {//引导线
|
||||||
|
show: true, |
||||||
|
showAbove: true |
||||||
|
}, |
||||||
|
emphasis: {//中间高亮区域
|
||||||
|
label: { |
||||||
|
show: false, |
||||||
|
fontSize: '40', |
||||||
|
fontWeight: 'bold' |
||||||
|
} |
||||||
|
}, |
||||||
|
data: [ |
||||||
|
{ value: 26, name: '工作人员倚靠加油机或者立柱1' }, |
||||||
|
{ value: 86, name: '工作人员倚靠加油机或者立柱2' }, |
||||||
|
{ value: 34, name: '工作人员倚靠加油机或者立柱3' }, |
||||||
|
{ value: 55, name: '工作人员倚靠加油机或者立柱4' }, |
||||||
|
{ value: 60, name: '工作人员倚靠加油机或者立柱5' }, |
||||||
|
{ value: 26, name: '工作人员倚靠加油机或者立柱6' }, |
||||||
|
{ value: 86, name: '工作人员倚靠加油机或者立柱7' }, |
||||||
|
{ value: 34, name: '工作人员倚靠加油机或者立柱8' }, |
||||||
|
{ value: 55, name: '工作人员倚靠加油机或者立柱9' }, |
||||||
|
{ value: 60, name: '工作人员倚靠加油机或者立柱10' }, |
||||||
|
{ value: 26, name: '工作人员倚靠加油机或者立柱11' }, |
||||||
|
{ value: 86, name: '工作人员倚靠加油机或者立柱12' }, |
||||||
|
{ value: 34, name: '工作人员倚靠加油机或者立柱13' }, |
||||||
|
{ value: 55, name: '工作人员倚靠加油机或者立柱14' }, |
||||||
|
{ value: 60, name: '工作人员倚靠加油机或者立柱15' }, |
||||||
|
{ value: 26, name: '工作人员倚靠加油机或者立柱16' }, |
||||||
|
{ value: 86, name: '工作人员倚靠加油机或者立柱17' }, |
||||||
|
{ value: 34, name: '工作人员倚靠加油机或者立柱18' }, |
||||||
|
{ value: 55, name: '工作人员倚靠加油机或者立柱19' }, |
||||||
|
{ value: 60, name: '工作人员倚靠加油机或者立柱20' } |
||||||
|
], |
||||||
|
tooltip: {//鼠标移入提示
|
||||||
|
position: 'right', |
||||||
|
padding: [14, 19], |
||||||
|
backgroundColor: 'rgba(28, 129, 218, 0.4)', |
||||||
|
textStyle: { |
||||||
|
color: '#fff', |
||||||
|
fontSize: 12 |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
] |
||||||
|
}; |
||||||
|
// 绘制图表
|
||||||
|
myChart.setOption(option); |
||||||
|
} |
||||||
|
submitForm(): void { |
||||||
|
for (const i in this.validateForm.controls) { |
||||||
|
this.validateForm.controls[i].markAsDirty(); |
||||||
|
this.validateForm.controls[i].updateValueAndValidity(); |
||||||
|
} |
||||||
|
|
||||||
|
console.log(this.validateForm) |
||||||
|
} |
||||||
|
resetForm(e: MouseEvent): void { |
||||||
|
e.preventDefault(); |
||||||
|
this.validateForm.reset(); |
||||||
|
for (const key in this.validateForm.controls) { |
||||||
|
this.validateForm.controls[key].markAsPristine(); |
||||||
|
this.validateForm.controls[key].updateValueAndValidity(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
list: any = [ |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' }, |
||||||
|
{ id: 'SDFFDCDC484C8DCCCDGG', level: 'Ⅰ级', type: '工作人员倚靠加油机或立柱', name: '中化山东省淄博市第6加油站', site: '加油区2号摄像头', time: '2021-10-12 09:28:13' } |
||||||
|
] |
||||||
|
look() { |
||||||
|
this.router.navigate(['home/records/petrolStation']) |
||||||
|
} |
||||||
|
} |
@ -0,0 +1 @@ |
|||||||
|
<p>系统管理页面</p> |
@ -0,0 +1 @@ |
|||||||
|
<p>organization works!</p> |
@ -0,0 +1,15 @@ |
|||||||
|
import { Component, OnInit } from '@angular/core'; |
||||||
|
|
||||||
|
@Component({ |
||||||
|
selector: 'app-organization', |
||||||
|
templateUrl: './organization.component.html', |
||||||
|
styleUrls: ['./organization.component.scss'] |
||||||
|
}) |
||||||
|
export class OrganizationComponent implements OnInit { |
||||||
|
|
||||||
|
constructor() { } |
||||||
|
|
||||||
|
ngOnInit(): void { |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1 @@ |
|||||||
|
<p>role works!</p> |
@ -0,0 +1,15 @@ |
|||||||
|
import { Component, OnInit } from '@angular/core'; |
||||||
|
|
||||||
|
@Component({ |
||||||
|
selector: 'app-role', |
||||||
|
templateUrl: './role.component.html', |
||||||
|
styleUrls: ['./role.component.scss'] |
||||||
|
}) |
||||||
|
export class RoleComponent implements OnInit { |
||||||
|
|
||||||
|
constructor() { } |
||||||
|
|
||||||
|
ngOnInit(): void { |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
import { Routes, RouterModule } from '@angular/router'; |
||||||
|
import { NgModule } from '@angular/core'; |
||||||
|
|
||||||
|
import {AuthGuard} from '../auth.guard' |
||||||
|
|
||||||
|
const routes: Routes = [ |
||||||
|
// { path: 'plan', component: PlanComponent },
|
||||||
|
// { path: 'warning/petrolStation', component: TodayWarningComponent },
|
||||||
|
// { path: 'warning/admin', component: TodayWarningAdminComponent },
|
||||||
|
// { path: 'records/petrolStation', component: CriminalRecordsComponent },
|
||||||
|
// { path: 'records/admin', component: CriminalRecordsAdminComponent }
|
||||||
|
]; |
||||||
|
|
||||||
|
@NgModule({ |
||||||
|
imports: [RouterModule.forChild(routes)], |
||||||
|
exports: [RouterModule] |
||||||
|
}) |
||||||
|
export class SystemRoutingModule { } |
@ -0,0 +1,18 @@ |
|||||||
|
import { NgModule } from '@angular/core'; |
||||||
|
import { CommonModule } from '@angular/common'; |
||||||
|
import { SystemRoutingModule } from './system-management-routing.module'; |
||||||
|
import { OrganizationComponent } from './organization/organization.component'; |
||||||
|
import { UserComponent } from './user/user.component'; |
||||||
|
import { RoleComponent } from './role/role.component'; |
||||||
|
import { NavigationComponent } from './navigation/navigation.component'; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@NgModule({ |
||||||
|
declarations: [OrganizationComponent, UserComponent, RoleComponent, NavigationComponent], |
||||||
|
imports: [ |
||||||
|
CommonModule, |
||||||
|
SystemRoutingModule |
||||||
|
] |
||||||
|
}) |
||||||
|
export class SystemManagementModule { } |
@ -0,0 +1 @@ |
|||||||
|
<p>user works!</p> |
@ -0,0 +1,15 @@ |
|||||||
|
import { Component, OnInit } from '@angular/core'; |
||||||
|
|
||||||
|
@Component({ |
||||||
|
selector: 'app-user', |
||||||
|
templateUrl: './user.component.html', |
||||||
|
styleUrls: ['./user.component.scss'] |
||||||
|
}) |
||||||
|
export class UserComponent implements OnInit { |
||||||
|
|
||||||
|
constructor() { } |
||||||
|
|
||||||
|
ngOnInit(): void { |
||||||
|
} |
||||||
|
|
||||||
|
} |
Before Width: | Height: | Size: 122 KiB |
Before Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Loading…
Reference in new issue