Browse Source

[新增]预警申诉功能

beijing
邵佳豪 3 years ago
parent
commit
cef0f29e05
  1. 24
      src/app/pages/audit/audit-ing/appeal-details/appeal-details.component.html
  2. 66
      src/app/pages/audit/audit-ing/appeal-details/appeal-details.component.scss
  3. 42
      src/app/pages/audit/audit-ing/appeal-details/appeal-details.component.ts
  4. 13
      src/app/pages/audit/audit-ing/audit-dispose/audit-dispose.component.html
  5. 5
      src/app/pages/audit/audit-ing/audit-dispose/audit-dispose.component.ts
  6. 13
      src/app/pages/audit/audit-ing/audit-ing.component.ts
  7. 16
      src/app/pages/audit/audit-record/audit-record.component.ts
  8. 5
      src/app/pages/pages.module.ts
  9. 42
      src/app/pages/records/criminal-records-admin/criminal-records-admin.component.html
  10. 5
      src/app/pages/records/criminal-records-admin/criminal-records-admin.component.scss
  11. 17
      src/app/pages/records/criminal-records-admin/criminal-records-admin.component.ts
  12. 34
      src/app/pages/records/criminal-records/criminal-records.component.html
  13. 2
      src/app/pages/records/criminal-records/criminal-records.component.scss
  14. 24
      src/app/pages/records/criminal-records/criminal-records.component.ts
  15. 25
      src/app/pages/records/records-nav/records-nav.component.spec.ts
  16. 38
      src/app/pages/today-warning-admin/today-warning-admin.component.html
  17. 2
      src/app/pages/today-warning-admin/today-warning-admin.component.ts
  18. 30
      src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.html
  19. 41
      src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.ts
  20. 29
      src/app/pages/today-warning/today-warning.component.html
  21. 2
      src/app/pages/today-warning/today-warning.component.ts

24
src/app/pages/audit/audit-ing/appeal-details/appeal-details.component.html

@ -0,0 +1,24 @@
<div class="box">
<div class="title">
<div class="titlecontent">
详情
</div>
<i nz-icon nzType="close" nzTheme="outline" (click)="destroyModal()"></i>
</div>
<div class="content">
<p>预警事件: {{data.auditTitle}}</p>
<div class="cutoffrule"></div>
<p>预警时间: {{data.itemData.ViolateTime | date:"yyyy-MM-dd HH:mm:ss"}}</p>
<div class="cutoffrule"></div>
<p>预警图片:</p>
<img (click)="viewImg(data.itemData.ViolateImage)" style="width: 100%;height: auto;"
[src]="data.itemData.ViolateImage" alt="">
<div class="cutoffrule"></div>
<p>申诉原因: {{data.commitReason}}</p>
<div class="cutoffrule"></div>
<p>审核状态: {{data.auditStatusDesc}}</p>
<div class="cutoffrule"></div>
<p>审核说明: {{data.rejectReason || ''}}</p>
</div>
</div>

66
src/app/pages/audit/audit-ing/appeal-details/appeal-details.component.scss

@ -0,0 +1,66 @@
.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;
}
}
.content {
box-sizing: border-box;
padding: 0 15px;
max-height: 580px;
overflow-y: auto;
.circle {
width: 8px;
height: 8px;
background: linear-gradient(180deg, #36A2FF 0%, #FFFFFF 100%);
opacity: 1;
}
.recordP {
display: flex;
justify-content: space-between;
align-items: center;
}
}
p {
margin-bottom: 0;
color: #C4E2FC;
margin: 12px 0;
img {
width: 88px;
height: 56px;
cursor: pointer;
}
}
.flexp {
display: flex;
justify-content: space-between;
}
}

42
src/app/pages/audit/audit-ing/appeal-details/appeal-details.component.ts

@ -0,0 +1,42 @@
import { Component, Input, OnInit } from '@angular/core';
import { NzModalRef } from 'ng-zorro-antd/modal';
import Viewer from 'viewerjs';
@Component({
selector: 'app-appeal-details',
templateUrl: './appeal-details.component.html',
styleUrls: ['./appeal-details.component.scss']
})
export class AppealDetailsComponent implements OnInit {
@Input() data?: any;
constructor(private modal: NzModalRef) { }
organizationName
ngOnInit(): void {
console.log('申诉详情', this.data)
// this.data.itemDataObj = JSON.parse(this.data.itemData)
}
destroyModal() {
this.modal.destroy({ data: 'this the result data' });
}
//查看图片
viewImg(url) {
let dom = document.getElementById(`viewerjs`)
let pObjs = dom.childNodes;
let node = document.createElement("img")
node.style.display = "none";
node.src = url;
node.id = 'img'
dom.appendChild(node)
setTimeout(() => {
let viewer = new Viewer(document.getElementById(`viewerjs`), {
hidden: () => {
dom.removeChild(pObjs[0]);
viewer.destroy();
}
});
node.click();
}, 0);
}
}

13
src/app/pages/audit/audit-ing/audit-dispose/audit-dispose.component.html

@ -77,6 +77,19 @@
<div class="cutoffrule"></div>
<p>手机号: &nbsp;&nbsp;{{data.getData.phoneNumber}}</p>
</div>
<div *ngIf="data.auditType == 5">
<p>预警申诉</p>
<div class="cutoffrule"></div>
<p>预警事件: &nbsp;&nbsp;{{data.auditTitle}}</p>
<div class="cutoffrule"></div>
<p>预警时间: &nbsp;&nbsp;{{data.itemData.ViolateTime | date:"yyyy-MM-dd HH:mm:ss"}}</p>
<div class="cutoffrule"></div>
<p>预警图片:</p>
<img (click)="viewImg(data.itemData.ViolateImage)" style="width: 100%;height: auto;"
[src]="data.itemData.ViolateImage" alt="">
<p>申诉说明: &nbsp;&nbsp;{{data.commitReason}}</p>
<div class="cutoffrule"></div>
</div>
<div class="cutoffrule"></div>
<p [hidden]="data.getData.imageUrl === undefined">附件: &nbsp;&nbsp;
<img *ngIf="data.getData.imageUrl && getFileType(data.getData.imageUrl) == 'img'"

5
src/app/pages/audit/audit-ing/audit-dispose/audit-dispose.component.ts

@ -1,8 +1,5 @@
import { Component, OnInit, Input } from '@angular/core';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { HttpClient } from '@angular/common/http';
import { ObjectsSimpleService } from 'src/app/service/objectsSimple.service';
import Viewer from 'viewerjs';
import { NzMessageService } from 'ng-zorro-antd/message';
import { handleType, handleTypeList } from 'src/app/pages/license/update-category/edit-update-category/edit-update-category.component';
@ -23,7 +20,7 @@ export class AuditDisposeComponent implements OnInit {
role1 = []
role2 = []
ngOnInit(): void {
console.log(this.data)
console.log('审批信息', this.data)
if (this.data.auditType == 4) {
this.data.getData.roleDisplayNames.forEach(element => {
if (element.indexOf('接收人') != -1) {

13
src/app/pages/audit/audit-ing/audit-ing.component.ts

@ -8,6 +8,7 @@ import { DetailsFileCategoryComponent } from '../../license/file-category/detail
import { DetailsUpdateCategoryComponent } from '../../license/update-category/details-update-category/details-update-category.component';
import { AuditDetailsInformTimeComponent } from '../audit-inform-time/audit-details-inform-time/audit-details-inform-time.component';
import { GasBaseInfoComponent } from '../gas-base-info/gas-base-info.component';
import { AppealDetailsComponent } from './appeal-details/appeal-details.component';
import { AuditDisposeComponent } from './audit-dispose/audit-dispose.component';
import { UserDetailsComponent } from './user-details/user-details.component';
@ -85,9 +86,7 @@ export class AuditIngComponent implements OnInit {
dispose(item) {
// console.log(item)
this.getData(item).then(res => {
// console.log('审批具体信息', res)
item.getData = res
const modal = this.modal.create({
nzContent: AuditDisposeComponent,
@ -133,7 +132,7 @@ export class AuditIngComponent implements OnInit {
}
details(item) {
let itemCopy = JSON.parse(JSON.stringify(item))
console.log('点击的item', item)
let component
if (item.auditType == 0) {
component = GasBaseInfoComponent
@ -143,6 +142,8 @@ export class AuditIngComponent implements OnInit {
component = DetailsUpdateCategoryComponent
} else if (item.auditType == 4) {
component = UserDetailsComponent
} else if (item.auditType == 5) {
component = AppealDetailsComponent
} else if (item.auditType) {
component = DetailsFileCategoryComponent
}
@ -188,13 +189,15 @@ export class AuditIngComponent implements OnInit {
url = '/api/services/app/StationValidityLicense/Get'
} else if (item.auditType == 4) {
url = '/api/services/app/EdittingUser/Get'
} else if (item.auditType == 5) {
return new Promise((resolve, reject) => {
resolve(item)
})
} else if (item.auditType) {
url = '/api/services/app/StationFileLicense/Get'
}
return new Promise((resolve, reject) => {
let params = { id: item.itemId }
console.log('xxxxxxxxxxxxxxx走着了吗')
this.http.get(url, { params }).subscribe((data: any) => {
let auditLog = { rejectReason: item.rejectReason }
let organization = { displayName: item.organization ? item.organization.displayName : "" }

16
src/app/pages/audit/audit-record/audit-record.component.ts

@ -8,6 +8,7 @@ import { TreeService } from 'src/app/service/tree.service';
import { DetailsFileCategoryComponent } from '../../license/file-category/details-file-category/details-file-category.component';
import { DetailsUpdateCategoryComponent } from '../../license/update-category/details-update-category/details-update-category.component';
import { AuditDetailsInformTimeComponent } from '../audit-inform-time/audit-details-inform-time/audit-details-inform-time.component';
import { AppealDetailsComponent } from '../audit-ing/appeal-details/appeal-details.component';
import { UserDetailsComponent } from '../audit-ing/user-details/user-details.component';
import { GasBaseInfoComponent } from '../gas-base-info/gas-base-info.component';
@ -203,6 +204,9 @@ export class AuditRecordComponent implements OnInit {
MaxResultCount: this.MaxResultCount,
}
this.http.get('/api/services/app/ContentAuditLog/GetHistory', { params }).subscribe((data: any) => {
data.result.items.forEach(element => {
element.itemData = JSON.parse(element.itemData)
});
this.list = this.list.concat(data.result.items);
this.list = [...this.list]
this.totalCount = data.result.totalCount
@ -216,8 +220,7 @@ export class AuditRecordComponent implements OnInit {
}
details(item) {
console.log('item', item)
let or = item
console.log('点击的item', item)
let component
if (item.auditType == 0) {
component = GasBaseInfoComponent
@ -227,6 +230,8 @@ export class AuditRecordComponent implements OnInit {
component = DetailsUpdateCategoryComponent
} else if (item.auditType == 4) {
component = UserDetailsComponent
} else if (item.auditType == 5) {
component = AppealDetailsComponent
} else if (item.auditType) {
component = DetailsFileCategoryComponent
}
@ -250,7 +255,8 @@ export class AuditRecordComponent implements OnInit {
'top': '50px',
},
nzComponentParams: {
data: item.getData
data: item.getData,
},
nzFooter: null,
nzClosable: false,
@ -272,6 +278,10 @@ export class AuditRecordComponent implements OnInit {
url = '/api/services/app/StationValidityLicense/Get'
} else if (item.auditType == 4) {
url = '/api/services/app/EdittingUser/Get'
} else if (item.auditType == 5) {
return new Promise((resolve, reject) => {
resolve(item)
})
} else if (item.auditType) {
url = '/api/services/app/StationFileLicense/Get'
}

5
src/app/pages/pages.module.ts

@ -87,11 +87,12 @@ import { DisposeequipmentComponent } from './records/warning-statistics-list/dis
import { WarningStatisticsListComponent } from './records/warning-statistics-list/warning-statistics-list.component';
import { RecordsNavComponent } from './records/records-nav/records-nav.component';
import { UserDetailsComponent } from './audit/audit-ing/user-details/user-details.component';
import { AppealDetailsComponent } from './audit/audit-ing/appeal-details/appeal-details.component';
@NgModule({
declarations: [LoginComponent, RegisterComponent, HomeComponent, PlanComponent, TodayWarningComponent, CriminalRecordsComponent,
TodayWarningAdminComponent, CriminalRecordsAdminComponent, LeftDomainComponent, EquipmentInfoComponent, OilStationInfoComponent,
AddequipmentComponent, EditequipmentComponent, PlanAdminComponent, GetOutOfLineDetailsComponent, DispositionComponent, OilUnloadingProcessComponent, HomePageComponent, OilUnloadingProcessListComponent, ChangePasswordComponent, FacilitySortPipe, WarningStatisticsListComponent, DisposeequipmentComponent, NavBarComponent, InformComponent, UpdateCategoryComponent, FileCategoryComponent, HistoriesComponent, EditUpdateCategoryComponent, DetailsUpdateCategoryComponent, EditFileCategoryComponent, DetailsFileCategoryComponent, PdfWordLookComponent, OilStationListComponent, UpdateLicenseListComponent, FileLicenseListComponent, AuditNavComponent, AuditIngComponent, AuditRecordComponent, AuditInformTimeComponent, AuditDisposeComponent, EditInformTimeComponent, AuditDetailsInformTimeComponent, auditStatusPipe, GasBaseInfoComponent, notificationContent, licenseViolationType, handleState, AnnualInspectionComponent, EditAnnualInspectionComponent, RecordsNavComponent, UserDetailsComponent],
AddequipmentComponent, EditequipmentComponent, PlanAdminComponent, GetOutOfLineDetailsComponent, DispositionComponent, OilUnloadingProcessComponent, HomePageComponent, OilUnloadingProcessListComponent, ChangePasswordComponent, FacilitySortPipe, WarningStatisticsListComponent, DisposeequipmentComponent, NavBarComponent, InformComponent, UpdateCategoryComponent, FileCategoryComponent, HistoriesComponent, EditUpdateCategoryComponent, DetailsUpdateCategoryComponent, EditFileCategoryComponent, DetailsFileCategoryComponent, PdfWordLookComponent, OilStationListComponent, UpdateLicenseListComponent, FileLicenseListComponent, AuditNavComponent, AuditIngComponent, AuditRecordComponent, AuditInformTimeComponent, AuditDisposeComponent, EditInformTimeComponent, AuditDetailsInformTimeComponent, auditStatusPipe, GasBaseInfoComponent, notificationContent, licenseViolationType, handleState, AnnualInspectionComponent, EditAnnualInspectionComponent, RecordsNavComponent, UserDetailsComponent, AppealDetailsComponent],
imports: [
@ -135,7 +136,7 @@ import { UserDetailsComponent } from './audit/audit-ing/user-details/user-detail
NzToolTipModule,
NzTimelineModule
],
entryComponents: [AddequipmentComponent, EditequipmentComponent, GetOutOfLineDetailsComponent, DispositionComponent, OilUnloadingProcessComponent, ChangePasswordComponent, DisposeequipmentComponent, EditUpdateCategoryComponent, DetailsUpdateCategoryComponent, EditFileCategoryComponent, DetailsFileCategoryComponent, PdfWordLookComponent, AuditDisposeComponent, EditInformTimeComponent, AuditDetailsInformTimeComponent, GasBaseInfoComponent, EditAnnualInspectionComponent, UserDetailsComponent],
entryComponents: [AddequipmentComponent, EditequipmentComponent, GetOutOfLineDetailsComponent, DispositionComponent, OilUnloadingProcessComponent, ChangePasswordComponent, DisposeequipmentComponent, EditUpdateCategoryComponent, DetailsUpdateCategoryComponent, EditFileCategoryComponent, DetailsFileCategoryComponent, PdfWordLookComponent, AuditDisposeComponent, EditInformTimeComponent, AuditDetailsInformTimeComponent, GasBaseInfoComponent, EditAnnualInspectionComponent, UserDetailsComponent,AppealDetailsComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
exports: [auditStatusPipe]

42
src/app/pages/records/criminal-records-admin/criminal-records-admin.component.html

@ -52,7 +52,7 @@
<nz-form-item class="searchParams">
<nz-form-control>
<nz-select (ngModelChange)="levelChange($event)" nzAllowClear id="level" formControlName="level"
nzPlaceHolder="请选择预警级别">
nzPlaceHolder="预警级别">
<nz-option *ngFor="let item of warningLevels" [nzValue]="item.key"
[nzLabel]="item.key == 1 ? 'Ⅰ级' : item.key == 2 ? 'Ⅱ级' : item.key == 3 ? 'Ⅲ级' : item.key == 4 ? 'Ⅳ级' : null">
</nz-option>
@ -81,7 +81,7 @@
<nz-form-item class="searchParams">
<nz-form-control>
<nz-select nzAllowClear id="type" (ngModelChange)="typeChange($event)" formControlName="type"
nzPlaceHolder="请选择预警类型">
nzPlaceHolder="预警类型">
<nz-option *ngFor="let item of warningTypes" [nzValue]="item.key" [nzLabel]="item.key"></nz-option>
</nz-select>
</nz-form-control>
@ -90,7 +90,7 @@
<nz-form-item class="searchParamsZ eventInput">
<nz-form-control>
<nz-select [nzMaxTagCount]="1" nzMode="multitagsple" nzAllowClear formControlName="event"
nzPlaceHolder="请选择预警事件">
nzPlaceHolder="预警事件">
<nz-option *ngFor="let item of warningTypesDetails" [nzValue]="item.id" [nzLabel]="item.eventSystemName">
</nz-option>
</nz-select>
@ -100,7 +100,7 @@
<nz-form-item class="searchParamsS eventInput">
<nz-form-control>
<nz-select [nzMaxTagCount]="1" nzMode="multitagsple" nzAllowClear id="site" formControlName="site"
nzPlaceHolder="请选择区域">
nzPlaceHolder="区域">
<nz-option nzValue="出入口" nzLabel="出入口"></nz-option>
<nz-option nzValue="加油区" nzLabel="加油区"></nz-option>
<nz-option nzValue="油罐区" nzLabel="油罐区"></nz-option>
@ -113,18 +113,31 @@
<nz-form-item class="searchParams">
<nz-form-control>
<nz-select nzAllowClear formControlName="disposalState" nzPlaceHolder="请选择处置状态">
<nz-select nzAllowClear formControlName="disposalState" nzPlaceHolder="处置状态">
<nz-option nzValue="0" nzLabel="已处置"></nz-option>
<nz-option nzValue="1" nzLabel="未处置"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
<nz-form-item class="searchParams">
<nz-form-control>
<nz-select nzAllowClear formControlName="appealState" nzPlaceHolder="申诉状态">
<nz-option nzValue="0" nzLabel="未申诉"></nz-option>
<nz-option nzValue="1" nzLabel="申诉中"></nz-option>
<nz-option nzValue="4" nzLabel="申诉撤销"></nz-option>
<nz-option nzValue="3" nzLabel="申诉驳回"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
<nz-form-item class="searchParams searchParams2">
<nz-form-control>
<nz-range-picker [nzAllowClear]="false" formControlName="datePicker"></nz-range-picker>
<br />
</nz-form-control>
</nz-form-item>
<nz-form-item class="searchParams" [hidden]="!isMisinformation">
<nz-form-control>
<nz-select nzAllowClear formControlName="misinformation" nzPlaceHolder="是否显示标记">
@ -133,6 +146,7 @@
</nz-select>
</nz-form-control>
</nz-form-item>
<nz-form-item class="btn">
<nz-form-control>
<button [nzLoading]="isLoading" nz-button type="submit" class="submit"><i nz-icon
@ -169,8 +183,9 @@
<th>预警区域</th>
<th>摄像头名称</th>
<th>预警时间</th>
<th>状态</th>
<th>操作</th>
<th nzWidth="5%">处置状态</th>
<th nzWidth="5%">申诉状态</th>
<th nzWidth="5%">操作</th>
</tr>
</thead>
<tbody id="table">
@ -203,12 +218,19 @@
误报
</ng-container>
<ng-template #elseTemplate>
<!-- <span *ngIf="item.handleTime">已处置</span>
<span *ngIf="!item.handleTime" style="color: #FF4B65;">未处置</span> -->
<span
[ngClass]="{'greenColor': item.handleStateStr=='已处置','yellowColor': item.handleStateStr=='处置中','redColor': item.handleStateStr=='未处置'}">{{item.handleStateStr}}</span>
[ngClass]="{'greenColor': item.handleStateStr=='已处置','yellowColor': item.handleStateStr=='处置中','redColor': item.handleStateStr=='未处置'}">{{item.handleStateStr}}
</span>
</ng-template>
</td>
<td nzEllipsis>
<span
[ngClass]="{'greenColor': item.appealStatus==1,'yellowColor': item.appealStatus==4,'redColor': item.appealStatus==3}">
{{item.appealStatus == 0 ? '未申诉': item.appealStatus == 1 ? '申诉中': item.appealStatus == 3 ? '申诉驳回' :
item.appealStatus == 4 ?
'申诉撤销' : item.appealStatus == 5 ? '申诉完成' : null}}
</span>
</td>
<td>
<span class="look" (click)="look(item)" style="margin-right: 12px;">查看</span>
</td>

5
src/app/pages/records/criminal-records-admin/criminal-records-admin.component.scss

@ -24,8 +24,7 @@
}
.searchParams {
// flex: 5;
width: 150px;
width: 120px;
}
.searchParamsZ {
@ -40,7 +39,7 @@
}
.searchParamsLong {
width: 250px;
width: 220px;
}
.searchParams2 {

17
src/app/pages/records/criminal-records-admin/criminal-records-admin.component.ts

@ -287,7 +287,7 @@ export class CriminalRecordsAdminComponent implements OnInit {
startdate
enddate
button=false
button = false
isMisinformation: boolean = false//误报按钮的显隐
tableScrollHeight
@ -345,6 +345,7 @@ export class CriminalRecordsAdminComponent implements OnInit {
event: [null],
site: [null],
disposalState: [null],
appealState: [null],
datePicker: [[this.startdate, this.enddate]],
misinformation: ['true'],
});
@ -528,6 +529,7 @@ export class CriminalRecordsAdminComponent implements OnInit {
ViolateTime: this.validateForm.value.datePicker ? [moment(this.validateForm.value.datePicker[0]).format('yyyy-MM-DD') + ' 00:00:00', moment(this.validateForm.value.datePicker[1]).format('yyyy-MM-DD') + ' 23:59:59'] : null,
SkipCount: this.SkipCount,
MaxResultCount: this.MaxResultCount,
AppealStatus: this.validateForm.value.appealState,
Positive: this.validateForm.value.misinformation
}
this.tableSpin = true
@ -801,12 +803,15 @@ export class CriminalRecordsAdminComponent implements OnInit {
nzFooter: null,
nzOnOk: async () => {
console.log('误报处理')
console.log('点击item', item)
console.log('list', this.list)
for (let index = 0; index < this.list.length; index++) {
const element = this.list[index];
if (element.id == item.id) {
this.list.splice(index, 1)
this.totalCount = String(Number(this.totalCount) - 1)
this.SkipCount = String(Number(this.SkipCount) - 1)
this.list = [...this.list]
}
}
}
@ -892,19 +897,19 @@ export class CriminalRecordsAdminComponent implements OnInit {
}
returnLastMenus(e) {
let userMenu
if(e){
if (e) {
userMenu = JSON.parse(sessionStorage.getItem('userdataOfgasstation')).menus
}else{
} else {
userMenu = JSON.parse(sessionStorage.getItem('userdata')).menus
}
for (let index = 0; index < userMenu.length; index++) {
for (let k = 0; k < userMenu.length; k++) {
if (userMenu[index].name=="预警类型统计") {
if(userMenu[index].id==userMenu[k].parentId){
if (userMenu[index].name == "预警类型统计") {
if (userMenu[index].id == userMenu[k].parentId) {
this.button = true
}
}
}
}
return

34
src/app/pages/records/criminal-records/criminal-records.component.html

@ -51,7 +51,7 @@
<nz-form-item class="searchParams">
<nz-form-control>
<nz-select (ngModelChange)="levelChange($event)" nzAllowClear id="level" formControlName="level"
nzPlaceHolder="请选择预警级别">
nzPlaceHolder="预警级别">
<nz-option *ngFor="let item of warningLevels" [nzValue]="item.key"
[nzLabel]="item.key == 1 ? 'Ⅰ级' : item.key == 2 ? 'Ⅱ级' : item.key == 3 ? 'Ⅲ级' : item.key == 4 ? 'Ⅳ级' : null">
</nz-option>
@ -61,7 +61,7 @@
<nz-form-item class="searchParams">
<nz-form-control>
<nz-select nzAllowClear formControlName="type" (ngModelChange)="typeChange($event)" nzPlaceHolder="请选择预警类型">
<nz-select nzAllowClear formControlName="type" (ngModelChange)="typeChange($event)" nzPlaceHolder="预警类型">
<nz-option *ngFor="let item of warningTypes" [nzValue]="item.key" [nzLabel]="item.key"></nz-option>
</nz-select>
</nz-form-control>
@ -70,7 +70,7 @@
<nz-form-item class="searchParamsZ eventInput">
<nz-form-control>
<nz-select [nzMaxTagCount]="1" nzMode="multitagsple" nzAllowClear formControlName="event"
nzPlaceHolder="请选择预警事件">
nzPlaceHolder="预警事件">
<nz-option *ngFor="let item of warningTypesDetails" [nzValue]="item.id" [nzLabel]="item.eventSystemName">
</nz-option>
</nz-select>
@ -78,8 +78,7 @@
</nz-form-item>
<nz-form-item class="searchParamsS eventInput">
<nz-form-control>
<nz-select [nzMaxTagCount]="1" nzMode="multitagsple" nzAllowClear formControlName="site"
nzPlaceHolder="请选择站内发生区域">
<nz-select [nzMaxTagCount]="1" nzMode="multitagsple" nzAllowClear formControlName="site" nzPlaceHolder="区域">
<nz-option nzValue="出入口" nzLabel="出入口"></nz-option>
<nz-option nzValue="加油区" nzLabel="加油区"></nz-option>
<nz-option nzValue="油罐区" nzLabel="油罐区"></nz-option>
@ -91,12 +90,22 @@
</nz-form-item>
<nz-form-item class="searchParams">
<nz-form-control>
<nz-select nzAllowClear formControlName="disposalState" nzPlaceHolder="请选择处置状态">
<nz-select nzAllowClear formControlName="disposalState" nzPlaceHolder="处置状态">
<nz-option nzValue="0" nzLabel="已处置"></nz-option>
<nz-option nzValue="1" nzLabel="未处置"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
<nz-form-item class="searchParams">
<nz-form-control>
<nz-select nzAllowClear formControlName="appealState" nzPlaceHolder="申诉状态">
<nz-option nzValue="0" nzLabel="未申诉"></nz-option>
<nz-option nzValue="1" nzLabel="申诉中"></nz-option>
<nz-option nzValue="4" nzLabel="申诉撤销"></nz-option>
<nz-option nzValue="3" nzLabel="申诉驳回"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
<nz-form-item class="searchParams searchParams2">
<nz-form-control>
<nz-range-picker [nzAllowClear]="false" formControlName="datePicker"></nz-range-picker>
@ -145,8 +154,9 @@
<th>预警区域</th>
<th>摄像头名称</th>
<th>预警时间</th>
<th>状态</th>
<th>操作</th>
<th nzWidth="5%">处置状态</th>
<th nzWidth="5%">申诉状态</th>
<th nzWidth="5%">操作</th>
</tr>
</thead>
<tbody id="table">
@ -183,6 +193,14 @@
[ngClass]="{'greenColor': item.handleStateStr=='已处置','yellowColor': item.handleStateStr=='处置中','redColor': item.handleStateStr=='未处置'}">{{item.handleStateStr}}</span>
</ng-template>
</td>
<td nzEllipsis>
<span
[ngClass]="{'greenColor': item.appealStatus==1,'yellowColor': item.appealStatus==4,'redColor': item.appealStatus==3}">
{{item.appealStatus == 0 ? '未申诉': item.appealStatus == 1 ? '申诉中': item.appealStatus == 3 ? '申诉驳回' :
item.appealStatus == 4 ?
'申诉撤销' : item.appealStatus == 5 ? '申诉完成' : null}}
</span>
</td>
<td>
<span class="look" (click)="look(item)" style="margin-right: 12px;">查看</span>
</td>

2
src/app/pages/records/criminal-records/criminal-records.component.scss

@ -25,7 +25,7 @@
.searchParams {
// flex: 5;
width: 150px;
width: 120px;
}
.searchParams2 {

24
src/app/pages/records/criminal-records/criminal-records.component.ts

@ -313,7 +313,7 @@ export class CriminalRecordsComponent implements OnInit {
// this.isEchartsShow()
// });
console.log(1243);
this.tableScrollHeight = '100px'
// 页面监听
this.resizeListener = fromEvent(window, 'resize').pipe(debounceTime(100)).subscribe((event) => {
@ -353,6 +353,7 @@ export class CriminalRecordsComponent implements OnInit {
type: [null],
event: [null],
disposalState: [null],
appealState: [null],
site: [null],
datePicker: [[this.startdate, this.enddate]],
misinformation: ['true'],
@ -375,19 +376,19 @@ export class CriminalRecordsComponent implements OnInit {
}
returnLastMenus(e) {
let userMenu
if(e){
if (e) {
userMenu = JSON.parse(sessionStorage.getItem('userdataOfgasstation')).menus
}else{
} else {
userMenu = JSON.parse(sessionStorage.getItem('userdata')).menus
}
for (let index = 0; index < userMenu.length; index++) {
for (let k = 0; k < userMenu.length; k++) {
if (userMenu[index].name=="预警类型统计") {
if(userMenu[index].id==userMenu[k].parentId){
if (userMenu[index].name == "预警类型统计") {
if (userMenu[index].id == userMenu[k].parentId) {
this.button = true
}
}
}
}
return
@ -511,6 +512,7 @@ export class CriminalRecordsComponent implements OnInit {
IsHandled: disposalState,
SkipCount: this.SkipCount,
MaxResultCount: this.MaxResultCount,
AppealStatus: this.validateForm.value.appealState,
Positive: this.validateForm.value.misinformation
}
this.tableSpin = true
@ -763,7 +765,15 @@ export class CriminalRecordsComponent implements OnInit {
},
nzFooter: null,
nzOnOk: async () => {
for (let index = 0; index < this.list.length; index++) {
const element = this.list[index];
if (element.id == item.id) {
this.list.splice(index, 1)
this.totalCount = String(Number(this.totalCount) - 1)
this.SkipCount = String(Number(this.SkipCount) - 1)
this.list = [...this.list]
}
}
}
});
const instance = modal.getContentComponent();

25
src/app/pages/records/records-nav/records-nav.component.spec.ts

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

38
src/app/pages/today-warning-admin/today-warning-admin.component.html

@ -80,6 +80,19 @@
</nz-select>
</nz-form-control>
</nz-form-item>
<nz-form-item class="searchParams">
<nz-form-control>
<nz-select nzAllowClear formControlName="appealState" nzPlaceHolder="请选择申诉状态">
<nz-option nzValue="0" nzLabel="未申诉"></nz-option>
<nz-option nzValue="1" nzLabel="申诉中"></nz-option>
<nz-option nzValue="4" nzLabel="申诉撤销"></nz-option>
<nz-option nzValue="3" nzLabel="申诉驳回"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
<nz-form-item class="searchParams">
<nz-form-control>
<nz-time-picker [nzAllowEmpty]="false" nzPlaceHolder="请选择开始时间" formControlName="datePickerStart"
@ -124,7 +137,7 @@
<div nz-col nzSpan="2">
公司名称
</div>
<div nz-col nzSpan="3">
<div nz-col nzSpan="4">
区域名称
</div>
<div nz-col nzSpan="2">
@ -139,10 +152,13 @@
<div nz-col nzSpan="3">
预警时间
</div>
<div nz-col nzSpan="2">
状态
<div nz-col nzSpan="1">
处置状态
</div>
<div nz-col nzSpan="2">
<div nz-col nzSpan="1">
申诉状态
</div>
<div nz-col nzSpan="1">
操作
</div>
</div>
@ -184,7 +200,7 @@
<div nz-col nzSpan="2" [title]="item.gasStation.companyName">
{{item.gasStation.companyName}}
</div>
<div nz-col nzSpan="3" [title]="item.gasStation.locationName">
<div nz-col nzSpan="4" [title]="item.gasStation.locationName">
{{item.gasStation.locationName}}
</div>
<div nz-col nzSpan="2" [title]="item.gasStation.stationName">
@ -199,7 +215,7 @@
<div nz-col nzSpan="3">
{{item.violateTime | date:"yyyy-MM-dd HH:mm:ss"}}
</div>
<div nz-col nzSpan="2">
<div nz-col nzSpan="1">
<ng-container *ngIf="!item.handleTime; else elseTemplate">
未处置
</ng-container>
@ -207,7 +223,15 @@
<span style="color: #23D9FF;">已处置</span>
</ng-template>
</div>
<div nz-col nzSpan="2" style="min-width: 64px;">
<div nz-col nzSpan="1">
<span
[ngClass]="{'greenColor': item.appealStatus==1,'yellowColor': item.appealStatus==4,'redColor': item.appealStatus==3}">
{{item.appealStatus == 0 ? '未申诉': item.appealStatus == 1 ? '申诉中': item.appealStatus == 3 ? '申诉驳回' :
item.appealStatus == 4 ?
'申诉撤销' : item.appealStatus == 5 ? '申诉完成' : null}}
</span>
</div>
<div nz-col nzSpan="1" style="min-width: 64px;">
<button nz-button (click)="look(item)">查看</button>
</div>
</div>

2
src/app/pages/today-warning-admin/today-warning-admin.component.ts

@ -30,6 +30,7 @@ export class TodayWarningAdminComponent implements OnInit {
organization: [null],
area: [null],
disposalState: [null],
appealState: [null],
datePickerStart: [new Date(`${moment(new Date()).format('YYYY-MM-DD')} 00:00`)],
datePickerEnd: [new Date(`${moment(new Date()).format('YYYY-MM-DD')} 23:59`)]
});
@ -200,6 +201,7 @@ export class TodayWarningAdminComponent implements OnInit {
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'],
IsHandled: disposalState,
AppealStatus: this.validateForm.value.appealState,
IsContainsChildren: 'true',
SkipCount: '0',
MaxResultCount: '9999',

30
src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.html

@ -38,24 +38,46 @@
</ng-template>
</div>
</div>
<p style="margin-bottom: 0px;margin-top: 3px;box-sizing: border-box;padding: 0 12px;"
*ngIf="data.appealStatus == 3">
驳回说明:{{data.appealLog.rejectReason}}</p>
<!-- 只有非证照预警才可以处置 或者 申诉-->
<div class="disposebox" *ngIf="!isLicenseWarning">
<div class="title">
<span>处置内容</span>
<ng-container *ngIf="!data.positive; else elseTemplate">
<span *ngIf="data.appealStatus == 5" style="color: #4BFFD4;">申诉成功</span>
<span style="color: #4BFFD4;cursor: default;">已进行误报处置</span>
</ng-container>
<ng-template #elseTemplate>
<div class="btn">
<span *ngIf="!data.handleTime && isMisinformation"
<span *ngIf="!data.handleTime && data.appealStatus ==1"
style="color: #FF4B65;cursor: pointer;margin-right: 20px;" (click)="Unappeal()">申诉撤销</span>
<span
*ngIf="!data.handleTime && (data.appealStatus == 0 || data.appealStatus == 3 || data.appealStatus == 4)"
style="color: #FF4B65;cursor: pointer;margin-right: 20px;" (click)="appeal()">申诉</span>
<nz-modal [(nzVisible)]="isAppeal" nzTitle="申诉原因" (nzOnOk)="handleOk()"
(nzOnCancel)="handleCancel()">
<textarea nz-input rows="2" placeholder="请输入申诉原因" name="appeal"
[(ngModel)]="appealValue"></textarea>
</nz-modal>
<span
*ngIf="!data.handleTime && isMisinformation && (data.appealStatus == 0 || data.appealStatus == 3 || data.appealStatus == 4)"
style="color: #FF4B65;cursor: pointer;margin-right: 20px;" (click)="misinformation()">误报</span>
<span *ngIf="!data.handleTime && isSubmit" style="color: #36A2FF;cursor: pointer;"
(click)="submit()">提交</span>
<span
*ngIf="!data.handleTime && isSubmit && (data.appealStatus == 0 || data.appealStatus == 3 || data.appealStatus == 4)"
style="
color: #36A2FF;cursor: pointer;" (click)="submit()">提交</span>
<span *ngIf="data.handleTime" style="color: #4BFFD4;cursor: default;">已处置</span>
<span *ngIf="data.appealStatus == 1" style="color: #4BFFD4;cursor: default;">申诉中</span>
</div>
</ng-template>
</div>
<div class="disposeContent">
<textarea *ngIf="!data.handleTime && isSubmit" [(ngModel)]="content"></textarea>
<textarea
*ngIf="!data.handleTime && isSubmit && (data.appealStatus == 0 || data.appealStatus == 3 || data.appealStatus == 4)"
[(ngModel)]="content"></textarea>
<span *ngIf="data.handleTime">{{content}}</span>
</div>
<div class="disposeTime" *ngIf="data.handleTime">

41
src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.ts

@ -4,6 +4,7 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { DomSanitizer } from '@angular/platform-browser';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { NzTreeModule } from 'ng-zorro-antd/tree';
@Component({
selector: 'app-get-out-of-line-details',
templateUrl: './get-out-of-line-details.component.html',
@ -117,8 +118,6 @@ export class GetOutOfLineDetailsComponent implements OnInit {
this.message.create('success', '处置成功!');
this.data.handleTime = new Date()
this.data.handleRecord = this.content
})
}
@ -146,4 +145,42 @@ export class GetOutOfLineDetailsComponent implements OnInit {
nzOnCancel: () => console.log('Cancel')
})
}
// 申诉
isAppeal
appealValue
appeal() {
this.isAppeal = true
}
handleOk() {
this.http.post('/api/services/app/ViolateRecord/Appeal', null, {
params: {
id: this.data.id,
reason: this.appealValue
}
}).subscribe(data => {
this.message.create('success', '申诉提交成功');
this.isAppeal = false;
this.data.appealStatus = 1
}, err => {
this.message.create('warning', '申诉提交失败,请联系管理员!');
})
}
handleCancel(): void {
this.isAppeal = false;
}
Unappeal() {
this.http.post('/api/services/app/ViolateRecord/Unappeal', null, {
params: {
id: this.data.id
}
}).subscribe(data => {
this.message.create('success', '申诉撤销成功');
this.data.appealStatus = 4
}, err => {
this.message.create('warning', '申诉撤销失败,请联系管理员!');
})
}
}

29
src/app/pages/today-warning/today-warning.component.html

@ -62,6 +62,16 @@
</nz-select>
</nz-form-control>
</nz-form-item>
<nz-form-item class="searchParams">
<nz-form-control>
<nz-select nzAllowClear formControlName="appealState" nzPlaceHolder="请选择申诉状态">
<nz-option nzValue="0" nzLabel="未申诉"></nz-option>
<nz-option nzValue="1" nzLabel="申诉中"></nz-option>
<nz-option nzValue="4" nzLabel="申诉撤销"></nz-option>
<nz-option nzValue="3" nzLabel="申诉驳回"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
<nz-form-item class="searchParams">
<nz-form-control>
<nz-time-picker [nzAllowEmpty]="false" nzPlaceHolder="请选择开始时间" formControlName="datePickerStart"
@ -100,10 +110,10 @@
<div nz-col nzSpan="3">
预警类型
</div>
<div nz-col nzSpan="4">
<div nz-col nzSpan="3">
预警事件
</div>
<div nz-col nzSpan="4">
<div nz-col nzSpan="3">
预警区域
</div>
<div nz-col nzSpan="3">
@ -115,6 +125,9 @@
<div nz-col nzSpan="2">
状态
</div>
<div nz-col nzSpan="2">
申诉状态
</div>
<div nz-col nzSpan="2">
操作
</div>
@ -150,10 +163,10 @@
<div nz-col nzSpan="3">
{{item.violation.violationType}}
</div>
<div nz-col nzSpan="4">
<div nz-col nzSpan="3">
{{item.violation.eventSystemName}}
</div>
<div nz-col nzSpan="4">
<div nz-col nzSpan="3">
{{item.violateArea ? item.violateArea : '/'}}
</div>
<div nz-col nzSpan="3">
@ -170,6 +183,14 @@
<span style="color: #23D9FF;">已处置</span>
</ng-template>
</div>
<div nz-col nzSpan="2">
<span
[ngClass]="{'greenColor': item.appealStatus==1,'yellowColor': item.appealStatus==4,'redColor': item.appealStatus==3}">
{{item.appealStatus == 0 ? '未申诉': item.appealStatus == 1 ? '申诉中': item.appealStatus == 3 ? '申诉驳回' :
item.appealStatus == 4 ?
'申诉撤销' : item.appealStatus == 5 ? '申诉完成' : null}}
</span>
</div>
<div nz-col nzSpan="2">
<button nz-button (click)="look(item)">查看</button>
</div>

2
src/app/pages/today-warning/today-warning.component.ts

@ -28,6 +28,7 @@ export class TodayWarningComponent implements OnInit {
event: [null],
area: [null],
disposalState: [null],
appealState: [null],
datePickerStart: [new Date(`${moment(new Date()).format('YYYY-MM-DD')} 00:00`)],
datePickerEnd: [new Date(`${moment(new Date()).format('YYYY-MM-DD')} 23:59`)]
});
@ -167,6 +168,7 @@ export class TodayWarningComponent implements OnInit {
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,
IsHandled: disposalState,
AppealStatus: this.validateForm.value.appealState,
// ViolateTime: ['2021-10-27', '2021-11-26'],
IsContainsChildren: 'true',
SkipCount: '0',

Loading…
Cancel
Save