From 0a5b72fdba244cf4a26d66901dc58191949e270e Mon Sep 17 00:00:00 2001 From: Lewis_yan Date: Tue, 7 Apr 2026 10:48:32 +0800 Subject: [PATCH] fix(dashboard): wrap response with code:200 and update store to extract data from res.data Backend: Response() now returns {code:200, msg, data: {buyer, supplier}} Frontend: store extracts buyer/supplier from res.data since axios interceptor returns full response --- backend/apps/pisadmin/dashboard/serializers.py | 3 ++- backend/apps/pisadmin/dashboard/views.py | 2 +- web/src/stores/modules/dashboard.ts | 15 ++++++++------- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/backend/apps/pisadmin/dashboard/serializers.py b/backend/apps/pisadmin/dashboard/serializers.py index a1e48bb..cab1219 100644 --- a/backend/apps/pisadmin/dashboard/serializers.py +++ b/backend/apps/pisadmin/dashboard/serializers.py @@ -59,7 +59,8 @@ class MessageSerializer(serializers.Serializer): class TrendSerializer(serializers.Serializer): - month = serializers.CharField() + day = serializers.IntegerField(required=False) + month = serializers.CharField(required=False) count = serializers.IntegerField(required=False) quotes = serializers.IntegerField(required=False) won = serializers.IntegerField(required=False) diff --git a/backend/apps/pisadmin/dashboard/views.py b/backend/apps/pisadmin/dashboard/views.py index 8f52442..49d3088 100644 --- a/backend/apps/pisadmin/dashboard/views.py +++ b/backend/apps/pisadmin/dashboard/views.py @@ -468,4 +468,4 @@ class DashboardView(views.APIView): serializer = DashboardResponseSerializer(data=response_data) serializer.is_valid(raise_exception=True) - return Response(serializer.validated_data) + return Response({'code': 200, 'msg': 'success', 'data': serializer.validated_data}) diff --git a/web/src/stores/modules/dashboard.ts b/web/src/stores/modules/dashboard.ts index ee765a0..8a597ed 100644 --- a/web/src/stores/modules/dashboard.ts +++ b/web/src/stores/modules/dashboard.ts @@ -64,13 +64,14 @@ export const useDashboardStore = defineStore('dashboard', { try { const res: any = await getDashboard(); console.log('[Dashboard Store] API response:', res); - console.log('[Dashboard Store] buyer data:', res?.buyer); - console.log('[Dashboard Store] supplier data:', res?.supplier); - console.log('[Dashboard Store] buyer.tasks:', res?.buyer?.tasks); - console.log('[Dashboard Store] supplier.pending_quotes:', res?.supplier?.pending_quotes); - // 后端直接返回 {buyer, supplier} 结构 - this.buyer = res?.buyer || null; - this.supplier = res?.supplier || null; + // 后端返回 {code: 200, msg, data: {buyer, supplier}},需要取 res.data + const data = res?.data || res; + console.log('[Dashboard Store] buyer data:', data?.buyer); + console.log('[Dashboard Store] supplier data:', data?.supplier); + console.log('[Dashboard Store] buyer.tasks:', data?.buyer?.tasks); + console.log('[Dashboard Store] supplier.pending_quotes:', data?.supplier?.pending_quotes); + this.buyer = data?.buyer || null; + this.supplier = data?.supplier || null; console.log('[Dashboard Store] store.buyer after set:', this.buyer); console.log('[Dashboard Store] store.supplier after set:', this.supplier); } finally {