From 5114565da8031e54a67b7dfbf9181bd9c6d1b8be Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Fri, 24 Mar 2023 10:22:06 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=AE=8C=E5=96=84]=E7=94=B3=E8=AF=89=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../appeal-details.component.scss | 1 + .../audit-dispose.component.scss | 7 +- .../get-out-of-line-details.component.html | 14 +- .../get-out-of-line-details.component.ts | 383 ++++++++++-------- 4 files changed, 227 insertions(+), 178 deletions(-) diff --git a/src/app/pages/audit/audit-ing/appeal-details/appeal-details.component.scss b/src/app/pages/audit/audit-ing/appeal-details/appeal-details.component.scss index 8c7e879..c97779b 100644 --- a/src/app/pages/audit/audit-ing/appeal-details/appeal-details.component.scss +++ b/src/app/pages/audit/audit-ing/appeal-details/appeal-details.component.scss @@ -68,6 +68,7 @@ .appealData { display: flex; color: #C4E2FC; + margin: 12px 0; .name { width: 15.5%; diff --git a/src/app/pages/audit/audit-ing/audit-dispose/audit-dispose.component.scss b/src/app/pages/audit/audit-ing/audit-dispose/audit-dispose.component.scss index 68812ae..84d3def 100644 --- a/src/app/pages/audit/audit-ing/audit-dispose/audit-dispose.component.scss +++ b/src/app/pages/audit/audit-ing/audit-dispose/audit-dispose.component.scss @@ -93,6 +93,7 @@ .appealData { display: flex; color: #C4E2FC; + margin: 12px 0; .name { width: 12.5%; @@ -104,11 +105,13 @@ overflow: hidden; display: flex; flex-direction: column; - span{ + + span { margin-bottom: 3px; cursor: pointer; } - span:hover{ + + span:hover { text-decoration: underline; } } 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 a9218e9..9f15395 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 @@ -54,7 +54,7 @@ 申诉成功 ( 处理人 : {{data.handleUserName}}  处理时间 : {{data.lastModificationTime | - date:"yyyy-MM-dd HH:mm:ss"}} ) + date:"yyyy-MM-dd HH:mm:ss"}} ) 已进行误报处置 @@ -105,7 +105,7 @@ - {{content}} + {{content}}
@@ -115,5 +115,13 @@ 处置时间:{{data.handleTime|date:"yyyy-MM-dd HH:mm:ss"}}
+
+ + 申诉人: + {{data.appealLog.creatorUser.name}} + 申诉时间: + {{data.appealLog.committedTime | date:"yyyy-MM-dd HH:mm:ss"}} + +
- + \ No newline at end of file diff --git a/src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.ts b/src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.ts index e79c91b..d0a4d98 100644 --- a/src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.ts +++ b/src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.ts @@ -1,190 +1,206 @@ -import { HttpClient } from '@angular/common/http'; -import { Component, OnInit, Input } from '@angular/core'; -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'; -import { ObjectsSimpleService } from 'src/app/service/objectsSimple.service'; -import Viewer from 'viewerjs'; +import { HttpClient } from "@angular/common/http"; +import { Component, OnInit, Input } from "@angular/core"; +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"; +import { ObjectsSimpleService } from "src/app/service/objectsSimple.service"; +import Viewer from "viewerjs"; @Component({ - selector: 'app-get-out-of-line-details', - templateUrl: './get-out-of-line-details.component.html', - styleUrls: ['./get-out-of-line-details.component.scss'] + selector: "app-get-out-of-line-details", + templateUrl: "./get-out-of-line-details.component.html", + styleUrls: ["./get-out-of-line-details.component.scss"], }) export class GetOutOfLineDetailsComponent implements OnInit { - @Input() data: any + @Input() data: any; - constructor(private objectsSrv: ObjectsSimpleService, private fb: FormBuilder, private http: HttpClient, private message: NzMessageService, private modal: NzModalService, private initialModal: NzModalRef, private sanitizer: DomSanitizer,private openmodal: NzModalRef) { } + constructor( + private objectsSrv: ObjectsSimpleService, + private fb: FormBuilder, + private http: HttpClient, + private message: NzMessageService, + private modal: NzModalService, + private initialModal: NzModalRef, + private sanitizer: DomSanitizer, + private openmodal: NzModalRef + ) {} + imgUrl: string; + vedioUrl: string; + content; + details; - imgUrl: string - vedioUrl: string - content - details + isMisinformation: boolean = false; //误报按钮的显隐 + isImage = true; //传过来的文件是否是图片 + fileUrl; - isMisinformation: boolean = false//误报按钮的显隐 + isLicenseWarning = false; - - isImage = true//传过来的文件是否是图片 - fileUrl - - isLicenseWarning = false - - - isSubmit + isSubmit; ngOnInit(): void { + console.log("预警信息", this.data); - console.log('预警信息', this.data) - - if (this.data.violation.violationType == '证照资质') { - this.isLicenseWarning = true + if (this.data.violation.violationType == "证照资质") { + this.isLicenseWarning = true; } else { - this.isLicenseWarning = false + this.isLicenseWarning = false; } - - this.details = this.data.content1 - this.vedioUrl = this.data.violateVideo - this.content = this.data.handleRecord - this.imgUrl = this.data.violateImage + this.details = this.data.content1; + this.vedioUrl = this.data.violateVideo; + this.content = this.data.handleRecord; + this.imgUrl = this.data.violateImage; if (this.imgUrl) { - if (this.getFileType(this.imgUrl) == 'img') { - this.isImage = true + if (this.getFileType(this.imgUrl) == "img") { + this.isImage = true; } else { - this.isImage = false - if (this.getFileType(this.imgUrl) == 'word') { - let arr = this.imgUrl.split('.') - arr[arr.length - 1] = 'pdf' - this.fileUrl = this.sanitizer.bypassSecurityTrustResourceUrl(arr.join('.')); - } else if (this.getFileType(this.imgUrl) == 'pdf') { - this.fileUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.imgUrl); + this.isImage = false; + if (this.getFileType(this.imgUrl) == "word") { + let arr = this.imgUrl.split("."); + arr[arr.length - 1] = "pdf"; + this.fileUrl = this.sanitizer.bypassSecurityTrustResourceUrl( + arr.join(".") + ); + } else if (this.getFileType(this.imgUrl) == "pdf") { + this.fileUrl = this.sanitizer.bypassSecurityTrustResourceUrl( + this.imgUrl + ); } } } - - let loginUserInfo - if (sessionStorage.getItem('isGasStation') == 'true') { - loginUserInfo = JSON.parse(sessionStorage.getItem('userdataOfgasstation')) + let loginUserInfo; + if (sessionStorage.getItem("isGasStation") == "true") { + loginUserInfo = JSON.parse( + sessionStorage.getItem("userdataOfgasstation") + ); } else { - loginUserInfo = JSON.parse(sessionStorage.getItem('userdata')) + loginUserInfo = JSON.parse(sessionStorage.getItem("userdata")); } - if (loginUserInfo.userName == 'admin' || sessionStorage.getItem('isGasStation') == 'true') { - this.isSubmit = true + if ( + loginUserInfo.userName == "admin" || + sessionStorage.getItem("isGasStation") == "true" + ) { + this.isSubmit = true; } else { - this.isSubmit = false + this.isSubmit = false; } - console.log('this.isSubmit', this.isSubmit) - + console.log("this.isSubmit", this.isSubmit); - if (loginUserInfo.permissions.find((item) => { - return item.name == 'Data.Violation.Positive.Censor' - }) && this.data.violation.eventSystemName.indexOf("证照有效期") == -1) { - this.isMisinformation = true + if ( + loginUserInfo.permissions.find((item) => { + return item.name == "Data.Violation.Positive.Censor"; + }) && + this.data.violation.eventSystemName.indexOf("证照有效期") == -1 + ) { + this.isMisinformation = true; } else { - this.isMisinformation = false + this.isMisinformation = false; } } - fileList = [] + fileList = []; - isLoadingSave: boolean = false - uploadIndex: string + isLoadingSave: boolean = false; + uploadIndex: string; filechange(e) { - this.isLoadingSave = true - let file = e.target.files[0] || null //获取上传的文件 - this.openFileSelect(file, `stationPhotos/${this.data.gasStation.id}/appealFile/${this.data.id}`) + this.isLoadingSave = true; + let file = e.target.files[0] || null; //获取上传的文件 + this.openFileSelect( + file, + `stationPhotos/${this.data.gasStation.id}/appealFile/${this.data.id}` + ); } //设置文件路径并上传 - postFilePath + postFilePath; async openFileSelect(file: File, extensionPath: string) { this.postFilePath = extensionPath; - let fileSize = file.size || null //上传文件的总大小 - let shardSize = 5 * 1024 * 1024 //5MB 超过5MB要分块上传 - if (fileSize >= shardSize) // 超过5MB要分块上传 - { + let fileSize = file.size || null; //上传文件的总大小 + let shardSize = 5 * 1024 * 1024; //5MB 超过5MB要分块上传 + if (fileSize >= shardSize) { + // 超过5MB要分块上传 await this.postFileByMul(file); - } - else //普通上传 - { + } //普通上传 + else { await this.postFile(file); } } //上传文件 async postFile(file: File) { await new Promise((resolve, reject) => { - this.objectsSrv.postFile(this.postFilePath, file).subscribe(data => { + this.objectsSrv.postFile(this.postFilePath, file).subscribe((data) => { let dataObj = data as any; - let filePath: string = ObjectsSimpleService.baseUrl + dataObj.objectName; - this.fileList.push(filePath) - this.isLoadingSave = false - resolve('success') + let filePath: string = + ObjectsSimpleService.baseUrl + dataObj.objectName; + this.fileList.push(filePath); + this.isLoadingSave = false; + resolve("success"); }); - }) + }); } /** * 分块上传 - * @param file + * @param file */ postFileByMul(file: File) { - this.objectsSrv.postFile_MultipartUpload(this.postFilePath, file).then((value) => { - let dataObj = value as any; - let filePath = dataObj.filePath - this.fileList.push(filePath) - this.isLoadingSave = false - }); - + this.objectsSrv + .postFile_MultipartUpload(this.postFilePath, file) + .then((value) => { + let dataObj = value as any; + let filePath = dataObj.filePath; + this.fileList.push(filePath); + this.isLoadingSave = false; + }); } lookfile(item) { if (!item) { - return + return; } - if (this.getFileType(item) == 'word') { - let arr = item.split('.') - arr[arr.length - 1] = 'pdf' - window.open(arr.join('.')) - } else if (this.getFileType(item) == 'pdf') { - window.open(item) + if (this.getFileType(item) == "word") { + let arr = item.split("."); + arr[arr.length - 1] = "pdf"; + window.open(arr.join(".")); + } else if (this.getFileType(item) == "pdf") { + window.open(item); } else { - this.viewImg(item) + this.viewImg(item); } } delete(fileList, key) { this.modal.confirm({ nzTitle: `确定要删除这个文件吗?`, - nzOkText: '确定', - nzOkType: 'primary', + nzOkText: "确定", + nzOkType: "primary", nzOnOk: () => { - fileList.splice(key, 1) + fileList.splice(key, 1); }, - nzCancelText: '取消' + nzCancelText: "取消", }); - } //查看图片 viewImg(url) { - let dom = document.getElementById(`viewerjs`) + let dom = document.getElementById(`viewerjs`); let pObjs = dom.childNodes; - let node = document.createElement("img") + let node = document.createElement("img"); node.style.display = "none"; node.src = url; - node.id = 'img' - dom.appendChild(node) + node.id = "img"; + dom.appendChild(node); setTimeout(() => { let viewer = new Viewer(document.getElementById(`viewerjs`), { hidden: () => { dom.removeChild(pObjs[0]); viewer.destroy(); - } + }, }); node.click(); }, 0); @@ -192,85 +208,101 @@ export class GetOutOfLineDetailsComponent implements OnInit { //获取文件格式 getFileType(name: string): string { - let suffix - if (name.substring(name.length - 4).includes('png') || name.substring(name.length - 4).includes('jpg') || name.substring(name.length - 4).includes('jpeg') || name.substring(name.length - 4).includes('webp')) { - suffix = 'img' - } else if (name.substring(name.length - 4).includes('doc') || name.substring(name.length - 4).includes('docx')) { - suffix = 'word' - } else if (name.substring(name.length - 4).includes('pdf')) { - suffix = 'pdf' + let suffix; + if ( + name.substring(name.length - 4).includes("png") || + name.substring(name.length - 4).includes("jpg") || + name.substring(name.length - 4).includes("jpeg") || + name.substring(name.length - 4).includes("webp") + ) { + suffix = "img"; + } else if ( + name.substring(name.length - 4).includes("doc") || + name.substring(name.length - 4).includes("docx") + ) { + suffix = "word"; + } else if (name.substring(name.length - 4).includes("pdf")) { + suffix = "pdf"; } - return suffix + return suffix; } - - - - - selectedType: string = 'img' + selectedType: string = "img"; contentType(type) { - this.selectedType = type + this.selectedType = type; } submit() { let body = { id: this.data.id, - handleRecord: this.content - } - this.http.post('/api/services/app/ViolateRecord/HandleViolateRecord', body).subscribe(data => { - this.message.create('success', '处置成功!'); - this.data.handleTime = new Date() - this.data.handleStateStr = '已处置' - this.data.handleRecord = this.content - }) + handleRecord: this.content, + }; + this.http + .post("/api/services/app/ViolateRecord/HandleViolateRecord", body) + .subscribe((data) => { + this.message.create("success", "处置成功!"); + this.data.handleTime = new Date(); + this.data.handleStateStr = "已处置"; + this.data.handleRecord = this.content; + }); } //误报 misinformation() { this.modal.confirm({ - nzTitle: '判定该预警为误报吗?', - nzOkText: '确定', - nzOkType: 'primary', + nzTitle: "判定该预警为误报吗?", + nzOkText: "确定", + nzOkType: "primary", nzOnOk: () => { let body = { id: this.data.id, - positive: false - } - this.http.post('/api/services/app/ViolateRecord/CensorViolateRecord', body).subscribe(data => { - this.message.create('success', '处置成功!'); - // this.data.handleTime = new Date() - this.initialModal.triggerOk() - }, err => { - this.message.create('warning', '处置失败,请联系管理员!'); - }) - + positive: false, + }; + this.http + .post("/api/services/app/ViolateRecord/CensorViolateRecord", body) + .subscribe( + (data) => { + this.message.create("success", "处置成功!"); + // this.data.handleTime = new Date() + this.initialModal.triggerOk(); + }, + (err) => { + this.message.create("warning", "处置失败,请联系管理员!"); + } + ); }, - nzCancelText: '取消', - nzOnCancel: () => console.log('Cancel') - }) + nzCancelText: "取消", + nzOnCancel: () => console.log("Cancel"), + }); } // 申诉 - isAppeal - appealValue + isAppeal; + appealValue; appeal() { - this.isAppeal = true + this.isAppeal = true; } handleOk() { let body = { appealReason: this.appealValue, - appealAttachments: this.fileList - } - this.http.post('/api/services/app/ViolateRecord/Appeal', body, { - params: { - id: this.data.id - } - }).subscribe(data => { - this.message.create('success', '申诉提交成功'); - this.isAppeal = false; - this.data.appealStatus = 1 - }, err => { - this.message.create('warning', '申诉提交失败,请联系管理员!'); - }) + appealAttachments: this.fileList, + }; + this.http + .post("/api/services/app/ViolateRecord/Appeal", body, { + params: { + id: this.data.id, + }, + }) + .subscribe( + (data: any) => { + this.message.create("success", "申诉提交成功"); + this.isAppeal = false; + this.data.appealStatus = 1; + this.data.appealLog = data.result.appealLog; + }, + (err) => { + this.message.create("warning", "申诉提交失败,请联系管理员!"); + } + ); } handleCancel(): void { @@ -278,19 +310,24 @@ export class GetOutOfLineDetailsComponent implements OnInit { } 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', '申诉撤销失败,请联系管理员!'); - }) + 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", "申诉撤销失败,请联系管理员!"); + } + ); } - closeModel(){ - this.openmodal.close() + closeModel() { + this.openmodal.close(); } }