可信代码库-软件详情增加恶意代码信息

This commit is contained in:
付民康
2025-04-16 15:26:53 +08:00
parent 08688bdaa7
commit e6496b34f8

View File

@@ -9,38 +9,58 @@
<div class="malware-detail-card mb-[16px]"> <div class="malware-detail-card mb-[16px]">
<p class="title">文件基本信息</p> <p class="title">文件基本信息</p>
<div class="content"> <div class="content">
<!-- <div class="flex items-center">-->
<!-- <div class="w-[96px] pr-[20px] flex-shrink-0 text-[#595959]">文件名称</div>-->
<!-- <div class="single-line-ellipsis">{{ props.detailRow?.packageFullName }}</div>-->
<!-- <d-icon name="icon-copy" class="ml-[8px] cursor-pointer" @click="handleCopy(props.detailRow?.packageFullName)" />-->
<!-- </div>-->
<div class="flex items-center"> <div class="flex items-center">
<div class="w-[96px] pr-[20px] flex-shrink-0 text-[#595959]">文件路径</div> <div class="w-[160px] pr-[20px] flex-shrink-0 text-[#595959]">文件名称</div>
<div class="single-line-ellipsis">{{ malwareDetails?.filePath }}</div> <div class="single-line-ellipsis">{{ props.detailRow?.packageFullName || '--' }}</div>
<d-icon name="icon-copy" class="ml-[8px] cursor-pointer" @click="handleCopy(malwareDetails?.filePath)" /> <d-icon name="icon-copy" class="ml-[8px] cursor-pointer" @click="handleCopy(props.detailRow?.packageFullName)" />
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<div class="w-[96px] pr-[20px] flex-shrink-0 text-[#595959]">切片类型</div> <div class="w-[160px] pr-[20px] flex-shrink-0 text-[#595959]">文件路径</div>
<div class="single-line-ellipsis">{{ malwareDetails?.codeType }}</div> <div class="single-line-ellipsis">{{ props.detailRow?.packagePath || '--' }}</div>
<d-icon name="icon-copy" class="ml-[8px] cursor-pointer" @click="handleCopy(malwareDetails?.codeType)" /> <d-icon name="icon-copy" class="ml-[8px] cursor-pointer" @click="handleCopy(props.detailRow?.packagePath)" />
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<div class="w-[96px] pr-[20px] flex-shrink-0 text-[#595959]">标识符</div> <div class="w-[160px] pr-[20px] flex-shrink-0 text-[#595959]">文件版本号</div>
<div class="single-line-ellipsis">{{ malwareDetails?.identifier }}</div> <div class="single-line-ellipsis">{{ props.detailRow?.packageVersion || '--' }}</div>
<d-icon name="icon-copy" class="ml-[8px] cursor-pointer" @click="handleCopy(malwareDetails?.identifier)" /> <d-icon name="icon-copy" class="ml-[8px] cursor-pointer" @click="handleCopy(props.detailRow?.packageVersion)" />
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<div class="w-[96px] pr-[20px] flex-shrink-0 text-[#595959]">token数量</div> <div class="w-[160px] pr-[20px] flex-shrink-0 text-[#595959]">LLM名称</div>
<div class="single-line-ellipsis">{{ malwareDetails?.tokenNum }}</div> <div class="single-line-ellipsis">{{ props.detailRow?.llmName || '--' }}</div>
<d-icon name="icon-copy" class="ml-[8px] cursor-pointer" @click="handleCopy(malwareDetails?.tokenNum)" /> <d-icon name="icon-copy" class="ml-[8px] cursor-pointer" @click="handleCopy(props.detailRow?.llmName)" />
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<div class="w-[96px] pr-[20px] flex-shrink-0 text-[#595959]">代码片段</div> <div class="w-[160px] pr-[20px] flex-shrink-0 text-[#595959]">敏感API总数</div>
<div class="single-line-ellipsis">{{ malwareDetails?.code }}</div> <div class="single-line-ellipsis">{{ props.detailRow?.totalApisCalledCount }}</div>
<d-icon name="icon-copy" class="ml-[8px] cursor-pointer" @click="handleCopy(malwareDetails?.code)" /> </div>
<div class="flex items-center">
<div class="w-[160px] pr-[20px] flex-shrink-0 text-[#595959]">可疑文件总数</div>
<div class="single-line-ellipsis">{{ props.detailRow?.suspiciousFilesCount }}</div>
</div>
<div class="flex items-center">
<div class="w-[160px] pr-[20px] flex-shrink-0 text-[#595959]">是否恶意代码</div>
<div class="single-line-ellipsis">
<span class="card-val" v-if="props.detailRow?.isMalicious===0">
<d-tag color="#5e7ce0" size="sm"></d-tag>
</span>
<span class="card-val" v-else>
<d-tag color="#c7000b" size="sm"></d-tag>
</span>
</div>
</div>
<div class="flex items-center">
<div class="w-[160px] pr-[20px] flex-shrink-0 text-[#595959]">大模型是否正常回复</div>
<div class="single-line-ellipsis">
<span class="card-val" v-if="props.detailRow?.isModelResponded===0">
<d-tag color="#5e7ce0" size="sm"></d-tag>
</span>
<span class="card-val" v-else>
<d-tag color="#c7000b" size="sm"></d-tag>
</span>
</div>
</div> </div>
<!-- <div class="flex items-center">--> <!-- <div class="flex items-center">-->
<!-- <div class="w-[96px] pr-[20px] flex-shrink-0 text-[#595959]">文件sha256</div>--> <!-- <div class="w-[160px] pr-[20px] flex-shrink-0 text-[#595959]">文件sha256</div>-->
<!-- <div :title="malwareDetails?.code" class="single-line-ellipsis">{{ malwareDetails?.code }}</div>--> <!-- <div :title="malwareDetails?.code" class="single-line-ellipsis">{{ malwareDetails?.code }}</div>-->
<!-- <d-icon name="icon-copy" class="ml-[8px] cursor-pointer" @click="handleCopy(malwareDetails?.code)" />--> <!-- <d-icon name="icon-copy" class="ml-[8px] cursor-pointer" @click="handleCopy(malwareDetails?.code)" />-->
<!-- </div>--> <!-- </div>-->
@@ -180,12 +200,10 @@ async function getMalwareDetails(id) {
const res = await getMalwareDetailApi2({ const res = await getMalwareDetailApi2({
current: 1, current: 1,
size: 10, size: 10,
malwareId: id maliciousId: id
}); });
if (res.data.code === 200) { if(res.data.records&&res.data.records.length>0) {
malwareDetails.value = res.data.data; malwareDetails.value = res.data.records[0];
} else {
Message.error('查询详情失败');
} }
} catch (e) { } catch (e) {
Message.error('接口错误,查询详情失败'); Message.error('接口错误,查询详情失败');