1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { KnowledgeBase } from '../knowledge-base.type';
import { KnowledgeBaseService } from '../knowledge-base.service';
import { MaasApi } from '@src/app/api/maas.api';
import { NzMessageService } from 'ng-zorro-antd';
import { forkJoin } from 'rxjs/observable/forkJoin';
import { of } from 'rxjs/observable/of';
import { catchError } from 'rxjs/operators';
import { MaasService } from '../../maas-service.service';
@Component({
selector: 'app-knowledge-base-detail',
templateUrl: './knowledge-base-detail.component.html',
styleUrls: ['./knowledge-base-detail.component.less']
})
export class KnowledgeBaseDetailComponent implements OnInit {
constructor(
public knowledgeBaseService: KnowledgeBaseService,
public myhttp: MaasApi,
private maasServie: MaasService,
private message: NzMessageService,
) { }
@Input() showModal: boolean;
displayFiles = [];
init = true;
data: KnowledgeBase ;
set knowledgeBaseDetail(v: KnowledgeBase) {
if(v) {
this.displayFiles = v.fileList.slice().reverse();
this.data = v;
}
}
get knowledgeBaseDetail() {
return this.data;
}
@Input() id = '';
fileList: File[] = [];
@Output() modalOpreation = new EventEmitter();
removedFiles:string[] = [];
url = `${(window as any).baseUrl}${this.myhttp.url.uploadFile}`;
ngOnInit() {
this.displayKnowledgeDetails(this.id);
}
displayKnowledgeDetails(id: string) {
this.myhttp.getKnowledgeBaseById(id).subscribe(
(response) => {
this.knowledgeBaseDetail = response.result_body;
},
() => {
this.message.error('Failed to obtain knowledge base data');
}
);
}
handleCancel(): void {
this.showModal = false;
this.modalOpreation.emit();
}
handleOk(): void {
this.showModal = false;
this.modalOpreation.emit();
}
handleChange({ file}): void {
const status = file.status;
if (status === 'done') {
this.fileList = [];
if (file.response.result_header.result_code === 200) {
this.message.success(`${file.name} upload successfully.`);
this.displayKnowledgeDetails(this.id);
} else {
this.displayFiles.unshift({fileId: this.maasServie.generateUniqueId, fileName: file.name, status: 'error'});
}
} else if (status === 'error') {
this.fileList = [];
this.displayFiles.unshift({fileId: this.maasServie.generateUniqueId, fileName: file.name, status: 'error'});
this.message.error(`${file.name} file upload failed.`);
} else if (status === 'removed') {
console.log('file event removed!');
}
}
nzdata = () => {
const metaData = JSON.stringify({
knowledgeBaseId: this.knowledgeBaseDetail.knowledgeBaseId
});
return {metaData}
}
removedFile({fileId, status, fileName}) {
if (status === 'error') {
this.displayFiles = this.displayFiles.filter(file => file.fileId !== fileId);
this.message.success(`${fileName} delete successfully.`);
return;
}
this.myhttp.removeFile(fileId).pipe(
).subscribe(
(response) => {
if (response.result_header.result_code === 200) {
this.displayFiles = this.displayFiles.filter(file => file.fileId !== fileId);
this.message.success(`${fileName} delete successfully.`);
}
},
() => {
this.message.success(`${fileName} delete failed.`);
}
)
}
beforeUpload = (): boolean => {
return true;
}
}
|