From 036d317e9a713fca592015837c38625a8e1bdbc9 Mon Sep 17 00:00:00 2001 From: zhenzhenbai <850084376@qq.com> Date: Thu, 20 Apr 2023 17:24:35 +0800 Subject: Title: Displaying the intent report status Desc: the protal supports intention management to display the intention reeporting status Issue-ID: USECASEUI-798 Signed-off-by: zhenzhenbai <850084376@qq.com> Change-Id: I2e0034eeb640be7f372bfe703fc3444794ac497a --- usecaseui-portal/src/app/app.module.ts | 2 + .../app/core/services/intentManagement.service.ts | 8 +++- .../intent-management.component.html | 10 ++-- .../intent-management.component.less | 8 +++- .../intent-management.component.ts | 53 ++++++++++++++++++++++ .../intent-report-detail.component.html | 35 ++++++++++++++ .../intent-report-detail.component.less | 0 .../intent-report-detail.component.spec.ts | 25 ++++++++++ .../intent-report-detail.component.ts | 25 ++++++++++ 9 files changed, 159 insertions(+), 7 deletions(-) create mode 100644 usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.html create mode 100644 usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.less create mode 100644 usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.spec.ts create mode 100644 usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.ts (limited to 'usecaseui-portal') diff --git a/usecaseui-portal/src/app/app.module.ts b/usecaseui-portal/src/app/app.module.ts index 65e8ec06..2b9506b3 100644 --- a/usecaseui-portal/src/app/app.module.ts +++ b/usecaseui-portal/src/app/app.module.ts @@ -114,6 +114,7 @@ import { InputIntentManagementComponent } from './views/intent-management/input- import { InputIntentExpectationComponent } from './views/intent-management/input-intent-expectation/input-intent-expectation.component'; import { InputIntentStateComponent } from './views/intent-management/input-intent-state/input-intent-state.component'; import { InputIntentConditionComponent } from './views/intent-management/input-intent-condition/input-intent-condition.component'; +import { IntentReportDetailComponent } from './views/intent-management/intent-report-detail/intent-report-detail.component'; export function HttpLoaderFactory(httpClient: HttpClient) { return new TranslateHttpLoader(httpClient, "./assets/i18n/", ".json"); @@ -218,6 +219,7 @@ registerLocaleData(en); InputIntentExpectationComponent, InputIntentStateComponent, InputIntentConditionComponent, + IntentReportDetailComponent, ], imports: [ BrowserModule, diff --git a/usecaseui-portal/src/app/core/services/intentManagement.service.ts b/usecaseui-portal/src/app/core/services/intentManagement.service.ts index de0216db..ee9cd3b2 100644 --- a/usecaseui-portal/src/app/core/services/intentManagement.service.ts +++ b/usecaseui-portal/src/app/core/services/intentManagement.service.ts @@ -25,7 +25,8 @@ export class IntentManagementService { createIntentManagement: "/api/usecaseui-intent-analysis/v1/intents", getIntentManagement: "/api/usecaseui-intent-analysis/v1/intents/intentGenerateType/USERINPUT", deleteIntentManagement: "/api/usecaseui-intent-analysis/v1/intents/", - updateIntentManagementData: "/api/usecaseui-intent-analysis/v1/intents/" + updateIntentManagementData: "/api/usecaseui-intent-analysis/v1/intents/", + getIntentReport: "/api/usecaseui-intent-analysis/v1/intentReport/" }; // intentManagement @@ -38,7 +39,10 @@ export class IntentManagementService { deleteIntentManagementData(intentId) { return this.http.delete(this.url.deleteIntentManagement + intentId); } - updateIntentManagementData(id, requestBody) {//更新接口未完成 + updateIntentManagementData(id, requestBody) { return this.http.put(this.url.updateIntentManagementData + id, requestBody); } + getIntentReportData(intentId){ + return this.http.get(this.url.getIntentReport+intentId); + } } diff --git a/usecaseui-portal/src/app/views/intent-management/intent-management.component.html b/usecaseui-portal/src/app/views/intent-management/intent-management.component.html index 7e3a5712..e7eb0ad4 100644 --- a/usecaseui-portal/src/app/views/intent-management/intent-management.component.html +++ b/usecaseui-portal/src/app/views/intent-management/intent-management.component.html @@ -26,10 +26,11 @@ > - No + No Intent ID Intent Name - {{"i18nTextDefine_Action" | translate}} + Status + {{"i18nTextDefine_Action" | translate}} @@ -38,7 +39,9 @@ {{i+1}} {{ data.intentId }} {{ data.intentName }} + {{ data.intentStatus }} + @@ -47,4 +50,5 @@ - \ No newline at end of file + + \ No newline at end of file diff --git a/usecaseui-portal/src/app/views/intent-management/intent-management.component.less b/usecaseui-portal/src/app/views/intent-management/intent-management.component.less index 04580fef..43f61660 100644 --- a/usecaseui-portal/src/app/views/intent-management/intent-management.component.less +++ b/usecaseui-portal/src/app/views/intent-management/intent-management.component.less @@ -14,7 +14,7 @@ margin-top: 7px; } } - .anticon-edit,.anticon-delete{ + .anticon-edit,.anticon-delete,.anticon-menu-fold{ font-size: 18px; margin-right: 10px; cursor: pointer; @@ -53,7 +53,7 @@ top: 32px; left: 110px; } - .anticon-edit,.anticon-delete{ + .anticon-edit,.anticon-delete,.anticon-menu-fold{ font-size: 18px; margin-right: 10px; cursor: pointer; @@ -61,6 +61,10 @@ } .intent-table{ margin-bottom: 15px; + ::ng-deep ant-modal-body{ + height: 300 !important; + overflow-y: auto !important; + } } .target-div{ float: left; diff --git a/usecaseui-portal/src/app/views/intent-management/intent-management.component.ts b/usecaseui-portal/src/app/views/intent-management/intent-management.component.ts index 758aad06..e7dbc7fd 100644 --- a/usecaseui-portal/src/app/views/intent-management/intent-management.component.ts +++ b/usecaseui-portal/src/app/views/intent-management/intent-management.component.ts @@ -17,9 +17,20 @@ export class IntentManagementComponent implements OnInit { ngOnInit() { this.getIntentManagementData() } + ngOnDestroy(){ + window.clearInterval(this.timer) + } listOfData: any[] = []; + reportData: any[] = []; + intentInfo: Object={ + intentId:'', + intentName:'', + reportTime: '' + }; + timer: any; intentModuleShow: boolean = false; + intentReportDetailShow: boolean = false; editIntentTableList: Object={}; currentIndex: number=-1; @@ -28,12 +39,28 @@ export class IntentManagementComponent implements OnInit { .subscribe( (data) => { this.listOfData=data.result_body + this.getIntentReportData(this.listOfData) + this.timer=setInterval(function(){ + this.getIntentReportData(this.listOfData) + },5000) }, (err) => { this.message.error('Failed to obtain intent data'); } ) } + getIntentReportData(data): void{ + data.forEach(item => { + this.myhttp.getIntentReportData(item.intentId).subscribe( + (data) => { + item.intentStatus=data.result_body.fulfillmentInfos[0].fulfillmentStatus + }, + (err) => { + this.message.error('Failed to obtain Report data'); + } + ) + }); + } inputIntentModuleShow(): void { this.intentModuleShow = true; } @@ -45,6 +72,32 @@ export class IntentManagementComponent implements OnInit { } this.getIntentManagementData() } + intentReportModuleClose($event: any): void { + this.intentReportDetailShow = false + if ($event.cancel) { + return; + } + } + viewReport(data,i): void{ + this.reportData=[] + this.intentInfo={ + intentId:'', + intentName:'', + reportTime: '' + }; + this.intentInfo['intentId']=data['intentId'] + this.intentInfo['intentName']=data['intentName'] + this.myhttp.getIntentReportData(data.intentId).subscribe( + (data) => { + this.reportData=data.result_body.fulfillmentInfos + this.intentInfo['reportTime']=data.result_body.reportTime + this.intentReportDetailShow = true + }, + (err) => { + this.message.error('Failed to obtain Report data'); + } + ) + } editIntentList(data,i): void { this.editIntentTableList=JSON.parse(JSON.stringify(data)) this.currentIndex=i diff --git a/usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.html b/usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.html new file mode 100644 index 00000000..0f263c76 --- /dev/null +++ b/usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.html @@ -0,0 +1,35 @@ + +
+

+ Intent Name: {{intentInfo['intentName']}} + ID: {{intentInfo['intentId']}} +

+
+

ReportTime: {{intentInfo['reportTime']}}

+ + + + No + Status + Reason + + + + + + {{i+1}} + {{ data.fulfillmentStatus }} + {{ data.notFulfilledReason }} + + + + +
+
+ +
\ No newline at end of file diff --git a/usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.less b/usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.less new file mode 100644 index 00000000..e69de29b diff --git a/usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.spec.ts b/usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.spec.ts new file mode 100644 index 00000000..b507cd4e --- /dev/null +++ b/usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { IntentReportDetailComponent } from './intent-report-detail.component'; + +describe('IntentReportDetailComponent', () => { + let component: IntentReportDetailComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ IntentReportDetailComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(IntentReportDetailComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.ts b/usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.ts new file mode 100644 index 00000000..aa65d9fe --- /dev/null +++ b/usecaseui-portal/src/app/views/intent-management/intent-report-detail/intent-report-detail.component.ts @@ -0,0 +1,25 @@ +import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; + +@Component({ + selector: 'app-intent-report-detail', + templateUrl: './intent-report-detail.component.html', + styleUrls: ['../intent-management.component.less'] +}) +export class IntentReportDetailComponent implements OnInit { + + constructor() { } + + @Input() showModel: boolean; + @Input() reportData; + @Input() intentInfo; + @Output() modalOpreation = new EventEmitter(); + + ngOnInit() { + } + ngOnChanges(){ + } + handleCancel(): void { + this.showModel = false; + this.modalOpreation.emit({ "cancel": false }); + } +} -- cgit 1.2.3-korg