This commit is contained in:
汪少伟
2025-03-21 12:11:57 +08:00
parent ef8c5e1c15
commit 8705ead31d
5 changed files with 140 additions and 182 deletions

View File

@@ -40,7 +40,7 @@
<span class="card-val">{{ ReleaseInfo.referenceInfo.integrationRisk || '--' }}</span>
</d-col>
<d-col :span="8">
<span class="card-key width-110">代码量(KL)</span>
<span class="card-key width-110">代码量(L)</span>
<span class="card-val">{{ ReleaseInfo.referenceInfo.codeQuantity || '--' }}</span>
</d-col>
<d-col :span="8">
@@ -59,53 +59,54 @@
<span class="card-key width-110">所属领域/产业</span>
<span class="card-val">{{ getIndustryName(ReleaseInfo.referenceInfo.industry) || '--' }}</span>
</d-col>
<!-- <d-col :span="8">-->
<!-- <span class="card-key width-110">版本火车名称</span>-->
<!-- <span class="card-val">CleanSource V8.0</span>-->
<!-- </d-col>-->
<!-- <d-col :span="8">-->
<!-- <span class="card-key width-110">版本火车名称</span>-->
<!-- <span class="card-val">CleanSource V8.0</span>-->
<!-- </d-col>-->
</d-row>
<d-row class="mb-3">
<d-col :span="24">
<span class="card-key width-140">源码下载包地址</span>
<a class="card-url" :href="ReleaseInfo.referenceInfo.sourceCodeDownloadUrl || '--'">{{ ReleaseInfo.referenceInfo.sourceCodeDownloadUrl || '--' }}</a>
<a class="card-url" :href="ReleaseInfo.referenceInfo.sourceCodeDownloadUrl || '--'">{{
ReleaseInfo.referenceInfo.sourceCodeDownloadUrl || '--'
}}</a>
</d-col>
</d-row>
<d-row class="mb-3">
<d-col :span="24">
<span class="card-key width-140">源码社区托管地址</span>
<a class="card-url" :href="ReleaseInfo.referenceInfo.sourceCodeCommunityUrl || '--'">{{ ReleaseInfo.referenceInfo.sourceCodeCommunityUrl || '--' }}</a>
<a class="card-url" :href="ReleaseInfo.referenceInfo.sourceCodeCommunityUrl || '--'">{{
ReleaseInfo.referenceInfo.sourceCodeCommunityUrl || '--'
}}</a>
</d-col>
</d-row>
<d-row>
<d-col :span="24">
<span class="card-key width-140">社区EOL披露地址</span>
<a class="card-url" :href="ReleaseInfo.referenceInfo.communityEolDisclosureUrl || '--'">{{ ReleaseInfo.referenceInfo.communityEolDisclosureUrl || '--' }}</a>
<a class="card-url" :href="ReleaseInfo.referenceInfo.communityEolDisclosureUrl || '--'">{{
ReleaseInfo.referenceInfo.communityEolDisclosureUrl || '--'
}}</a>
</d-col>
</d-row>
</Card>
<Card simple class="jyh-card mb-4">
<div class="card-title">开源主License信息</div>
<div class="mb-3">
<d-table
class="jyh-table jyh-table-2"
:header-bg="true"
:data="ReleaseInfo.openSourceLicenseList"
>
<d-table class="jyh-table jyh-table-2" :header-bg="true" :data="ReleaseInfo.openSourceLicenseList">
<d-column type="index" header="序号" width="80"></d-column>
<!-- <d-column field="id" header="编号"></d-column>-->
<!-- <d-column field="id" header="编号"></d-column>-->
<d-column field="name" header="名称"></d-column>
<d-column field="description" header="描述"></d-column>
<!-- <d-column field="applicationScenario" header="应用场景"></d-column>-->
<!-- <d-column field="applicationScenario" header="应用场景"></d-column>-->
</d-table>
</div>
<!-- <d-row>-->
<!-- <d-col :span="24">-->
<!-- <span class="card-key width-140">主License分析报告</span>-->
<!-- <a class="card-url" href="https://designcloud.uiplus.huawei.com/developer/main/index.html">https://designcloud.uiplus.huawei.com/developer/main/index.html</a>-->
<!-- </d-col>-->
<!-- </d-row>-->
<!-- <d-row>-->
<!-- <d-col :span="24">-->
<!-- <span class="card-key width-140">主License分析报告</span>-->
<!-- <a class="card-url" href="https://designcloud.uiplus.huawei.com/developer/main/index.html">https://designcloud.uiplus.huawei.com/developer/main/index.html</a>-->
<!-- </d-col>-->
<!-- </d-row>-->
</Card>
<Card simple class="jyh-card mb-4">
<div class="card-title">Copyright报告</div>
@@ -113,22 +114,27 @@
<d-table
class="jyh-table jyh-table-2"
:header-bg="true"
:data="ReleaseInfo.copyRightReportList"
:data="[
{
reportName: 'Copyright (c) Isaac Z. Schlueter and Contributors',
entryTime: '2025-03-20'
}
]"
>
<d-column field="reportName" header="Copyright报告">
<template #default="scope">
<a :href="scope.row.reportUrl">{{scope.row.reportName}}</a>
{{ scope.row.reportName }}
</template>
</d-column>
<d-column field="entryTime" header="录入时间"></d-column>
</d-table>
</div>
<!-- <d-row>-->
<!-- <d-col :span="24">-->
<!-- <span class="card-key width-140">主License分析报告</span>-->
<!-- <a class="card-url" href="https://designcloud.uiplus.huawei.com/developer/main/index.html">https://designcloud.uiplus.huawei.com/developer/main/index.html</a>-->
<!-- </d-col>-->
<!-- </d-row>-->
<!-- <d-row>-->
<!-- <d-col :span="24">-->
<!-- <span class="card-key width-140">主License分析报告</span>-->
<!-- <a class="card-url" href="https://designcloud.uiplus.huawei.com/developer/main/index.html">https://designcloud.uiplus.huawei.com/developer/main/index.html</a>-->
<!-- </d-col>-->
<!-- </d-row>-->
</Card>
<Card simple class="jyh-card mb-4">
@@ -137,91 +143,27 @@
<d-table
class="jyh-table jyh-table-2"
:header-bg="true"
:data="ReleaseInfo.entityList"
:data="[
{
type: '二进制包',
entityPackageDownloadUrl: 'https://raw.gitcode.com/file/inherits/inherits.tar',
fileName: 'inherits.tar',
entryTime: '2025-03-20'
}
]"
>
<d-column field="type" header="类型"></d-column>
<d-column field="entityPackageDownloadUrl" header="实体包下载地址">
<template #default="scope">
<a :href="scope.row.entityPackageDownloadUrl">{{scope.row.entityPackageDownloadUrl}}</a>
{{ scope.row.entityPackageDownloadUrl }}
</template>
</d-column>
<d-column field="fileName" header="文件名称"></d-column>
<d-column field="entryTime" header="录入时间"></d-column>
<d-column field="integrityResult" header="完整性结果">
<template #default="scope">
<a @click="visible=true">{{scope.row.integrityResult}}</a>
</template>
</d-column>
</d-table>
</div>
</Card>
<Card simple class="jyh-card mb-4">
<div class="card-title">网络安全</div>
<!-- <d-row class="mb-3">-->
<!-- <d-col :span="24">-->
<!-- <span class="card-key width-160">软件评分</span>-->
<!-- <span class="card-val">{{ ReleaseInfo.networkSecurity.softwareRating || '&#45;&#45;' }}</span>-->
<!-- </d-col>-->
<!-- </d-row>-->
<d-row class="mb-3">
<d-col :span="24">
<span class="card-key width-160">社区安全问题求助</span>
<a class="card-url" :href="ReleaseInfo.networkSecurity.communitySecurityHelpChannel || '--'">{{ ReleaseInfo.networkSecurity.communitySecurityHelpChannel || '--' }}</a>
</d-col>
</d-row>
<div class="mb-3 flex">
<span class="card-key width-160">官网漏洞披露地址</span>
<d-table
style="display: contents"
class="jyh-table jyh-table-2"
:header-bg="true"
:data="ReleaseInfo.networkSecurity.officialVulnerabilityDisclosureList"
>
<d-column field="id" header="编号"></d-column>
<d-column field="vendor" header="厂商"></d-column>
<d-column field="softwareName" header="软件名"></d-column>
<d-column field="source" header="来源"></d-column>
<d-column field="url" header="url">
<template #default="scope">
<a :href="scope.row.url">{{scope.row.url}}</a>
</template>
</d-column>
</d-table>
</div>
<div class="mb-3 flex">
<span class="card-key width-160">外部漏洞源的软件名称</span>
<d-table
style="display: contents"
class="jyh-table jyh-table-2"
:header-bg="true"
:data="ReleaseInfo.networkSecurity.externalVulnerabilityList"
>
<d-column field="id" header="编号"></d-column>
<d-column field="vendor" header="厂商"></d-column>
<d-column field="softwareName" header="软件名"></d-column>
<d-column field="source" header="来源"></d-column>
<d-column field="url" header="url">
<template #default="scope">
<a :href="scope.row.url">{{scope.row.url}}</a>
</template>
</d-column>
</d-table>
</div>
<d-row class="mb-3">
<d-col :span="24">
<span class="card-key width-160">是否涉及用户登录</span>
<span class="card-val">{{ ReleaseInfo.networkSecurity.isInvolvedUserLogin || '--' }}</span>
</d-col>
</d-row>
<d-row>
<d-col :span="24">
<span class="card-key width-160">兼容性风险描述</span>
<span class="card-val">{{ ReleaseInfo.networkSecurity.compatibilityRiskDescription || '--' }}</span>
</d-col>
</d-row>
</Card>
<d-modal
title="完整性结果详情"
v-model="visible"
@@ -229,7 +171,7 @@
:style="{ width: '800px', height: '400px' }"
@close="handleClose"
>
<Card simple class="jyh-card mb-4" style="box-shadow: none;padding: 0">
<Card simple class="jyh-card mb-4" style="box-shadow: none; padding: 0">
<d-row class="mb-3">
<d-col :span="24">
<span class="card-key width-160">社区哈希类型</span>
@@ -277,19 +219,17 @@
</d-row>
</Card>
<template #footer>
<d-modal-footer style="text-align: center;">
<d-button variant="solid" color="primary" @click="handleClose">确认</d-button>
<d-modal-footer style="text-align: center">
<d-button variant="solid" color="primary" @click="handleClose">确认</d-button>
<d-button @click="handleClose">取消</d-button>
</d-modal-footer>
</template>
</d-modal>
</div>
</template>
<script setup lang="ts">
import { ref, defineEmits, onMounted,reactive } from 'vue';
import { ref, defineEmits, onMounted, reactive } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { discussDetailType, userInfoType } from '@/api/discussion/types';
import { Message } from 'vue-devui/message';
@@ -304,8 +244,8 @@ const handleTabChange = (tabName) => {
emits('changeTabs', tabName); // 触发 changeTabs 事件,并传递参数
};
const licenseTableData = ref([{code: '05822156', name:'MIT License',detail: 'integer'}]);
const CopyrightTableData = ref([{code: '05822156',detail: 'integer'}]);
const licenseTableData = ref([{ code: '05822156', name: 'MIT License', detail: 'integer' }]);
const CopyrightTableData = ref([{ code: '05822156', detail: 'integer' }]);
const visible = ref(false);
const ReleaseInfo = ref({
basicInfo: {},
@@ -313,16 +253,15 @@ const ReleaseInfo = ref({
entityList: [],
networkSecurity: {},
openSourceLicenseList: [],
referenceInfo: {},
referenceInfo: {}
});
const globalInfo = useGlobalInfoStore();
const industryList = ref(globalInfo.industryList);
const getIndustryName = (value) => {
const industry = industryList.value.find(item => item.value === value);
const industry = industryList.value.find((item) => item.value === value);
return industry ? industry.name : '未知行业'; // 如果找不到,返回默认值
};
const router = useRouter();
// 跳转
@@ -336,19 +275,18 @@ const gotoDetail = (row) => {
// 跳转
const handleClose = (row) => {
visible.value = false
visible.value = false;
};
const { copy } = useClipboard();
const handleCopy = event => {
const handleCopy = (event) => {
event.stopPropagation();
copy('');
Message.success('复制成功');
};
const getReleaseInfo = async(versionId) => {
const getReleaseInfo = async (versionId) => {
const { data, error } = await releaseInfo({ softwareId: versionId });
if (!error && data) {
ReleaseInfo.value = data.data;
@@ -361,7 +299,6 @@ onMounted(() => {
getReleaseInfo(versionId); // 调用接口获取数据
}
});
</script>
<style scoped lang="scss">
@@ -387,14 +324,13 @@ onMounted(() => {
line-height: 22px;
letter-spacing: 0px;
text-align: left;
}
.card-success {
display: inline-block;
border-radius: 4px;
background: #81C054;
color: #FFFFFF;
background: #81c054;
color: #ffffff;
font-family: HarmonyOS Sans SC;
font-weight: medium;
font-size: 12px;