Browse Source

[完善]左侧菜单

智慧矿山应急安全培训、考核、演练管理系统
邵佳豪 2 years ago
parent
commit
8c0ad138f8
  1. 6
      src/app/examiner/examiner-routing.ts
  2. 164
      src/app/examiner/examiner.module.ts
  3. 1
      src/app/examiner/statistic-analysis/abilityAnalysis/examinee-capacity/examinee-capacity.component.html
  4. 0
      src/app/examiner/statistic-analysis/abilityAnalysis/examinee-capacity/examinee-capacity.component.scss
  5. 12
      src/app/examiner/statistic-analysis/abilityAnalysis/examinee-capacity/examinee-capacity.component.spec.ts
  6. 15
      src/app/examiner/statistic-analysis/abilityAnalysis/examinee-capacity/examinee-capacity.component.ts
  7. 1
      src/app/examiner/statistic-analysis/examStatistics/echarts/echarts.component.html
  8. 0
      src/app/examiner/statistic-analysis/examStatistics/echarts/echarts.component.scss
  9. 25
      src/app/examiner/statistic-analysis/examStatistics/echarts/echarts.component.spec.ts
  10. 15
      src/app/examiner/statistic-analysis/examStatistics/echarts/echarts.component.ts
  11. 1
      src/app/examiner/statistic-analysis/examStatistics/examinee-papers/examinee-papers.component.html
  12. 0
      src/app/examiner/statistic-analysis/examStatistics/examinee-papers/examinee-papers.component.scss
  13. 25
      src/app/examiner/statistic-analysis/examStatistics/examinee-papers/examinee-papers.component.spec.ts
  14. 15
      src/app/examiner/statistic-analysis/examStatistics/examinee-papers/examinee-papers.component.ts
  15. 1
      src/app/examiner/statistic-analysis/examStatistics/station-examinee/station-examinee.component.html
  16. 0
      src/app/examiner/statistic-analysis/examStatistics/station-examinee/station-examinee.component.scss
  17. 25
      src/app/examiner/statistic-analysis/examStatistics/station-examinee/station-examinee.component.spec.ts
  18. 15
      src/app/examiner/statistic-analysis/examStatistics/station-examinee/station-examinee.component.ts
  19. 29
      src/app/examiner/statistic-analysis/statistic-analysis.component.html
  20. 69
      src/app/examiner/statistic-analysis/statistic-analysis.component.scss
  21. 101
      src/app/examiner/statistic-analysis/statistic-analysis.component.ts
  22. 25
      src/app/navigation/navigation.component.html
  23. 72
      src/app/navigation/navigation.component.scss
  24. 63
      src/app/navigation/navigation.component.ts
  25. 3
      src/app/pages/login/login.component.html
  26. 63
      src/app/pages/login/login.component.ts

6
src/app/examiner/examiner-routing.ts

@ -12,14 +12,16 @@ import { ExaminerIndexComponent } from './examiner-index/examiner-index.componen
import { ExaminerNewOneComponent} from './examiner-new-one/examiner-new-one.component'
import { MarkPapersIndexComponent} from './mark-papers-index/mark-papers-index.component'
import { MarkPapersTwoComponent } from './mark-papers-two/mark-papers-two.component'
import { StatisticAnalysisComponent } from './statistic-analysis/statistic-analysis.component'
import { EchartsComponent } from './statistic-analysis/examStatistics/echarts/echarts.component';
import { ExamineeCapacityComponent } from './statistic-analysis/abilityAnalysis/examinee-capacity/examinee-capacity.component';
const routes: Routes = [
{ path: 'createexam-index', component:ExaminerIndexComponent },
{ path: 'createexam-index/examiner-new-one', component:ExaminerNewOneComponent },
{ path: 'mark-papers-index',component:MarkPapersIndexComponent},
{ path: 'mark-papers-index/mark-papers-two',component:MarkPapersTwoComponent},
{ path: 'statistic-anaily',component:StatisticAnalysisComponent}
{ path: 'statistic-examination',component:EchartsComponent},
{ path: 'statistic-capacity',component:ExamineeCapacityComponent}
]
@NgModule({
imports: [RouterModule.forChild(routes)],

164
src/app/examiner/examiner.module.ts

@ -1,67 +1,102 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { examinerRoutingModule } from './examiner-routing';
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 { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
import { MatListModule } from '@angular/material/list';
import { MatMenuModule } from '@angular/material/menu';
import { MatNativeDateModule, MatRippleModule, MatOption } 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 { MatSidenavModule } from '@angular/material/sidenav';
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';
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatPaginatorIntl } from '@angular/material/paginator';
import { myPaginator } from '../ui/my-paginator';
import { AddPlanDialog, AddPlanTwoDialog, CreateTestScoreComponent, FinishDialog, LookTreeNodeDialog } from './create-test-score/create-test-score.component';
import { NavigationModule } from '../navigation/navigation.module';
import { NzTreeModule } from 'ng-zorro-antd/tree';
import { ExaminerIndexComponent } from './examiner-index/examiner-index.component';
import { ExaminerNewOneComponent } from './examiner-new-one/examiner-new-one.component';
import { NzDatePickerModule } from 'ng-zorro-antd/date-picker';
import { PlanLevel } from '../pipes/size.pipe';
import { MarkPapersIndexComponent } from './mark-papers-index/mark-papers-index.component';
import { MarkPapersTwoComponent } from './mark-papers-two/mark-papers-two.component';
import { StatisticAnalysisComponent } from './statistic-analysis/statistic-analysis.component';
import { FinishDia } from './examiner-index/examiner-index.component';
import { ReviewFilesComponent, editRightWrongComponent } from './review-files/review-files.component'
import { editorsDia } from './create-test-score/create-test-score.component'
import { NzTreeSelectModule } from 'ng-zorro-antd/tree-select';
import { NgModule } from "@angular/core";
import { CommonModule } from "@angular/common";
import { examinerRoutingModule } from "./examiner-routing";
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 { MatIconModule } from "@angular/material/icon";
import { MatInputModule } from "@angular/material/input";
import { MatListModule } from "@angular/material/list";
import { MatMenuModule } from "@angular/material/menu";
import {
MatNativeDateModule,
MatRippleModule,
MatOption,
} 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 { MatSidenavModule } from "@angular/material/sidenav";
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";
import { ReactiveFormsModule, FormsModule } from "@angular/forms";
import { MatFormFieldModule } from "@angular/material/form-field";
import { MatPaginatorIntl } from "@angular/material/paginator";
import { myPaginator } from "../ui/my-paginator";
import {
AddPlanDialog,
AddPlanTwoDialog,
CreateTestScoreComponent,
FinishDialog,
LookTreeNodeDialog,
} from "./create-test-score/create-test-score.component";
import { NavigationModule } from "../navigation/navigation.module";
import { NzTreeModule } from "ng-zorro-antd/tree";
import { ExaminerIndexComponent } from "./examiner-index/examiner-index.component";
import { ExaminerNewOneComponent } from "./examiner-new-one/examiner-new-one.component";
import { NzDatePickerModule } from "ng-zorro-antd/date-picker";
import { PlanLevel } from "../pipes/size.pipe";
import { MarkPapersIndexComponent } from "./mark-papers-index/mark-papers-index.component";
import { MarkPapersTwoComponent } from "./mark-papers-two/mark-papers-two.component";
import { FinishDia } from "./examiner-index/examiner-index.component";
import {
ReviewFilesComponent,
editRightWrongComponent,
} from "./review-files/review-files.component";
import { editorsDia } from "./create-test-score/create-test-score.component";
import { NzTreeSelectModule } from "ng-zorro-antd/tree-select";
import { EchartsComponent } from "./statistic-analysis/examStatistics/echarts/echarts.component";
import { StationExamineeComponent } from "./statistic-analysis/examStatistics/station-examinee/station-examinee.component";
import { ExamineePapersComponent } from "./statistic-analysis/examStatistics/examinee-papers/examinee-papers.component";
import { ExamineeCapacityComponent } from "./statistic-analysis/abilityAnalysis/examinee-capacity/examinee-capacity.component";
@NgModule({
declarations: [CreateTestScoreComponent, AddPlanDialog, AddPlanTwoDialog, LookTreeNodeDialog, ExaminerIndexComponent, ExaminerNewOneComponent, FinishDialog, PlanLevel, MarkPapersIndexComponent, MarkPapersTwoComponent, StatisticAnalysisComponent, FinishDia, ReviewFilesComponent, editRightWrongComponent, editorsDia],
declarations: [
CreateTestScoreComponent,
AddPlanDialog,
AddPlanTwoDialog,
LookTreeNodeDialog,
ExaminerIndexComponent,
ExaminerNewOneComponent,
FinishDialog,
PlanLevel,
MarkPapersIndexComponent,
MarkPapersTwoComponent,
FinishDia,
ReviewFilesComponent,
editRightWrongComponent,
editorsDia,
EchartsComponent,
StationExamineeComponent,
ExamineePapersComponent,
ExamineeCapacityComponent,
],
imports: [
CommonModule,
examinerRoutingModule,
@ -113,10 +148,9 @@ import { NzTreeSelectModule } from 'ng-zorro-antd/tree-select';
NzTreeModule,
NzDatePickerModule,
NzTreeSelectModule,
],
providers: [{ provide: MatPaginatorIntl, useValue: myPaginator() }],
exports: [PlanLevel],
entryComponents:[FinishDia]
entryComponents: [FinishDia],
})
export class ExaminerModule {}

1
src/app/examiner/statistic-analysis/abilityAnalysis/examinee-capacity/examinee-capacity.component.html

@ -0,0 +1 @@
<p>examinee-capacity works!</p>

0
src/app/examiner/statistic-analysis/abilityAnalysis/examinee-capacity/examinee-capacity.component.scss

12
src/app/examiner/statistic-analysis/statistic-analysis.component.spec.ts → src/app/examiner/statistic-analysis/abilityAnalysis/examinee-capacity/examinee-capacity.component.spec.ts

@ -1,20 +1,20 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { StatisticAnalysisComponent } from './statistic-analysis.component';
import { ExamineeCapacityComponent } from './examinee-capacity.component';
describe('StatisticAnalysisComponent', () => {
let component: StatisticAnalysisComponent;
let fixture: ComponentFixture<StatisticAnalysisComponent>;
describe('ExamineeCapacityComponent', () => {
let component: ExamineeCapacityComponent;
let fixture: ComponentFixture<ExamineeCapacityComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ StatisticAnalysisComponent ]
declarations: [ ExamineeCapacityComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(StatisticAnalysisComponent);
fixture = TestBed.createComponent(ExamineeCapacityComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});

15
src/app/examiner/statistic-analysis/abilityAnalysis/examinee-capacity/examinee-capacity.component.ts

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-examinee-capacity',
templateUrl: './examinee-capacity.component.html',
styleUrls: ['./examinee-capacity.component.scss']
})
export class ExamineeCapacityComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

1
src/app/examiner/statistic-analysis/examStatistics/echarts/echarts.component.html

@ -0,0 +1 @@
<p>echarts works!</p>

0
src/app/examiner/statistic-analysis/examStatistics/echarts/echarts.component.scss

25
src/app/examiner/statistic-analysis/examStatistics/echarts/echarts.component.spec.ts

@ -0,0 +1,25 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { EchartsComponent } from './echarts.component';
describe('EchartsComponent', () => {
let component: EchartsComponent;
let fixture: ComponentFixture<EchartsComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ EchartsComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(EchartsComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

15
src/app/examiner/statistic-analysis/examStatistics/echarts/echarts.component.ts

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-echarts',
templateUrl: './echarts.component.html',
styleUrls: ['./echarts.component.scss']
})
export class EchartsComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

1
src/app/examiner/statistic-analysis/examStatistics/examinee-papers/examinee-papers.component.html

@ -0,0 +1 @@
<p>examinee-papers works!</p>

0
src/app/examiner/statistic-analysis/examStatistics/examinee-papers/examinee-papers.component.scss

25
src/app/examiner/statistic-analysis/examStatistics/examinee-papers/examinee-papers.component.spec.ts

@ -0,0 +1,25 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ExamineePapersComponent } from './examinee-papers.component';
describe('ExamineePapersComponent', () => {
let component: ExamineePapersComponent;
let fixture: ComponentFixture<ExamineePapersComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ExamineePapersComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ExamineePapersComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

15
src/app/examiner/statistic-analysis/examStatistics/examinee-papers/examinee-papers.component.ts

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-examinee-papers',
templateUrl: './examinee-papers.component.html',
styleUrls: ['./examinee-papers.component.scss']
})
export class ExamineePapersComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

1
src/app/examiner/statistic-analysis/examStatistics/station-examinee/station-examinee.component.html

@ -0,0 +1 @@
<p>station-examinee works!</p>

0
src/app/examiner/statistic-analysis/examStatistics/station-examinee/station-examinee.component.scss

25
src/app/examiner/statistic-analysis/examStatistics/station-examinee/station-examinee.component.spec.ts

@ -0,0 +1,25 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { StationExamineeComponent } from './station-examinee.component';
describe('StationExamineeComponent', () => {
let component: StationExamineeComponent;
let fixture: ComponentFixture<StationExamineeComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ StationExamineeComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(StationExamineeComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

15
src/app/examiner/statistic-analysis/examStatistics/station-examinee/station-examinee.component.ts

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-station-examinee',
templateUrl: './station-examinee.component.html',
styleUrls: ['./station-examinee.component.scss']
})
export class StationExamineeComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

29
src/app/examiner/statistic-analysis/statistic-analysis.component.html

@ -1,29 +0,0 @@
<!--
* @Descripttion:
* @version:
* @Author: sueRimn
* @Date: 2020-12-15 14:19:50
* @LastEditors: sueRimn
* @LastEditTime: 2020-12-17 14:30:16
-->
<div class="conter">
<div class="left">
<div id="zhidui">
</div>
</div>
<div class="right">
<img src="../../../assets/images/statictop.png" style="height: 90px;width: 90px;">
<div class="rightone">
<div><span style="font-size: 24px;">STATISTICS</span></div>
<div style="margin-top: 10px;"><span style="font-size: 20px;">消防救援单位信息</span></div>
<div style="margin-top: 10px;"><span style="font-size: 20px;"> 考核统计分析</span></div>
</div>
<div class="righttwo">
<div><button [ngClass]="{'clickButton':upStatic}" (click)="upexam()"><img src="../../../assets/images/upload.png" > 发布统计</button></div>
<div style="margin-top: 20px;"><button [ngClass]="{'clickButton':staticExam}" (click)="staticecam()"><img src="../../../assets/images/examstatic.png" [ngStyle]="{'background-color':staticExam==true?'#07CDCF':''}"> 考试统计</button></div>
</div>
<div class="rightthree">
<img src="../../../assets/images/examdown.png">
</div>
</div>
</div>

69
src/app/examiner/statistic-analysis/statistic-analysis.component.scss

@ -1,69 +0,0 @@
.conter{
width: 100%;
height: 100%;
overflow: hidden;
background: #F2F5F6;
display: flex;
overflow-y: auto;
.left{
width: 80%;
height: 60%;
margin: 20px 20px 10px 50px;
background-color: #FFFFFF;
border-radius: 16px ;
#zhidui{
width: 80%;
height: 50%;
position: absolute;
top: 100px;
//left: 40%;
//top: 45%;
//transform: translate(-50%,-60%);
}
}
.right{
width: 228px;
height: 60%;
margin: 20px 20px 10px 10px;
background-color: #07CDCF;
border-radius: 16px ;
display: flex;
flex-direction: column;
.rightone{
//margin-top: 80px;
margin-left: 24px;
color:#FFFFFF;
display: flex;
flex-direction: column;
position: absolute;
top: 110px;
}
.righttwo{
margin-top: 100px;
margin-left: 24px;
button{
width: 180px;
height: 44px;
color: #FFFFFF;
background: rgba(255,255,255,0.6);
opacity: 1;
border-radius: 8px;
border: none;
font-size: 18px;
outline: none;
cursor: pointer;
}
.clickButton{
background-color: #FFFFFF;
color: #07CDCF;
}
}
.rightthree{
width: 100%;
margin-top: 110px;
img{
float: right;
}
}
}
}

101
src/app/examiner/statistic-analysis/statistic-analysis.component.ts

@ -1,101 +0,0 @@
/*
* @Descripttion:
* @version:
* @Author: sueRimn
* @Date: 2020-12-15 14:19:50
* @LastEditors: sueRimn
* @LastEditTime: 2020-12-17 16:02:43
*/
import { Component, OnInit } from '@angular/core';
//import {EchartsDataService} from '../../echarts-data.service';
declare var echarts: any;
@Component({
selector: 'app-statistic-analysis',
templateUrl: './statistic-analysis.component.html',
styleUrls: ['./statistic-analysis.component.scss']
})
export class StatisticAnalysisComponent implements OnInit {
constructor() { }
ngOnInit(): void {
window.setTimeout(()=>{
this.initCharts()
},0)
}
zhutu//柱状图实例
zhiNameData =["浦东支队","黄浦支队","徐汇支队","长宁支队","静安支队","普陀支队","虹口支队","杨浦支队","闵行支队","宝山支队","嘉定支队"]
staticExam=false//考试统计
upStatic=false//发布考试统计
//考试统计按钮
staticecam(){
this.staticExam=true
this.upStatic=false
}
//发布考试按钮
upexam(){
this.staticExam=false
this.upStatic=true
}
initCharts() {
var detailPlanEchart = echarts.init(document.getElementById('zhidui'));
var option = {
xAxis: {
type: 'category',
data: this.zhiNameData,
axisLabel:{
fontSize:18,
lineHeight:31,
},
axisLine:{
show:false
},
splitLine:{
show:false
},
axisTick:{
show:false
},
},
yAxis: {
type: 'value',
axisLabel:{
fontSize:18,
lineHeight:31
},
axisTick:{
show:false
},
axisLine:{
show:false
},
splitLine:{
show:true,
lineStyle:{
opacity:0.2,
type:'dashed'
}
},
show:true
},
series: [{
data: [160, 150,140,130, 120, 100,90, 80, 60, 40,30],
type: 'bar',
showBackground: true,
backgroundStyle: {
color: '#F2F5F6'
},
itemStyle:{
color:"#FF8678",
barBorderRadius:12
},
barWidth:"24px"
}]
};
detailPlanEchart.setOption(option);
}
}

25
src/app/navigation/navigation.component.html

@ -18,22 +18,27 @@
</div>
<div class="biglogospan">
<div class="top"><span style="font-size: 22px;font-weight: 800;margin-left: 3px;">广西消防救援</span></div>
<div class="down"><span style="font-size: 4px;font-weight: 400;width: 125px;">guangxi fire and rescue</span></div>
<div class="down"><span style="font-size: 4px;font-weight: 400;width: 125px;">guangxi fire and rescue</span>
</div>
</div>
</div>
<div class="navbox">
<ul class="teacher" *ngIf="roleType == '1'">
<li [routerLink]="['/home/createexam-index']" routerLinkActive="clickStyle">
<img src="../../assets/images/found.png" style="background-color: #fff;"><label>创建考试</label>
<ul class="examiner" *ngIf="roleType == '1'">
<li (click)="routerTo('创建考试')" [ngClass]="{'clickStyle': selectedNav ==='创建考试'}">
<img class="create" src="../../assets/images/found.png"><label>创建考试</label>
</li>
<li [routerLink]="['/home/mark-papers-index']" routerLinkActive="clickStyle">
<img src="../../assets/images/papers.png" style="background-color: #07CDCF;"><label>阅卷</label>
<li (click)="routerTo('阅卷')" [ngClass]="{'clickStyle': selectedNav ==='阅卷'}">
<img class="look" src="../../assets/images/papers.png"><label>阅卷</label>
</li>
<li [routerLink]="['/home/statistic-anaily']" routerLinkActive="clickStyle">
<img src="../../assets/images/Statistics.png" style="background-color: #07CDCF;"><label>统计分析</label>
<li (click)="routerTo('统计分析')" [ngClass]="{'clickStyle': selectedNav ==='统计分析'}">
<img class="statistics" src="../../assets/images/Statistics.png"><label>统计分析</label>
</li>
<div class="nav2" *ngIf="selectedNav ==='统计分析'">
<span (click)="routerTo2('考试统计')" [ngClass]="{'clickStyle2': selectedNav2 ==='考试统计'}">考试统计</span>
<span (click)="routerTo2('能力分析')" [ngClass]="{'clickStyle2': selectedNav2 ==='能力分析'}">能力分析</span>
</div>
</ul>
<ul class="teacher" *ngIf="roleType == '0'">
<ul *ngIf="roleType == '0'">
<li [routerLink]="['/home/teachear']" routerLinkActive="clickStyle">
<label>考官管理</label>
</li>
@ -41,7 +46,7 @@
<label>考生管理</label>
</li>
</ul>
<ul class="teacher" *ngIf="roleType == '2'">
<ul *ngIf="roleType == '2'">
<li [routerLink]="['/home/student-index']" routerLinkActive="clickStyle">
<img src="../../assets/images/joinexam.png" style="background-color: #FFFFFF;"> <label>参加考试</label>
</li>

72
src/app/navigation/navigation.component.scss

@ -1,25 +1,29 @@
.example-container {
width: 100%;
height: 100%;
}
mat-accordion {
height: 100%;
}
mat-sidenav {
box-shadow: 2px 0px 5px #888888;
color: white;
background-color: #07CDCF;
width: 216px;
overflow-x: hidden;
p {
height: 48px;
cursor: pointer;
font-size: 16px;
line-height: 48px;
}
ul {
width: 100%;
li {
list-style: none;
height: 48px;
@ -31,6 +35,7 @@ mat-sidenav{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
img {
display: inline-block;
margin: 5px;
@ -39,6 +44,7 @@ mat-sidenav{
vertical-align: middle;
cursor: pointer;
}
label {
display: inline-block;
vertical-align: middle;
@ -48,32 +54,40 @@ mat-sidenav{
}
}
.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;
overflow: hidden;
@ -83,6 +97,7 @@ mat-sidenav{
bottom: 0px;
overflow-y: scroll;
font-size: 15px;
ul {
li {
width: 198px;
@ -95,27 +110,65 @@ mat-sidenav{
outline: none;
border-radius: 8px;
}
li:hover {
background-color: #FFFFFF;
color: #07CDCF;
.look,
.statistics {
background-color: #07CDCF;
}
}
}
.examiner {
.create {
background-color: #fff;
}
}
.nav2 {
display: flex;
flex-direction: column;
span {
display: inline-block;
height: 40px;
line-height: 40px;
text-align: center;
cursor: pointer;
border-left: 3px solid #07CDCF;
margin-top: 3px;
}
.clickStyle2 {
background: #6FE2E3;
border-left: 3px solid #fff;
}
}
}
mat-sidenav-container.myapp-dark-theme {
background-color: #fafafa;
color: black;
mat-panel-title {
color: black;
}
ul li {
background-color: white;
}
.biglogobox {
background-color: #d50000;
}
color: black;
}
.biglogobox {
width: 220px;
height: 56px;
@ -124,41 +177,50 @@ mat-sidenav{
display: flex;
color: #FFF;
margin: 0 auto;
.biglogoimg {
margin-left: 20px;
height: 40px;
width: 36px;
}
.biglogospan {
display: flex;
flex-direction: column;
.down {
position: relative;
bottom: 7px;
width: 125px;
span {
white-space: nowrap;
}
}
}
img {
width: 32px;
height: 34px;
margin-top: 6px;
}
}
mat-panel-title mat-icon {
color: #afb2bb;
font-size: 16px;
line-height: 24px;
margin-right: 6px;
}
mat-expansion-panel {
background-color: #4699f6;
mat-expansion-panel-header {
padding-left: 15px;
color: white;
}
ul {
li {
text-align: left;
@ -176,13 +238,21 @@ mat-sidenav{
.clickStyle {
background-color: #FFFFFF;
color: #07CDCF;
.look,
.statistics {
background-color: #07CDCF;
}
}
.btn {
text-align: center;
button {
margin: 0 5px;
}
}
.example-sidenav-content {
height: 100%;
overflow: hidden;

63
src/app/navigation/navigation.component.ts

@ -1,22 +1,55 @@
import { Component, OnInit ,Inject,ViewChild} from '@angular/core';
import { CacheTokenService } from '../http-interceptors/cache-token.service'//引入服务
import { HttpClient,HttpHeaders } from '@angular/common/http';
import { FormControl } from '@angular/forms';
import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
import { IsLoginService } from '../is-login.service'
import { ComponentServiceService } from '../component-service.service';
import { Router,ActivatedRoute } from '@angular/router'
import { Component, OnInit, Inject, ViewChild } from "@angular/core";
import { CacheTokenService } from "../http-interceptors/cache-token.service"; //引入服务
import { HttpClient, HttpHeaders } from "@angular/common/http";
import { FormControl } from "@angular/forms";
import {
MatDialog,
MatDialogRef,
MAT_DIALOG_DATA,
} from "@angular/material/dialog";
import { MatSnackBar, MatSnackBarConfig } from "@angular/material/snack-bar";
import { IsLoginService } from "../is-login.service";
import { ComponentServiceService } from "../component-service.service";
import { Router, ActivatedRoute } from "@angular/router";
@Component({
selector: 'app-navigation',
templateUrl: './navigation.component.html',
styleUrls: ['./navigation.component.scss']
selector: "app-navigation",
templateUrl: "./navigation.component.html",
styleUrls: ["./navigation.component.scss"],
})
export class NavigationComponent implements OnInit {
constructor(
private router: Router,
public emitService: ComponentServiceService,
public navmenus: CacheTokenService,
private http: HttpClient,
public dialog: MatDialog,
public snackBar: MatSnackBar,
public islogin: IsLoginService
) {}
constructor(private router:Router,public emitService: ComponentServiceService,public navmenus:CacheTokenService,private http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public islogin:IsLoginService) { }
roleType = sessionStorage.getItem('roleType')
roleType = sessionStorage.getItem("roleType");
ngOnInit() {}
selectedNav;
selectedNav2;
routerTo(name) {
this.selectedNav = name;
if (name === "统计分析") {
this.selectedNav2 = "考试统计";
this.router.navigate([RouterUrl["考试统计"]]); //登陆成功跳转页面
} else {
this.router.navigate([RouterUrl[name]]); //登陆成功跳转页面
}
}
routerTo2(name) {
this.selectedNav2 = name;
this.router.navigate([RouterUrl[name]]); //登陆成功跳转页面
}
}
enum RouterUrl {
"创建考试" = "/home/createexam-index",
"阅卷" = "/home/mark-papers-index",
"考试统计" = "/home/statistic-examination",
"能力分析" = "/home/statistic-capacity",
}

3
src/app/pages/login/login.component.html

@ -20,7 +20,8 @@
<div class="forget"><label (click)='forget()'>忘记密码?</label></div>
<div *ngIf="errmsg" class="alert-danger">{{errmsg}}</div>
<button type="submit" [disabled]="!form.form.valid" class="loginBtn" mat-raised-button>登录</button>
<label class="toAdmin" (click)='toAdminLogin()'><mat-icon style="vertical-align: middle; font-size: 22px;">replay</mat-icon>返回</label>
<label class="toAdmin" (click)='toAdminLogin()'><mat-icon
style="vertical-align: middle; font-size: 22px;">replay</mat-icon>返回</label>
</form>

63
src/app/pages/login/login.component.ts

@ -1,57 +1,58 @@
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http'
import { Router,ActivatedRoute } from '@angular/router'
import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
import { IsLoginService } from '../../is-login.service'//引入服务
import {CacheTokenService} from '../../http-interceptors/cache-token.service'//引入服务
import { Component, OnInit } from "@angular/core";
import { HttpClient } from "@angular/common/http";
import { Router, ActivatedRoute } from "@angular/router";
import { MatSnackBar, MatSnackBarConfig } from "@angular/material/snack-bar";
import { IsLoginService } from "../../is-login.service"; //引入服务
import { CacheTokenService } from "../../http-interceptors/cache-token.service"; //引入服务
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss'],
selector: "app-login",
templateUrl: "./login.component.html",
styleUrls: ["./login.component.scss"],
})
export class LoginComponent implements OnInit {
constructor(
private http: HttpClient,
private router: Router,
private route: ActivatedRoute,
public token: CacheTokenService,
public snackBar: MatSnackBar,
private isLogin: IsLoginService
) {}
constructor(private http:HttpClient,private router:Router,private route:ActivatedRoute,public token:CacheTokenService,public snackBar: MatSnackBar,private isLogin:IsLoginService) { }
ngOnInit() {
}
errmsg :string = ''; //错误信息
ngOnInit() {}
errmsg: string = ""; //错误信息
//登录
onSubmit(e) {
let params = { roleType: '0' }
this.http.post('/api/ExamAccounts/SignIn',e,{params}).subscribe((data:any)=>{
let params = { roleType: "0" };
this.http.post("/api/ExamAccounts/SignIn", e, { params }).subscribe(
(data: any) => {
sessionStorage.setItem("realName", data.realName);
sessionStorage.setItem("roleType", data.roleType);
sessionStorage.setItem("token", data.token);
sessionStorage.setItem("refreshToken", data.refreshToken);
sessionStorage.setItem("level", data.level);
this.token.startUp(); //登陆成功启动定时器刷新token
this.router.navigate(['/home/teachear']) //登陆成功跳转页面
},(err) => {this.errmsg = err})
this.router.navigate(["/home/teachear"]); //登陆成功跳转页面
},
(err) => {
this.errmsg = err;
}
);
}
//跳转教员学员登录页面
toAdminLogin() {
this.router.navigate(['/login']) //跳转管理员登录页面
this.router.navigate(["/login"]); //跳转管理员登录页面
}
//忘记密码弹窗
forget() {
const config = new MatSnackBarConfig();
config.verticalPosition = 'top';
config.duration = 3000
this.snackBar.open('请联系 系统维护技术人员','确定',config);
config.verticalPosition = "top";
config.duration = 3000;
this.snackBar.open("请联系 系统维护技术人员", "确定", config);
}
}

Loading…
Cancel
Save