Browse Source

[完善]申诉增加字段

beijing
邵佳豪 2 years ago
parent
commit
5114565da8
  1. 1
      src/app/pages/audit/audit-ing/appeal-details/appeal-details.component.scss
  2. 3
      src/app/pages/audit/audit-ing/audit-dispose/audit-dispose.component.scss
  3. 10
      src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.html
  4. 381
      src/app/pages/today-warning/get-out-of-line-details/get-out-of-line-details.component.ts

1
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%;

3
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,10 +105,12 @@
overflow: hidden;
display: flex;
flex-direction: column;
span {
margin-bottom: 3px;
cursor: pointer;
}
span:hover {
text-decoration: underline;
}

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

@ -105,7 +105,7 @@
<textarea
*ngIf="!data.handleTime && isSubmit && (data.appealStatus == 0 || data.appealStatus == 3 || data.appealStatus == 4)"
[(ngModel)]="content"></textarea>
<span *ngIf="data.handleTime">{{content}}</span>
<span *ngIf="data.handleTime && content">{{content}}</span>
</div>
<div class="disposeTime" *ngIf="data.handleTime">
<span style="margin-right: 12px;">
@ -115,5 +115,13 @@
处置时间:{{data.handleTime|date:"yyyy-MM-dd HH:mm:ss"}}
</span>
</div>
<div class="disposeTime" *ngIf="data.appealStatus == 1">
<span style="color: #4BFFD4;cursor: default;">
<span>申诉人:</span>
<span style="margin-right: 12px;">{{data.appealLog.creatorUser.name}}</span>
<span>申诉时间:</span>
<span>{{data.appealLog.committedTime | date:"yyyy-MM-dd HH:mm:ss"}}</span>
</span>
</div>
</div>
</div>

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

@ -1,131 +1,147 @@
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);
}
}
}
let loginUserInfo
if (sessionStorage.getItem('isGasStation') == 'true') {
loginUserInfo = JSON.parse(sessionStorage.getItem('userdataOfgasstation'))
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")
);
} 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");
});
});
})
}
/**
@ -133,58 +149,58 @@ export class GetOutOfLineDetailsComponent implements OnInit {
* @param file
*/
postFileByMul(file: File) {
this.objectsSrv.postFile_MultipartUpload(this.postFilePath, file).then((value) => {
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
let filePath = dataObj.filePath;
this.fileList.push(filePath);
this.isLoadingSave = false;
});
}
lookfile(item) {
if (!item) {
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)
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);
} 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'
}
return suffix
}
selectedType: string = 'img'
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;
}
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', '处置成功!');
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', '处置失败,请联系管理员!');
})
this.initialModal.triggerOk();
},
nzCancelText: '取消',
nzOnCancel: () => console.log('Cancel')
})
(err) => {
this.message.create("warning", "处置失败,请联系管理员!");
}
);
},
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, {
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', '申诉提交失败,请联系管理员!');
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, {
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', '申诉撤销失败,请联系管理员!');
id: this.data.id,
},
})
.subscribe(
(data) => {
this.message.create("success", "申诉撤销成功");
this.data.appealStatus = 4;
},
(err) => {
this.message.create("warning", "申诉撤销失败,请联系管理员!");
}
);
}
closeModel() {
this.openmodal.close()
this.openmodal.close();
}
}

Loading…
Cancel
Save