fix:仪表盘显示修复
This commit is contained in:
32
src/typings/api.d.ts
vendored
32
src/typings/api.d.ts
vendored
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user