Merge branch 'master' of https://gitcode.com/hk_openRepo/OpenRepo_Portal into dev-shenjianbin

This commit is contained in:
MaxShen
2025-03-18 19:51:44 +08:00
18 changed files with 138 additions and 308 deletions

View File

@@ -34,9 +34,9 @@
<d-table ref="table" :data="baseTreeTableData1" >
<d-column width="20px" type="index">
</d-column>
<d-column field="name" header="件版本名称" show-overflow-tooltip></d-column>
<d-column field="name" header="件版本名称" show-overflow-tooltip></d-column>
<d-column field="groupid" header="groupid"></d-column>
<d-column field="code" filterable :filter-list="filterList" @filter-change="handleFilterChange" header="件编号">
<d-column field="code" filterable :filter-list="filterList" @filter-change="handleFilterChange" header="件编号">
<template #default="scope">
<a class="devui-link" @click="showDetail = true">{{ scope.row.code }}</a>
</template>
@@ -44,7 +44,7 @@
<d-column field="packageName" filterable :filter-list="packageFilterList" @filter-change="handleFilterChange" header="packageName"></d-column>
<d-column field="version" filterable :filter-list="versionFilterList" @filter-change="handleFilterChange" header="version"></d-column>
<d-column field="language" filterable :filter-list="languageFilterList" @filter-change="handleFilterChange" header="编程语言"></d-column>
<d-column field="number" header="件漏洞数量">
<d-column field="number" header="件漏洞数量">
<template #default="scope">
<a class="devui-link" @click="showDetail = true">{{ scope.row.number }}</a>
</template>

View File

@@ -1,7 +1,7 @@
<template>
<div class="flex align-center justify-start">
<d-search icon-position="left" style="width: 380px" placeholder="请输入搜索件名称"></d-search>
<d-checkbox class="ml-10" label="只显示有漏洞的件" :isShowTitle="false" v-model="checked" />
<d-search icon-position="left" style="width: 380px" placeholder="请输入搜索件名称"></d-search>
<d-checkbox class="ml-10" label="只显示有漏洞的件" :isShowTitle="false" v-model="checked" />
</div>
<Card simple class="jyh-card mt-3">
<div class="clear-padding">

View File

@@ -157,12 +157,12 @@
<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 || '--' }}</span>
</d-col>
</d-row>
<!-- <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>
@@ -289,12 +289,12 @@
<script setup lang="ts">
import { ref, defineEmits, onMounted,reactive } from 'vue';
import { useRouter } from 'vue-router';
import { useRoute, useRouter } from 'vue-router';
import { discussDetailType, userInfoType } from '@/api/discussion/types';
import { Message } from 'vue-devui/message';
import { useClipboard } from '@vueuse/core/index';
import { releaseInfo } from '@/api/jyh';
const route = useRoute();
const emits = defineEmits(['changeTabs']);
// 触发事件的方法
@@ -340,15 +340,18 @@ const handleCopy = event => {
};
const getReleaseInfo = async() => {
const { data, error } = await releaseInfo({ repoId: '123',releaseId: '123' });
const getReleaseInfo = async(versionId) => {
const { data, error } = await releaseInfo({ softwareId: versionId });
if (!error && data) {
ReleaseInfo.value = data.data;
}
};
onMounted(async() => {
getReleaseInfo();
onMounted(() => {
const versionId = route.params.versionId; // 获取路由参数 versionId
if (versionId) {
getReleaseInfo(versionId); // 调用接口获取数据
}
});
</script>

View File

@@ -9,14 +9,16 @@
<div class="header-top">
<GAvatar style="margin-right: 12px" :src="avatarUrl" name="Vue" :width="40" :height="40"></GAvatar>
<div>
<div class="header-title1">{{ softwareData.name }}</div>
<div class="header-title1">{{ ReleaseInfo.basicInfo.softwareName || '--' }}</div>
<div class="header-div">
<span class="span1">版本</span><span class="span2">{{ softwareData.version }}</span>
<span class="span1">版本</span><span class="span2">{{ ReleaseInfo.basicInfo.softwareVersion || '--' }}</span>
<span class="split"></span>
<!-- <span class="span1">生命周期状态</span><span class="span2">{{ softwareData.lifecycle }}</span>-->
<!-- <span class="split"></span>-->
<span class="span1">软件评分</span><span class="span2">{{ ReleaseInfo.networkSecurity.softwareRating || '&#45;&#45;' }}</span>
<span class="split"></span>
<span class="span1">集成风险</span>
<d-tag color="#F6933B">{{ softwareData.risk }}</d-tag>
<d-tag color="#F6933B">{{ ReleaseInfo.referenceInfo.integrationRisk || '--' }}</d-tag>
</div>
</div>
<div class="fr">
@@ -35,11 +37,11 @@
<d-tabs class="jyh-tabs jyh-tabs-2" type="wrapped" v-model="selectTab">
<d-tab id="bbxx" title="版本信息"></d-tab>
<d-tab id="ylgx" title="依赖关系"></d-tab>
<d-tab id="ldxx" title="漏洞信息"></d-tab>
<d-tab id="SBOM" title="SBOM"></d-tab>
<d-tab id="communityInfo" title="开发者社区信息"></d-tab>
<d-tab id="ldxx" title="漏洞信息"></d-tab>
<d-tab id="ai" title="AI修复建议"></d-tab>
<d-tab id="licenseInfo" title="许可证信息"></d-tab>
<d-tab id="communityInfo" title="开发者社区信息"></d-tab>
</d-tabs>
</div>
<div class="version-detail-content">
@@ -55,7 +57,7 @@
</template>
<script setup lang="ts">
import { ref, reactive, watch } from 'vue';
import { ref, reactive, watch, onMounted } from 'vue';
import { useRouter, useRoute } from 'vue-router';
import { getOrgInfo } from '@/views/Org/hooks/orgInfo';
import VulnerabilitiesList from './VulnerabilitiesList.vue';
@@ -69,6 +71,7 @@ const { namespace } = getOrgInfo();
const route = useRoute(); // 获取路由对象
const avatarUrl = '/src/assets/imgs/jyh/工程首字母图标.png';
import SubscriptionModal from '@/views/Jyh/Version/Detail/SubscriptionModal.vue';
import { releaseInfo } from '@/api/jyh';
const selectTab = ref('bbxx');
@@ -76,6 +79,28 @@ const selectTab = ref('bbxx');
const item = ref('');
const deleteModal = ref();
const deletevModels = ref(false);
const ReleaseInfo = ref({
basicInfo: {},
copyRightReportList: [],
entityList: [],
networkSecurity: {},
openSourceLicenseList: [],
referenceInfo: {},
});
const getReleaseInfo = async(versionId) => {
const { data, error } = await releaseInfo({ softwareId: versionId });
if (!error && data) {
ReleaseInfo.value = data.data;
}
};
onMounted(() => {
const versionId = route.params.versionId; // 获取路由参数 versionId
if (versionId) {
getReleaseInfo(versionId); // 调用接口获取数据
}
});
// 监听路由的 query.tab 变化
watch(