1 import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
2 import { KnowledgeBase } from '../knowledge-base.type';
3 import { KnowledgeBaseService } from '../knowledge-base.service';
4 import { MaasApi } from '@src/app/api/maas.api';
5 import { NzMessageService } from 'ng-zorro-antd';
6 import { forkJoin } from 'rxjs/observable/forkJoin';
7 import { of } from 'rxjs/observable/of';
8 import { catchError } from 'rxjs/operators';
9 import { MaasService } from '../../maas-service.service';
11 selector: 'app-knowledge-base-detail',
12 templateUrl: './knowledge-base-detail.component.html',
13 styleUrls: ['./knowledge-base-detail.component.less']
15 export class KnowledgeBaseDetailComponent implements OnInit {
17 public knowledgeBaseService: KnowledgeBaseService,
18 public myhttp: MaasApi,
19 private maasServie: MaasService,
20 private message: NzMessageService,
22 @Input() showModal: boolean;
26 set knowledgeBaseDetail(v: KnowledgeBase) {
28 this.displayFiles = v.fileList.slice().reverse();
32 get knowledgeBaseDetail() {
36 fileList: File[] = [];
37 @Output() modalOpreation = new EventEmitter();
38 removedFiles:string[] = [];
39 url = `${(window as any).baseUrl}${this.myhttp.url.uploadFile}`;
42 this.displayKnowledgeDetails(this.id);
45 displayKnowledgeDetails(id: string) {
46 this.myhttp.getKnowledgeBaseById(id).subscribe(
48 this.knowledgeBaseDetail = response.result_body;
51 this.message.error('Failed to obtain knowledge base data');
56 handleCancel(): void {
57 this.showModal = false;
58 this.modalOpreation.emit();
62 this.showModal = false;
63 this.modalOpreation.emit();
66 handleChange({ file}): void {
67 const status = file.status;
68 if (status === 'done') {
70 if (file.response.result_header.result_code === 200) {
71 this.message.success(`${file.name} upload successfully.`);
72 this.displayKnowledgeDetails(this.id);
74 this.displayFiles.unshift({fileId: this.maasServie.generateUniqueId, fileName: file.name, status: 'error'});
76 } else if (status === 'error') {
78 this.displayFiles.unshift({fileId: this.maasServie.generateUniqueId, fileName: file.name, status: 'error'});
79 this.message.error(`${file.name} file upload failed.`);
80 } else if (status === 'removed') {
81 console.log('file event removed!');
86 const metaData = JSON.stringify({
87 knowledgeBaseId: this.knowledgeBaseDetail.knowledgeBaseId
92 removedFile({fileId, status, fileName}) {
93 if (status === 'error') {
94 this.displayFiles = this.displayFiles.filter(file => file.fileId !== fileId);
95 this.message.success(`${fileName} delete successfully.`);
98 this.myhttp.removeFile(fileId).pipe(
101 if (response.result_header.result_code === 200) {
102 this.displayFiles = this.displayFiles.filter(file => file.fileId !== fileId);
103 this.message.success(`${fileName} delete successfully.`);
107 this.message.success(`${fileName} delete failed.`);
112 beforeUpload = (): boolean => {