diff options
Diffstat (limited to 'usecaseui-portal/src/app/views/maas/knowledge-base-management')
11 files changed, 146 insertions, 31 deletions
diff --git a/usecaseui-portal/src/app/views/maas/knowledge-base-management/create-knowledge-base/create-knowledge-base.component.html b/usecaseui-portal/src/app/views/maas/knowledge-base-management/create-knowledge-base/create-knowledge-base.component.html index 78773c0a..1931220f 100644 --- a/usecaseui-portal/src/app/views/maas/knowledge-base-management/create-knowledge-base/create-knowledge-base.component.html +++ b/usecaseui-portal/src/app/views/maas/knowledge-base-management/create-knowledge-base/create-knowledge-base.component.html @@ -61,7 +61,8 @@ <nz-form-control [nzSpan]="12"> <nz-upload [(nzFileList)]="fileList" [nzBeforeUpload]="beforeUpload"> <button nz-button> - <i class="anticon anticon-upload"></i><span>Select File</span> + <i class="anticon anticon-upload"></i> + <span>Select File</span> </button> </nz-upload> </nz-form-control> diff --git a/usecaseui-portal/src/app/views/maas/knowledge-base-management/create-knowledge-base/create-knowledge-base.component.ts b/usecaseui-portal/src/app/views/maas/knowledge-base-management/create-knowledge-base/create-knowledge-base.component.ts index 2757137b..aefe2066 100644 --- a/usecaseui-portal/src/app/views/maas/knowledge-base-management/create-knowledge-base/create-knowledge-base.component.ts +++ b/usecaseui-portal/src/app/views/maas/knowledge-base-management/create-knowledge-base/create-knowledge-base.component.ts @@ -35,7 +35,7 @@ export class CreateKnowledgeBaseComponent implements OnInit { name: [null, [Validators.required]], description: [null], selectedOperator: [null, [Validators.required]], - selectedPlatform: [null, [Validators.required]], + selectedPlatform: [null, [Validators.required]] }); } fetchOperators(): void { diff --git a/usecaseui-portal/src/app/views/maas/knowledge-base-management/edit-knowledge-base/edit-knowledge-base.component.html b/usecaseui-portal/src/app/views/maas/knowledge-base-management/edit-knowledge-base/edit-knowledge-base.component.html index feee9b8f..e181ee5c 100644 --- a/usecaseui-portal/src/app/views/maas/knowledge-base-management/edit-knowledge-base/edit-knowledge-base.component.html +++ b/usecaseui-portal/src/app/views/maas/knowledge-base-management/edit-knowledge-base/edit-knowledge-base.component.html @@ -4,8 +4,7 @@ <nz-form-item> <nz-form-label [nzSpan]="8" nzFor="name" nzRequired>Knowledge Base Name</nz-form-label> <nz-form-control [nzSpan]="12"> - <input nz-input formControlName="name" placeholder="Please input knowledge base name" /> - <nz-form-explain *ngIf="validateForm.get('name').dirty && validateForm.get('name').errors">Please input knowledge base name</nz-form-explain> + <input nz-input class="disabled-input" formControlName="name" placeholder="Please input knowledge base name"/> </nz-form-control> </nz-form-item> <nz-form-item> diff --git a/usecaseui-portal/src/app/views/maas/knowledge-base-management/edit-knowledge-base/edit-knowledge-base.component.ts b/usecaseui-portal/src/app/views/maas/knowledge-base-management/edit-knowledge-base/edit-knowledge-base.component.ts index 3a71d800..00b65dfe 100644 --- a/usecaseui-portal/src/app/views/maas/knowledge-base-management/edit-knowledge-base/edit-knowledge-base.component.ts +++ b/usecaseui-portal/src/app/views/maas/knowledge-base-management/edit-knowledge-base/edit-knowledge-base.component.ts @@ -23,7 +23,7 @@ export class EditKnowledgeBaseComponent implements OnInit { maaSPlatformName: '', maaSPlatformId: '', updateTime: '', - filesName: [], + fileList: [], operatorId: '' } knowledgeBase: KnowledgeBase = this.defalutKnowledgeBase; diff --git a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-detail/knowledge-base-detail.component.html b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-detail/knowledge-base-detail.component.html index b491df86..419bb6b3 100644 --- a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-detail/knowledge-base-detail.component.html +++ b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-detail/knowledge-base-detail.component.html @@ -15,7 +15,7 @@ --> <nz-modal [(nzVisible)]="showModal" nzTitle="Knowledge Base Detail" (nzOnCancel)="handleCancel()" (nzOnOk)="handleOk()" nzWidth="56%" nzHeight="800px" class="intent-management-modal"> - <app-descriptions> + <app-descriptions *ngIf="knowledgeBaseDetail else LoadingTmp"> <app-descriptions-item nzTitle="Knowledge Base Name">{{knowledgeBaseDetail.knowledgeBaseName}} </app-descriptions-item> <app-descriptions-item nzTitle="Operator Name">{{knowledgeBaseDetail.operatorName}} @@ -25,11 +25,35 @@ <app-descriptions-item nzTitle="Update Time"> {{knowledgeBaseDetail.updateTime}} </app-descriptions-item> - <app-descriptions-item nzTitle="Files Name"> - {{knowledgeBaseService.getFiles(knowledgeBaseDetail)}} - </app-descriptions-item> <app-descriptions-item [nzSpan]="3" nzTitle="Knowledge Base Description">{{knowledgeBaseDetail.knowledgeBaseDescription}} </app-descriptions-item> + <app-descriptions-item [nzSpan]="3" nzTitle="Files Name"> + <div class="upload-file"> + <nz-upload [nzAction]="url" [(nzFileList)]="fileList" (nzChange)="handleChange($event)" nzName="files" [nzData]="nzdata"> + <button nz-button> + <i class="anticon anticon-upload"></i> + <span>Select File</span> + </button> + </nz-upload> + <div *ngFor="let file of displayFiles" + class="ant-upload-list-item ant-upload-list-item- ng-trigger ng-trigger-itemState ng-star-inserted" [ngClass]="{'ant-upload-list-item-error': file.status === 'error'}"> + <div class="ant-upload-list-item-info"> + <span class="ng-tns-c15-6 ng-star-inserted"> + <i class="anticon anticon-paper-clip ng-star-inserted"></i> + <span class="ant-upload-list-item-name ng-tns-c15-6 ng-star-inserted" + title="fastgpt_README.md">{{file.fileName}}</span> + </span> + </div> + <i class="anticon anticon-cross ng-tns-c15-6 ng-star-inserted" title="Remove file" + (click)="removedFile(file)"></i> + </div> + </div> + </app-descriptions-item> </app-descriptions> + <ng-template #LoadingTmp> + <div class="loading"> + <nz-spin class="upload-loading" [nzSize]="'large'"></nz-spin> + </div> + </ng-template> </nz-modal>
\ No newline at end of file diff --git a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-detail/knowledge-base-detail.component.less b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-detail/knowledge-base-detail.component.less index e69de29b..9447ad74 100644 --- a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-detail/knowledge-base-detail.component.less +++ b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-detail/knowledge-base-detail.component.less @@ -0,0 +1,14 @@ +.upload-file { + width: 100%; +} + +.upload-loading { + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +.loading { + position: relative; + height: 37px; +} diff --git a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-detail/knowledge-base-detail.component.ts b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-detail/knowledge-base-detail.component.ts index 49b9de4a..a9b0adaa 100644 --- a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-detail/knowledge-base-detail.component.ts +++ b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-detail/knowledge-base-detail.component.ts @@ -1,21 +1,56 @@ 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 knowledgeBaseService: KnowledgeBaseService, + public myhttp: MaasApi, + private maasServie: MaasService, + private message: NzMessageService, ) { } @Input() showModal: boolean; - @Input() knowledgeBaseDetail: KnowledgeBase; + 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 { @@ -27,4 +62,55 @@ export class KnowledgeBaseDetailComponent implements OnInit { 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; + } + }
\ No newline at end of file diff --git a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-management.component.html b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-management.component.html index eb7c232a..703bc04a 100644 --- a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-management.component.html +++ b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-management.component.html @@ -45,8 +45,8 @@ <app-create-knowledge-base *ngIf="createModalShow" [showModal]="createModalShow" (modalOpreation)="createModalClose($event)"></app-create-knowledge-base> <app-knowledge-base-detail *ngIf="knowledgeBaseShow" [showModal]="knowledgeBaseShow" - (modalOpreation)="knowledgeBaseDetailClose()" - [knowledgeBaseDetail]="knowledgeBaseDetail"></app-knowledge-base-detail> + (modalOpreation)="knowledgeBaseDetailClose()" [id]="knowledgeBaseId" + ></app-knowledge-base-detail> <app-edit-knowledge-base *ngIf="editKnowledgeBaseShow" [showModal]="editKnowledgeBaseShow" [knowledgeBaseId]="knowledgeBaseId" (modalOpreation)="editKnowledgeBaseModuleClose($event)"></app-edit-knowledge-base>
\ No newline at end of file diff --git a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-management.component.ts b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-management.component.ts index 843387b3..e6c96189 100644 --- a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-management.component.ts +++ b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base-management.component.ts @@ -77,16 +77,8 @@ export class KnowledgeBaseManagementComponent implements OnInit { } displayKnowledgeDetails(data): void { + this.knowledgeBaseId = data.knowledgeBaseId; this.knowledgeBaseShow = true; - this.myhttp.getKnowledgeBaseById(data.knowledgeBaseId) - .subscribe( - (data) => { - this.knowledgeBaseDetail = data.result_body; - }, - () => { - this.message.error('Failed to obtain knowledge base data'); - } - ) } editKnowedgeBase(data: KnowledgeBase) { diff --git a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base.service.ts b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base.service.ts index f7d91b1c..84f27181 100644 --- a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base.service.ts +++ b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base.service.ts @@ -3,9 +3,5 @@ import { KnowledgeBase } from './knowledge-base.type'; @Injectable() export class KnowledgeBaseService { - constructor() { } - getFiles(v: KnowledgeBase) { - return v.filesName ? v.filesName.join(',') : ''; - } } diff --git a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base.type.ts b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base.type.ts index b9ec432d..ac273a96 100644 --- a/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base.type.ts +++ b/usecaseui-portal/src/app/views/maas/knowledge-base-management/knowledge-base.type.ts @@ -4,12 +4,15 @@ export type KnowledgeBase = { operatorName: string, maaSPlatformName: string, updateTime: string, - filesName: Array<string>, operatorId: string, maaSPlatformId: string, - knowledgeBaseId: string + knowledgeBaseId: string, + fileList: Array<File>, +} +export type File = { + fileId: string, + fileName: string } - export type KnowledgeBaseResponse = Response<KnowledgeBase> export type KnowledgeBasesResponse = Response<Array<KnowledgeBase>> |