diff --git a/package-lock.json b/package-lock.json index 1382c9c..381bb38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4874,7 +4874,7 @@ }, "ascli": { "version": "1.0.1", - "resolved": "https://registry.nlark.com/ascli/download/ascli-1.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/ascli/download/ascli-1.0.1.tgz", "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=", "requires": { "colour": "~0.7.1", @@ -5516,7 +5516,7 @@ "dependencies": { "long": { "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/long/download/long-3.2.0.tgz?cache=0&sync_timestamp=1635674102680&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Flong%2Fdownload%2Flong-3.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/long/download/long-3.2.0.tgz", "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=" } } @@ -5936,7 +5936,7 @@ }, "colour": { "version": "0.7.1", - "resolved": "https://registry.nlark.com/colour/download/colour-0.7.1.tgz", + "resolved": "https://registry.npm.taobao.org/colour/download/colour-0.7.1.tgz", "integrity": "sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g=" }, "combined-stream": { @@ -8226,7 +8226,7 @@ }, "grpc": { "version": "1.24.2", - "resolved": "https://registry.npmmirror.com/grpc/download/grpc-1.24.2.tgz", + "resolved": "https://registry.npm.taobao.org/grpc/download/grpc-1.24.2.tgz", "integrity": "sha1-dtBHv6ewW2B8u+OruZBl3O/gwJk=", "requires": { "@types/bytebuffer": "^5.0.40", @@ -8271,7 +8271,7 @@ }, "camelcase": { "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-2.1.1.tgz?cache=0&sync_timestamp=1636945122112&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-2.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" }, "chownr": { @@ -8280,7 +8280,7 @@ }, "cliui": { "version": "3.2.0", - "resolved": "https://registry.nlark.com/cliui/download/cliui-3.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz?cache=0&sync_timestamp=1573943458671&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { "string-width": "^1.0.1", @@ -8396,7 +8396,7 @@ }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.nlark.com/invert-kv/download/invert-kv-1.0.0.tgz?cache=0&sync_timestamp=1630996775723&other_urls=https%3A%2F%2Fregistry.nlark.com%2Finvert-kv%2Fdownload%2Finvert-kv-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "is-fullwidth-code-point": { @@ -8537,7 +8537,7 @@ }, "os-locale": { "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/os-locale/download/os-locale-1.4.0.tgz?cache=0&sync_timestamp=1633618260196&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fos-locale%2Fdownload%2Fos-locale-1.4.0.tgz", + "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "requires": { "lcid": "^1.0.0" @@ -8565,7 +8565,7 @@ }, "protobufjs": { "version": "5.0.3", - "resolved": "https://registry.nlark.com/protobufjs/download/protobufjs-5.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/protobufjs/download/protobufjs-5.0.3.tgz", "integrity": "sha1-5N/p+2fJCyYw0VhoJJvMSWFGehc=", "requires": { "ascli": "~1", @@ -8694,7 +8694,7 @@ }, "yargs": { "version": "3.32.0", - "resolved": "https://registry.npmmirror.com/yargs/download/yargs-3.32.0.tgz", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-3.32.0.tgz?cache=0&sync_timestamp=1577940861093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-3.32.0.tgz", "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", "requires": { "camelcase": "^2.0.1", @@ -10875,7 +10875,7 @@ }, "lodash.clone": { "version": "4.5.0", - "resolved": "https://registry.nlark.com/lodash.clone/download/lodash.clone-4.5.0.tgz", + "resolved": "https://registry.npm.taobao.org/lodash.clone/download/lodash.clone-4.5.0.tgz", "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=" }, "lodash.clonedeep": { @@ -12053,7 +12053,7 @@ }, "optjs": { "version": "3.2.2", - "resolved": "https://registry.nlark.com/optjs/download/optjs-3.2.2.tgz", + "resolved": "https://registry.npm.taobao.org/optjs/download/optjs-3.2.2.tgz", "integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=" }, "ora": { diff --git a/src/app/babylon/controller/mode-manager.ts b/src/app/babylon/controller/mode-manager.ts index 92eb799..5038bc5 100644 --- a/src/app/babylon/controller/mode-manager.ts +++ b/src/app/babylon/controller/mode-manager.ts @@ -23,7 +23,7 @@ export class ModeManager { /** * 制作模式代表内部编辑人员,可新增单位、上传模型,查看模式代表交付的模式 */ - public static s_isMakeMode = true; + public static s_isMakeMode = false; /** * 调试模式 diff --git a/src/app/babylon/model/data/mark/mark-plan-data.ts b/src/app/babylon/model/data/mark/mark-plan-data.ts index 358dc28..916cf31 100644 --- a/src/app/babylon/model/data/mark/mark-plan-data.ts +++ b/src/app/babylon/model/data/mark/mark-plan-data.ts @@ -354,6 +354,7 @@ export class MarkNodeData { /** * 获取展示此节点所需要完整时间 + * 最短3秒 */ getShowTime() { let textNum = 0; @@ -361,9 +362,16 @@ export class MarkNodeData { textNum = this.describe.length; } - let timeScale = 1; + let timeScale = 0.3; - return textNum * timeScale; + let minTime = 3; //最短停留时间 + + let result = textNum * timeScale; + if (result < minTime) { + result = minTime; + } + + return result; } } diff --git a/src/app/babylon/view/mark-window/mark-window.ts b/src/app/babylon/view/mark-window/mark-window.ts index 9e295f4..e7b6907 100644 --- a/src/app/babylon/view/mark-window/mark-window.ts +++ b/src/app/babylon/view/mark-window/mark-window.ts @@ -9,6 +9,7 @@ import { Event_GetAllMarkPlanData } from "../../controller/event-manager/events/ import { Event_KeyboardInput } from "../../controller/event-manager/events/event-keyboard-input"; import { Event_MarkInfoChange, MarkInfoChangeType } from "../../controller/event-manager/events/event-mark-info-change"; import { InputController } from "../../controller/inputController"; +import { ModeManager } from "../../controller/mode-manager"; import { SceneManager } from "../../controller/scene-manager"; import { BuildingStatus } from "../../controller/status/building-status"; import { IndoorStatus } from "../../controller/status/indoor-status"; @@ -149,6 +150,7 @@ export class MarkWindow extends UIBase { instance.onUpdateShow(); }) + } diff --git a/src/app/pages/criminal-records-admin/criminal-records-admin.component.html b/src/app/pages/criminal-records-admin/criminal-records-admin.component.html index 03256b2..a028105 100644 --- a/src/app/pages/criminal-records-admin/criminal-records-admin.component.html +++ b/src/app/pages/criminal-records-admin/criminal-records-admin.component.html @@ -110,7 +110,7 @@
预警类型
-
+
所属公司
@@ -119,7 +119,7 @@
-
+
加油站
@@ -128,6 +128,9 @@
预警时间
+
+ 状态 +
操作
@@ -153,7 +156,7 @@
{{item.violation.violationType}}
-
+
{{item.gasStation.companyName}}
@@ -162,7 +165,7 @@
-
+
{{item.gasStation.stationName}}
@@ -171,6 +174,10 @@
{{item.violateTime | date:"yyyy-MM-dd HH:mm:ss"}}
+
+ 已处置 + 未处置 +
查看
diff --git a/src/app/pages/criminal-records-admin/criminal-records-admin.component.ts b/src/app/pages/criminal-records-admin/criminal-records-admin.component.ts index d76adf5..f61f796 100644 --- a/src/app/pages/criminal-records-admin/criminal-records-admin.component.ts +++ b/src/app/pages/criminal-records-admin/criminal-records-admin.component.ts @@ -146,7 +146,7 @@ export class CriminalRecordsAdminComponent implements OnInit { left: '42px', right: '30px', bottom: '38px', - top: '60px' + top: '80px' } }; baroption2 = { diff --git a/src/app/pages/criminal-records/criminal-records.component.html b/src/app/pages/criminal-records/criminal-records.component.html index a10f121..847128d 100644 --- a/src/app/pages/criminal-records/criminal-records.component.html +++ b/src/app/pages/criminal-records/criminal-records.component.html @@ -106,10 +106,10 @@
预警级别
-
+
预警类型
-
+
预警信息
@@ -118,6 +118,9 @@
预警时间
+
+ 状态 +
操作
@@ -140,10 +143,10 @@ Ⅲ级 Ⅳ级
-
+
{{item.violation.violationType}}
-
+
{{item.violation.violationName}}
@@ -152,6 +155,10 @@
{{item.violateTime | date:"yyyy-MM-dd HH:mm:ss"}}
+
+ 已处置 + 未处置 +
查看
diff --git a/src/app/pages/criminal-records/criminal-records.component.ts b/src/app/pages/criminal-records/criminal-records.component.ts index b9c18f2..e3c2425 100644 --- a/src/app/pages/criminal-records/criminal-records.component.ts +++ b/src/app/pages/criminal-records/criminal-records.component.ts @@ -143,7 +143,7 @@ export class CriminalRecordsComponent implements OnInit { left: '42px', right: '30px', bottom: '38px', - top: '60px' + top: '80px' } }; baroption2 = { diff --git a/src/app/pages/disposition/disposition.component.html b/src/app/pages/disposition/disposition.component.html new file mode 100644 index 0000000..152f821 --- /dev/null +++ b/src/app/pages/disposition/disposition.component.html @@ -0,0 +1,21 @@ +
+
+
+ 处置 +
+ +
+
+

处置内容

+ + + + + +

处置人: {{peopleName}}

+
+ + +
+
+
\ No newline at end of file diff --git a/src/app/pages/disposition/disposition.component.scss b/src/app/pages/disposition/disposition.component.scss new file mode 100644 index 0000000..b616fdb --- /dev/null +++ b/src/app/pages/disposition/disposition.component.scss @@ -0,0 +1,85 @@ +.box { + .title { + font-family: sybold; + width: 100%; + height: 48px; + background: linear-gradient(270deg, rgba(35, 153, 255, 0) 0%, rgba(35, 153, 255, 0.57) 50%, rgba(35, 153, 255, 0) 100%); + display: flex; + align-items: center; + position: relative; + + .titlecontent { + width: 100%; + height: 32px; + line-height: 32px; + background: linear-gradient(270deg, rgba(35, 153, 255, 0) 0%, rgba(35, 153, 255, 0.57) 50%, rgba(35, 153, 255, 0) 100%); + text-align: center; + color: #91CCFF; + font-size: 16px; + } + + i { + position: absolute; + right: 12px; + color: #fff; + font-size: 18px; + cursor: pointer; + } + } + + .form { + box-sizing: border-box; + padding: 0 17px; + + p { + margin-bottom: 0; + color: #C4E2FC; + margin: 16px 0; + } + + nz-form-item { + margin-bottom: 0; + + textarea { + color: rgba(145, 204, 255, 0.95) !important; + width: 100%; + height: 300px; + background: #173d60; + } + } + + nz-date-picker { + background-color: #143c61; + width: 100%; + } + + .btnbox { + width: 100%; + margin-top: 24px; + margin-bottom: 17px; + display: flex; + justify-content: flex-end; + + button { + border-radius: 0px; + color: #91CCFF; + } + + button:nth-child(2) { + margin-left: 16px; + } + + .ok { + background: rgba(0, 129, 255, 0.4); + } + + .cancel { + border: 1px solid #C4E2FC; + background: #0c1e38; + color: rgba(99, 102, 105, 0.6); + box-shadow: 0 0 3px 0 #fff inset; + } + } + } + +} diff --git a/src/app/pages/disposition/disposition.component.ts b/src/app/pages/disposition/disposition.component.ts new file mode 100644 index 0000000..93ec6b3 --- /dev/null +++ b/src/app/pages/disposition/disposition.component.ts @@ -0,0 +1,33 @@ +import { Component, OnInit } from '@angular/core'; +import { NzModalRef } from 'ng-zorro-antd/modal'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +@Component({ + selector: 'app-disposition', + templateUrl: './disposition.component.html', + styleUrls: ['./disposition.component.scss'] +}) +export class DispositionComponent implements OnInit { + validateForm!: FormGroup; + constructor(private modal: NzModalRef, private fb: FormBuilder) { } + + + peopleName:string + + ngOnInit(): void { + if(sessionStorage.getItem('isGasStation') == 'true'){ + this.peopleName = JSON.parse(sessionStorage.getItem('userdataOfgasstation')).name + }else{ + this.peopleName = JSON.parse(sessionStorage.getItem('userdata')).name + } + + this.validateForm = this.fb.group({ + content: [null, [Validators.required]] + }); + } + destroyModal(){ + this.modal.destroy(); + } + ok(){ + this.modal.triggerOk() + } +} diff --git a/src/app/pages/home/home.component.html b/src/app/pages/home/home.component.html index 46dc0cf..47eef40 100644 --- a/src/app/pages/home/home.component.html +++ b/src/app/pages/home/home.component.html @@ -59,4 +59,24 @@
-
\ No newline at end of file +
+ + +
+
+ +
+
+ 您有一条新的预警提醒! + {{item.id}} +
+
+
+
+ 查看 +
+
+ 忽略 +
+
+
\ No newline at end of file diff --git a/src/app/pages/home/home.component.ts b/src/app/pages/home/home.component.ts index a08734d..5d71b06 100644 --- a/src/app/pages/home/home.component.ts +++ b/src/app/pages/home/home.component.ts @@ -1,14 +1,14 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, ViewChild, TemplateRef } from '@angular/core'; import { Router, NavigationEnd, ActivatedRoute } from '@angular/router'; import { Title } from '@angular/platform-browser' import { filter } from 'rxjs/operators'; -import { NavChangeService } from 'src/app/service/navChange.service'; +import { NavChangeService } from '../../service/navChange.service'; import { CacheTokenService } from '../../service/cache-token.service' //引入服务 import { CookieService } from 'ngx-cookie-service'; import { NzMessageService } from 'ng-zorro-antd/message'; import { SignalRAspNetCoreHelper } from '../../../shared/helpers/SignalRAspNetCoreHelper'; - - +import { NzNotificationService } from 'ng-zorro-antd/notification'; +declare var abp: any @Component({ selector: 'app-home', @@ -16,9 +16,10 @@ import { SignalRAspNetCoreHelper } from '../../../shared/helpers/SignalRAspNetCo styleUrls: ['./home.component.scss'] }) export class HomeComponent implements OnInit { - + @ViewChild('warning', { static: false }) template?: TemplateRef<{}>; constructor(private router: Router, private navChangeService: NavChangeService, public token: CacheTokenService, - private cookieService: CookieService, private message: NzMessageService) { } + private cookieService: CookieService, private message: NzMessageService, private notificationService: NzNotificationService) { } + isGasStationNav: boolean isGasStation: boolean isGasStationBack: boolean @@ -78,13 +79,39 @@ export class HomeComponent implements OnInit { this.userName = JSON.parse(sessionStorage.getItem('userdata')).userName } + + + } + ngAfterViewInit() { SignalRAspNetCoreHelper.initSignalR(); - abp.event.on('abp.notifications.received', function (userNotification) { - console.log('abp.notifications.received成功收到了哈哈哈', userNotification); + abp.event.on('abp.notifications.received', (userNotification) => { + console.log('abp.notifications.received收到通知', userNotification); + this.receiptOfNotification(userNotification) }); + } + messageId=[] + receiptOfNotification(userNotification) { + let obj = { + id:'xxx', + messageId:this.notificationService.template(this.template!, {nzPlacement: 'bottomRight', nzClass: 'receiptOfNotification', nzDuration: 0, nzData: userNotification}).messageId + } + this.messageId.push(obj) + console.log(99999,this.messageId) + } + + close(item){ + this.messageId.forEach((element)=>{ + if(element.id == 'xxx'){ + this.notificationService.remove(element.messageId) + } + }) } + + ngOnDestroy() { + abp.signalr.disconnect() + } //获得时间 time: string diff --git a/src/app/pages/login/login.component.html b/src/app/pages/login/login.component.html index ce7ecf1..5fc7bb9 100644 --- a/src/app/pages/login/login.component.html +++ b/src/app/pages/login/login.component.html @@ -61,18 +61,3 @@
- -
-
- -
-
- 您有一条新的预警提醒! - 这是详细描述这是详细描述这是详细描述... -
-
-
- - -
-
diff --git a/src/app/pages/login/login.component.ts b/src/app/pages/login/login.component.ts index 1fc96cf..7a6b72d 100644 --- a/src/app/pages/login/login.component.ts +++ b/src/app/pages/login/login.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, AfterViewInit, ViewChild, TemplateRef } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { HttpClient } from '@angular/common/http' import { Router, ActivatedRoute } from '@angular/router' import { CacheTokenService } from '../../service/cache-token.service'//引入服务 @@ -18,7 +18,6 @@ declare var abp: any export class LoginComponent implements OnInit { validateForm!: FormGroup; - @ViewChild(TemplateRef, { static: false }) template?: TemplateRef<{}>; constructor(private http: HttpClient, private router: Router, private route: ActivatedRoute, public token: CacheTokenService, private cookieService: CookieService, private fb: FormBuilder, private message: NzMessageService, private notificationService: NzNotificationService) { } ngOnInit() { @@ -149,10 +148,6 @@ export class LoginComponent implements OnInit { ) } - receiptOfNotification() { - this.notificationService.template(this.template!, { nzPlacement: 'bottomRight', nzClass: 'receiptOfNotification', nzDuration: 0 }); - } - roleList = [ '管理员', '职工' ] diff --git a/src/app/pages/pages.module.ts b/src/app/pages/pages.module.ts index e176876..b50b995 100644 --- a/src/app/pages/pages.module.ts +++ b/src/app/pages/pages.module.ts @@ -49,11 +49,12 @@ import { NzTreeSelectModule } from 'ng-zorro-antd/tree-select'; import { PlanAdminComponent } from './plan-admin/plan-admin.component'; import { GetOutOfLineDetailsComponent } from './today-warning/get-out-of-line-details/get-out-of-line-details.component'; import { NzNotificationModule } from 'ng-zorro-antd/notification'; +import { DispositionComponent } from './disposition/disposition.component'; @NgModule({ declarations: [LoginComponent, RegisterComponent, HomeComponent, PlanComponent, TodayWarningComponent, CriminalRecordsComponent, TodayWarningAdminComponent, CriminalRecordsAdminComponent, LeftDomainComponent, EquipmentInfoComponent, OilStationInfoComponent, - AddequipmentComponent, EditequipmentComponent,PlanAdminComponent, GetOutOfLineDetailsComponent], + AddequipmentComponent, EditequipmentComponent,PlanAdminComponent, GetOutOfLineDetailsComponent, DispositionComponent], imports: [ @@ -94,7 +95,7 @@ import { NzNotificationModule } from 'ng-zorro-antd/notification'; NzPopconfirmModule, NzBadgeModule ], - entryComponents: [AddequipmentComponent, EditequipmentComponent,GetOutOfLineDetailsComponent], + entryComponents: [AddequipmentComponent, EditequipmentComponent,GetOutOfLineDetailsComponent,DispositionComponent], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) diff --git a/src/app/pages/plan-admin/plan-admin.component.html b/src/app/pages/plan-admin/plan-admin.component.html index e30c6b0..97fec22 100644 --- a/src/app/pages/plan-admin/plan-admin.component.html +++ b/src/app/pages/plan-admin/plan-admin.component.html @@ -5,9 +5,9 @@
- + @@ -52,10 +52,12 @@
- + - 加油站名称 + + 加油站名称 区域 所属公司 联系人 @@ -70,7 +72,9 @@ - {{item.stationName}} + + {{item.stationName}} {{item.locationName}} {{item.companyName}} {{item.leaderName}} @@ -88,7 +92,7 @@ -
-
+
\ No newline at end of file diff --git a/src/app/pages/plan-admin/plan-admin.component.ts b/src/app/pages/plan-admin/plan-admin.component.ts index 8024f77..eea8d3c 100644 --- a/src/app/pages/plan-admin/plan-admin.component.ts +++ b/src/app/pages/plan-admin/plan-admin.component.ts @@ -181,7 +181,6 @@ export class PlanAdminComponent implements OnInit { // this.list = this.list.concat(data.result.items); this.list = [...data.result.items] resolve(data) - // console.log(999999, data) }) }) } diff --git a/src/app/pages/plan/plan.component.ts b/src/app/pages/plan/plan.component.ts index 96ad152..2a6fde8 100644 --- a/src/app/pages/plan/plan.component.ts +++ b/src/app/pages/plan/plan.component.ts @@ -356,8 +356,8 @@ export class PlanComponent implements OnInit { publicToggleNode() { return new Promise((resolve, reject) => { this.beforePlanNode = this.beforeEmergencyPlan.nodes[this.nzCurrent] - this.isShowChildComponent && this.leftDomain? this.leftDomain.selectPlanId = this.beforeEmergencyPlan.id : null - this.isShowChildComponent && this.leftDomain? this.leftDomain.selectNodeId = this.beforePlanNode.id : null + this.isShowChildComponent && this.leftDomain ? this.leftDomain.selectPlanId = this.beforeEmergencyPlan.id : null + this.isShowChildComponent && this.leftDomain ? this.leftDomain.selectNodeId = this.beforePlanNode.id : null MarkWindow.instance.selectMarkNode(this.beforeEmergencyPlan.id, this.beforePlanNode.id, false, true) this.beforePlanNode = MarkWindow.instance.currentMarkNodeInfo.nodeData this.updateProgress() //更新进度条 @@ -369,10 +369,10 @@ export class PlanComponent implements OnInit { selectChildNode(item: MarkPlanData) { if (this.isShowChildComponent && this.leftDomain) { if (item.nodes.length) { - this.updateTimer? window.clearTimeout(this.updateTimer) : null //清除定时器 + this.updateTimer ? window.clearTimeout(this.updateTimer) : null //清除定时器 this.nzCurrent = 0 this.beforeEmergencyPlan = item - this.updateProgressList().then(res=>{ + this.updateProgressList().then(res => { this.publicToggleNode() }) } else { @@ -385,7 +385,7 @@ export class PlanComponent implements OnInit { updateProgressList() { return new Promise((resolve, reject) => { this.progressList = [] - this.beforeEmergencyPlan.nodes.forEach(item=>{ this.progressList.push(0) }) + this.beforeEmergencyPlan.nodes.forEach(item => { this.progressList.push(0) }) resolve(true) }) } @@ -395,14 +395,14 @@ export class PlanComponent implements OnInit { if (this.progressList[this.nzCurrent] >= 100) { this.progressList[this.nzCurrent] = 100 window.clearTimeout(this.updateTimer) //清除定时器 - !this.isSuspend? this.autoPlay() : null + !this.isSuspend ? this.autoPlay() : null return } let time: number = this.beforePlanNode.getShowTime() || 1 - this.updateTimer = window.setTimeout(()=>{ + this.updateTimer = window.setTimeout(() => { this.progressList[this.nzCurrent] = this.progressList[this.nzCurrent] + Number((100 / time).toFixed(2)) / 10 this.updateProgress() - },100) + }, 100) } //自动播放-切换接点 @@ -416,14 +416,14 @@ export class PlanComponent implements OnInit { } //切换预案节点 - changePlanNode(event){ + changePlanNode(event) { if (this.progressList.length != this.beforeEmergencyPlan.nodes.length) { this.updateProgressList() } - this.updateTimer? window.clearTimeout(this.updateTimer) : null //清除定时器 + this.updateTimer ? window.clearTimeout(this.updateTimer) : null //清除定时器 this.isSuspend = true //暂停 this.nzCurrent = event - this.progressList.forEach((item,index)=>{ index >= this.nzCurrent? this.progressList[index] = 0 : this.progressList[index] = 100 }) + this.progressList.forEach((item, index) => { index >= this.nzCurrent ? this.progressList[index] = 0 : this.progressList[index] = 100 }) this.publicToggleNode() } @@ -440,9 +440,9 @@ export class PlanComponent implements OnInit { if (this.progressList.length != this.beforeEmergencyPlan.nodes.length) { this.updateProgressList() } - this.updateTimer? window.clearTimeout(this.updateTimer) : null //清除定时器 + this.updateTimer ? window.clearTimeout(this.updateTimer) : null //清除定时器 this.nzCurrent = this.nzCurrent - 1 - this.progressList.forEach((item,index)=>{ index >= this.nzCurrent? this.progressList[index] = 0 : this.progressList[index] = 100 }) + this.progressList.forEach((item, index) => { index >= this.nzCurrent ? this.progressList[index] = 0 : this.progressList[index] = 100 }) this.publicToggleNode() } @@ -456,13 +456,13 @@ export class PlanComponent implements OnInit { this.updateProgressList() } this.isSuspend = isSuspend - let msg: string = this.isSuspend? "目前已暂停" : "目前已开始播放" + let msg: string = this.isSuspend ? "目前已暂停" : "目前已开始播放" this.message.info(msg); if (this.isSuspend) { //暂停 window.clearTimeout(this.updateTimer) //清除定时器 } else { //开启 - this.updateTimer? window.clearTimeout(this.updateTimer) : null //清除定时器 - this.progressList.forEach((item,index)=>{ index > this.nzCurrent? this.progressList[index] = 0 : null }) + this.updateTimer ? window.clearTimeout(this.updateTimer) : null //清除定时器 + this.progressList.forEach((item, index) => { index > this.nzCurrent ? this.progressList[index] = 0 : null }) this.updateProgress() } } @@ -473,8 +473,8 @@ export class PlanComponent implements OnInit { this.message.info('请选择节点'); return } - this.updateTimer? window.clearTimeout(this.updateTimer) : null //清除定时器 - this.updateProgressList().then(res=>{ + this.updateTimer ? window.clearTimeout(this.updateTimer) : null //清除定时器 + this.updateProgressList().then(res => { this.nzCurrent = 0 this.publicToggleNode() }) @@ -493,16 +493,16 @@ export class PlanComponent implements OnInit { if (this.progressList.length != this.beforeEmergencyPlan.nodes.length) { this.updateProgressList() } - this.updateTimer? window.clearTimeout(this.updateTimer) : null //清除定时器 + this.updateTimer ? window.clearTimeout(this.updateTimer) : null //清除定时器 this.nzCurrent = this.nzCurrent + 1 - this.progressList.forEach((item,index)=>{ index >= this.nzCurrent? this.progressList[index] = 0 : this.progressList[index] = 100 }) + this.progressList.forEach((item, index) => { index >= this.nzCurrent ? this.progressList[index] = 0 : this.progressList[index] = 100 }) this.publicToggleNode() } //获取进度条 flex分布 - getProgressFlex(e: MarkNodeData):string { + getProgressFlex(e: MarkNodeData): string { let length: number = 0 - this.beforeEmergencyPlan.nodes.forEach(item=>{ + this.beforeEmergencyPlan.nodes.forEach(item => { length = length + (item.getShowTime() || 1) }) let percentage: number = (e.getShowTime() || 1) / length @@ -674,42 +674,33 @@ export class taskDialog { //设备任务list export class taskList { character: any[] = [ - { taskName: "外部控火" }, - { taskName: "内部控火" }, - { taskName: "外部侦察" }, - { taskName: "内部侦察" }, - { taskName: "外部观察" }, - { taskName: "外部疏散救生" }, - { taskName: "询问知情人" }, - { taskName: "占领消控室" }, - { taskName: "水源引导" }, - { taskName: "断电气" }, + { taskName: "加油" }, + { taskName: "卸油" }, + { taskName: "按下紧急切断按钮" }, + { taskName: "呼喊示警" }, + { taskName: "停止加油" }, + { taskName: "关闭泄油阀" }, + { taskName: "指挥疏通撤离" }, + { taskName: "向运营、QHSE报告" }, + { taskName: "撤离" }, + { taskName: "119报警" }, + { taskName: "110报警" }, + { taskName: "120报警" }, + { taskName: "使用灭火毯" }, + { taskName: "使用灭火器" }, { taskName: "灭火" }, - { taskName: "掩护" }, - { taskName: "警戒" }, - { taskName: "破拆" }, - { taskName: "排烟" }, - { taskName: "照明" }, - { taskName: "通信" }, + { taskName: "协助灭火" }, + { taskName: "确认安全" }, + { taskName: "保持冷静" }, { taskName: "待命" }, ]; car: any[] = [ - { taskName: "内攻" }, - { taskName: "出枪掩护" }, - { taskName: "出枪冷却" }, - { taskName: "出枪灭火" }, - { taskName: "供水" }, - { taskName: "供泡沫" }, - { taskName: "连接消火栓" }, - { taskName: "遥控水炮冷却" }, - { taskName: "遥控水炮灭火" }, - { taskName: "抢险救援" }, - { taskName: "救人" }, - { taskName: "指挥" }, - { taskName: "排烟" }, - { taskName: "提供器材" }, - { taskName: "照明" }, - { taskName: "供电" }, + { taskName: "加油" }, + { taskName: "停止加油" }, + { taskName: "灭火" }, + { taskName: "逃逸" }, + { taskName: "撤离" }, + { taskName: "损毁" }, { taskName: "待命" }, ] firemonitor: any[] = [ diff --git a/src/app/pages/today-warning-admin/today-warning-admin.component.html b/src/app/pages/today-warning-admin/today-warning-admin.component.html index 28baa97..819d8a0 100644 --- a/src/app/pages/today-warning-admin/today-warning-admin.component.html +++ b/src/app/pages/today-warning-admin/today-warning-admin.component.html @@ -164,8 +164,9 @@ {{item.violateTime | date:"yyyy-MM-dd HH:mm:ss"}}
- - + + + 已处置
diff --git a/src/app/pages/today-warning-admin/today-warning-admin.component.scss b/src/app/pages/today-warning-admin/today-warning-admin.component.scss index 1f23f6d..e8ae4c0 100644 --- a/src/app/pages/today-warning-admin/today-warning-admin.component.scss +++ b/src/app/pages/today-warning-admin/today-warning-admin.component.scss @@ -95,7 +95,7 @@ background: linear-gradient(180deg, rgba(3, 0, 0, 0) 0%, rgba(0, 46, 91, 0.68) 100%); box-sizing: border-box; padding-left: 20px; - + padding-right: 60px; div { font-size: 15px; text-align: left; diff --git a/src/app/pages/today-warning-admin/today-warning-admin.component.ts b/src/app/pages/today-warning-admin/today-warning-admin.component.ts index 5ddb301..d6dcbda 100644 --- a/src/app/pages/today-warning-admin/today-warning-admin.component.ts +++ b/src/app/pages/today-warning-admin/today-warning-admin.component.ts @@ -2,15 +2,19 @@ import { Component, OnInit, ViewContainerRef } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { Router } from '@angular/router'; import { HttpClient } from '@angular/common/http'; -import { TreeService } from 'src/app/service/tree.service'; + import { NzModalService } from 'ng-zorro-antd/modal'; import { GetOutOfLineDetailsComponent } from '../today-warning/get-out-of-line-details/get-out-of-line-details.component'; import * as moment from 'moment'; -import { NavChangeService } from 'src/app/service/navChange.service'; +// import { TreeService } from 'src/app/service/tree.service'; +// import { NavChangeService } from 'src/app/service/navChange.service'; +import { TreeService } from '../../service/tree.service'; +import { NavChangeService } from '../../service/navChange.service'; import 'linqjs'; - +import { DispositionComponent } from '../disposition/disposition.component'; +import { NzMessageService } from 'ng-zorro-antd/message'; @Component({ selector: 'app-today-warning-admin', @@ -20,7 +24,7 @@ import 'linqjs'; export class TodayWarningAdminComponent implements OnInit { validateForm!: FormGroup; - constructor(private http: HttpClient, private fb: FormBuilder, private router: Router, private toTree: TreeService, private modal: NzModalService, private viewContainerRef: ViewContainerRef, private navChangeService: NavChangeService) { } + constructor(private http: HttpClient, private fb: FormBuilder, private router: Router, private toTree: TreeService, private modal: NzModalService, private viewContainerRef: ViewContainerRef, private navChangeService: NavChangeService, private message: NzMessageService) { } ngOnInit(): void { this.validateForm = this.fb.group({ @@ -105,6 +109,8 @@ export class TodayWarningAdminComponent implements OnInit { ViolateArea: this.validateForm.value.area, organizationUnitId: this.validateForm.value.organization, ViolateTime: (this.validateForm.value.datePickerEnd && this.validateForm.value.datePickerStart) ? [moment(this.validateForm.value.datePickerStart).format('yyyy-MM-DD HH:mm:ss'), moment(this.validateForm.value.datePickerEnd).format('yyyy-MM-DD HH:mm:ss')] : null, + // ViolateTime: ['2021-10-27', '2021-11-26'], + IsContainsChildren: 'true', SkipCount: '0', MaxResultCount: '9999' } @@ -155,6 +161,12 @@ export class TodayWarningAdminComponent implements OnInit { look(item) { + let type + if (item.violation.violationType.indexOf('卸油')) { + type = 1 + } else { + type = 0 + } const modal = this.modal.create({ nzContent: GetOutOfLineDetailsComponent, nzViewContainerRef: this.viewContainerRef, @@ -167,7 +179,8 @@ export class TodayWarningAdminComponent implements OnInit { 'background': '#000D21', }, nzComponentParams: { - data: item + data: item, + type: type }, nzFooter: null, nzOnOk: async () => { @@ -176,4 +189,43 @@ export class TodayWarningAdminComponent implements OnInit { }); const instance = modal.getContentComponent(); } + + dispose(item) { + console.log(item) + const modal = this.modal.create({ + nzContent: DispositionComponent, + nzViewContainerRef: this.viewContainerRef, + nzWidth: 380, + nzBodyStyle: { + 'border': '1px solid #91CCFF', + 'border-radius': '0px', + 'padding': '7px', + 'box-shadow': '0 0 8px 0 #fff', + 'background-image': 'linear-gradient(#003665, #000f25)' + }, + nzComponentParams: {}, + nzFooter: null, + nzClosable: false, + nzOnOk: async () => { + if (instance.validateForm.valid) { + await new Promise(resolve => { + let body = { + id: item.id, + handleRecord: instance.validateForm.value.content + } + this.http.post('/api/services/app/ViolateRecord/HandleViolateRecord', body).subscribe(data => { + resolve(data) + this.message.create('success', '处置成功!'); + item.handleTime = new Date() + return true + }) + }) + } else { + this.message.create('warning', '请填写完整!'); + return false + } + }, + }); + const instance = modal.getContentComponent(); + } } diff --git a/src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.html b/src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.html index eb1904f..1124d5e 100644 --- a/src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.html +++ b/src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.html @@ -19,7 +19,7 @@
-
+
+ + + 已处置
diff --git a/src/app/pages/today-warning/today-warning.component.scss b/src/app/pages/today-warning/today-warning.component.scss index 1707ad9..78a2db0 100644 --- a/src/app/pages/today-warning/today-warning.component.scss +++ b/src/app/pages/today-warning/today-warning.component.scss @@ -88,7 +88,7 @@ margin-bottom: 12px; background: linear-gradient(180deg, rgba(3, 0, 0, 0) 0%, rgba(0, 46, 91, 0.68) 100%); box-sizing: border-box; - padding-right: 36px; + padding-right: 60px; div { font-size: 15px; text-align: center; diff --git a/src/app/pages/today-warning/today-warning.component.ts b/src/app/pages/today-warning/today-warning.component.ts index e4c0bfe..be2c796 100644 --- a/src/app/pages/today-warning/today-warning.component.ts +++ b/src/app/pages/today-warning/today-warning.component.ts @@ -3,9 +3,13 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { HttpClient } from '@angular/common/http'; import { NzModalService } from 'ng-zorro-antd/modal'; import { GetOutOfLineDetailsComponent } from './get-out-of-line-details/get-out-of-line-details.component'; -import { TreeService } from 'src/app/service/tree.service'; -import { NavChangeService } from 'src/app/service/navChange.service'; +// import { TreeService } from 'src/app/service/tree.service'; +// import { NavChangeService } from 'src/app/service/navChange.service'; +import { TreeService } from '../../service/tree.service'; +import { NavChangeService } from '../../service/navChange.service'; import * as moment from 'moment'; +import { DispositionComponent } from '../disposition/disposition.component'; +import { NzMessageService } from 'ng-zorro-antd/message'; @Component({ selector: 'app-today-warning', templateUrl: './today-warning.component.html', @@ -13,7 +17,7 @@ import * as moment from 'moment'; }) export class TodayWarningComponent implements OnInit { validateForm!: FormGroup; - constructor(private http: HttpClient, private fb: FormBuilder, private toTree: TreeService, private modal: NzModalService, private viewContainerRef: ViewContainerRef, private navChangeService: NavChangeService) { } + constructor(private http: HttpClient, private fb: FormBuilder, private toTree: TreeService, private modal: NzModalService, private viewContainerRef: ViewContainerRef, private navChangeService: NavChangeService, private message: NzMessageService) { } ngOnInit(): void { this.validateForm = this.fb.group({ @@ -62,6 +66,8 @@ export class TodayWarningComponent implements OnInit { ViolateArea: this.validateForm.value.area, organizationUnitId: JSON.parse(sessionStorage.getItem('userdataOfgasstation')).organization.id, ViolateTime: (this.validateForm.value.datePickerEnd && this.validateForm.value.datePickerStart) ? [moment(this.validateForm.value.datePickerStart).format('yyyy-MM-DD HH:mm:ss'), moment(this.validateForm.value.datePickerEnd).format('yyyy-MM-DD HH:mm:ss')] : null, + // ViolateTime: ['2021-10-27', '2021-11-26'], + IsContainsChildren: 'true', SkipCount: '0', MaxResultCount: '9999' } @@ -107,6 +113,12 @@ export class TodayWarningComponent implements OnInit { look(item) { + let type + if (item.violation.violationType.indexOf('卸油')) { + type = 1 + } else { + type = 0 + } const modal = this.modal.create({ nzContent: GetOutOfLineDetailsComponent, nzViewContainerRef: this.viewContainerRef, @@ -119,7 +131,8 @@ export class TodayWarningComponent implements OnInit { 'background': '#000D21', }, nzComponentParams: { - data: item + data: item, + // typy: type }, nzFooter: null, nzOnOk: async () => { @@ -129,7 +142,47 @@ export class TodayWarningComponent implements OnInit { const instance = modal.getContentComponent(); } - disposition(item){ - + dispose(item) { + console.log(item) + if (item.isEnableHandle) { + const modal = this.modal.create({ + nzContent: DispositionComponent, + nzViewContainerRef: this.viewContainerRef, + nzWidth: 380, + nzBodyStyle: { + 'border': '1px solid #91CCFF', + 'border-radius': '0px', + 'padding': '7px', + 'box-shadow': '0 0 8px 0 #fff', + 'background-image': 'linear-gradient(#003665, #000f25)' + }, + nzComponentParams: {}, + nzFooter: null, + nzClosable: false, + nzOnOk: async () => { + if (instance.validateForm.valid) { + await new Promise(resolve => { + let body = { + id: item.id, + handleRecord: instance.validateForm.value.content + } + this.http.post('/api/services/app/ViolateRecord/HandleViolateRecord', body).subscribe(data => { + resolve(data) + this.message.create('success', '处置成功!'); + item.handleTime = new Date() + return true + }) + }) + } else { + this.message.create('warning', '请填写完整!'); + return false + } + }, + }); + const instance = modal.getContentComponent(); + } else { + this.message.create('warning', '无处置权限!'); + } + } } diff --git a/src/assets/images/3d.png b/src/assets/images/3d.png new file mode 100644 index 0000000..bcd6752 Binary files /dev/null and b/src/assets/images/3d.png differ diff --git a/src/assets/js/abp.signalr-client.js b/src/assets/js/abp.signalr-client.js index 3dc5018..f7dd8e1 100644 --- a/src/assets/js/abp.signalr-client.js +++ b/src/assets/js/abp.signalr-client.js @@ -84,7 +84,10 @@ var abp = abp || {}; abp.log.debug(error.message); }); } - + abp.signalr.disconnect = function() { + abp.signalr.autoReconnect = false + abp.signalr.hubs.common.stop() + }; // Starts a connection with transport fallback - if the connection cannot be started using // the webSockets transport the function will fallback to the serverSentEvents transport and // if this does not work it will try longPolling. If the connection cannot be started using diff --git a/src/shared/helpers/SignalRAspNetCoreHelper.ts b/src/shared/helpers/SignalRAspNetCoreHelper.ts index 269f3f2..44dd445 100644 --- a/src/shared/helpers/SignalRAspNetCoreHelper.ts +++ b/src/shared/helpers/SignalRAspNetCoreHelper.ts @@ -1,6 +1,6 @@ - +declare var abp: any export class SignalRAspNetCoreHelper { - static initSignalR(callback?: () => void): void { + static initSignalR(callback?: () => void): void { const encryptedAuthToken = sessionStorage.getItem("encryptedAccessToken"); let url = "http://39.106.78.171:8906"; abp.signalr = { diff --git a/src/theme.less b/src/theme.less index 7f7917c..97bb476 100644 --- a/src/theme.less +++ b/src/theme.less @@ -68,7 +68,7 @@ .receiptOfNotification { height: 160px; background-color: rgba(1, 13, 27, 0.9); - box-shadow: 0 0 36px 3px #8f1622 inset; + box-shadow: 0 0 28px 3px #8f1622 inset; display: flex; flex-direction: column; padding: 5px; @@ -77,40 +77,48 @@ position: relative; flex: 1; display: flex; - + align-items: center; img { - max-width: 64px; - max-height: 64px; + max-width:70px; + max-height: 62px; } - .text { display: flex; flex-direction: column; - color: white; justify-content: center; + span{ + // display: inline-block; + margin: 6px 0; + } + .name{ + font-size: 16px; + color: #ffaaaa; + } + .details{ + font-size: 14px; + color: white; + } } } .btnbox { - height: 30px; + height: 36px; + line-height: 36px; display: flex; justify-content: center; align-items: center; margin: 12px 0; - - button { - margin: 0 5px; + div{ + width: 80px; + height: 32px; + line-height: 32px; + text-align: center; + margin: 0 8px; + color: #FFFFFF; + cursor: pointer; } } - button { - width: 64px; - height: 30px; - line-height: 30px; - background-color: rgba(1, 13, 27, 0.9); - color: white; - border: 0px; - } .look { box-shadow: 0 0 12px #8f1622 inset;