156 lines
5.5 KiB
Diff
156 lines
5.5 KiB
Diff
From c8f6d03755791bea887cc915099344df1c16d19b Mon Sep 17 00:00:00 2001
|
|
From: wkl505997900 <2313665567@qq.com>
|
|
Date: Thu, 21 Sep 2023 14:33:45 +0800
|
|
Subject: [PATCH] fix an polling issue
|
|
|
|
---
|
|
src/views/leaks/HostLeakDetail.vue | 7 +++++++
|
|
src/views/leaks/LeakTaskDetail.vue | 21 +++++++++++++--------
|
|
src/views/leaks/LeakTaskList.vue | 7 +++++++
|
|
src/views/leaks/components/CvesTable.vue | 6 ------
|
|
src/views/leaks/components/HostTable.vue | 5 ++---
|
|
5 files changed, 29 insertions(+), 17 deletions(-)
|
|
|
|
diff --git a/src/views/leaks/HostLeakDetail.vue b/src/views/leaks/HostLeakDetail.vue
|
|
index 477df57..3327f80 100644
|
|
--- a/src/views/leaks/HostLeakDetail.vue
|
|
+++ b/src/views/leaks/HostLeakDetail.vue
|
|
@@ -257,6 +257,13 @@ export default {
|
|
mounted: function () {
|
|
this.getDetail();
|
|
this.getScanStatue();
|
|
+ },
|
|
+ beforeDestroy() {
|
|
+ // 离开页面前,若当前存在轮询,清除轮询
|
|
+ if (this.getScanStatusTimeout) {
|
|
+ clearInterval(this.getScanStatusTimeout);
|
|
+ this.getScanStatusTimeout = null;
|
|
+ }
|
|
}
|
|
};
|
|
</script>
|
|
diff --git a/src/views/leaks/LeakTaskDetail.vue b/src/views/leaks/LeakTaskDetail.vue
|
|
index 28b7272..f4c84c6 100644
|
|
--- a/src/views/leaks/LeakTaskDetail.vue
|
|
+++ b/src/views/leaks/LeakTaskDetail.vue
|
|
@@ -285,6 +285,8 @@ export default {
|
|
expandedRowKeys: [],
|
|
rpmrecord: {},
|
|
propType: '',
|
|
+ // 轮询计时器
|
|
+ CveScanStatueTimeout: null,
|
|
progressUpdateCaller: null,
|
|
reportvisible: false,
|
|
runningCveIds: [],
|
|
@@ -544,6 +546,7 @@ export default {
|
|
updateProgress(taskList) {
|
|
const _this = this;
|
|
this.progressLoading = true;
|
|
+ clearTimeout(this.progressUpdateCaller);
|
|
getTaskProgress({taskList})
|
|
.then(function (res) {
|
|
_this.detail.statuses = res.data.result && res.data.result[_this.taskId];
|
|
@@ -628,6 +631,7 @@ export default {
|
|
updateCveProgress(taskId, cveList) {
|
|
const _this = this;
|
|
this.cveProgressIsLoading = true;
|
|
+ clearTimeout(this.CveScanStatueTimeout);
|
|
getCveProgressUnderCveTask({
|
|
taskId,
|
|
cveList
|
|
@@ -637,7 +641,7 @@ export default {
|
|
_this.runningCveIds = _this.getRunningCve(res.data.result);
|
|
_this.reportvisible = _this.getReportVisible(res.data.result);
|
|
if (_this.runningCveIds.length > 0) {
|
|
- setTimeout(function () {
|
|
+ _this.CveScanStatueTimeout = setTimeout(function () {
|
|
_this.updateCveProgress(taskId, cveList);
|
|
}, configs.taskProgressUpdateInterval);
|
|
} else {
|
|
@@ -860,16 +864,17 @@ export default {
|
|
});
|
|
}
|
|
},
|
|
- beforeRouteLeave(to, from, next) {
|
|
- // 路由跳转前,清除轮询
|
|
- if (this.progressUpdateCaller) {
|
|
+ mounted: function () {
|
|
+ this.getInitalData();
|
|
+ },
|
|
+ beforeDestroy() {
|
|
+ // 离开页面前,若当前存在轮询,清除轮询
|
|
+ if (this.progressUpdateCaller || this.CveScanStatueTimeout) {
|
|
clearInterval(this.progressUpdateCaller);
|
|
+ clearInterval(this.CveScanStatueTimeout);
|
|
this.progressUpdateCaller = null;
|
|
+ this.CveScanStatueTimeout = null;
|
|
}
|
|
- next();
|
|
- },
|
|
- mounted: function () {
|
|
- this.getInitalData();
|
|
}
|
|
};
|
|
</script>
|
|
diff --git a/src/views/leaks/LeakTaskList.vue b/src/views/leaks/LeakTaskList.vue
|
|
index 262fa42..df8869a 100644
|
|
--- a/src/views/leaks/LeakTaskList.vue
|
|
+++ b/src/views/leaks/LeakTaskList.vue
|
|
@@ -419,6 +419,13 @@ export default {
|
|
},
|
|
mounted: function () {
|
|
this.getTaskList();
|
|
+ },
|
|
+ beforeDestroy() {
|
|
+ // 离开页面前,若当前存在轮询,清除轮询
|
|
+ if (this.progressUpdateCaller) {
|
|
+ clearInterval(this.progressUpdateCaller);
|
|
+ this.progressUpdateCaller = null;
|
|
+ }
|
|
}
|
|
};
|
|
</script>
|
|
diff --git a/src/views/leaks/components/CvesTable.vue b/src/views/leaks/components/CvesTable.vue
|
|
index 47eed62..84e23fb 100644
|
|
--- a/src/views/leaks/components/CvesTable.vue
|
|
+++ b/src/views/leaks/components/CvesTable.vue
|
|
@@ -146,7 +146,6 @@
|
|
:row-key="innerrecord => fixed ? record.cve_id + innerrecord.installed_rpm : record.cve_id + innerrecord.available_rpm + innerrecord.installed_rpm"
|
|
:columns="fixed ? (standalone ? ainnerColumns : binnerColumns) : (standalone ? aloneinnerColumns : innerColumns)"
|
|
:data-source="record.rpms || []"
|
|
- :locale="tablenodata"
|
|
:rowSelection="innerRowSelection"
|
|
:pagination="false">
|
|
<div slot="fixed_way" slot-scope="fixed_way, innerrecord">{{ getFixedWay(fixed_way, innerrecord) }}</div>
|
|
@@ -491,11 +490,6 @@ export default {
|
|
},
|
|
data() {
|
|
return {
|
|
- tablenodata: {emptyText: () => (
|
|
- <div><div>暂无可修复的rpm包, 可能原因为:</div>
|
|
- <div>1. 界面未刷新</div>
|
|
- <div>2. 冷补丁修复kernel后界面未重启</div></div>
|
|
- )},
|
|
selectedRows: [], // 选中行的row
|
|
searchKey: '',
|
|
innerCveList: [],
|
|
diff --git a/src/views/leaks/components/HostTable.vue b/src/views/leaks/components/HostTable.vue
|
|
index 0302e0f..327a4a9 100644
|
|
--- a/src/views/leaks/components/HostTable.vue
|
|
+++ b/src/views/leaks/components/HostTable.vue
|
|
@@ -974,9 +974,8 @@ export default {
|
|
this.getRepoList();
|
|
}
|
|
},
|
|
- beforeRouteLeave(to, from, next) {
|
|
- next();
|
|
- // 路由跳转前,清除轮询
|
|
+ beforeDestroy() {
|
|
+ // 离开页面前,若当前存在轮询,清除轮询
|
|
if (this.scanStatueAllTimeout) {
|
|
clearInterval(this.scanStatueAllTimeout);
|
|
this.scanStatueAllTimeout = null;
|
|
--
|
|
Gitee
|
|
|