2
0

fix:仪表盘显示修复

This commit is contained in:
zhongzm
2025-01-21 19:42:35 +08:00
parent 7fbaf0d67f
commit 080f6b9964
2 changed files with 87 additions and 88 deletions

32
src/typings/api.d.ts vendored
View File

@@ -620,24 +620,20 @@ declare namespace Api {
connected: boolean; connected: boolean;
}; };
siteNum: number; siteNum: number;
devices: { totalGatewayNum: number;
totalGatewayNum: number; connectedGatewayNum: number;
connectedGatewayNum: number; disconnectedGatewayNum: number;
disconnectedGatewayNum: number; totalSwitchNum: number;
totalSwitchNum: number; connectedSwitchNum: number;
connectedSwitchNum: number; disconnectedSwitchNum: number;
disconnectedSwitchNum: number; totalApNum: number;
totalApNum: number; connectedApNum: number;
connectedApNum: number; disconnectedApNum: number;
disconnectedApNum: number; isolatedApNum: number;
isolatedApNum: number; totalClientNum: number;
}; wiredClientNum: number;
client: { wirelessClientNum: number;
totalClientNum: number; guestNum: number;
wiredClientNum: number;
wirelessClientNum: number;
guestNum: number;
};
registerUserNum: number; registerUserNum: number;
onlineUserNum: number; onlineUserNum: number;
} }

View File

@@ -17,24 +17,20 @@ defineOptions({
const overviewData = ref<Api.DashboardOverview>({ const overviewData = ref<Api.DashboardOverview>({
cloud: { connected: false }, cloud: { connected: false },
siteNum: 0, siteNum: 0,
devices: { totalGatewayNum: 0,
totalGatewayNum: 0, connectedGatewayNum: 0,
connectedGatewayNum: 0, disconnectedGatewayNum: 0,
disconnectedGatewayNum: 0, totalSwitchNum: 0,
totalSwitchNum: 0, connectedSwitchNum: 0,
connectedSwitchNum: 0, disconnectedSwitchNum: 0,
disconnectedSwitchNum: 0, totalApNum: 0,
totalApNum: 0, connectedApNum: 0,
connectedApNum: 0, disconnectedApNum: 0,
disconnectedApNum: 0, isolatedApNum: 0,
isolatedApNum: 0 totalClientNum: 0,
}, wiredClientNum: 0,
client: { wirelessClientNum: 0,
totalClientNum: 0, guestNum: 0,
wiredClientNum: 0,
wirelessClientNum: 0,
guestNum: 0
},
registerUserNum: 0, registerUserNum: 0,
onlineUserNum: 0 onlineUserNum: 0
}); });
@@ -42,31 +38,30 @@ const overviewData = ref<Api.DashboardOverview>({
const fetchOverviewData = async () => { const fetchOverviewData = async () => {
try { try {
const { data } = await getDashboardOverview(); const { data } = await getDashboardOverview();
console.log('Raw API response:', data);
if (data) { if (data) {
overviewData.value = { overviewData.value = {
cloud: { connected: data.cloud?.connected || false }, cloud: { connected: data.cloud?.connected ?? false },
siteNum: data.siteNum || 0, siteNum: data.siteNum ?? 0,
devices: { totalGatewayNum: data.totalGatewayNum ?? 0,
totalGatewayNum: data.devices?.totalGatewayNum || 0, connectedGatewayNum: data.connectedGatewayNum ?? 0,
connectedGatewayNum: data.devices?.connectedGatewayNum || 0, disconnectedGatewayNum: data.disconnectedGatewayNum ?? 0,
disconnectedGatewayNum: data.devices?.disconnectedGatewayNum || 0, totalSwitchNum: data.totalSwitchNum ?? 0,
totalSwitchNum: data.devices?.totalSwitchNum || 0, connectedSwitchNum: data.connectedSwitchNum ?? 0,
connectedSwitchNum: data.devices?.connectedSwitchNum || 0, disconnectedSwitchNum: data.disconnectedSwitchNum ?? 0,
disconnectedSwitchNum: data.devices?.disconnectedSwitchNum || 0, totalApNum: data.totalApNum ?? 0,
totalApNum: data.devices?.totalApNum || 0, connectedApNum: data.connectedApNum ?? 0,
connectedApNum: data.devices?.connectedApNum || 0, disconnectedApNum: data.disconnectedApNum ?? 0,
disconnectedApNum: data.devices?.disconnectedApNum || 0, isolatedApNum: data.isolatedApNum ?? 0,
isolatedApNum: data.devices?.isolatedApNum || 0 totalClientNum: data.totalClientNum ?? 0,
}, wiredClientNum: data.wiredClientNum ?? 0,
client: { wirelessClientNum: data.wirelessClientNum ?? 0,
totalClientNum: data.client?.totalClientNum || 0, guestNum: data.guestNum ?? 0,
wiredClientNum: data.client?.wiredClientNum || 0, registerUserNum: data.registerUserNum ?? 0,
wirelessClientNum: data.client?.wirelessClientNum || 0, onlineUserNum: data.onlineUserNum ?? 0
guestNum: data.client?.guestNum || 0
},
registerUserNum: data.registerUserNum || 0,
onlineUserNum: data.onlineUserNum || 0
}; };
console.log('Processed overviewData:', overviewData.value);
console.log('AP Connected Count:', overviewData.value.connectedApNum);
} }
} catch (error) { } catch (error) {
console.error('Failed to fetch overview data:', error); console.error('Failed to fetch overview data:', error);
@@ -77,38 +72,42 @@ onMounted(() => {
fetchOverviewData(); fetchOverviewData();
}); });
const deviceStatus = computed(() => ({ const deviceStatus = computed(() => {
ap: { const status = {
connected: overviewData.value.devices.connectedApNum, ap: {
disconnected: overviewData.value.devices.disconnectedApNum, connected: Number(overviewData.value.connectedApNum) || 0,
isolated: overviewData.value.devices.isolatedApNum disconnected: Number(overviewData.value.disconnectedApNum) || 0,
}, isolated: Number(overviewData.value.isolatedApNum) || 0
client: { },
wiredUsers: overviewData.value.client.wiredClientNum, client: {
wirelessUsers: overviewData.value.client.wirelessClientNum, wiredUsers: Number(overviewData.value.wiredClientNum) || 0,
wirelessGuests: overviewData.value.client.guestNum wirelessUsers: Number(overviewData.value.wirelessClientNum) || 0,
}, wirelessGuests: Number(overviewData.value.guestNum) || 0
users: { },
registered: overviewData.value.registerUserNum, users: {
online: overviewData.value.onlineUserNum registered: Number(overviewData.value.registerUserNum) || 0,
}, online: Number(overviewData.value.onlineUserNum) || 0
alerts: 0 },
})); alerts: 0
};
console.log('Computed deviceStatus:', status);
return status;
});
const siteInfo = computed(() => ({ const siteInfo = computed(() => ({
total: overviewData.value.siteNum total: Number(overviewData.value.siteNum) || 0
})); }));
const otherDevices = computed(() => ({ const otherDevices = computed(() => ({
gateways: { gateways: {
total: overviewData.value.devices.totalGatewayNum, total: Number(overviewData.value.totalGatewayNum) || 0,
connected: overviewData.value.devices.connectedGatewayNum, connected: Number(overviewData.value.connectedGatewayNum) || 0,
disconnected: overviewData.value.devices.disconnectedGatewayNum disconnected: Number(overviewData.value.disconnectedGatewayNum) || 0
}, },
switches: { switches: {
total: overviewData.value.devices.totalSwitchNum, total: Number(overviewData.value.totalSwitchNum) || 0,
connected: overviewData.value.devices.connectedSwitchNum, connected: Number(overviewData.value.connectedSwitchNum) || 0,
disconnected: overviewData.value.devices.disconnectedSwitchNum disconnected: Number(overviewData.value.disconnectedSwitchNum) || 0
}, },
olts: { olts: {
total: 0, total: 0,
@@ -211,8 +210,7 @@ const otherDevices = computed(() => ({
</div> </div>
<div class="border-t border-gray-100 my-4px"></div> <div class="border-t border-gray-100 my-4px"></div>
<div class="flex flex-col text-12px text-gray-500"> <div class="flex flex-col text-12px text-gray-500">
<span>Total: {{ deviceStatus.users.registered }}</span> <span>Register: {{ deviceStatus.users.registered }}</span>
<span>Online: {{ deviceStatus.users.online }}</span>
</div> </div>
</div> </div>
@@ -226,16 +224,18 @@ const otherDevices = computed(() => ({
</div> </div>
<div class="border-t border-gray-100 my-4px"></div> <div class="border-t border-gray-100 my-4px"></div>
<div class="flex flex-col text-12px text-gray-500"> <div class="flex flex-col text-12px text-gray-500">
<span>Active: {{ deviceStatus.users.online }}</span> <span>Online: {{ deviceStatus.users.online }}</span>
<span>Total: {{ deviceStatus.users.registered }}</span>
</div> </div>
</div> </div>
<!-- AP Status --> <!-- AP Status -->
<div class="flex flex-col p-6px"> <div class="flex flex-col p-6px">
<div class="flex items-center gap-6px mb-6px"> <div class="flex items-center gap-6px mb-6px">
<div class="size-48px flex-center bg-green-50 rounded-lg"> <div class="size-48px flex-center bg-green-50 rounded-lg relative">
<icon-mdi-access-point class="text-primary text-24px" /> <icon-mdi-access-point class="text-primary text-24px" />
<span class="text-20px font-semibold absolute -right-2 -top-2 bg-primary text-white rounded-full w-6 h-6 flex-center">
{{ overviewData.totalApNum }}
</span>
</div> </div>
<div class="text-16px font-medium">AP</div> <div class="text-16px font-medium">AP</div>
</div> </div>
@@ -250,8 +250,11 @@ const otherDevices = computed(() => ({
<!-- Client Status --> <!-- Client Status -->
<div class="flex flex-col p-6px"> <div class="flex flex-col p-6px">
<div class="flex items-center gap-6px mb-6px"> <div class="flex items-center gap-6px mb-6px">
<div class="size-48px flex-center bg-purple-50 rounded-lg"> <div class="size-48px flex-center bg-purple-50 rounded-lg relative">
<icon-mdi-laptop class="text-primary text-24px" /> <icon-mdi-laptop class="text-primary text-24px" />
<span class="text-20px font-semibold absolute -right-2 -top-2 bg-primary text-white rounded-full w-6 h-6 flex-center">
{{ overviewData.totalClientNum }}
</span>
</div> </div>
<div class="text-16px font-medium">Client</div> <div class="text-16px font-medium">Client</div>
</div> </div>