From c7798c3b4a3013c5aa31eb8b37ddccea91430719 Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Thu, 14 Aug 2025 15:00:12 +0800 Subject: [PATCH] fix: View replay failed after the user deleted it. --- src/app/pages/monitor/monitor.component.ts | 18 ++++++++++++++---- src/app/pages/replay/replay.component.ts | 17 ++++++++++------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/app/pages/monitor/monitor.component.ts b/src/app/pages/monitor/monitor.component.ts index 85e96a851..2bbcf5956 100644 --- a/src/app/pages/monitor/monitor.component.ts +++ b/src/app/pages/monitor/monitor.component.ts @@ -1,7 +1,7 @@ import {Component, ElementRef, OnInit, ViewChild} from '@angular/core'; import {HttpService, I18nService, SettingService} from '@app/services'; import {ActivatedRoute} from '@angular/router'; -import {Session, Ticket, User} from '@app/model'; +import {Asset, Session, Ticket, User} from '@app/model'; import {NzNotificationService} from 'ng-zorro-antd/notification'; import {getWaterMarkContent} from '@app/utils/common'; @@ -41,8 +41,18 @@ export class PagesMonitorComponent implements OnInit { this.sessionID = params['sid']; this.generateMonitorURL().then(async () => { const sessionObj = this.sessionDetail; - const asset = await this._http.getAssetDetail(sessionObj.asset_id).toPromise(); - const sessionUser = await this._http.getUserDetail(sessionObj.user_id); + let asset: any = null; + try { + asset = await this._http.getAssetDetail(sessionObj.asset_id).toPromise(); + } catch (error) { + asset = new Asset(); + } + let sessionUser: User = null; + try { + sessionUser = await this._http.getUserDetail(sessionObj.user_id); + } catch (error) { + sessionUser = new User(); + } const auditorUser = `${this._i18n.instant('Viewer')}: ${this.user.name}(${this.user.username})`; const sessionContent = getWaterMarkContent(sessionUser, asset, this._settingSvc); const content = `${auditorUser}\n${sessionContent}`; @@ -108,7 +118,7 @@ export class PagesMonitorComponent implements OnInit { const resumeTaskMsg = await this._i18n.t('Resume task has been send'); const session_ids = res['ok']; const msg = this.isPaused ? resumeTaskMsg : pauseTaskMsg; - this._toastr.success(msg, '', { nzClass: 'custom-success-notification' }); + this._toastr.success(msg, '', {nzClass: 'custom-success-notification'}); if (session_ids.indexOf(this.sessionID) !== -1) { } diff --git a/src/app/pages/replay/replay.component.ts b/src/app/pages/replay/replay.component.ts index 708154c12..21585a4e0 100644 --- a/src/app/pages/replay/replay.component.ts +++ b/src/app/pages/replay/replay.component.ts @@ -1,8 +1,8 @@ -import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { HttpService, I18nService, LogService, SettingService } from '@app/services'; -import { Asset, Replay, Session, User } from '@app/model'; -import { getWaterMarkContent } from '@app/utils/common'; +import {Component, OnInit} from '@angular/core'; +import {ActivatedRoute} from '@angular/router'; +import {HttpService, I18nService, LogService, SettingService} from '@app/services'; +import {Asset, Replay, Session, User} from '@app/model'; +import {getWaterMarkContent} from '@app/utils/common'; @Component({ standalone: false, @@ -48,8 +48,11 @@ export class PagesReplayComponent implements OnInit { } catch (error) { this.asset = new Asset(); } - - this.sessionUser = await this._http.getUserDetail(this.session.user_id); + try { + this.sessionUser = await this._http.getUserDetail(this.session.user_id); + } catch (error) { + this.sessionUser = new User(); + } const interval = setInterval(() => { this._http.getReplay(sid).subscribe(