态势感知平台-全球开源风险态势感知监控中心接口字段修改
This commit is contained in:
@@ -63,16 +63,17 @@ const fetchCveData = async () => {
|
|||||||
console.log('开始请求全球CVE数据...');
|
console.log('开始请求全球CVE数据...');
|
||||||
// 请求全球数据
|
// 请求全球数据
|
||||||
const globalResponse = await cveDataGlobalPage1();
|
const globalResponse = await cveDataGlobalPage1();
|
||||||
|
const globalBusinessData = globalResponse.data; // Axios响应格式,业务数据在response.data中
|
||||||
console.log('全球CVE数据响应:', globalResponse);
|
console.log('全球CVE数据响应:', globalResponse);
|
||||||
|
|
||||||
if (globalResponse?.code === 200) {
|
if (globalBusinessData?.code === 200) {
|
||||||
console.log('全球CVE数据:', globalResponse.data);
|
console.log('全球CVE数据:', globalBusinessData.data);
|
||||||
cveData.value.global = {
|
cveData.value.global = {
|
||||||
cveCount: globalResponse.data.cveCount,
|
cveCount: globalBusinessData.data.cveCount,
|
||||||
acceleration: globalResponse.data.acceleration
|
acceleration: globalBusinessData.data.acceleration
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
console.error('获取全球CVE数据失败:', globalResponse?.msg || '未知错误');
|
console.error('获取全球CVE数据失败:', globalBusinessData?.msg || '未知错误');
|
||||||
// 设置默认数据
|
// 设置默认数据
|
||||||
setDefaultGlobalData();
|
setDefaultGlobalData();
|
||||||
}
|
}
|
||||||
@@ -80,16 +81,17 @@ const fetchCveData = async () => {
|
|||||||
console.log('开始请求区域CVE数据...');
|
console.log('开始请求区域CVE数据...');
|
||||||
// 请求区域数据
|
// 请求区域数据
|
||||||
const regionalResponse = await cveDataRegionalPage1();
|
const regionalResponse = await cveDataRegionalPage1();
|
||||||
|
const regionalBusinessData = regionalResponse.data; // Axios响应格式,业务数据在response.data中
|
||||||
console.log('区域CVE数据响应:', regionalResponse);
|
console.log('区域CVE数据响应:', regionalResponse);
|
||||||
|
|
||||||
if (regionalResponse?.code === 200) {
|
if (regionalBusinessData?.code === 200) {
|
||||||
console.log('区域CVE数据:', regionalResponse.data);
|
console.log('区域CVE数据:', regionalBusinessData.data);
|
||||||
cveData.value.regional = {
|
cveData.value.regional = {
|
||||||
cveCount: regionalResponse.data.cveCount,
|
cveCount: regionalBusinessData.data.cveCount,
|
||||||
acceleration: regionalResponse.data.acceleration
|
acceleration: regionalBusinessData.data.acceleration
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
console.error('获取区域CVE数据失败:', regionalResponse?.msg || '未知错误');
|
console.error('获取区域CVE数据失败:', regionalBusinessData?.msg || '未知错误');
|
||||||
// 设置默认数据
|
// 设置默认数据
|
||||||
setDefaultRegionalData();
|
setDefaultRegionalData();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,10 +49,10 @@ const componentData = ref<ComponentData[]>([]);
|
|||||||
const fetchComponentData = async () => {
|
const fetchComponentData = async () => {
|
||||||
try {
|
try {
|
||||||
const response = await highRiskComponentPage1();
|
const response = await highRiskComponentPage1();
|
||||||
if (response.code === 200) {
|
if (response.data.code === 200) {
|
||||||
componentData.value = response.data;
|
componentData.value = response.data.data;
|
||||||
} else {
|
} else {
|
||||||
console.error('获取高危组件数据失败:', response.msg);
|
console.error('获取高危组件数据失败:', response.data.msg || '未知错误');
|
||||||
// 如果接口调用失败,使用默认数据
|
// 如果接口调用失败,使用默认数据
|
||||||
componentData.value = [
|
componentData.value = [
|
||||||
{ name: 'Log4j2', cvss: 9.8, vulnCount: 15, usage: '1200万+', desc: 'CVE-2021-44228等严重RCE漏洞' },
|
{ name: 'Log4j2', cvss: 9.8, vulnCount: 15, usage: '1200万+', desc: 'CVE-2021-44228等严重RCE漏洞' },
|
||||||
|
|||||||
@@ -96,11 +96,12 @@ const handleResize = () => {
|
|||||||
const fetchIndustryData = async () => {
|
const fetchIndustryData = async () => {
|
||||||
try {
|
try {
|
||||||
const response = await industryDistributionPage1();
|
const response = await industryDistributionPage1();
|
||||||
if (response.code === 200) {
|
const businessData = response.data; // Axios响应格式,业务数据在response.data中
|
||||||
internalData.value = response.data;
|
|
||||||
|
if (businessData.code === 200 && businessData.data) {
|
||||||
|
internalData.value = businessData.data;
|
||||||
} else {
|
} else {
|
||||||
console.error('获取行业分布数据失败:', response.msg);
|
console.error('获取行业分布数据失败:', businessData.msg || '未知错误');
|
||||||
// 如果接口调用失败,使用默认数据
|
|
||||||
internalData.value = [
|
internalData.value = [
|
||||||
{ value: 25.8, name: '人工智能' },
|
{ value: 25.8, name: '人工智能' },
|
||||||
{ value: 18.4, name: '云计算' },
|
{ value: 18.4, name: '云计算' },
|
||||||
@@ -114,7 +115,6 @@ const fetchIndustryData = async () => {
|
|||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('请求行业分布数据时发生错误:', error);
|
console.error('请求行业分布数据时发生错误:', error);
|
||||||
// 发生异常时使用默认数据
|
|
||||||
internalData.value = [
|
internalData.value = [
|
||||||
{ value: 25.8, name: '人工智能' },
|
{ value: 25.8, name: '人工智能' },
|
||||||
{ value: 18.4, name: '云计算' },
|
{ value: 18.4, name: '云计算' },
|
||||||
|
|||||||
@@ -38,14 +38,14 @@ const props = defineProps<{
|
|||||||
const feedList = ref<FeedData[]>([]);
|
const feedList = ref<FeedData[]>([]);
|
||||||
|
|
||||||
//获取情报流数据
|
//获取情报流数据
|
||||||
const fetchFeedData = async () => {
|
const fetchFeedData = async() => {
|
||||||
try {
|
try {
|
||||||
console.log('开始请求情报流数据...');
|
console.log('开始请求情报流数据...');
|
||||||
const response = await feedListPage1();
|
const response = await feedListPage1();
|
||||||
if (response.code === 200) {
|
if (response.data?.code === 200) {
|
||||||
feedList.value = response.data || [];
|
feedList.value = response.data.data || [];
|
||||||
} else {
|
} else {
|
||||||
console.error('获取情报流数据失败:', response?.msg || '未知错误');
|
console.error('获取情报流数据失败:', response?.data?.msg || '未知错误');
|
||||||
// 如果接口调用失败,使用默认数据
|
// 如果接口调用失败,使用默认数据
|
||||||
feedList.value = [
|
feedList.value = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -41,19 +41,21 @@ const fetchScatterData = async () => {
|
|||||||
try {
|
try {
|
||||||
console.log('开始请求编程语言安全态势数据...');
|
console.log('开始请求编程语言安全态势数据...');
|
||||||
const response = await scatterDataPage1();
|
const response = await scatterDataPage1();
|
||||||
|
const businessData = response.data; // Axios响应格式,业务数据在response.data中
|
||||||
|
|
||||||
console.log('API响应:', response);
|
console.log('API响应:', response);
|
||||||
|
|
||||||
if (response?.code === 200) {
|
if (businessData?.code === 200) {
|
||||||
console.log('API返回的数据:', response.data);
|
console.log('API返回的数据:', businessData.data);
|
||||||
|
|
||||||
// 处理后端返回的数据格式
|
// 处理后端返回的数据格式
|
||||||
const processedData = processBackendScatterData(response.data);
|
const processedData = processBackendScatterData(businessData.data);
|
||||||
scatterData.value.scatterData = processedData;
|
scatterData.value.scatterData = processedData;
|
||||||
|
|
||||||
// 更新空数据标识
|
// 更新空数据标识
|
||||||
isEmpty.value.scatterData = !processedData || processedData.length === 0;
|
isEmpty.value.scatterData = !processedData || processedData.length === 0;
|
||||||
} else {
|
} else {
|
||||||
console.error('获取编程语言安全态势数据失败:', response?.msg || '未知错误');
|
console.error('获取编程语言安全态势数据失败:', businessData?.msg || '未知错误');
|
||||||
// 设置默认数据
|
// 设置默认数据
|
||||||
setDefaultScatterData();
|
setDefaultScatterData();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,13 +96,14 @@ const geoCoordMap = {
|
|||||||
const fetchAlertsData = async () => {
|
const fetchAlertsData = async () => {
|
||||||
try {
|
try {
|
||||||
const response = await mapVulnTypeStatsPage1();
|
const response = await mapVulnTypeStatsPage1();
|
||||||
if (response.code === 200) {
|
const businessData = response.data; // Axios响应格式,业务数据在response.data中
|
||||||
alerts.value = response.data || [];
|
if (businessData?.code === 200) {
|
||||||
|
alerts.value = businessData.data || [];
|
||||||
if (alerts.value.length > 0) {
|
if (alerts.value.length > 0) {
|
||||||
currentAlert.value = alerts.value[0];
|
currentAlert.value = alerts.value[0];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
console.error('获取实时情报数据失败:', response.msg);
|
console.error('获取实时情报数据失败:', businessData?.msg || '未知错误');
|
||||||
// 如果接口调用失败,使用默认数据
|
// 如果接口调用失败,使用默认数据
|
||||||
alerts.value = [
|
alerts.value = [
|
||||||
{ title: "高危漏洞通告", desc: "Apache Log4j2 远程代码执行漏洞复现" },
|
{ title: "高危漏洞通告", desc: "Apache Log4j2 远程代码执行漏洞复现" },
|
||||||
@@ -151,10 +152,11 @@ const scatterData = ref([]);
|
|||||||
const fetchMapData = async () => {
|
const fetchMapData = async () => {
|
||||||
try {
|
try {
|
||||||
const response = await mapDataPage1();
|
const response = await mapDataPage1();
|
||||||
if (response.code === 200) {
|
const businessData = response.data; // Axios响应格式,业务数据在response.data中
|
||||||
mapData.value = response.data;
|
if (businessData?.code === 200) {
|
||||||
|
mapData.value = businessData.data;
|
||||||
} else {
|
} else {
|
||||||
console.error('获取地图数据失败:', response.msg);
|
console.error('获取地图数据失败:', businessData?.msg || '未知错误');
|
||||||
// 如果接口调用失败,使用默认数据
|
// 如果接口调用失败,使用默认数据
|
||||||
mapData.value = [
|
mapData.value = [
|
||||||
{ name: 'China', value: 100 },
|
{ name: 'China', value: 100 },
|
||||||
@@ -299,15 +301,16 @@ const setChart = async () => {
|
|||||||
const fetchVulnStats = async () => {
|
const fetchVulnStats = async () => {
|
||||||
try {
|
try {
|
||||||
const response = await mapVulnStatsPage1();
|
const response = await mapVulnStatsPage1();
|
||||||
if (response.code === 200) {
|
const businessData = response.data; // Axios响应格式,业务数据在response.data中
|
||||||
|
if (businessData?.code === 200) {
|
||||||
// 为每个数据项添加颜色
|
// 为每个数据项添加颜色
|
||||||
const colors = ['#ef4444', '#f97316', '#eab308', '#3b82f6', '#10b981', '#8b5cf6', '#ec4899', '#06b6d4'];
|
const colors = ['#ef4444', '#f97316', '#eab308', '#3b82f6', '#10b981', '#8b5cf6', '#ec4899', '#06b6d4'];
|
||||||
vulnStats.value = response.data.map((item, index) => ({
|
vulnStats.value = businessData.data.map((item, index) => ({
|
||||||
...item,
|
...item,
|
||||||
color: colors[index % colors.length]
|
color: colors[index % colors.length]
|
||||||
}));
|
}));
|
||||||
} else {
|
} else {
|
||||||
console.error('获取漏洞类型统计数据失败:', response.msg);
|
console.error('获取漏洞类型统计数据失败:', businessData?.msg || '未知错误');
|
||||||
// 如果接口调用失败,使用默认数据
|
// 如果接口调用失败,使用默认数据
|
||||||
vulnStats.value = [
|
vulnStats.value = [
|
||||||
{ name: 'XSS 跨站脚本', value: 32.1, color: '#ef4444' },
|
{ name: 'XSS 跨站脚本', value: 32.1, color: '#ef4444' },
|
||||||
@@ -334,10 +337,11 @@ const fetchVulnStats = async () => {
|
|||||||
const fetchRegionStats = async () => {
|
const fetchRegionStats = async () => {
|
||||||
try {
|
try {
|
||||||
const response = await mapRegionStatsPage1();
|
const response = await mapRegionStatsPage1();
|
||||||
if (response.code === 200) {
|
const businessData = response.data; // Axios响应格式,业务数据在response.data中
|
||||||
regionStats.value = response.data;
|
if (businessData?.code === 200) {
|
||||||
|
regionStats.value = businessData.data;
|
||||||
} else {
|
} else {
|
||||||
console.error('获取威胁情报地域排行数据失败:', response.msg);
|
console.error('获取威胁情报地域排行数据失败:', businessData?.msg || '未知错误');
|
||||||
// 如果接口调用失败,使用默认数据
|
// 如果接口调用失败,使用默认数据
|
||||||
regionStats.value = [
|
regionStats.value = [
|
||||||
{ name: 'United States', score: 435202 },
|
{ name: 'United States', score: 435202 },
|
||||||
|
|||||||
@@ -34,19 +34,20 @@ const fetchLanguageTrendData = async () => {
|
|||||||
try {
|
try {
|
||||||
console.log('开始请求漏洞语言分布数据...');
|
console.log('开始请求漏洞语言分布数据...');
|
||||||
const response = await languageTrendPage1();
|
const response = await languageTrendPage1();
|
||||||
|
const businessData = response.data; // Axios响应格式,业务数据在response.data中
|
||||||
console.log('API响应:', response);
|
console.log('API响应:', response);
|
||||||
|
|
||||||
if (response?.code === 0) {
|
if (businessData?.code === 200) {
|
||||||
console.log('API返回的数据:', response.data);
|
console.log('API返回的数据:', businessData.data);
|
||||||
|
|
||||||
// 处理后端返回的数据格式
|
// 处理后端返回的数据格式
|
||||||
const processedData = processBackendData(response.data);
|
const processedData = processBackendData(businessData.data);
|
||||||
languageTrendData.value = processedData;
|
languageTrendData.value = processedData;
|
||||||
|
|
||||||
// 更新空数据标识
|
// 更新空数据标识
|
||||||
isEmpty.value.languageTrend = !processedData.years || processedData.years.length === 0;
|
isEmpty.value.languageTrend = !processedData.years || processedData.years.length === 0;
|
||||||
} else {
|
} else {
|
||||||
console.error('获取漏洞语言分布数据失败:', response?.msg || '未知错误');
|
console.error('获取漏洞语言分布数据失败:', businessData?.msg || '未知错误');
|
||||||
// 设置默认数据
|
// 设置默认数据
|
||||||
setDefaultData();
|
setDefaultData();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,23 +30,25 @@ const vulnerabilitySeverityData = ref({
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 获取后端数据
|
// 获取后端数据
|
||||||
const fetchVulnerabilitySeverityData = async () => {
|
const fetchVulnerabilitySeverityData = async() => {
|
||||||
try {
|
try {
|
||||||
console.log('开始请求漏洞等级分布数据...');
|
console.log('开始请求漏洞等级分布数据...');
|
||||||
const response = await vulnerabilitySeverityPage1();
|
const response = await vulnerabilitySeverityPage1();
|
||||||
console.log('API响应:', response);
|
console.log('API响应:', response);
|
||||||
|
|
||||||
if (response?.code === 200) {
|
const severityData = response.data; // Axios响应格式,业务数据在response.data中
|
||||||
console.log('API返回的数据:', response.data);
|
|
||||||
|
if (severityData?.code === 200) {
|
||||||
|
console.log('API返回的数据:', severityData.data);
|
||||||
|
|
||||||
// 处理后端返回的数据格式
|
// 处理后端返回的数据格式
|
||||||
const processedData = processBackendSeverityData(response.data);
|
const processedData = processBackendSeverityData(severityData.data);
|
||||||
vulnerabilitySeverityData.value = processedData;
|
vulnerabilitySeverityData.value = processedData;
|
||||||
|
|
||||||
// 更新空数据标识
|
// 更新空数据标识
|
||||||
isEmpty.value.vulnerabilitySeverity = !processedData.categories || processedData.categories.length === 0;
|
isEmpty.value.vulnerabilitySeverity = !processedData.categories || processedData.categories.length === 0;
|
||||||
} else {
|
} else {
|
||||||
console.error('获取漏洞等级分布数据失败:', response?.msg || '未知错误');
|
console.error('获取漏洞等级分布数据失败:', severityData?.msg || '未知错误');
|
||||||
// 设置默认数据
|
// 设置默认数据
|
||||||
setDefaultSeverityData();
|
setDefaultSeverityData();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user