!97 更新版本到v1.3.4

From: @wkl505997900 
Reviewed-by: @zhu-yuncheng 
Signed-off-by: @zhu-yuncheng
This commit is contained in:
openeuler-ci-bot 2023-11-14 12:32:34 +00:00 committed by Gitee
commit 483d5a2067
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
10 changed files with 7 additions and 986 deletions

View File

@ -1,211 +0,0 @@
From 6b94960459129e5774af83335597d8144f6ee57d Mon Sep 17 00:00:00 2001
From: wkl505997900 <2313665567@qq.com>
Date: Tue, 30 May 2023 17:17:45 +0800
Subject: [PATCH] Resolve issues such as abnormal display
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/leaks/LeakTaskDetail.vue | 14 ++--
src/views/leaks/LeakTaskList.vue | 10 ++-
.../components/CreateRepairTaskDrawer.vue | 6 ++
src/views/leaks/components/CvesTable.vue | 4 +-
.../components/HostStatusInTaskDrawer.vue | 22 +++++--
src/views/leaks/components/HostTable.vue | 4 +-
6 files changed, 45 insertions(+), 15 deletions(-)
diff --git a/src/views/leaks/LeakTaskDetail.vue b/src/views/leaks/LeakTaskDetail.vue
index ca3debd..5a3a6cf 100644
--- a/src/views/leaks/LeakTaskDetail.vue
+++ b/src/views/leaks/LeakTaskDetail.vue
@@ -156,8 +156,9 @@
</a-table>
</a-card>
<host-status-in-task-drawer
- :visible="hostListUnderCveVisible"
- @close="closeHostListUnderCve"
+ :visible="hostListUnderCveVisible"
+ :taskType="taskType"
+ @close="closeHostListUnderCve"
:taskId="taskId"
:cveId="hostListOfCveId" />
</page-header-wrapper>
@@ -339,11 +340,16 @@ export default {
width: 140,
scopedSlots: {customRender: 'status'},
filteredValue: filters.status || null,
- filters: [
+ filters: this.taskType === 'cve fix' ? [
{text: '修复成功', value: 'succeed'},
{text: '待修复', value: 'fail'},
{text: '运行中', value: 'running'},
{text: '未知', value: 'unknown'}
+ ] : [
+ {text: '回滚成功', value: 'succeed'},
+ {text: '待回滚', value: 'fail'},
+ {text: '运行中', value: 'running'},
+ {text: '未知', value: 'unknown'}
]
}
];
@@ -705,7 +711,7 @@ export default {
if (!this.filters) {
this.filters = {};
}
- if (this.taskType === 'cve fix') {
+ if (this.taskType === 'cve fix' || this.taskType === 'cve rollback') {
if (text !== '') {
this.filters.cveId = text;
} else {
diff --git a/src/views/leaks/LeakTaskList.vue b/src/views/leaks/LeakTaskList.vue
index 9cf3d34..d40d8d8 100644
--- a/src/views/leaks/LeakTaskList.vue
+++ b/src/views/leaks/LeakTaskList.vue
@@ -30,9 +30,9 @@
</a-row>
</a-row>
<a-table
- rowKey="task_id"
- :columns="columns"
- :data-source="tableData"
+ rowKey="task_id"
+ :columns="columns"
+ :data-source="tableData"
:pagination="pagination"
:row-selection="rowSelection"
@change="handleTableChange"
@@ -204,6 +204,10 @@ export default {
{
text: 'repo set',
value: 'repo set'
+ },
+ {
+ text: 'cve rollback',
+ value: 'cve rollback'
}
]
},
diff --git a/src/views/leaks/components/CreateRepairTaskDrawer.vue b/src/views/leaks/components/CreateRepairTaskDrawer.vue
index e25cd89..79d4920 100644
--- a/src/views/leaks/components/CreateRepairTaskDrawer.vue
+++ b/src/views/leaks/components/CreateRepairTaskDrawer.vue
@@ -40,6 +40,12 @@
<a-icon slot="unCheckedChildren" type="close" />
</a-switch>
</a-form-item> -->
+ <a-form-item label="是否accept" v-if="taskType === 'cve fix'">
+ <a-switch :checked="isResetChecked" @click="handleResetChanage">
+ <a-icon slot="checkedChildren" type="check" />
+ <a-icon slot="unCheckedChildren" type="close" />
+ </a-switch>
+ </a-form-item>
<a-form-item label="选择REPO" v-if="taskType === 'repo set'">
<a-select
v-decorator="['repo', {rules: [{required: true, message: '请选择REPO'}]}]"
diff --git a/src/views/leaks/components/CvesTable.vue b/src/views/leaks/components/CvesTable.vue
index 2922fe7..bca7fcd 100644
--- a/src/views/leaks/components/CvesTable.vue
+++ b/src/views/leaks/components/CvesTable.vue
@@ -392,7 +392,7 @@ export default {
}
this.selectedRowKeys = []
this.getCvesAll()
- this.getCves();
+ this.handleReset();
} else {
}
},
@@ -404,7 +404,7 @@ export default {
}
this.selectedRowKeys = []
this.getCvesAll()
- this.getCves();
+ this.handleReset();
},
handleTableChange(pagination, filters, sorter) {
// 存储翻页状态
diff --git a/src/views/leaks/components/HostStatusInTaskDrawer.vue b/src/views/leaks/components/HostStatusInTaskDrawer.vue
index b31435b..68f04b5 100644
--- a/src/views/leaks/components/HostStatusInTaskDrawer.vue
+++ b/src/views/leaks/components/HostStatusInTaskDrawer.vue
@@ -4,7 +4,10 @@
<a-table rowKey="host_id" :columns="columns" :data-source="tableData" :pagination="false"
:loading="tableIsLoading" bordered>
<div slot="status" slot-scope="status">
- <span><a-badge :status="statusValueMap[status]" />{{ statusTextMap[status] }}</span>
+ <span>
+ <a-badge :status="statusValueMap[status]" />
+ {{ taskType === 'cve fix' ? fixStatusTextMap[status] : rollbackStatusTextMap[status] }}
+ </span>
</div>
</a-table>
</a-drawer>
@@ -17,13 +20,20 @@
import {getHostOfCveInCveTask} from '@/api/leaks';
-const statusTextMap = {
+const fixStatusTextMap = {
succeed: '已修复',
fail: '未修复',
running: '运行中',
unknown: '未知'
};
+const rollbackStatusTextMap = {
+ succeed: '已回滚',
+ fail: '待回滚',
+ running: '运行中',
+ unknown: '未知'
+};
+
const statusValueMap = {
succeed: 'success',
fail: 'error',
@@ -45,14 +55,18 @@ export default {
cveId: {
type: String,
default: null
+ },
+ taskType: {
+ type: String,
+ default: 'cve fix'
}
},
data() {
return {
tableData: [],
tableIsLoading: false,
-
- statusTextMap,
+ rollbackStatusTextMap,
+ fixStatusTextMap,
statusValueMap
};
},
diff --git a/src/views/leaks/components/HostTable.vue b/src/views/leaks/components/HostTable.vue
index 5011b21..079f786 100644
--- a/src/views/leaks/components/HostTable.vue
+++ b/src/views/leaks/components/HostTable.vue
@@ -281,7 +281,7 @@ export default {
{
dataIndex: 'hotpatch',
key: 'hotpatch',
- title: '热补丁支持',
+ title: '热补丁修复/状态',
scopedSlots: {customRender: 'hotpatch'}
},
{
@@ -376,7 +376,7 @@ export default {
}
this.selectedRowKeys = []
// 切换修复状态后重新请求受影响主机列表
- this.getHostList();
+ this.handleReset();
},
handleExport() {
if (this.selectedRowKeys.length !== 0) {
--
2.33.0

View File

@ -1,216 +0,0 @@
From 38dd735f4b41983a942b9c5f17476cb7f8b60fad Mon Sep 17 00:00:00 2001
From: wkl505997900 <2313665567@qq.com>
Date: Fri, 2 Jun 2023 16:04:04 +0800
Subject: [PATCH] hotpatch update
---
src/api/leaks.js | 1 +
src/views/assests/HostManagement.vue | 4 ++--
src/views/leaks/CVEsDetail.vue | 4 ++++
src/views/leaks/HostLeakDetail.vue | 4 ++++
.../components/CreateRepairTaskDrawer.vue | 8 ++++++-
src/views/leaks/components/CvesTable.vue | 21 ++++++++++++-------
src/views/leaks/components/HostTable.vue | 8 +++----
7 files changed, 35 insertions(+), 15 deletions(-)
diff --git a/src/api/leaks.js b/src/api/leaks.js
index 477dae1..a6a0d63 100644
--- a/src/api/leaks.js
+++ b/src/api/leaks.js
@@ -297,6 +297,7 @@ export function generateTask(parameters) {
task_name: parameters.task_name,
description: parameters.task_desc,
auto_reboot: parameters.auto_reboot,
+ accepted: parameters.accepted,
info: parameters.info || []
}
});
diff --git a/src/views/assests/HostManagement.vue b/src/views/assests/HostManagement.vue
index 080c145..5e7d1f9 100644
--- a/src/views/assests/HostManagement.vue
+++ b/src/views/assests/HostManagement.vue
@@ -95,8 +95,8 @@ const hostStatusMap = {
'0': '在线',
'1': '离线',
'2': '未确认',
- '3': '扫描中',
- '4': '已完成',
+ '3': '在线',
+ '4': '在线',
'5': '未知'
};
diff --git a/src/views/leaks/CVEsDetail.vue b/src/views/leaks/CVEsDetail.vue
index b853cd0..6dd318e 100644
--- a/src/views/leaks/CVEsDetail.vue
+++ b/src/views/leaks/CVEsDetail.vue
@@ -181,6 +181,10 @@ export default {
})
.then(function (res) {
_this.hostList = res.data.result || [];
+ _this.hostList.forEach((item) => {
+ item.hp_status = item.hp_status ? item.hp_status : '——'
+ item.fixStatus = item.hotpatch ? `是(${item.hp_status})` : '否'
+ })
_this.paginationTotal = res.data.total_count || (res.data.total_count === 0 ? 0 : undefined);
})
.catch(function (err) {
diff --git a/src/views/leaks/HostLeakDetail.vue b/src/views/leaks/HostLeakDetail.vue
index 39d4c25..043b1d8 100644
--- a/src/views/leaks/HostLeakDetail.vue
+++ b/src/views/leaks/HostLeakDetail.vue
@@ -167,6 +167,10 @@ export default {
})
.then(function (res) {
_this.cveList = res.data.result;
+ _this.cveList.forEach((item) => {
+ item.hp_status = item.hp_status ? item.hp_status : '——'
+ item.fixStatus = item.hotpatch ? `是(${item.hp_status})` : '否'
+ })
_this.paginationTotal = res.data.total_count || (res.data.total_count === 0 ? 0 : undefined);
})
.catch(function (err) {
diff --git a/src/views/leaks/components/CreateRepairTaskDrawer.vue b/src/views/leaks/components/CreateRepairTaskDrawer.vue
index 79d4920..84e8bac 100644
--- a/src/views/leaks/components/CreateRepairTaskDrawer.vue
+++ b/src/views/leaks/components/CreateRepairTaskDrawer.vue
@@ -41,7 +41,7 @@
</a-switch>
</a-form-item> -->
<a-form-item label="是否accept" v-if="taskType === 'cve fix'">
- <a-switch :checked="isResetChecked" @click="handleResetChanage">
+ <a-switch :checked="accepted" @click="handleAcceptedChanage">
<a-icon slot="checkedChildren" type="check" />
<a-icon slot="unCheckedChildren" type="close" />
</a-switch>
@@ -274,6 +274,7 @@ export default {
submitAndExecuteLoading: false,
// 是否重启按钮数据
isResetChecked: false,
+ accepted: false,
// 自动生成的任务名称和描述,初始化为空
taskNameDefault: '',
taskDescDefault: '',
@@ -433,6 +434,7 @@ export default {
this.visible = true;
this.cveList = this.cveListProps;
this.isResetChecked = false;
+ this.accepted = false;
this.selectedRowKeyMaps = {};
this.selectedRowsAllMaps = {};
this.setDefaultInfo();
@@ -551,6 +553,7 @@ export default {
const params = {
...values,
auto_reboot: this.isResetChecked,
+ accepted: this.accepted,
info: this.cveList
.map((cveInfo) => {
return {
@@ -719,6 +722,9 @@ export default {
handleResetChanage(checked) {
this.isResetChecked = checked;
},
+ handleAcceptedChanage(checked) {
+ this.accepted = checked;
+ },
onSelectChange(selectedRowKeys, selectedRows, cid) {
this.selectedRowKeyMaps[cid] = selectedRowKeys;
this.selectedRowsAllMaps[cid] = selectedRows;
diff --git a/src/views/leaks/components/CvesTable.vue b/src/views/leaks/components/CvesTable.vue
index bca7fcd..97c4326 100644
--- a/src/views/leaks/components/CvesTable.vue
+++ b/src/views/leaks/components/CvesTable.vue
@@ -116,7 +116,7 @@
<p>Description:</p>
<p>{{ record.description }}</p>
</div>
- <div slot="hotpatch" slot-scope="hotpatch" style="margin: 0">
+ <div v-if="!fixed" slot="hotpatch" slot-scope="hotpatch" style="margin: 0">
<p>{{ hotpatch ? '是' : '否' }}</p>
</div>
</a-table>
@@ -308,11 +308,11 @@ export default {
sorter: true
},
{
- dataIndex: 'hotpatch',
- key: 'hotpatch',
- title: '热补丁支持',
- filteredValue: filters.hotpatch || null,
- filters: [
+ dataIndex: this.hotpatchContent === '热补丁支持' ? 'hotpatch' : 'fixStatus',
+ key: this.hotpatchContent === '热补丁支持' ? 'hotpatch' : 'fixStatus',
+ title: this.hotpatchContent,
+ filteredValue: this.hotpatchContent === '热补丁支持' ? filters.hotpatch || null : filters.fixStatus || null,
+ filters: this.hotpatchContent === '热补丁支持' ? [
{
text: '是',
value: 1
@@ -321,8 +321,8 @@ export default {
text: '否',
value: 0
}
- ],
- scopedSlots: {customRender: 'hotpatch'}
+ ] : null,
+ scopedSlots: {customRender: this.hotpatchContent === '热补丁支持' ? 'hotpatch' : 'fixStatus'}
}
];
},
@@ -340,6 +340,7 @@ export default {
},
data() {
return {
+ hotpatchContent: '热补丁支持',
cveSearch: '',
scanloading: false,
size: 'small',
@@ -378,14 +379,17 @@ export default {
handleAffectChange(e) {
if (!this.standalone) {
if (e.target.value === 'a') {
+ this.hotpatchContent = '热补丁支持'
this.fixed = undefined
this.affected = true;
this.rollback = false;
} else if (e.target.value === 'b') {
+ this.hotpatchContent = '热补丁支持'
this.fixed = undefined
this.affected = false;
this.rollback = false;
} else {
+ this.hotpatchContent = '热补丁修复'
this.fixed = true;
this.affected = true;
this.rollback = true;
@@ -578,6 +582,7 @@ export default {
}
},
mounted() {
+ console.log(this.inputList)
setTimeout(() => {
this.getCvesAll();
}, 500);
diff --git a/src/views/leaks/components/HostTable.vue b/src/views/leaks/components/HostTable.vue
index 079f786..225c701 100644
--- a/src/views/leaks/components/HostTable.vue
+++ b/src/views/leaks/components/HostTable.vue
@@ -279,10 +279,10 @@ export default {
scopedSlots: {customRender: 'repo'}
},
{
- dataIndex: 'hotpatch',
- key: 'hotpatch',
- title: '热补丁修复/状态',
- scopedSlots: {customRender: 'hotpatch'}
+ dataIndex: 'fixStatus',
+ key: 'fixStatus',
+ title: '热补丁修复',
+ scopedSlots: {customRender: 'fixStatus'}
},
{
dataIndex: 'last_scan',
--
Gitee

View File

@ -1,94 +0,0 @@
From 46a4586b79ccf57c7f4ca7ee9826ac48cb31f687 Mon Sep 17 00:00:00 2001
From: wkl505997900 <2313665567@qq.com>
Date: Fri, 2 Jun 2023 18:20:05 +0800
Subject: [PATCH] update hotpatch
---
src/api/leaks.js | 3 +-
src/views/leaks/components/CvesTable.vue | 41 +++++++++++++++++++++++-
2 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/src/api/leaks.js b/src/api/leaks.js
index a6a0d63..b98cb49 100644
--- a/src/api/leaks.js
+++ b/src/api/leaks.js
@@ -250,7 +250,8 @@ export function getCveUnderHost({ tableInfo, ...parameter }) {
affected: tableInfo.affected,
fixed: tableInfo.fixed,
severity: tableInfo.filters.severity || [],
- hotpatch: tableInfo.filters.hotpatch || []
+ hotpatch: tableInfo.filters.hotpatch || [],
+ hp_status: tableInfo.filters.hp_status || []
},
page: tableInfo.pagination.current,
per_page: tableInfo.pagination.pageSize
diff --git a/src/views/leaks/components/CvesTable.vue b/src/views/leaks/components/CvesTable.vue
index 97c4326..42c9a70 100644
--- a/src/views/leaks/components/CvesTable.vue
+++ b/src/views/leaks/components/CvesTable.vue
@@ -321,7 +321,20 @@ export default {
text: '否',
value: 0
}
- ] : null,
+ ] : [
+ {
+ text: '是(ACCEPTED)',
+ value: 1
+ },
+ {
+ text: '是(ACTIVED)',
+ value: 2
+ },
+ {
+ text: '否',
+ value: 0
+ }
+ ],
scopedSlots: {customRender: this.hotpatchContent === '热补丁支持' ? 'hotpatch' : 'fixStatus'}
}
];
@@ -410,14 +423,40 @@ export default {
this.getCvesAll()
this.handleReset();
},
+ assignFiltersFixStatus(fixStatus) {
+ this.filters.hotpatch = []
+ this.filters.hp_status = []
+ fixStatus.forEach(value => {
+ if (value === 1) {
+ if (!this.filters.hotpatch.includes(1)) {
+ this.filters.hotpatch.push(1)
+ }
+ this.filters.hp_status.push('ACCEPTED')
+ }
+ if (value === 2) {
+ if (!this.filters.hotpatch.includes(1)) {
+ this.filters.hotpatch.push(1)
+ }
+ this.filters.hp_status.push('ACTIVED')
+ }
+ if (value === 0) {
+ this.filters.hotpatch.push(0)
+ }
+ })
+ },
handleTableChange(pagination, filters, sorter) {
// 存储翻页状态
this.pagination = pagination;
+
this.filters = Object.assign({}, this.filters, filters);
+ if (this.filters['fixStatus'] != null) {
+ this.assignFiltersFixStatus(this.filters['fixStatus'])
+ }
this.sorter = sorter;
// 出发排序、筛选、分页时,重新请求主机列表
this.getCves();
},
+
onSelectChange(selectedRowKeys, selectedRows) {
const tableData = this.standalone ? this.tableData : this.inputList;
this.selectedRowKeys = selectedRowKeys;
--
Gitee

View File

@ -1,89 +0,0 @@
From 05a989789e7e024a6f6342c43791194deb7886ce Mon Sep 17 00:00:00 2001
From: wkl505997900 <2313665567@qq.com>
Date: Fri, 2 Jun 2023 19:46:25 +0800
Subject: [PATCH] wanshan
---
src/api/leaks.js | 4 ++-
src/views/leaks/components/HostTable.vue | 39 ++++++++++++++++++++++++
2 files changed, 42 insertions(+), 1 deletion(-)
diff --git a/src/api/leaks.js b/src/api/leaks.js
index b98cb49..770a3bc 100644
--- a/src/api/leaks.js
+++ b/src/api/leaks.js
@@ -152,7 +152,9 @@ export function getHostUnderCVE({ tableInfo, ...parameter }) {
host_name: tableInfo.filters.host_name === null ? undefined : tableInfo.filters.host_name,
host_group: tableInfo.filters.host_group === null ? undefined : tableInfo.filters.host_group,
repo: tableInfo.filters.repo === null ? undefined : tableInfo.filters.repo,
- last_scan: tableInfo.filters.last_scan
+ last_scan: tableInfo.filters.last_scan,
+ hotpatch: tableInfo.filters.hotpatch || [],
+ hp_status: tableInfo.filters.hp_status || []
},
page: tableInfo.pagination.current,
per_page: tableInfo.pagination.pageSize
diff --git a/src/views/leaks/components/HostTable.vue b/src/views/leaks/components/HostTable.vue
index 225c701..96a7737 100644
--- a/src/views/leaks/components/HostTable.vue
+++ b/src/views/leaks/components/HostTable.vue
@@ -282,6 +282,21 @@ export default {
dataIndex: 'fixStatus',
key: 'fixStatus',
title: '热补丁修复',
+ filteredValue: filters.fixStatus || null,
+ filters: [
+ {
+ text: '是(ACCEPTED)',
+ value: 1
+ },
+ {
+ text: '是(ACTIVED)',
+ value: 2
+ },
+ {
+ text: '否',
+ value: 0
+ }
+ ],
scopedSlots: {customRender: 'fixStatus'}
},
{
@@ -396,10 +411,34 @@ export default {
this.$message.info('请至少选择一组主机!');
}
},
+ assignFiltersFixStatus(fixStatus) {
+ this.filters.hotpatch = []
+ this.filters.hp_status = []
+ fixStatus.forEach(value => {
+ if (value === 1) {
+ if (!this.filters.hotpatch.includes(1)) {
+ this.filters.hotpatch.push(1)
+ }
+ this.filters.hp_status.push('ACCEPTED')
+ }
+ if (value === 2) {
+ if (!this.filters.hotpatch.includes(1)) {
+ this.filters.hotpatch.push(1)
+ }
+ this.filters.hp_status.push('ACTIVED')
+ }
+ if (value === 0) {
+ this.filters.hotpatch.push(0)
+ }
+ })
+ },
handleTableChange(pagination, filters, sorter) {
// 存储翻页状态
this.pagination = pagination;
this.filters = Object.assign({}, this.filters, filters);
+ if (this.filters['fixStatus'] != null) {
+ this.assignFiltersFixStatus(this.filters['fixStatus'])
+ }
this.sorter = sorter;
// 排序、筛选、分页时,重新请求主机列表
this.getHostList();
--
Gitee

View File

@ -1,157 +0,0 @@
From 6d60ace02d2a80c5ecc200e847963780cbc861cc Mon Sep 17 00:00:00 2001
From: wkl505997900 <2313665567@qq.com>
Date: Fri, 9 Jun 2023 17:50:01 +0800
Subject: [PATCH] fix tokenissue
---
src/vendor/ant-design-pro/utils/request.js | 64 +++++++++++++++++-----
src/vendor/ant-design-pro/utils/util.js | 16 ++++++
src/views/leaks/LeakTaskList.vue | 3 +-
src/views/leaks/components/HostTable.vue | 3 +-
4 files changed, 69 insertions(+), 17 deletions(-)
diff --git a/src/vendor/ant-design-pro/utils/request.js b/src/vendor/ant-design-pro/utils/request.js
index 53d4f3b..bccd36c 100644
--- a/src/vendor/ant-design-pro/utils/request.js
+++ b/src/vendor/ant-design-pro/utils/request.js
@@ -7,6 +7,24 @@ import store from '@/store';
import notification from 'ant-design-vue/es/notification';
import { VueAxios } from './axios';
+// 全局声明缓存变量
+var timestamp1;
+var isRefreshing = false;
+
+let subscribers = []
+// 刷新 token 后, 将缓存的接口重新请求一次
+function onAccessTokenFetched(newToken) {
+ subscribers.forEach((callback) => {
+ callback(newToken)
+ })
+ // 清空缓存接口
+ subscribers = []
+}
+// 添加缓存接口
+function addSubscriber(callback) {
+ subscribers.push(callback)
+}
+
const errorMsgs = {
noResponse: 'request failed, no response'
};
@@ -77,25 +95,41 @@ request.interceptors.response.use(response => {
let err = null;
switch (code) {
case '1201':
- notification.error({
- message: '用户校验失败',
- description: response.data.message
- });
- store.dispatch('Logout').then(() => {
+ if (!timestamp1 || timestamp1 + 1632252465 < new Date().getTime()) {
+ timestamp1 = new Date().getTime();
+ notification.error({
+ message: '用户校验失败',
+ description: response.data.message
+ });
setTimeout(() => {
- window.location.reload();
- }, 1500);
- })
+ store.dispatch('Logout').then(() => {
+ window.location.reload();
+ }).catch((err) => {
+ this.$message.error(err.response.message)
+ })
+ }, 1000)
+ }
break;
case '1207':
- // token过期后调接口刷新token
- store.dispatch('RefreshToken').then(() => {
- // 再发请求
- return request(response.config);
- }).catch((err) => {
- this.$message.error(err.response.message)
+ if (!isRefreshing) {
+ isRefreshing = true
+ store.dispatch('RefreshToken').then(() => {
+ // 再发请求
+ isRefreshing = false
+ onAccessTokenFetched(localStorage.getItem('Access-Token'))
+ }).catch(() => {
+ isRefreshing = false;
+ window.location.reload();
+ })
+ }
+ const retryRequest = new Promise((resolve) => {
+ addSubscriber((newToken) => {
+ response.config.headers['Access-Token'] = newToken;
+ response.config.url = response.config.url.replace(response.config.baseURL, '')
+ resolve(request(response.config))
+ })
})
- break;
+ return retryRequest
default:
err = new Error(response.data.message);
err.data = response.data.data;
diff --git a/src/vendor/ant-design-pro/utils/util.js b/src/vendor/ant-design-pro/utils/util.js
index 979e320..dd73f3e 100644
--- a/src/vendor/ant-design-pro/utils/util.js
+++ b/src/vendor/ant-design-pro/utils/util.js
@@ -2,6 +2,22 @@
* @file: antd vue框架的通用工具文件
*/
+// 节流函数
+export function throttle(func, wait) {
+ let timeout;
+ return () => {
+ const context = this
+ const args = arguments
+ if (!timeout) {
+ func.apply(context, args);
+ timeout = setTimeout(function () {
+ timeout = null
+ }, wait)
+ }
+ }
+}
+export default throttle
+
export function timeFix() {
const time = new Date();
const hour = time.getHours();
diff --git a/src/views/leaks/LeakTaskList.vue b/src/views/leaks/LeakTaskList.vue
index d40d8d8..ca4b697 100644
--- a/src/views/leaks/LeakTaskList.vue
+++ b/src/views/leaks/LeakTaskList.vue
@@ -251,7 +251,8 @@ export default {
handleTableChange(pagination, filters, sorter) {
// 存储翻页状态
this.pagination = pagination;
- this.filters = filters;
+ // this.filters = filters;
+ this.filters = Object.assign({}, this.filters, filters);
this.sorter = sorter;
// 出发排序、筛选、分页时,重新请求主机列表
this.getTaskList();
diff --git a/src/views/leaks/components/HostTable.vue b/src/views/leaks/components/HostTable.vue
index 96a7737..4f9e431 100644
--- a/src/views/leaks/components/HostTable.vue
+++ b/src/views/leaks/components/HostTable.vue
@@ -20,8 +20,9 @@
已修复
</a-radio-button>
</a-radio-group>
+ <a-input-search placeholder="按主机名搜索" v-model="hostSearch" @change="searchChange" style="width: 200px;margin-left: 10px;" @search="onSearch" />
</a-col>
- <a-col>
+ <a-col v-else>
<a-input-search placeholder="按主机名搜索" v-model="hostSearch" @change="searchChange" style="width: 200px" @search="onSearch" />
</a-col>
<a-col>
--
Gitee

View File

@ -1,209 +0,0 @@
From 41d1c1b28482e6ad4c0153c06cba620ce49bd1d8 Mon Sep 17 00:00:00 2001
From: wkl505997900 <2313665567@qq.com>
Date: Tue, 13 Jun 2023 17:37:11 +0800
Subject: [PATCH] update leaks code
---
.../components/CreateRepairTaskDrawer.vue | 21 +++++++++---
src/views/leaks/components/CvesTable.vue | 16 +++++-----
src/views/leaks/components/HostTable.vue | 32 +++++++++++++------
3 files changed, 47 insertions(+), 22 deletions(-)
diff --git a/src/views/leaks/components/CreateRepairTaskDrawer.vue b/src/views/leaks/components/CreateRepairTaskDrawer.vue
index 84e8bac..b723f14 100644
--- a/src/views/leaks/components/CreateRepairTaskDrawer.vue
+++ b/src/views/leaks/components/CreateRepairTaskDrawer.vue
@@ -41,6 +41,9 @@
</a-switch>
</a-form-item> -->
<a-form-item label="是否accept" v-if="taskType === 'cve fix'">
+ <description-tips v-if="taskType === 'cve fix'" style="margin-right: 6px;">
+ 如使用热补丁修复accept后会在重启时自动应用热补丁不勾选则重启时失效
+ </description-tips>
<a-switch :checked="accepted" @click="handleAcceptedChanage">
<a-icon slot="checkedChildren" type="check" />
<a-icon slot="unCheckedChildren" type="close" />
@@ -62,6 +65,12 @@
:columns="tableColumns"
:data-source="cveList"
:pagination="false">
+ <span slot="customTitle">{{ taskType === 'cve rollback' ? '热补丁修复' : '支持热补丁' }}
+ <description-tips v-if="taskType === 'cve fix'">
+ 若支持热补丁,默认使用热补丁修复;
+ 注意由于一个软件包只能应用一个热补丁热补丁修复时可能导致部分已修复cve重新生成
+ </description-tips>
+ </span>
<div slot="hostsList" slot-scope="hostsList">
<a-spin v-if="hostUnderCveLoading" />
<span v-else>
@@ -192,6 +201,7 @@ import {
generateRepoTask,
generateRollbackTask
} from '@/api/leaks';
+import DescriptionTips from '@/components/DescriptionTips';
const taskTypes = ['cve fix', 'repo set', 'cve rollback'];
const dataTypes = ['selected', 'all'];
@@ -213,6 +223,9 @@ const hostListTypes = ['byLoading', 'bySelection', 'byOneHost'];
export default {
name: 'CreateRepairTaskDrawer',
+ components: {
+ DescriptionTips
+ },
props: {
// 基本控制信息
fixed: {
@@ -300,20 +313,20 @@ export default {
key: 'cve_id',
title: 'CVE_ID',
scopedSlots: {customRender: 'cve_id'},
- width: 180
+ width: 150
},
{
dataIndex: 'hostsList',
key: 'hostsList',
title: '主机',
- width: 60,
+ width: 100,
scopedSlots: {customRender: 'hostsList'}
},
{
dataIndex: 'package',
key: 'package',
title: '修复软件包',
- width: 100,
+ width: 140,
scopedSlots: {customRender: 'packages'}
},
// {
@@ -326,7 +339,7 @@ export default {
{
dataIndex: 'hotpatch',
key: 'hotpatch',
- title: this.taskType === 'cve rollback' ? '热补丁修复' : '支持热补丁',
+ slots: { title: 'customTitle' },
scopedSlots: {customRender: 'hotpatch'}
}
];
diff --git a/src/views/leaks/components/CvesTable.vue b/src/views/leaks/components/CvesTable.vue
index 42c9a70..b29b03f 100644
--- a/src/views/leaks/components/CvesTable.vue
+++ b/src/views/leaks/components/CvesTable.vue
@@ -308,11 +308,11 @@ export default {
sorter: true
},
{
- dataIndex: this.hotpatchContent === '热补丁支持' ? 'hotpatch' : 'fixStatus',
- key: this.hotpatchContent === '热补丁支持' ? 'hotpatch' : 'fixStatus',
+ dataIndex: this.hotpatchContent === '支持热补丁' ? 'hotpatch' : 'fixStatus',
+ key: this.hotpatchContent === '支持热补丁' ? 'hotpatch' : 'fixStatus',
title: this.hotpatchContent,
- filteredValue: this.hotpatchContent === '热补丁支持' ? filters.hotpatch || null : filters.fixStatus || null,
- filters: this.hotpatchContent === '热补丁支持' ? [
+ filteredValue: this.hotpatchContent === '支持热补丁' ? filters.hotpatch || null : filters.fixStatus || null,
+ filters: this.hotpatchContent === '支持热补丁' ? [
{
text: '是',
value: 1
@@ -335,7 +335,7 @@ export default {
value: 0
}
],
- scopedSlots: {customRender: this.hotpatchContent === '热补丁支持' ? 'hotpatch' : 'fixStatus'}
+ scopedSlots: {customRender: this.hotpatchContent === '支持热补丁' ? 'hotpatch' : 'fixStatus'}
}
];
},
@@ -353,7 +353,7 @@ export default {
},
data() {
return {
- hotpatchContent: '热补丁支持',
+ hotpatchContent: '支持热补丁',
cveSearch: '',
scanloading: false,
size: 'small',
@@ -392,12 +392,12 @@ export default {
handleAffectChange(e) {
if (!this.standalone) {
if (e.target.value === 'a') {
- this.hotpatchContent = '热补丁支持'
+ this.hotpatchContent = '支持热补丁'
this.fixed = undefined
this.affected = true;
this.rollback = false;
} else if (e.target.value === 'b') {
- this.hotpatchContent = '热补丁支持'
+ this.hotpatchContent = '支持热补丁'
this.fixed = undefined
this.affected = false;
this.rollback = false;
diff --git a/src/views/leaks/components/HostTable.vue b/src/views/leaks/components/HostTable.vue
index 4f9e431..0a2b875 100644
--- a/src/views/leaks/components/HostTable.vue
+++ b/src/views/leaks/components/HostTable.vue
@@ -280,11 +280,20 @@ export default {
scopedSlots: {customRender: 'repo'}
},
{
- dataIndex: 'fixStatus',
- key: 'fixStatus',
- title: '热补丁修复',
- filteredValue: filters.fixStatus || null,
- filters: [
+ dataIndex: this.hotpatchContent === '支持热补丁' ? 'hotpatch' : 'fixStatus',
+ key: this.hotpatchContent === '支持热补丁' ? 'hotpatch' : 'fixStatus',
+ title: this.hotpatchContent,
+ filteredValue: this.hotpatchContent === '支持热补丁' ? filters.hotpatch || null : filters.fixStatus || null,
+ filters: this.hotpatchContent === '支持热补丁' ? [
+ {
+ text: '是',
+ value: 1
+ },
+ {
+ text: '否',
+ value: 0
+ }
+ ] : [
{
text: '是(ACCEPTED)',
value: 1
@@ -298,7 +307,7 @@ export default {
value: 0
}
],
- scopedSlots: {customRender: 'fixStatus'}
+ scopedSlots: {customRender: this.hotpatchContent === '支持热补丁' ? 'hotpatch' : 'fixStatus'}
},
{
dataIndex: 'last_scan',
@@ -337,6 +346,7 @@ export default {
},
data() {
return {
+ hotpatchContent: '支持热补丁',
hostSearch: '',
hostTableData: [],
hostTableIsLoading: false,
@@ -386,10 +396,12 @@ export default {
},
handleFixChange(e) {
if (e.target.value === 'a') {
- this.fixed = false;
- } else {
- this.fixed = true;
- }
+ this.hotpatchContent = '支持热补丁'
+ this.fixed = false;
+ } else {
+ this.hotpatchContent = '热补丁修复'
+ this.fixed = true;
+ }
this.selectedRowKeys = []
// 切换修复状态后重新请求受影响主机列表
this.handleReset();
--
Gitee

Binary file not shown.

BIN
aops-hermes-v1.3.4.tar.gz Normal file

Binary file not shown.

View File

@ -1,19 +1,13 @@
%define debug_package %{nil}
Name: aops-hermes
Version: v1.2.1
Release: 7
Version: v1.3.4
Release: 1
Summary: Web for an intelligent diagnose frame
License: MulanPSL2
URL: https://gitee.com/openeuler/%{name}
Source0: %{name}-%{version}.tar.gz
Source1: node-modules.tar.gz
Patch0001: 0001-Resolve-issues-such-as-abnormal-display.patch
Patch0002: 0002-Host-management-field-changes-and-hot-patch-repair.patch
Patch0003: 0003-add-Hot-patch-Filtering-function.patch
Patch0004: 0004-add-host-under-cve-hotpatch-Filtering-function.patch
Patch0005: 0005-fix-token-refresh-issue.patch
Patch0006: 0006-Change-of-vulnerability-management-page-application-issues.patch
Source1: node_modules.tar.gz
BuildRequires: nodejs node-gyp nodejs-yarn
@ -25,7 +19,7 @@ Web for an intelligent diagnose frame
%prep
%autosetup -n %{name}-%{version} -p1
%autosetup -n %{name}-%{version}
%setup -T -D -a 1
@ -49,6 +43,9 @@ cp -r deploy/aops-hermes.service %{buildroot}/usr/lib/systemd/system/
%changelog
* Tue Nov 14 2023 wangkunlong<505997900@qq.com> - v1.3.4-1
- update 22.03 LTS NEXT branch code to 1.3.4
* Wed Jun 14 2023 wangkunlong<505997900@qq.com> - v1.2.1-7
- The host list under cve has been fixed and the hot patch repair column has been changed to support hot patches
- The CVE list under the host list has-not been fixed and the hot patch support has been changed-to support hot patches