Przeglądaj źródła

fix: 报告列表接口不强制 memberId——未传时回退到家庭报告列表

Xiaogang Liao 1 miesiąc temu
rodzic
commit
189b7f097c

+ 11 - 5
cfc-backend/src/main/java/com/etotem/cfc/controller/HealthReportController.java

@@ -257,14 +257,20 @@ public class HealthReportController {
     @PostMapping("/report/list")
     public Result<List<HealthReport>> listReports(
             @RequestBody Map<String, Object> params,
-            @RequestAttribute(value = "currentMemberId", required = false) Long currentMemberId) {
+            @RequestAttribute(value = "currentMemberId", required = false) Long currentMemberId,
+            @RequestAttribute(value = "familyId", required = false) Long familyId) {
         Long memberId = params.get("memberId") != null
                 ? Long.valueOf(params.get("memberId").toString()) : currentMemberId;
-        if (memberId == null) {
-            return Result.error("memberId不能为空");
+        if (memberId != null) {
+            List<HealthReport> reports = healthReportService.getUserReports(memberId);
+            return Result.success(reports);
         }
-        List<HealthReport> reports = healthReportService.getUserReports(memberId);
-        return Result.success(reports);
+        // 未指定 memberId 时,回退到家庭报告列表
+        if (familyId != null) {
+            List<HealthReport> reports = healthReportService.getFamilyReports(familyId);
+            return Result.success(reports);
+        }
+        return Result.error("memberId不能为空");
     }
 
     @Operation(summary = "获取全家健康报告列表(方案页选择用)")

+ 2 - 9
cfc-frontend/pages/health/report-list.vue

@@ -52,18 +52,11 @@ export default {
     }
   },
   onLoad(options) {
-    this.memberId = options.memberId ? parseInt(options.memberId) : this.getMemberId()
+    // 优先用导航参数传入的 memberId;未传时后端回退到家庭报告列表
+    this.memberId = options.memberId ? parseInt(options.memberId) : null
     this.loadData()
   },
   methods: {
-    getMemberId: function() {
-      // 优先当前选中的孩子/成员,兜底用登录用户 ID(与 health-main 一致)
-      var store = this.$store
-      if (store && store.state && store.state.currentChildId) return store.state.currentChildId
-      if (store && store.state && store.state.currentMemberId) return store.state.currentMemberId
-      if (store && store.state && store.state.userId) return store.state.userId
-      return uni.getStorageSync('userId') || ''
-    },
     loadData() {
       var self = this
       self.loading = true