Files
Situation-Awareness-Platfor…/src/views/Jyh/Version/Detail/VulnerabilityDetail.vue
2025-03-15 13:18:02 +08:00

204 lines
6.7 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div class="vuln-detail-container">
<div class="vuln-title mb-2">{{ vulnDetail.id }}</div>
<div class="vuln-sub-title mb-3">
<span>{{ vulnDetail.cveId || '--' }}</span>
<span class="split-line"></span>
<span><span class="release-time">发布时间</span>{{ vulnDetail.releaseTime || '--' }}</span>
</div>
<Card simple class="jyh-card mb-4">
<div class="card-title">漏洞名称</div>
<d-row class="mb-3">
<d-col :span="12">
<span class="card-key width-90">漏洞名称</span>
<span class="card-val">{{vulnDetail.id || '--'}}</span>
</d-col>
<d-col :span="12">
<span class="card-key width-90">关联漏洞编号</span>
<span class="card-val">{{vulnDetail.cnvdId || '--'}}</span>
</d-col>
</d-row>
<d-row class="mb-3">
<d-col :span="24">
<span class="card-key width-90">简介</span>
<span class="card-val">{{vulnDetail.description || '--'}}</span>
</d-col>
</d-row>
<d-row class="mb-3">
<d-col :span="24">
<span class="card-key width-90">额外信息</span>
<span class="card-val">
<a v-for="link in vulnDetail.links" class="devui-link" :href="link" target="_blank" rel="noreferrer noopener">{{link}}</a>
<span v-if="!vulnDetail.links || vulnDetail.links.length === 0">--</span>
</span>
</d-col>
</d-row>
<d-row>
<d-col :span="24">
<span class="card-key width-90">补丁链接</span>
<span class="card-val">
<a v-for="link in vulnDetail.links2" class="devui-link" :href="link" target="_blank" rel="noreferrer noopener">{{link}}</a>
<span v-if="!vulnDetail.links || vulnDetail.links.length === 0">--</span>
</span>
</d-col>
</d-row>
</Card>
<Card simple class="jyh-card mb-4">
<div class="card-title">安全漏洞</div>
<d-row class="mb-3">
<d-col :span="12">
<span class="card-key width-90">严重性</span>
<span class="card-val">{{vulnDetail.id || '--'}}</span>
</d-col>
<d-col :span="12">
<span class="card-key width-90">分值</span>
<span class="card-val">{{vulnDetail.code || '--'}}</span>
</d-col>
</d-row>
</Card>
<Card simple class="jyh-card mb-4">
<div class="card-title">安全问题</div>
<d-row class="mb-3">
<d-col :span="12">
<span class="card-key width-90">攻击向量</span>
<span class="card-val">{{vulnDetail.id || '--'}}</span>
</d-col>
<d-col :span="12">
<span class="card-key width-90">攻击复杂度</span>
<span class="card-val">{{vulnDetail.complexity || '--'}}</span>
</d-col>
</d-row>
<d-row class="mb-3">
<d-col :span="12">
<span class="card-key width-90">用户交互</span>
<span class="card-val">{{vulnDetail.compName || '--'}}</span>
</d-col>
<d-col :span="12">
<span class="card-key width-90">需要特殊权限</span>
<span class="card-val">{{vulnDetail.cnvdId || '--'}}</span>
</d-col>
</d-row>
</Card>
<Card simple class="jyh-card mb-4">
<div class="card-title">影响的组件</div>
<d-row class="mb-3">
<d-col :span="12">
<span class="card-key width-90">组件名</span>
<span class="card-val">{{vulnDetail.compName || '--'}}</span>
</d-col>
<d-col :span="12">
<span class="card-key width-90">深度</span>
<span class="card-val">{{vulnDetail.complexity || '--'}}</span>
</d-col>
</d-row>
<d-row class="mb-3">
<d-col :span="12">
<span class="card-key width-90">当前版本</span>
<span class="card-val">{{vulnDetail.version || '--'}}</span>
</d-col>
<d-col :span="12">
<span class="card-key width-90">最新版本</span>
<span class="card-val">{{vulnDetail.cnvdId || '--'}}</span>
</d-col>
</d-row>
<d-row>
<d-col :span="24">
<span class="card-key width-90">组件依赖关系</span>
<span class="card-val">{{vulnDetail.version || '--'}}</span>
</d-col>
</d-row>
</Card>
<Card simple class="jyh-card mb-4">
<div class="card-title">修复建议</div>
<d-row class="mb-3">
<d-col :span="12">
<span class="card-key width-90">补丁版本</span>
<span class="card-val">{{vulnDetail.id || '--'}}</span>
</d-col>
<d-col :span="12">
<span class="card-key width-90">修复兼容性</span>
<span class="card-val">{{vulnDetail.complexity || '--'}}</span>
</d-col>
</d-row>
<d-row>
<d-col :span="24">
<span class="card-key width-90">修复建议</span>
<span class="card-val">{{vulnDetail.description || '--'}}</span>
</d-col>
</d-row>
</Card>
</div>
</template>
<script setup lang="ts">
import { getVulnDetail } from '@/api/repo';
import { ref } from 'vue';
const propsData = defineProps(['repoId', 'vulnId']);
const vulnDetail = ref({
id: 'HWPSIRT-2022-29348',
cveId: 'CVE-2013-0293',
cnvdId: 'CNVD-201105-215',
name: '',
code: '',
description: '华为开发者社区致力于打造华为开发者专属的官方技术交流平台,帮助开发者探索开发实践、交流心得经验、获悉业界动态、解决开发问题。汇聚华为云社区“华为云”领域博客、问答、视频等精彩内容,形成开发者和技术爱好者交流与分享主阵地。',
links: ['/home'],
links2: ['/home'],
vector: '',
complexity: '',
interactive: '',
releaseTime: '2018-07-31',
compName: 'mplayer',
version: '1.4',
});
const queryVulnDetail = async () => {
const data = await getVulnDetail({repoId: propsData.repoId, id: propsData.vulnId});
vulnDetail.value = data;
};
// queryVulnDetail();
</script>
<style scoped lang="scss">
.vuln-detail-container {
width: 800px;
padding: 20px;
.vuln-title {
color: #191919;
font-family: HarmonyOS Sans SC;
font-weight: 400;
font-size: 18px;
}
.vuln-sub-title {
color: #191919;
font-family: HarmonyOS Sans;
font-weight: regular;
font-size: 12px;
line-height: 20px;
letter-spacing: 0px;
text-align: left;
.split-line {
width: 1px;
display: inline-block;
line-height: 16px;
height: 16px;
vertical-align: middle;
margin: 0 8px;
background-color: #EEF0F5;
}
.release-time {
color: #808080;
}
}
.card-val {
display: inline-block;
width: calc(100% - 90px);
vertical-align: top;
}
}
</style>