diff --git a/README.md b/README.md index 41fa697..249b388 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,4 @@ -智能实战指挥平台-前端项目 - - ---广西 演示 +指挥员指挥能力考评抽签-前端项目 项目初始化:npm install diff --git a/angular.json b/angular.json index 2d8a69d..821a275 100644 --- a/angular.json +++ b/angular.json @@ -46,7 +46,8 @@ "src/assets/echarts/echarts.common.min.js", "src/assets/chartstheme/chongqing.js", "src/assets/chartstheme/westeros.js", - "src/assets/chartstheme/echarts-skin.js" + "src/assets/chartstheme/echarts-skin.js", + "src/assets/js/awardRotate.js" ] }, "configurations": { @@ -112,7 +113,10 @@ "styles": [ "src/styles.scss" ], - "scripts": [] + "scripts": [ + + + ] } }, "lint": { diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 833c96c..0766107 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -4,7 +4,7 @@ * @Author: sueRimn * @Date: 2020-10-07 15:00:15 * @LastEditors: sueRimn - * @LastEditTime: 2020-10-09 15:28:06 + * @LastEditTime: 2020-10-18 10:24:14 */ import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; @@ -18,29 +18,30 @@ import {AuthGuard} from './auth.guard' import {MTokenK1Component} from './m-token-k1/m-token-k1.component' //K1秘钥 import { LuckDrawComponent } from './ui/luck-draw/luck-draw.component'; import {ResetComponent} from './ui/reset/reset.component' +//import {LuckDrawBatchComponent} from './ui/luck-draw-batch/luck-draw-batch.component' +import { from } from 'rxjs'; +import { FirstStepComponent } from './ui/first-step/first-step.component'; +import { FourStepComponent } from './ui/four-step/four-step.component'; +import { DrawingResultComponent } from './ui/drawing-result/drawing-result.component'; +import { FirstStepCopyComponent } from './ui/first-step-copy/first-step-copy.component'; +import { FourStepCopyComponent } from './ui/four-step-copy/four-step-copy.component'; const routes: Routes = [ - //{path:'',redirectTo:'ui/plan',pathMatch:'full',}, - /* { - path:'', - component:NavigationComponent, - // canActivate: [AuthGuard],//守卫验证 - children:[ - {path:'ui',loadChildren:() => import('./ui/ui.module').then(m => m.UiModule)}, - // {path:'home',loadChildren:() => import('./pages/pages.module').then(m => m.PagesModule)}, - // {path:'visualization',component: HomeComponent}, - // {path:'gis',loadChildren:() => import('./gis-management/gis-management.module').then(m => m.GISManagementModule)} - ] - }, */ - {path:'',component:LuckDrawComponent}, + {path:'',component:FirstStepComponent},//LuckDrawComponent + {path:'twoStep',component:LuckDrawComponent}, + {path:'firstStep',component:FirstStepComponent}, + {path:'firstStep2',component:FirstStepCopyComponent}, {path:'Reset',component:ResetComponent}, + {path:'LuckDrawBatch',component:LuckDrawComponent}, + {path:'fourStep',component:FourStepComponent}, + {path:'fourStep2',component:FourStepCopyComponent}, + {path:'drawingResult', component:DrawingResultComponent} // {path:'login', // component:LoginComponent}, - // {path:'getNoMToken', - // component:MTokenK1Component, canActivate: [AuthGuard],}, //K1秘钥验证失败是跳转页面 - + // component:MTokenK1Component, + // canActivate: [AuthGuard]}, //K1秘钥验证失败是跳转页面 // {path:'lockscreen', // component:LockscreenComponent, // canActivate: [AuthGuard]}//守卫验证 diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 13a5c02..f3f4ecf 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -16,20 +16,6 @@ export class AppComponent { constructor(private http:HttpClient,private router:Router,public token:CacheTokenService) { } ngOnInit(): void { - var token = sessionStorage.getItem("token"); - var refreshToken = sessionStorage.getItem("refreshToken"); - if(token && refreshToken) { - this.http.post('/api/Account/RefreshToken', { - token: token, - refreshToken: refreshToken - }).subscribe((data: Data) => { - sessionStorage.setItem("level",data.level); - sessionStorage.setItem("token",data.token); - sessionStorage.setItem("refreshToken",data.refreshToken); - this.token.startUp() - }) - } - } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 8e939d2..c885e2a 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,3 +1,11 @@ +/* + * @Descripttion: + * @version: + * @Author: sueRimn + * @Date: 2020-10-07 15:00:15 + * @LastEditors: sueRimn + * @LastEditTime: 2020-10-18 10:22:35 + */ import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppRoutingModule } from './app-routing.module'; @@ -20,6 +28,7 @@ import { TreeService } from'./http-interceptors/tree.service'; import { MTokenK1Component } from './m-token-k1/m-token-k1.component' //K1秘钥 import { CountdownModule } from 'ngx-countdown'; //倒计时插件 import { GISManagementModule } from './gis-management/gis-management.module'; +//import {LuckDrawComponent} @NgModule({ declarations: [ diff --git a/src/app/auth.guard.ts b/src/app/auth.guard.ts index b01fc58..9ebb4e4 100644 --- a/src/app/auth.guard.ts +++ b/src/app/auth.guard.ts @@ -19,13 +19,13 @@ export class AuthGuard implements CanActivate { checkLogin(): boolean { // 判断本地有没有token - const token = sessionStorage.getItem('token'); + const arr = sessionStorage.getItem('arr'); // 如果有token,允许访问 - if (token) { return true; } + if (arr) { return true; } //如果没有token,跳转登录页 - this.router.navigate(['/login']); + this.router.navigate(['']); return false; } } diff --git a/src/app/http-interceptors/base-interceptor.ts b/src/app/http-interceptors/base-interceptor.ts index 76b39b8..066dec9 100644 --- a/src/app/http-interceptors/base-interceptor.ts +++ b/src/app/http-interceptors/base-interceptor.ts @@ -44,26 +44,13 @@ export class BaseInterceptor implements HttpInterceptor { private handleError(error: HttpErrorResponse) { // 用户认证失败返回登录页 if (error.status === 401||error.status === 614) { - this.token.delete() - sessionStorage.clear() - window.localStorage.clear() - this.router.navigate(['ui/plan']) - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('用户认证信息过期,请重新登录','确定',config); + } if (error.status === 403) { - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('对不起,您无此权限','确定',config); + } if (error.status === 400) { - const config = new MatSnackBarConfig(); - config.verticalPosition = 'top'; - config.duration = 3000 - this.snackBar.open('请核对您的输入格式是否正确','确定',config); + } if (error.error instanceof ErrorEvent) { diff --git a/src/app/ui/drawing-result/drawing-result.component.html b/src/app/ui/drawing-result/drawing-result.component.html new file mode 100644 index 0000000..6782094 --- /dev/null +++ b/src/app/ui/drawing-result/drawing-result.component.html @@ -0,0 +1,45 @@ +
+
+ +
+
+ 上一步 +
+

业务理论考试结果

+ + + + + + + + + + + +
{{header}}
{{item.order}}{{item.fireName}}{{item.drawLotsOrder}} +

{{items}}

+
+

{{items}}

+
+

指挥能力考评结果

+ + + + + + + + + + + + +
{{header}}
{{item.order}}{{item.fireName}}{{item.drawLotsOrder}}{{item.num}} +

{{items}}

+
+

{{items}}

+
+
+ +
\ No newline at end of file diff --git a/src/app/ui/drawing-result/drawing-result.component.scss b/src/app/ui/drawing-result/drawing-result.component.scss new file mode 100644 index 0000000..35e61b6 --- /dev/null +++ b/src/app/ui/drawing-result/drawing-result.component.scss @@ -0,0 +1,81 @@ +.content { + width: 100%; + height: 100%; + overflow: hidden; + box-sizing: border-box; + padding: 1px; + background: url('../../../assets/images/backgroud.png'); + background-size: 100% 100%; + header { + width: 100%; + height: 50px; + text-align: center; + background: url('../../../assets/images/head.png'); + background-size: 100% 100%; + img { margin: 11px 0; } + } +} + +.center { + position: relative; + width: 80%; + max-height: 90%; + margin: 0 auto; + overflow-x: hidden; + overflow-y: auto; + text-align: center; + .laststep{ + position: absolute; + width: 85px; + height:36px; + line-height:36px; + color: white; + font-size: 18px; + right: 0; + top: 18px; + border: 1px solid white; + border-radius: 6px; + cursor: pointer; + } + h3 { + font-size: 33px; + color: #fff; + margin: 30px 0; + } +} +.center::-webkit-scrollbar { + display: none; +} + +table { + width: 100%; + box-sizing: border-box; + background-color: #fff; + text-align: center; + border-collapse:collapse; + word-break:break-all; + word-wrap:break-all; + table-layout:fixed; + th { + box-sizing: border-box; + height: 50px; + font-size: 24px; + color: #fff; + font-weight: 400; + border: 1px solid #fff; + background-color: #ff4d29; + } + td { + box-sizing: border-box; + height: 60px; + color: #000; + font-weight: 400; + border: 1px solid #ECEDEE; + } + p { height: 30px; line-height: 30px; box-sizing: border-box; } + .bottomBorder:not(:last-child) { + border-bottom: 1px solid #ECEDEE; + } +} + +th,td,p { cursor: default; } \ No newline at end of file diff --git a/src/app/ui/drawing-result/drawing-result.component.spec.ts b/src/app/ui/drawing-result/drawing-result.component.spec.ts new file mode 100644 index 0000000..9bfbd8c --- /dev/null +++ b/src/app/ui/drawing-result/drawing-result.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DrawingResultComponent } from './drawing-result.component'; + +describe('DrawingResultComponent', () => { + let component: DrawingResultComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ DrawingResultComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(DrawingResultComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/ui/drawing-result/drawing-result.component.ts b/src/app/ui/drawing-result/drawing-result.component.ts new file mode 100644 index 0000000..e8b1108 --- /dev/null +++ b/src/app/ui/drawing-result/drawing-result.component.ts @@ -0,0 +1,64 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; + +@Component({ + selector: 'app-drawing-result', + templateUrl: './drawing-result.component.html', + styleUrls: ['./drawing-result.component.scss'] +}) +export class DrawingResultComponent implements OnInit { + + constructor(private router: Router) { } + isOne = false + isTwo = false + ngOnInit(): void { + if(this.router.url == '/drawingResult?type=1'){ + this.isOne = false + this.isTwo = true + this.tableData = [ + {order: 1, fireName: '南宁支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[0], num: localStorage.getItem('0') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("南宁支队seatnumber")).zhi,JSON.parse(localStorage.getItem("南宁支队seatnumber")).fuzhi] }, + {order: 2, fireName: '柳州支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[1], num: localStorage.getItem('1') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("柳州支队seatnumber")).zhi,JSON.parse(localStorage.getItem("柳州支队seatnumber")).fuzhi] }, + {order: 3, fireName: '桂林支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[2], num: localStorage.getItem('2') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("桂林支队seatnumber")).zhi,JSON.parse(localStorage.getItem("桂林支队seatnumber")).fuzhi] }, + {order: 4, fireName: '梧州支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[3], num: localStorage.getItem('3') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("梧州支队seatnumber")).zhi,JSON.parse(localStorage.getItem("梧州支队seatnumber")).fuzhi] }, + {order: 5, fireName: '北海支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[4], num: localStorage.getItem('4') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("北海支队seatnumber")).zhi,JSON.parse(localStorage.getItem("北海支队seatnumber")).fuzhi] }, + {order: 6, fireName: '防城港支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[5], num: localStorage.getItem('5') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("防城港支队seatnumber")).zhi,JSON.parse(localStorage.getItem("防城港支队seatnumber")).fuzhi] }, + {order: 7, fireName: '钦州支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[6], num: localStorage.getItem('6') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("钦州支队seatnumber")).zhi,JSON.parse(localStorage.getItem("钦州支队seatnumber")).fuzhi] }, + {order: 8, fireName: '贵港支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[7], num: localStorage.getItem('7') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("贵港支队seatnumber")).zhi,JSON.parse(localStorage.getItem("贵港支队seatnumber")).fuzhi] }, + {order: 9, fireName: '玉林支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[8], num: localStorage.getItem('8') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("玉林支队seatnumber")).zhi,JSON.parse(localStorage.getItem("玉林支队seatnumber")).fuzhi] }, + {order: 10, fireName: '百色支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[9], num: localStorage.getItem('9') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("百色支队seatnumber")).zhi,JSON.parse(localStorage.getItem("百色支队seatnumber")).fuzhi] }, + {order: 11, fireName: '贺州支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[10], num: localStorage.getItem('10') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("贺州支队seatnumber")).zhi,JSON.parse(localStorage.getItem("贺州支队seatnumber")).fuzhi] }, + {order: 12, fireName: '河池支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[11], num: localStorage.getItem('11') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("河池支队seatnumber")).zhi,JSON.parse(localStorage.getItem("河池支队seatnumber")).fuzhi] }, + {order: 13, fireName: '来宾支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[12], num: localStorage.getItem('12') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("来宾支队seatnumber")).zhi,JSON.parse(localStorage.getItem("来宾支队seatnumber")).fuzhi] }, + {order: 14, fireName: '崇左支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr"))[13], num: localStorage.getItem('13') || '', name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("崇左支队seatnumber")).zhi,JSON.parse(localStorage.getItem("崇左支队seatnumber")).fuzhi] }, + ] + }else{ + this.isOne = true + this.isTwo = false + this.tableDataZero = [ + {order: 1, fireName: '南宁支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[0] , name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("南宁支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("南宁支队seatnumbercopy")).fuzhi || ''] }, + {order: 2, fireName: '柳州支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[1], name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("柳州支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("柳州支队seatnumbercopy")).fuzhi || ''] }, + {order: 3, fireName: '桂林支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[2], name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("桂林支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("桂林支队seatnumbercopy")).fuzhi || ''] }, + {order: 4, fireName: '梧州支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[3], name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("梧州支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("梧州支队seatnumbercopy")).fuzhi || ''] }, + {order: 5, fireName: '北海支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[4], name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("北海支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("北海支队seatnumbercopy")).fuzhi || ''] }, + {order: 6, fireName: '防城港支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[5], name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("防城港支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("防城港支队seatnumbercopy")).fuzhi || ''] }, + {order: 7, fireName: '钦州支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[6], name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("钦州支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("钦州支队seatnumbercopy")).fuzhi || ''] }, + {order: 8, fireName: '贵港支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[7], name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("贵港支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("贵港支队seatnumbercopy")).fuzhi || ''] }, + {order: 9, fireName: '玉林支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[8], name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("玉林支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("玉林支队seatnumbercopy")).fuzhi || ''] }, + {order: 10, fireName: '百色支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[9], name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("百色支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("百色支队seatnumbercopy")).fuzhi || ''] }, + {order: 11, fireName: '贺州支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[10], name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("贺州支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("贺州支队seatnumbercopy")).fuzhi || ''] }, + {order: 12, fireName: '河池支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[11], name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("河池支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("河池支队seatnumbercopy")).fuzhi || '']}, + {order: 13, fireName: '来宾支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[12], name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum: [JSON.parse(localStorage.getItem("来宾支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("来宾支队seatnumbercopy")).fuzhi || ''] }, + {order: 14, fireName: '崇左支队', drawLotsOrder: JSON.parse(localStorage.getItem("arr2"))[13], name: ['总指挥/指挥长','副总指挥/作战助理'], seatNum:[JSON.parse(localStorage.getItem("崇左支队seatnumbercopy")).zhi || '',JSON.parse(localStorage.getItem("崇左支队seatnumbercopy")).fuzhi || '']}, + ] + } + } + + headersZero:string [] = ['序号','支队名称','抽签顺序', '职级','座位号'] + tableDataZero = [] + + headers:string [] = ['序号','支队名称','抽签顺序','场景类型', '职级','座位号'] + tableData = [] + laststep(){ + window.history.back(); + } +} diff --git a/src/app/ui/first-step-copy/first-step-copy.component.html b/src/app/ui/first-step-copy/first-step-copy.component.html new file mode 100644 index 0000000..4c766e2 --- /dev/null +++ b/src/app/ui/first-step-copy/first-step-copy.component.html @@ -0,0 +1,73 @@ + +
+
+ + + +
+
+ 业务理论考试抽签顺序 +
+
+
+ 序号 + {{item.id}} +
+
+
+
+
+
+ 请选择支队 + {{item.name}} + + +
+
+
+
+
+
+ 抽签结果: + {{item.result}} +
+
+
+ +
+ +
+ +
+
+
+ {{isDraw ? '已抽签' : '开始抽签'}} +
+
{{item.name}}
+
+ +
+ +
+ +
+
开始抽签
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/src/app/ui/first-step-copy/first-step-copy.component.scss b/src/app/ui/first-step-copy/first-step-copy.component.scss new file mode 100644 index 0000000..7bb9109 --- /dev/null +++ b/src/app/ui/first-step-copy/first-step-copy.component.scss @@ -0,0 +1,190 @@ + + + @import "../../../assets/css/laohujistyle.css"; + .box{ + width: 100%; + height: 100%; + overflow: hidden; + background-image: url("../../../assets/images/backgroud.png"); + background-size: 100%; + overflow: hidden; + } + .head{ + width: 100%; + height: 50px; + img{ + width: 100%; + height: 100%; + } + .ziti{ + position: relative; + bottom: 70%; + left: 40%; + width: 20%; + height: 53%; + } + span{ + position: relative; + bottom: 70%; + left: 45%; + font-size: 28px; + background:linear-gradient(#ff4b27, #ff6e41); + -webkit-background-clip: text; + color: transparent; + -webkit-text-fill-color: transparent; + text-fill-color: transparent; + } + } + .mainbox { + width: 99%; + height: 90%; + padding: 0.125rem 0.125rem 0; + display: flex; + .title{ + position: absolute; + left: 27%; + top: 75px; + color: white; + font-size: 30px; + } + } + .chongzhi{ + position: relative; + top: 85%; + right: 23.5%; + } + .centerLeft{ + background-color: #FFF; + float: left; + height: 98%; + width: 100%; + position: relative; + flex-direction: column; + flex: 2%; + display: flex; + align-items:center; + box-sizing: border-box; + margin: 0 0; + .tanCenterbtn{ + width: 350px; + height: 100%; + border: 1px solid #ECEDEE; + display: flex; + flex-direction: column; + user-select: none; + background-size:100% 100%; + span{ + white-space: nowrap; + font-family: Arial; + color: #000; + z-index:99; + width: 300px; + height: 40px; + cursor:pointer; + border-bottom:1px solid #ECEDEE; + padding:8px 24px ; + text-align: center; + font-size: 24px; + } + } + } + .centerLefta{ + background-color: #FFF; + float: left; + height: 98%; + width: 100%; + position: relative; + flex-direction: column; + flex: 2%; + display: flex; + align-items:center; + box-sizing: border-box; + margin: 0 0; + .tanCenterbtna{ + width: 100px; + height: 100%; + border: 1px solid #ECEDEE; + display: flex; + flex-direction: column; + user-select: none; + background-size:100% 100%; + span{ + white-space: nowrap; + font-family: Arial; + color: #000; + z-index:99; + width: 50px; + height: 40px; + cursor:pointer; + border-bottom:1px solid #ECEDEE; + padding:8px 24px ; + text-align: center; + font-size: 24px; + } + } + } + .colum{ + height: 90%; + width: 350px; + margin-top: 72px; + display:table-cell; + vertical-align:middle; + text-align: center; + span{ + font-size: 24px; + + //padding-top: 50%; + } + } + .zhuan{ + width: 500px; + margin-left: 160px; + margin-top: 10%; + } + .stop{ + pointer-events: none; + } + .button { + height: 48px; + width: 130px; + background-color:transparent; + border-radius: 4px; + border: 1px solid #ECEDEE; + color: #FFF; + padding: 12px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + margin: 4px 2px; + cursor: pointer; + } + + + //选择后加背景色 + .beijicolor{ + background-color:#FE693E ; + } + body,ul,ol,li,p,h1,h2,h3,h4,h5,h6,form,fieldset,table,td,img,div{margin:0;padding:0;border:0;} + body{color:#333; font-size:12px;font-family:"Microsoft YaHei"} + ul,ol{list-style-type:none;} + select,input,img,select{vertical-align:middle;} + input{ font-size:12px;} + a{ text-decoration:none; color:#000;} + a:hover{color:#c00; text-decoration:none;} + .clear{clear:both;} + + /* 大转盘样式 */ + .banner{//max-height: 650px; + display: block; + width: 95%; + //max-width: 650px; + margin-left: auto; + margin-right: auto; + margin-bottom: 20px; + } + .banner .turnplate{display:block;width:100%;position:relative;} + .banner .turnplate canvas.item{width:100%;height: 100%;} + .banner .turnplate img.pointer{position:absolute;width:30.5%;height:36.5%;left:34.6%;top:28.5%;} + + \ No newline at end of file diff --git a/src/app/ui/first-step-copy/first-step-copy.component.spec.ts b/src/app/ui/first-step-copy/first-step-copy.component.spec.ts new file mode 100644 index 0000000..b278102 --- /dev/null +++ b/src/app/ui/first-step-copy/first-step-copy.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FirstStepCopyComponent } from './first-step-copy.component'; + +describe('FirstStepCopyComponent', () => { + let component: FirstStepCopyComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ FirstStepCopyComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(FirstStepCopyComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/ui/first-step-copy/first-step-copy.component.ts b/src/app/ui/first-step-copy/first-step-copy.component.ts new file mode 100644 index 0000000..92d50d5 --- /dev/null +++ b/src/app/ui/first-step-copy/first-step-copy.component.ts @@ -0,0 +1,92 @@ +import { Component, OnInit } from '@angular/core'; +import '../../../assets/js/firststepcopy' +import { Router } from '@angular/router'; +@Component({ + selector: 'app-first-step-copy', + templateUrl: './first-step-copy.component.html', + styleUrls: ['./first-step-copy.component.scss'] +}) +export class FirstStepCopyComponent implements OnInit { + + constructor(private router: Router) { } + + ngOnInit(){ + var arr2 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14] + let p = arr2.sort(() => { + return Math.round(Math.random()) - 0.5; //返回随机值(大于0|小于0) + }) + var arrSeatcopy = [1,2,3,4,5,6,7,8,9,10,11,12,13,14] + var arrSeat2copy = [15,16,17,18,19,20,21,22,23,24,25,26,27,28] + let s = arrSeatcopy.sort(() => { + return Math.round(Math.random()) - 0.5; //返回随机值(大于0|小于0) + }) + let j = arrSeat2copy.sort(() => { + return Math.round(Math.random()) - 0.5; //返回随机值(大于0|小于0) + }) + if(!localStorage.getItem("arr2")){ + localStorage.setItem("arr2",JSON.stringify(p)) + } + if(!localStorage.getItem("arrSeatcopy")){ + localStorage.setItem("arrSeatcopy",JSON.stringify(s)) + } + if(!localStorage.getItem("arrSeat2copy")){ + localStorage.setItem("arrSeat2copy",JSON.stringify(j)) + } + let orgArr = ['南宁支队','柳州支队','桂林支队','梧州支队','北海支队','防城港支队','钦州支队','贵港支队','玉林支队','百色支队','贺州支队','河池支队','来宾支队','崇左支队',] + localStorage.setItem("orgArr",JSON.stringify(orgArr)) + } + //支队数据和是否抽奖 + choujiang=[ + {name:"南宁支队",id:1,result :localStorage.getItem("南宁支队copy") || ""}, + {name:"柳州支队",id:2,result :localStorage.getItem("柳州支队copy") || ""}, + {name:"桂林支队",id:3,result :localStorage.getItem("桂林支队copy") || ""}, + {name:"梧州支队",id:4,result :localStorage.getItem("梧州支队copy") || ""}, + {name:"北海支队",id:5,result :localStorage.getItem("北海支队copy") || ""}, + {name:"防城港支队",id:6,result :localStorage.getItem("防城港支队copy") || ""}, + {name:"钦州支队",id:7,result :localStorage.getItem("钦州支队copy") || ""}, + {name:"贵港支队",id:8,result :localStorage.getItem("贵港支队copy") || ""}, + {name:"玉林支队",id:9,result :localStorage.getItem("玉林支队copy") || ""}, + {name:"百色支队",id:10,result :localStorage.getItem("百色支队copy") || ""}, + {name:"贺州支队",id:11,result :localStorage.getItem("贺州支队copy") || ""}, + {name:"河池支队",id:12,result :localStorage.getItem("河池支队copy") || ""}, + {name:"来宾支队",id:13,result :localStorage.getItem("来宾支队copy") || ""}, + {name:"崇左支队",id:14,result :localStorage.getItem("崇左支队copy") || ""} + ] + numList = [ + {name:"1号",id:1}, + {name:"2号",id:2}, + {name:"3号",id:3}, + {name:"4号",id:4}, + {name:"5号",id:5}, + {name:"6号",id:6}, + {name:"7号",id:7}, + {name:"8号",id:8}, + {name:"9号",id:9}, + {name:"10号",id:10}, + {name:"11号",id:11}, + {name:"12号",id:12}, + {name:"13号",id:13}, + {name:"14号",id:14} + ] + //选中支队 + chooseid=-1 + isDraw = false + clickName(item){ + this.chooseid= item.id - 1 + localStorage.setItem("indexNum",item.id) + if(localStorage.getItem(item.name + 'copy')){//如果已经抽过 + this.isDraw = true + }else{ + this.isDraw = false + } + } + + nextStep(){ + if(localStorage.getItem("南宁支队copy") && localStorage.getItem("柳州支队copy") && localStorage.getItem("桂林支队copy") && localStorage.getItem("梧州支队copy") && localStorage.getItem("北海支队copy") && localStorage.getItem("防城港支队copy") && localStorage.getItem("钦州支队copy") && localStorage.getItem("贵港支队copy") && localStorage.getItem("玉林支队copy") && localStorage.getItem("百色支队copy") && localStorage.getItem("贺州支队copy") && localStorage.getItem("河池支队copy") && localStorage.getItem("来宾支队copy") && localStorage.getItem("崇左支队copy")){ + window.location.href="/fourStep2"; + }else{ + alert("未全部抽完!") + } + + } +} diff --git a/src/app/ui/first-step/first-step.component.html b/src/app/ui/first-step/first-step.component.html new file mode 100644 index 0000000..4d6eb7a --- /dev/null +++ b/src/app/ui/first-step/first-step.component.html @@ -0,0 +1,72 @@ + +
+
+ + +
+
+ 指挥员能力考评抽签顺序 +
+
+
+ 序号 + {{item.id}} +
+
+
+
+
+
+ 请选择支队 + {{item.name}} + + +
+
+
+
+
+
+ 抽签结果: + {{item.result}} +
+
+
+ +
+ +
+ +
+
+
+ {{isDraw ? '已抽签' : '开始抽签'}} +
+
{{item.name}}
+
+ +
+ +
+ +
+
开始抽签
+
+ +
+ +
+
+
+ + + diff --git a/src/app/ui/first-step/first-step.component.scss b/src/app/ui/first-step/first-step.component.scss new file mode 100644 index 0000000..218b8bf --- /dev/null +++ b/src/app/ui/first-step/first-step.component.scss @@ -0,0 +1,191 @@ + + + @import "../../../assets/css/laohujistyle.css"; +.box{ + width: 100%; + height: 100%; + overflow: hidden; + background-image: url("../../../assets/images/backgroud.png"); + background-size: 100%; + overflow: hidden; +} +.head{ + width: 100%; + height: 50px; + img{ + width: 100%; + height: 100%; + } + .ziti{ + position: relative; + bottom: 70%; + left: 40%; + width: 20%; + height: 53%; + } + span{ + position: relative; + bottom: 70%; + left: 45%; + font-size: 28px; + background:linear-gradient(#ff4b27, #ff6e41); + -webkit-background-clip: text; + color: transparent; + -webkit-text-fill-color: transparent; + text-fill-color: transparent; + } +} +.mainbox { + width: 99%; + height: 90%; + padding: 0.125rem 0.125rem 0; + display: flex; + position: relative; + .title{ + position: absolute; + left: 25%; + top: 25px; + color: white; + font-size: 30px; + } +} + +.centerLeft{ + background-color: #FFF; + float: left; + height: 98%; + width: 100%; + position: relative; + flex-direction: column; + flex: 2%; + display: flex; + align-items:center; + box-sizing: border-box; + margin: 0 0; +.tanCenterbtn{ +width: 350px; +height: 100%; +border: 1px solid #ECEDEE; +display: flex; +flex-direction: column; +user-select: none; +background-size:100% 100%; +span{ + white-space: nowrap; + font-family: Arial; + color: #000; + z-index:99; + width: 300px; + height: 40px; +cursor:pointer; +border-bottom:1px solid #ECEDEE; +padding:8px 24px ; +text-align: center; +font-size: 24px; +} +} +} +.centerLefta{ + background-color: #FFF; + float: left; + height: 98%; + width: 100%; + position: relative; + flex-direction: column; + flex: 2%; + display: flex; + align-items:center; + box-sizing: border-box; + margin: 0 0; +.tanCenterbtna{ +width: 100px; +height: 100%; +border: 1px solid #ECEDEE; +display: flex; +flex-direction: column; +user-select: none; +background-size:100% 100%; +span{ + white-space: nowrap; + font-family: Arial; + color: #000; + z-index:99; + width: 50px; + height: 40px; +cursor:pointer; +border-bottom:1px solid #ECEDEE; +padding:8px 24px ; +text-align: center; +font-size: 24px; +} +} +} +.colum{ + height: 90%; + width: 350px; + margin-top: 72px; + display:table-cell; + vertical-align:middle; + text-align: center; + span{ + font-size: 24px; + + //padding-top: 50%; + } +} +.zhuan{ + width: 500px; + margin-left: 160px; + margin-top: 10%; +} +.stop{ + pointer-events: none; +} +.chongzhi{ + position: relative; + top: 85%; + right: 24% +} +.button { + height: 48px; + width: 130px; + background-color:transparent; + border-radius: 4px; + border: 1px solid #ECEDEE; + color: #FFF; + padding: 12px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + margin: 4px 2px; + cursor: pointer; +} + + +//选择后加背景色 +.beijicolor{ + background-color:#FE693E ; +} + body,ul,ol,li,p,h1,h2,h3,h4,h5,h6,form,fieldset,table,td,img,div{margin:0;padding:0;border:0;} + body{color:#333; font-size:12px;font-family:"Microsoft YaHei"} + ul,ol{list-style-type:none;} + select,input,img,select{vertical-align:middle;} + input{ font-size:12px;} + a{ text-decoration:none; color:#000;} + a:hover{color:#c00; text-decoration:none;} + .clear{clear:both;} + + /* 大转盘样式 */ + .banner{//max-height: 650px; + display: block; + width: 95%; + //max-width: 650px; + margin-left: auto; + margin-right: auto; + margin-bottom: 20px; + } + .banner .turnplate{display:block;width:100%;position:relative;} + .banner .turnplate canvas.item{width:100%;height: 100%;} + .banner .turnplate img.pointer{position:absolute;width:30.5%;height:36.5%;left:34.6%;top:28.5%;} + diff --git a/src/app/ui/first-step/first-step.component.spec.ts b/src/app/ui/first-step/first-step.component.spec.ts new file mode 100644 index 0000000..ed532ee --- /dev/null +++ b/src/app/ui/first-step/first-step.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FirstStepComponent } from './first-step.component'; + +describe('FirstStepComponent', () => { + let component: FirstStepComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ FirstStepComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(FirstStepComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/ui/first-step/first-step.component.ts b/src/app/ui/first-step/first-step.component.ts new file mode 100644 index 0000000..881ba41 --- /dev/null +++ b/src/app/ui/first-step/first-step.component.ts @@ -0,0 +1,101 @@ +import { Component, OnInit } from '@angular/core'; +import '../../../assets/js/firststep' + + +@Component({ + selector: 'app-first-step', + templateUrl: './first-step.component.html', + styleUrls: ['./first-step.component.scss'] +}) +export class FirstStepComponent implements OnInit { + + constructor() { } + + ngOnInit(){ + var arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14] + + var arrSeat = [1,2,3,4,5,6,7,8,9,10,11,12,13,14] + var arrSeat2 = [15,16,17,18,19,20,21,22,23,24,25,26,27,28] + + let x = arr.sort(() => { + return Math.round(Math.random()) - 0.5; //返回随机值(大于0|小于0) + }) + + let y = arrSeat.sort(() => { + return Math.round(Math.random()) - 0.5; //返回随机值(大于0|小于0) + }) + let z = arrSeat2.sort(() => { + return Math.round(Math.random()) - 0.5; //返回随机值(大于0|小于0) + }) + + if(!localStorage.getItem("arr")){ + localStorage.setItem("arr",JSON.stringify(x)) + } + + if(!localStorage.getItem("arrSeat")){ + localStorage.setItem("arrSeat",JSON.stringify(y)) + } + if(!localStorage.getItem("arrSeat2")){ + localStorage.setItem("arrSeat2",JSON.stringify(z)) + } + let orgArr = ['南宁支队','柳州支队','桂林支队','梧州支队','北海支队','防城港支队','钦州支队','贵港支队','玉林支队','百色支队','贺州支队','河池支队','来宾支队','崇左支队',] + localStorage.setItem("orgArr",JSON.stringify(orgArr)) + + } + + numList = [ + {name:"1号",id:1}, + {name:"2号",id:2}, + {name:"3号",id:3}, + {name:"4号",id:4}, + {name:"5号",id:5}, + {name:"6号",id:6}, + {name:"7号",id:7}, + {name:"8号",id:8}, + {name:"9号",id:9}, + {name:"10号",id:10}, + {name:"11号",id:11}, + {name:"12号",id:12}, + {name:"13号",id:13}, + {name:"14号",id:14} + ] + //选中支队 + chooseid=-1 + isDraw = false + clickName(item){ + this.chooseid= item.id - 1 + localStorage.setItem("indexNum",item.id) + if(localStorage.getItem(item.name)){//如果已经抽过 + this.isDraw = true + }else{ + this.isDraw = false + } + } + //跳转第二个页面 + nextStep(){ + if(localStorage.getItem("南宁支队") && localStorage.getItem("柳州支队") && localStorage.getItem("桂林支队") && localStorage.getItem("梧州支队") && localStorage.getItem("北海支队") && localStorage.getItem("防城港支队") && localStorage.getItem("钦州支队") && localStorage.getItem("贵港支队") && localStorage.getItem("玉林支队") && localStorage.getItem("百色支队") && localStorage.getItem("贺州支队") && localStorage.getItem("河池支队") && localStorage.getItem("来宾支队") && localStorage.getItem("崇左支队")){ + window.location.href="/twoStep"; + }else{ + alert("未全部抽完!") + } + + } + //支队数据和是否抽奖 + choujiang=[ + {name:"南宁支队",id:1,result :localStorage.getItem("南宁支队") || ""}, + {name:"柳州支队",id:2,result :localStorage.getItem("柳州支队") || ""}, + {name:"桂林支队",id:3,result :localStorage.getItem("桂林支队") || ""}, + {name:"梧州支队",id:4,result :localStorage.getItem("梧州支队") || ""}, + {name:"北海支队",id:5,result :localStorage.getItem("北海支队") || ""}, + {name:"防城港支队",id:6,result :localStorage.getItem("防城港支队") || ""}, + {name:"钦州支队",id:7,result :localStorage.getItem("钦州支队") || ""}, + {name:"贵港支队",id:8,result :localStorage.getItem("贵港支队") || ""}, + {name:"玉林支队",id:9,result :localStorage.getItem("玉林支队") || ""}, + {name:"百色支队",id:10,result :localStorage.getItem("百色支队") || ""}, + {name:"贺州支队",id:11,result :localStorage.getItem("贺州支队") || ""}, + {name:"河池支队",id:12,result :localStorage.getItem("河池支队") || ""}, + {name:"来宾支队",id:13,result :localStorage.getItem("来宾支队") || ""}, + {name:"崇左支队",id:14,result :localStorage.getItem("崇左支队") || ""} + ] + +} diff --git a/src/app/ui/four-step-copy/four-step-copy.component.html b/src/app/ui/four-step-copy/four-step-copy.component.html new file mode 100644 index 0000000..a0d7f27 --- /dev/null +++ b/src/app/ui/four-step-copy/four-step-copy.component.html @@ -0,0 +1,78 @@ + +
+
+ + + +
+
+ 业务理论考试座位号 +
+
+
+ 序号 + {{item}} +
+
+
+
+
+
+ 请选择支队 + {{item.name}} + + +
+
+
+
+
+
+ 座位抽签结果: + {{item.result.zhi}}{{item.result.fuzhi}} +
+
+
+ +
+ +
+ +
+
+ +
{{item.name}}
+
+
+
{{item.name}}
+
+ +
+ +
+ +
+
开始抽签
+ +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/src/app/ui/four-step-copy/four-step-copy.component.scss b/src/app/ui/four-step-copy/four-step-copy.component.scss new file mode 100644 index 0000000..6ec6d71 --- /dev/null +++ b/src/app/ui/four-step-copy/four-step-copy.component.scss @@ -0,0 +1,190 @@ + + + @import "../../../assets/css/laohujistyle.css"; + .box{ + width: 100%; + height: 100%; + overflow: hidden; + background-image: url("../../../assets/images/backgroud.png"); + background-size: 100%; + overflow: hidden; + } + .head{ + width: 100%; + height: 50px; + img{ + width: 100%; + height: 100%; + } + .ziti{ + position: relative; + bottom: 70%; + left: 40%; + width: 20%; + height: 53%; + } + span{ + position: relative; + bottom: 70%; + left: 45%; + font-size: 28px; + background:linear-gradient(#ff4b27, #ff6e41); + -webkit-background-clip: text; + color: transparent; + -webkit-text-fill-color: transparent; + text-fill-color: transparent; + } + } + .mainbox { + width: 99%; + height: 90%; + padding: 0.125rem 0.125rem 0; + display: flex; + .title{ + position: absolute; + left: 27%; + top: 75px; + color: white; + font-size: 30px; + } + } + + .centerLeft{ + background-color: #FFF; + float: left; + height: 98%; + width: 100%; + position: relative; + flex-direction: column; + flex: 2%; + display: flex; + align-items:center; + box-sizing: border-box; + margin: 0 0; + .tanCenterbtn{ + width: 350px; + height: 100%; + border: 1px solid #ECEDEE; + display: flex; + flex-direction: column; + user-select: none; + background-size:100% 100%; + span{ + white-space: nowrap; + font-family: Arial; + color: #000; + z-index:99; + width: 300px; + height: 40px; + cursor:pointer; + border-bottom:1px solid #ECEDEE; + padding:8px 24px ; + text-align: center; + font-size: 24px; + } + } + } + .centerLefta{ + background-color: #FFF; + float: left; + height: 98%; + width: 100%; + position: relative; + flex-direction: column; + flex: 2%; + display: flex; + align-items:center; + box-sizing: border-box; + margin: 0 0; + .tanCenterbtna{ + width: 100px; + height: 100%; + border: 1px solid #ECEDEE; + display: flex; + flex-direction: column; + user-select: none; + background-size:100% 100%; + span{ + white-space: nowrap; + font-family: Arial; + color: #000; + z-index:99; + width: 50px; + height: 40px; + cursor:pointer; + border-bottom:1px solid #ECEDEE; + padding:8px 24px ; + text-align: center; + font-size: 24px; + } + } + } + .colum{ + height: 90%; + width: 350px; + margin-top: 72px; + display:table-cell; + vertical-align:middle; + text-align: center; + span{ + font-size: 24px; + + //padding-top: 50%; + } + } + .zhuan{ + width: 500px; + margin-left: 160px; + margin-top: 10%; + } + .stop{ + pointer-events: none; + } + .button { + height: 48px; + width: 130px; + background-color:transparent; + border-radius: 4px; + border: 1px solid #ECEDEE; + color: #FFF; + padding: 12px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + margin: 4px 2px; + cursor: pointer; + } + .chongzhi{ + position: relative; + top: 85%; + right: 23.5%; + } + + //选择后加背景色 + .beijicolor{ + background-color:#FE693E ; + } + body,ul,ol,li,p,h1,h2,h3,h4,h5,h6,form,fieldset,table,td,img,div{margin:0;padding:0;border:0;} + body{color:#333; font-size:12px;font-family:"Microsoft YaHei"} + ul,ol{list-style-type:none;} + select,input,img,select{vertical-align:middle;} + input{ font-size:12px;} + a{ text-decoration:none; color:#000;} + a:hover{color:#c00; text-decoration:none;} + .clear{clear:both;} + + /* 大转盘样式 */ + .banner{//max-height: 650px; + display: block; + width: 95%; + //max-width: 650px; + margin-left: auto; + margin-right: auto; + margin-bottom: 20px; + } + .banner .turnplate{display:block;width:100%;position:relative;} + .banner .turnplate canvas.item{width:100%;height: 100%;} + .banner .turnplate img.pointer{position:absolute;width:30.5%;height:36.5%;left:34.6%;top:28.5%;} + + \ No newline at end of file diff --git a/src/app/ui/four-step-copy/four-step-copy.component.spec.ts b/src/app/ui/four-step-copy/four-step-copy.component.spec.ts new file mode 100644 index 0000000..23d81d8 --- /dev/null +++ b/src/app/ui/four-step-copy/four-step-copy.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FourStepCopyComponent } from './four-step-copy.component'; + +describe('FourStepCopyComponent', () => { + let component: FourStepCopyComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ FourStepCopyComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(FourStepCopyComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/ui/four-step-copy/four-step-copy.component.ts b/src/app/ui/four-step-copy/four-step-copy.component.ts new file mode 100644 index 0000000..85f5f24 --- /dev/null +++ b/src/app/ui/four-step-copy/four-step-copy.component.ts @@ -0,0 +1,92 @@ +/* + * @Descripttion: + * @version: + * @Author: sueRimn + * @Date: 2020-10-18 10:23:46 + * @LastEditors: sueRimn + * @LastEditTime: 2020-10-18 11:22:51 + */ +import { Component, OnInit } from '@angular/core'; +import '../../../assets/js/fourstepcopy' +@Component({ + selector: 'app-four-step-copy', + templateUrl: './four-step-copy.component.html', + styleUrls: ['./four-step-copy.component.scss'] +}) +export class FourStepCopyComponent implements OnInit { + + constructor() { } + + sortNum = [] + ngOnInit(){ + this.sortNum = JSON.parse(localStorage.getItem("arr2")) + } + + choujiang = [ + {name:"南宁支队",id:1,result :JSON.parse(localStorage.getItem("南宁支队seatnumbercopy")) || "",seatnum:"12"}, + {name:"柳州支队",id:2,result :JSON.parse(localStorage.getItem("柳州支队seatnumbercopy")) || "",seatnum:"7"}, + {name:"桂林支队",id:3,result :JSON.parse(localStorage.getItem("桂林支队seatnumbercopy")) || "",seatnum:"1"}, + {name:"梧州支队",id:4,result :JSON.parse(localStorage.getItem("梧州支队seatnumbercopy")) || "",seatnum:"6"}, + {name:"北海支队",id:5,result :JSON.parse(localStorage.getItem("北海支队seatnumbercopy")) || "",seatnum:"11"}, + {name:"防城港支队",id:6,result :JSON.parse(localStorage.getItem("防城港支队seatnumbercopy")) || "",seatnum:"2"}, + {name:"钦州支队",id:7,result :JSON.parse(localStorage.getItem("钦州支队seatnumbercopy")) || "",seatnum:"5"}, + {name:"贵港支队",id:8,result :JSON.parse(localStorage.getItem("贵港支队seatnumbercopy")) || "",seatnum:"8"}, + {name:"玉林支队",id:9,result :JSON.parse(localStorage.getItem("玉林支队seatnumbercopy")) || "",seatnum:"14"}, + {name:"百色支队",id:10,result :JSON.parse(localStorage.getItem("百色支队seatnumbercopy")) || "",seatnum:"3"}, + {name:"贺州支队",id:11,result :JSON.parse(localStorage.getItem("贺州支队seatnumbercopy")) || "",seatnum:"9"}, + {name:"河池支队",id:12,result :JSON.parse(localStorage.getItem("河池支队seatnumbercopy")) || "",seatnum:"4"}, + {name:"来宾支队",id:13,result :JSON.parse(localStorage.getItem("来宾支队seatnumbercopy")) || "",seatnum:"10"}, + {name:"崇左支队",id:14,result :JSON.parse(localStorage.getItem("崇左支队seatnumbercopy")) || "",seatnum:"13"} + ] + numList = [ + {name:"1号",id:1}, + {name:"2号",id:2}, + {name:"3号",id:3}, + {name:"4号",id:4}, + {name:"5号",id:5}, + {name:"6号",id:6}, + {name:"7号",id:7}, + {name:"8号",id:8}, + {name:"9号",id:9}, + {name:"10号",id:10}, + {name:"11号",id:11}, + {name:"12号",id:12}, + {name:"13号",id:13}, + {name:"14号",id:14} + ] + numList2 = [ + {name:"15号",id:15}, + {name:"16号",id:16}, + {name:"17号",id:17}, + {name:"18号",id:18}, + {name:"19号",id:19}, + {name:"20号",id:20}, + {name:"21号",id:21}, + {name:"22号",id:22}, + {name:"23号",id:23}, + {name:"24号",id:24}, + {name:"25号",id:25}, + {name:"26号",id:26}, + {name:"27号",id:27}, + {name:"28号",id:28} + ] + //选中支队 + chooseid=-1 + isDraw = false + clickName(item){ + this.chooseid = item.id - 1 + localStorage.setItem("indexNum",item.id) + if(localStorage.getItem(item.name + 'seatnumbercopy')){//如果已经抽过 + this.isDraw = true + }else{ + this.isDraw = false + } + } + lookresult(){ + if(localStorage.getItem("南宁支队seatnumbercopy") && localStorage.getItem("柳州支队seatnumbercopy") && localStorage.getItem("桂林支队seatnumbercopy") && localStorage.getItem("梧州支队seatnumbercopy") && localStorage.getItem("北海支队seatnumbercopy") && localStorage.getItem("防城港支队seatnumbercopy") && localStorage.getItem("钦州支队seatnumbercopy") && localStorage.getItem("贵港支队seatnumbercopy") && localStorage.getItem("玉林支队seatnumbercopy") && localStorage.getItem("百色支队seatnumbercopy") && localStorage.getItem("贺州支队seatnumbercopy") && localStorage.getItem("河池支队seatnumbercopy") && localStorage.getItem("来宾支队seatnumbercopy") && localStorage.getItem("崇左支队seatnumbercopy")){ + window.location.href="/drawingResult"; + }else{ + alert("请全部抽完再查看结果!") + } + } +} diff --git a/src/app/ui/four-step/four-step.component.html b/src/app/ui/four-step/four-step.component.html new file mode 100644 index 0000000..bc2b541 --- /dev/null +++ b/src/app/ui/four-step/four-step.component.html @@ -0,0 +1,82 @@ + +
+
+ + + +
+
+ 指挥员能力考评座位号 +
+
+
+ 序号 + {{item}} +
+
+
+
+
+
+ 请选择支队 + {{item.name}} + + +
+
+
+
+
+
+ 座位抽签结果: + {{item.result.zhi}}{{item.result.fuzhi}} +
+
+
+ +
+ +
+ +
+
+ +
{{item.name}}
+
+
+
{{item.name}}
+
+ +
+ +
+ +
+
开始抽签
+ +
+ +
+ +
+ + + +
+
+
+ + + + \ No newline at end of file diff --git a/src/app/ui/four-step/four-step.component.scss b/src/app/ui/four-step/four-step.component.scss new file mode 100644 index 0000000..0100ec6 --- /dev/null +++ b/src/app/ui/four-step/four-step.component.scss @@ -0,0 +1,190 @@ + + + @import "../../../assets/css/laohujistyle.css"; + .box{ + width: 100%; + height: 100%; + overflow: hidden; + background-image: url("../../../assets/images/backgroud.png"); + background-size: 100%; + overflow: hidden; + } + .head{ + width: 100%; + height: 50px; + img{ + width: 100%; + height: 100%; + } + .ziti{ + position: relative; + bottom: 70%; + left: 40%; + width: 20%; + height: 53%; + } + span{ + position: relative; + bottom: 70%; + left: 45%; + font-size: 28px; + background:linear-gradient(#ff4b27, #ff6e41); + -webkit-background-clip: text; + color: transparent; + -webkit-text-fill-color: transparent; + text-fill-color: transparent; + } + } + .mainbox { + width: 99%; + height: 90%; + padding: 0.125rem 0.125rem 0; + display: flex; + .title{ + position: absolute; + left: 27%; + top: 75px; + color: white; + font-size: 30px; + } + } + .chongzhi{ + position: relative; + top: 75%; + right: 23.4%; + } + + .centerLeft{ + background-color: #FFF; + float: left; + height: 98%; + width: 100%; + position: relative; + flex-direction: column; + flex: 2%; + display: flex; + align-items:center; + box-sizing: border-box; + margin: 0 0; + .tanCenterbtn{ + width: 350px; + height: 100%; + border: 1px solid #ECEDEE; + display: flex; + flex-direction: column; + user-select: none; + background-size:100% 100%; + span{ + white-space: nowrap; + font-family: Arial; + color: #000; + z-index:99; + width: 300px; + height: 40px; + cursor:pointer; + border-bottom:1px solid #ECEDEE; + padding:8px 24px ; + text-align: center; + font-size: 24px; + } + } + } + .centerLefta{ + background-color: #FFF; + float: left; + height: 98%; + width: 100%; + position: relative; + flex-direction: column; + flex: 2%; + display: flex; + align-items:center; + box-sizing: border-box; + margin: 0 0; + .tanCenterbtna{ + width: 100px; + height: 100%; + border: 1px solid #ECEDEE; + display: flex; + flex-direction: column; + user-select: none; + background-size:100% 100%; + span{ + white-space: nowrap; + font-family: Arial; + color: #000; + z-index:99; + width: 50px; + height: 40px; + cursor:pointer; + border-bottom:1px solid #ECEDEE; + padding:8px 24px ; + text-align: center; + font-size: 24px; + } + } + } + .colum{ + height: 90%; + width: 350px; + margin-top: 72px; + display:table-cell; + vertical-align:middle; + text-align: center; + span{ + font-size: 24px; + + //padding-top: 50%; + } + } + .zhuan{ + width: 500px; + margin-left: 160px; + margin-top: 10%; + } + .stop{ + pointer-events: none; + } + .button { + height: 48px; + width: 130px; + background-color:transparent; + border-radius: 4px; + border: 1px solid #ECEDEE; + color: #FFF; + padding: 12px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + margin: 4px 2px; + cursor: pointer; + } + + //选择后加背景色 + .beijicolor{ + background-color:#FE693E ; + } + body,ul,ol,li,p,h1,h2,h3,h4,h5,h6,form,fieldset,table,td,img,div{margin:0;padding:0;border:0;} + body{color:#333; font-size:12px;font-family:"Microsoft YaHei"} + ul,ol{list-style-type:none;} + select,input,img,select{vertical-align:middle;} + input{ font-size:12px;} + a{ text-decoration:none; color:#000;} + a:hover{color:#c00; text-decoration:none;} + .clear{clear:both;} + + /* 大转盘样式 */ + .banner{//max-height: 650px; + display: block; + width: 95%; + //max-width: 650px; + margin-left: auto; + margin-right: auto; + margin-bottom: 20px; + } + .banner .turnplate{display:block;width:100%;position:relative;} + .banner .turnplate canvas.item{width:100%;height: 100%;} + .banner .turnplate img.pointer{position:absolute;width:30.5%;height:36.5%;left:34.6%;top:28.5%;} + + \ No newline at end of file diff --git a/src/app/ui/four-step/four-step.component.spec.ts b/src/app/ui/four-step/four-step.component.spec.ts new file mode 100644 index 0000000..ad67d40 --- /dev/null +++ b/src/app/ui/four-step/four-step.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FourStepComponent } from './four-step.component'; + +describe('FourStepComponent', () => { + let component: FourStepComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ FourStepComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(FourStepComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/ui/four-step/four-step.component.ts b/src/app/ui/four-step/four-step.component.ts new file mode 100644 index 0000000..8830834 --- /dev/null +++ b/src/app/ui/four-step/four-step.component.ts @@ -0,0 +1,101 @@ +/* + * @Descripttion: + * @version: + * @Author: sueRimn + * @Date: 2020-10-18 10:23:46 + * @LastEditors: sueRimn + * @LastEditTime: 2020-10-18 10:47:51 + */ +import { Component, OnInit } from '@angular/core'; +import '../../../assets/js/fourstep' +@Component({ + selector: 'app-four-step', + templateUrl: './four-step.component.html', + styleUrls: ['./four-step.component.scss'] +}) +export class FourStepComponent implements OnInit { + + constructor() { } + sortNum = [] + ngOnInit(){ + this.sortNum = JSON.parse(localStorage.getItem("arr")) + } + //支队数据和是否抽奖 + choujiang = [ + {name:"南宁支队",id:1,result :JSON.parse(localStorage.getItem("南宁支队seatnumber")) || "",seatnum:"5"}, + {name:"柳州支队",id:2,result :JSON.parse(localStorage.getItem("柳州支队seatnumber")) || "",seatnum:"10"}, + {name:"桂林支队",id:3,result :JSON.parse(localStorage.getItem("桂林支队seatnumber")) || "",seatnum:"14"}, + {name:"梧州支队",id:4,result :JSON.parse(localStorage.getItem("梧州支队seatnumber")) || "",seatnum:"3"}, + {name:"北海支队",id:5,result :JSON.parse(localStorage.getItem("北海支队seatnumber")) || "",seatnum:"8"}, + {name:"防城港支队",id:6,result :JSON.parse(localStorage.getItem("防城港支队seatnumber")) || "",seatnum:"13"}, + {name:"钦州支队",id:7,result :JSON.parse(localStorage.getItem("钦州支队seatnumber")) || "",seatnum:"6"}, + {name:"贵港支队",id:8,result :JSON.parse(localStorage.getItem("贵港支队seatnumber")) || "",seatnum:"1"}, + {name:"玉林支队",id:9,result :JSON.parse(localStorage.getItem("玉林支队seatnumber")) || "",seatnum:"7"}, + {name:"百色支队",id:10,result :JSON.parse(localStorage.getItem("百色支队seatnumber")) || "",seatnum:"12"}, + {name:"贺州支队",id:11,result :JSON.parse(localStorage.getItem("贺州支队seatnumber")) || "",seatnum:"2"}, + {name:"河池支队",id:12,result :JSON.parse(localStorage.getItem("河池支队seatnumber")) || "",seatnum:"4"}, + {name:"来宾支队",id:13,result :JSON.parse(localStorage.getItem("来宾支队seatnumber")) || "",seatnum:"9"}, + {name:"崇左支队",id:14,result :JSON.parse(localStorage.getItem("崇左支队seatnumber")) || "",seatnum:"11"} + ] + numList = [ + {name:"1号",id:1}, + {name:"2号",id:2}, + {name:"3号",id:3}, + {name:"4号",id:4}, + {name:"5号",id:5}, + {name:"6号",id:6}, + {name:"7号",id:7}, + {name:"8号",id:8}, + {name:"9号",id:9}, + {name:"10号",id:10}, + {name:"11号",id:11}, + {name:"12号",id:12}, + {name:"13号",id:13}, + {name:"14号",id:14} + ] + numList2 = [ + {name:"15号",id:15}, + {name:"16号",id:16}, + {name:"17号",id:17}, + {name:"18号",id:18}, + {name:"19号",id:19}, + {name:"20号",id:20}, + {name:"21号",id:21}, + {name:"22号",id:22}, + {name:"23号",id:23}, + {name:"24号",id:24}, + {name:"25号",id:25}, + {name:"26号",id:26}, + {name:"27号",id:27}, + {name:"28号",id:28} + ] + //选中支队 + chooseid=-1 + isDraw = false + clickName(item){ + this.chooseid = item.id - 1 + localStorage.setItem("indexNum",item.id) + if(localStorage.getItem(item.name)){//如果已经抽过 + this.isDraw = true + }else{ + this.isDraw = false + } + } + nextStep(){ + if(localStorage.getItem("南宁支队seatnumber") && localStorage.getItem("柳州支队seatnumber") && localStorage.getItem("桂林支队seatnumber") && localStorage.getItem("梧州支队seatnumber") && localStorage.getItem("北海支队seatnumber") && localStorage.getItem("防城港支队seatnumber") && localStorage.getItem("钦州支队seatnumber") && localStorage.getItem("贵港支队seatnumber") && localStorage.getItem("玉林支队seatnumber") && localStorage.getItem("百色支队seatnumber") && localStorage.getItem("贺州支队seatnumber") && localStorage.getItem("河池支队seatnumber") && localStorage.getItem("来宾支队seatnumber") && localStorage.getItem("崇左支队seatnumber")){ + window.location.href="/firstStep2"; + }else{ + alert("未全部抽完!") + } + } + lookresult(){ + if(localStorage.getItem("南宁支队seatnumber") && localStorage.getItem("柳州支队seatnumber") && localStorage.getItem("桂林支队seatnumber") && localStorage.getItem("梧州支队seatnumber") && localStorage.getItem("北海支队seatnumber") && localStorage.getItem("防城港支队seatnumber") && localStorage.getItem("钦州支队seatnumber") && localStorage.getItem("贵港支队seatnumber") && localStorage.getItem("玉林支队seatnumber") && localStorage.getItem("百色支队seatnumber") && localStorage.getItem("贺州支队seatnumber") && localStorage.getItem("河池支队seatnumber") && localStorage.getItem("来宾支队seatnumber") && localStorage.getItem("崇左支队seatnumber")){ + window.location.href="/drawingResult?type=1"; + }else{ + alert("请全部抽完再查看结果!") + } + } + lastStep(){ + window.history.back() + } +} diff --git a/src/app/ui/luck-draw/luck-draw.component.html b/src/app/ui/luck-draw/luck-draw.component.html index 7aac6aa..31c10ad 100644 --- a/src/app/ui/luck-draw/luck-draw.component.html +++ b/src/app/ui/luck-draw/luck-draw.component.html @@ -4,20 +4,22 @@ * @Author: sueRimn * @Date: 2020-09-25 08:48:50 * @LastEditors: sueRimn - * @LastEditTime: 2020-10-14 09:08:17 + * @LastEditTime: 2020-10-18 14:51:07 --> + - +
+ 指挥员能力考评场景类型抽签
-
+
序号 {{item.idnum}}
@@ -25,15 +27,15 @@
-
+
请选择支队 - {{item.name}} + {{item.name}}
-
+
抽签结果:
@@ -41,7 +43,7 @@
- @@ -61,7 +59,6 @@ - diff --git a/src/app/ui/luck-draw/luck-draw.component.scss b/src/app/ui/luck-draw/luck-draw.component.scss index ba3ccdc..97d0d1d 100644 --- a/src/app/ui/luck-draw/luck-draw.component.scss +++ b/src/app/ui/luck-draw/luck-draw.component.scss @@ -39,7 +39,13 @@ height: 90%; padding: 0.125rem 0.125rem 0; display: flex; - + .title{ + position: absolute; + left: 24%; + top: 75px; + color: white; + font-size: 30px; + } /* background-attachment: fixed; background-repeat:no-repeat; */ } diff --git a/src/app/ui/luck-draw/luck-draw.component.ts b/src/app/ui/luck-draw/luck-draw.component.ts index a2b6d94..85cf73e 100644 --- a/src/app/ui/luck-draw/luck-draw.component.ts +++ b/src/app/ui/luck-draw/luck-draw.component.ts @@ -4,12 +4,18 @@ * @Author: sueRimn * @Date: 2020-09-25 08:48:50 * @LastEditors: sueRimn - * @LastEditTime: 2020-10-13 15:49:22 + * @LastEditTime: 2020-10-18 15:06:21 */ import { Component, OnInit } from '@angular/core'; +import { from } from 'rxjs'; +//import '../../../assets/js/awardRotate' +import '../../../assets/js/zhuanpan' //import * from '../../../assets/js/awardRotate' +//import *as '../../../assets/js/zhuanpan'; -declare var zhuan:any + +//declare var zhuan:any +//declare function zhuan():any @Component({ selector: 'app-luck-draw', templateUrl: './luck-draw.component.html', @@ -21,26 +27,27 @@ export class LuckDrawComponent implements OnInit { ngOnInit(){ window.setTimeout(()=>{ - //zhuan.drawRouletteWheel() + //window.location.reload() },0) - + //console.log(this.weekArray) } + weekArray = JSON.parse(localStorage.getItem('arr')); //支队数据和是否抽奖 choujiang=[ - {name:"南宁支队",idnum:1}, - {name:"柳州支队",idnum:2}, - {name:"桂林支队",idnum:3}, - {name:"梧州支队",idnum:4}, - {name:"北海支队",idnum:5}, - {name:"防城港支队",idnum:6}, - {name:"钦州支队",idnum:7}, - {name:"贵港支队",idnum:8}, - {name:"玉林支队",idnum:9}, - {name:"百色支队",idnum:10}, - {name:"贺州支队",idnum:11}, - {name:"河池支队",idnum:12}, - {name:"来宾支队",idnum:13}, - {name:"崇左支队",idnum:14} + {name:`南宁支队(${this.weekArray[0]})`,idnum:1}, + {name:`柳州支队(${this.weekArray[1]})`,idnum:2}, + {name:`桂林支队(${this.weekArray[2]})`,idnum:3}, + {name:`梧州支队(${this.weekArray[3]})`,idnum:4}, + {name:`北海支队(${this.weekArray[4]})`,idnum:5}, + {name:`防城港支队(${this.weekArray[5]})`,idnum:6}, + {name:`钦州支队(${this.weekArray[6]})`,idnum:7}, + {name:`贵港支队(${this.weekArray[7]})`,idnum:8}, + {name:`玉林支队(${this.weekArray[8]})`,idnum:9}, + {name:`百色支队(${this.weekArray[9]})`,idnum:10}, + {name:`贺州支队(${this.weekArray[10]})`,idnum:11}, + {name:`河池支队(${this.weekArray[11]})`,idnum:12}, + {name:`来宾支队(${this.weekArray[12]})`,idnum:13}, + {name:`崇左支队(${this.weekArray[13]})`,idnum:14} ] //选中支队 chooseid=-1 @@ -58,7 +65,10 @@ export class LuckDrawComponent implements OnInit { bRotate:false //false:停止;ture:旋转 }; - + //跳转第三个页面 + nextStep(){ + window.location.href="/fourStep"; + } diff --git a/src/app/ui/reset/reset.component.html b/src/app/ui/reset/reset.component.html index ebe943e..0326b06 100644 --- a/src/app/ui/reset/reset.component.html +++ b/src/app/ui/reset/reset.component.html @@ -4,7 +4,7 @@ * @Author: sueRimn * @Date: 2020-09-25 08:48:50 * @LastEditors: sueRimn - * @LastEditTime: 2020-10-27 13:58:29 + * @LastEditTime: 2021-08-23 14:47:08 --> @@ -26,7 +26,12 @@
+<<<<<<< HEAD +======= +
+
+>>>>>>> 013e5da7c002990e9063f0e2dec8cf22e702765f @@ -23,9 +23,14 @@ + +<<<<<<< HEAD +======= + +>>>>>>> 013e5da7c002990e9063f0e2dec8cf22e702765f diff --git a/src/styles.scss b/src/styles.scss index 33b023e..a65541a 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -5,6 +5,7 @@ html,body{ height: 100%; margin:0 auto; padding:0; + overflow: hidden; } 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;