Merge branch 'master' of https://gitcode.com/hk_openRepo/OpenRepo_Portal into junjie_dev
# Conflicts: # src/api/jyh/index.ts # src/components/AdvanceSearch/index.vue # src/views/Jyh/Home/index.vue
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -20,24 +20,49 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { subscribeSoftware } from '@/api/jyh';
|
||||
import { computed, ref } from 'vue';
|
||||
import { Message } from 'vue-devui';
|
||||
|
||||
const props = defineProps(['softwareData']);
|
||||
const emit = defineEmits(['close']);
|
||||
const formRef = ref(null);
|
||||
const formData = ref({
|
||||
subscribeType: '',
|
||||
subscribeText: '',
|
||||
});
|
||||
const rules = {
|
||||
subscribeType: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
};
|
||||
const sendSubscribe = async () => {
|
||||
const data = await subscribeSoftware({
|
||||
softwareId: props.softwareData.id,
|
||||
status: '1',
|
||||
alertType: {
|
||||
mobileSwitch: formData.value.subscribeType === '0',
|
||||
emailSwitch: formData.value.subscribeType === '1',
|
||||
webSwitch: formData.value.subscribeType === '2',
|
||||
}
|
||||
}).catch(err => {
|
||||
Message({
|
||||
message: err.error,
|
||||
type: 'error'
|
||||
})
|
||||
});
|
||||
if (!data?.data?.data?.data) {
|
||||
Message({
|
||||
message: data?.data?.data?.msg,
|
||||
type: 'error'
|
||||
})
|
||||
} else {
|
||||
emit('close');
|
||||
}
|
||||
}
|
||||
const confirm = () => {
|
||||
(formRef?.value as any)?.validate((isValid: boolean, invalidFields: any) => {
|
||||
if (!isValid) {
|
||||
return;
|
||||
}
|
||||
emit('close');
|
||||
sendSubscribe();
|
||||
});
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -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 || '--' }}</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>
|
||||
|
||||
@@ -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="span1">生命周期状态:</span><span class="span2">{{ softwareData.lifecycle }}</span>-->
|
||||
<!-- <span class="split"></span>-->
|
||||
<span class="span1">软件评分:</span><span class="span2">{{ ReleaseInfo.networkSecurity.softwareRating || '--' }}</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">
|
||||
@@ -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(
|
||||
@@ -351,4 +376,4 @@ const colseSubscription = () => {
|
||||
</style>
|
||||
|
||||
<style lang="scss">
|
||||
</style>
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user