From be551e5cd060f33a6715a56fee029a98cd5ebed8 Mon Sep 17 00:00:00 2001 From: xiayifan Date: Sat, 19 Sep 2020 17:53:52 +0800 Subject: [PATCH] UI display errormessage when the picture does not exist in the image module --- mindinsight/ui/src/services/fetcher.js | 2 +- .../ui/src/services/request-service.js | 12 ++++ .../ui/src/views/train-manage/image.vue | 69 +++++++++++++++++-- .../views/train-manage/training-dashboard.vue | 3 +- 4 files changed, 76 insertions(+), 10 deletions(-) diff --git a/mindinsight/ui/src/services/fetcher.js b/mindinsight/ui/src/services/fetcher.js index 7f71baf4..7b02921b 100644 --- a/mindinsight/ui/src/services/fetcher.js +++ b/mindinsight/ui/src/services/fetcher.js @@ -75,7 +75,7 @@ axios.interceptors.response.use( const ignoreCode = { ignoreError: ['50545005'], - regardError: ['50545013', '50545014'], + regardError: ['50545013', '50545014', '5054500D'], }; if ( diff --git a/mindinsight/ui/src/services/request-service.js b/mindinsight/ui/src/services/request-service.js index 1dc8cc15..c71edd86 100644 --- a/mindinsight/ui/src/services/request-service.js +++ b/mindinsight/ui/src/services/request-service.js @@ -163,6 +163,18 @@ export default { }); }, + // query image data + getImageData(params) { + return axios({ + method: 'get', + url: '/v1/mindinsight/datavisual/image/single-image', + params: params, + headers: { + ignoreError: true, + }, + }); + }, + // query training job visualization plugins getDatavisualPlugins(params) { return axios({ diff --git a/mindinsight/ui/src/views/train-manage/image.vue b/mindinsight/ui/src/views/train-manage/image.vue index 8e9100d5..018351ad 100644 --- a/mindinsight/ui/src/views/train-manage/image.vue +++ b/mindinsight/ui/src/views/train-manage/image.vue @@ -85,11 +85,18 @@ limitations under the License.
+
+
{{sampleItem.errMsg}}
+
@@ -291,6 +298,8 @@ export default { curImgUrl: '', curTime: '', curImageSize: [0, 0], + showErrMsg: false, + errMsg: '', }); } }); @@ -375,9 +384,13 @@ export default { // Initialize the current step information if (curSampleData) { sampleItem.curStep = curSampleData.step; - sampleItem.curImgUrl = - `${basePath}${this.imageBasePath}train_id=${sampleItem.summaryId}` + - `&tag=${sampleItem.tagName}&step=${curSampleData.step}&wt=${curSampleData.wall_time}`; + const params = { + train_id: sampleItem.summaryId, + tag: sampleItem.tagName, + step: curSampleData.step, + wt: curSampleData.wall_time, + }; + this.getImageData(params, sampleItem); sampleItem.curTime = this.dealrelativeTime( new Date(curSampleData.wall_time * 1000).toString(), ); @@ -415,14 +428,45 @@ export default { } const curStepData = sampleItem.sampleData[sliderValue]; sampleItem.curStep = curStepData.step; - sampleItem.curImgUrl = - `${basePath}${this.imageBasePath}train_id=${sampleItem.summaryId}` + - `&tag=${sampleItem.tagName}&step=${curStepData.step}&wt=${curStepData.wall_time}`; + const params = { + train_id: sampleItem.summaryId, + tag: sampleItem.tagName, + step: curStepData.step, + wt: curStepData.wall_time, + }; + this.getImageData(params, sampleItem); sampleItem.curTime = this.dealrelativeTime( new Date(curStepData.wall_time * 1000).toString(), ); sampleItem.curImageSize = [curStepData.width, curStepData.height]; }, + /** + * get image data + * @param {Object} params Current params + * @param {Object} sampleItem Current picture object. + */ + getImageData(params, sampleItem) { + RequestService.getImageData(params).then( + (res) => { + sampleItem.showErrMsg = false; + sampleItem.curImgUrl = + `${basePath}${this.imageBasePath}train_id=${sampleItem.summaryId}` + + `&tag=${sampleItem.tagName}&step=${params.step}&wt=${params.wt}`; + }, + (e) => { + if (e.response && e.response.data && e.response.data.error_code) { + sampleItem.curImgUrl = ''; + sampleItem.showErrMsg = true; + sampleItem.errMsg = this.$t('error')[e.response.data.error_code]; + } else { + sampleItem.showErrMsg = false; + sampleItem.curImgUrl = + `${basePath}${this.imageBasePath}train_id=${sampleItem.summaryId}` + + `&tag=${sampleItem.tagName}&step=${params.step}&wt=${params.wt}`; + } + }, + ); + }, /** * Image click event * @param {Object} event Native event event @@ -578,6 +622,8 @@ export default { curImgUrl: '', curTime: '', curImageSize: [0, 0], + showErrMsg: false, + errMsg: '', }); dataAddFlag = true; } @@ -778,6 +824,14 @@ export default { object-fit: contain; background: #f0f3fa; } + .error-message-container { + height: 100%; + display: flex; + background-color: #f0f3fa; + div { + margin: auto; + } + } } .sample-data-show { padding: 32px 16px; @@ -785,6 +839,7 @@ export default { white-space: nowrap; overflow: hidden; background-color: #f0f3fa; + margin-top: 3px; .tag-title, .summary-title { font-size: 14px; diff --git a/mindinsight/ui/src/views/train-manage/training-dashboard.vue b/mindinsight/ui/src/views/train-manage/training-dashboard.vue index 7a373f07..10cd5fb2 100644 --- a/mindinsight/ui/src/views/train-manage/training-dashboard.vue +++ b/mindinsight/ui/src/views/train-manage/training-dashboard.vue @@ -1510,13 +1510,12 @@ export default { // Initialize the current step information if (sampleItem.sampleData.length) { const sampleIndex = sampleItem.sampleData.length - 1; - const sampleStep = sampleItem.sampleData[sampleIndex].step; const sampleWallTime = sampleItem.sampleData[sampleIndex].wall_time; sampleItem.curImgUrl = `${basePath}${this.imageBasePath}` + `train_id=${sampleItem.runId}&tag=${sampleItem.tagName}` + - `&step=${sampleStep}&wt=${sampleWallTime}`; + `&step=-1&wt=${sampleWallTime}`; } else { this.curImageShowSample = {}; }