|
|
|
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 { PublicMethodsService } from "src/app/service/publicMethods.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"],
|
|
|
|
})
|
|
|
|
export class GetOutOfLineDetailsComponent implements OnInit {
|
|
|
|
@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,
|
|
|
|
private pubilcMethods: PublicMethodsService
|
|
|
|
) {}
|
|
|
|
|
|
|
|
imgUrl: string;
|
|
|
|
vedioUrl: string;
|
|
|
|
content;
|
|
|
|
details;
|
|
|
|
|
|
|
|
isMisinformation: boolean = false; //误报按钮的显隐
|
|
|
|
|
|
|
|
isImage = true; //传过来的文件是否是图片
|
|
|
|
fileUrl;
|
|
|
|
|
|
|
|
isLicenseWarning = false;
|
|
|
|
|
|
|
|
isSubmit;
|
|
|
|
ngOnInit(): void {
|
|
|
|
console.log("预警信息", this.data);
|
|
|
|
|
|
|
|
if (this.data.violation.violationType == "证照资质") {
|
|
|
|
this.isLicenseWarning = true;
|
|
|
|
} else {
|
|
|
|
this.isLicenseWarning = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
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.pubilcMethods.getFileType(this.imgUrl) == "img") {
|
|
|
|
this.isImage = true;
|
|
|
|
} else {
|
|
|
|
this.isImage = false;
|
|
|
|
if (this.pubilcMethods.getFileType(this.imgUrl) == "word") {
|
|
|
|
let arr = this.imgUrl.split(".");
|
|
|
|
arr[arr.length - 1] = "pdf";
|
|
|
|
this.fileUrl = this.sanitizer.bypassSecurityTrustResourceUrl(
|
|
|
|
arr.join(".")
|
|
|
|
);
|
|
|
|
} else if (this.pubilcMethods.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"));
|
|
|
|
}
|
|
|
|
|
|
|
|
if (
|
|
|
|
loginUserInfo.userName == "admin" ||
|
|
|
|
sessionStorage.getItem("isGasStation") == "true"
|
|
|
|
) {
|
|
|
|
this.isSubmit = true;
|
|
|
|
} else {
|
|
|
|
this.isSubmit = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
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;
|
|
|
|
} else {
|
|
|
|
this.isMisinformation = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
fileList = [];
|
|
|
|
|
|
|
|
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}`
|
|
|
|
);
|
|
|
|
}
|
|
|
|
//设置文件路径并上传
|
|
|
|
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要分块上传
|
|
|
|
await this.postFileByMul(file);
|
|
|
|
} //普通上传
|
|
|
|
else {
|
|
|
|
await this.postFile(file);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//上传文件
|
|
|
|
async postFile(file: File) {
|
|
|
|
await new Promise((resolve, reject) => {
|
|
|
|
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");
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 分块上传
|
|
|
|
* @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;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
lookfile(item) {
|
|
|
|
if (!item) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (this.pubilcMethods.getFileType(item) == "word") {
|
|
|
|
let arr = item.split(".");
|
|
|
|
arr[arr.length - 1] = "pdf";
|
|
|
|
window.open(arr.join("."));
|
|
|
|
} else if (this.pubilcMethods.getFileType(item) == "pdf") {
|
|
|
|
window.open(item);
|
|
|
|
} else {
|
|
|
|
this.viewImg(item);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
delete(fileList, key) {
|
|
|
|
this.modal.confirm({
|
|
|
|
nzTitle: `确定要删除这个文件吗?`,
|
|
|
|
nzOkText: "确定",
|
|
|
|
nzOkType: "primary",
|
|
|
|
nzOnOk: () => {
|
|
|
|
fileList.splice(key, 1);
|
|
|
|
},
|
|
|
|
nzCancelText: "取消",
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
//查看图片
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
|
|
|
selectedType: string = "img";
|
|
|
|
contentType(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;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
//误报
|
|
|
|
misinformation() {
|
|
|
|
this.modal.confirm({
|
|
|
|
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", "处置失败,请联系管理员!");
|
|
|
|
}
|
|
|
|
);
|
|
|
|
},
|
|
|
|
nzCancelText: "取消",
|
|
|
|
nzOnCancel: () => console.log("Cancel"),
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
// 申诉
|
|
|
|
isAppeal;
|
|
|
|
appealValue;
|
|
|
|
appeal() {
|
|
|
|
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: 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 {
|
|
|
|
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", "申诉撤销失败,请联系管理员!");
|
|
|
|
}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
closeModel() {
|
|
|
|
this.openmodal.close();
|
|
|
|
}
|
|
|
|
}
|