# 更新日志 > 当前版本: v1.0.1734 ## 历史版本 - [v1.0 版本历史](CHANGELOG-v1.0.md) --- ## v1.0.1734 (2026-10-20) ### Bug 修复 - 补齐 4 处模板表达式未加引号的 hex + 缺失的 gray-300 令牌 ### 其他 - - activity/create.vue:137-138:tpl.mainColor/darkColor || #F97316/#EA580C 补引号 - - mind-detail/traditional-mirror.vue:77:numSoulData.colorHex || #FF6B9D 补引号 - (模板表达式里的裸 # 会被解析成 private name / hash token,编译直接失败) - - uni.scss 新增 $facade-text-gray-300 (#D1D5DB):RelatedContent.vue:429 已在 - 使用但从未定义,dart-sass 报 Undefined variable;与既有的 gray-400/700/800 同族 - - 校验:383 个 闭合标签 - promotion模板多根元素 + 内联赋值 - RecommendedSection无数据时显示空状态而非隐藏整个组件 - 重新绘制底部tab身图标,更清晰的弯曲胳膊造型 - DimensionProductList使用attached生命周期在uni-app中不触发 - recommend-mixin传参字段名与后端DTO不匹配 - family-members弹窗关闭内联表达式 - 健康报告上传失败时 console 输出错误详情 - 后台活动权重维度code与标准五维体系不一致导致新活动小程序端不显示 - add missing List import in ActivityController and DB migrations for dimension_code/family_scope columns - circle接口空字符串解析Long报NumberFormatException - 富页登录按钮因重复CSS规则min-height:80vh位置偏高 - article-detail auto-merge遗留重复方法 - article-detail内联表达式导致data-event-opts编译错误 - 未登录可浏览商品/活动/文章详情 + 富页面预登录内容 - 统一活动详情页,删除 discover-detail 重复文件 - 补充ActivityDTO缺失字段 requireRegistration/requireCheckinReview/memberPrice/feedbackDimensions - resolve 6 backend compilation errors - article-detail模板结构错误 — template作容器/多余闭合标签/tag无匹配end - override ejs to 3.1.10 to fix critical CVE in webpack-bundle-analyzer - ContentRecommendService NPE when type is null - replace Map.of() with HashMap for Java 8 compatibility - recommend-mixin.js 导入路径多一层目录 - ContentRecommendService select() incompatibility, ProductRecommendationService bean injection conflict - 登录合规整改 - 跳过登录入口、静默授权、协议措辞 - remove WeChat branding from login page per review guideline - promotion try无catch语法错误 + 创建缺失的member-detail分包页面 - parameterize JSON_EXTRACT dimension_weights queries to prevent SQL injection - OCR finding - DimensionActivities CSS flex overflow - resolve OCR findings - AIService workflowId URL + EnergyService parent role filter - 财商打卡页内联表达式导致data-event-opts编译错误 + 修复模板编译器recyclableRender未定义 - add sendWorkflow and getTodayTasks(Long) overload, pull remote changes - 推荐商品和活动价格显示到分 - allow tracking screenshots in web/articles/ via .gitignore - 智首页六维认知雷达图无数据时也显示人群平均值 - 身首页七维雷达图无数据时也显示人群平均值 - 关系图连线映射交换 — 信任度→颜色(低红高绿),沟通度→线形 - 关系图连线视觉映射调整 — 粗细/颜色/虚线 + 无数据默认黑色 - payment.wxss 多余逗号导致编译错误 - EnergyService 修复 JSONObject.getInt -> getIntValue 和 executeAward 缺少 totalAmount 参数 - ActivityEdit/ArticleEdit full scroll, action tab no auto-select, timeout 800ms - edit page scrolling, action tab blank screen, SKU specs save - 推荐活动和推荐商品显示实际价格而非'登录查看价格' - ProductEdit card layout, sales page add leaky-gut/pancreatitis articles - remove required:true from dimensionCode prop in DimensionActivities/Products - el-main添加overflow-y:auto使内容区可滚动,解决长表单被截断问题 - replace template literal fallback with computed props for WXML compat - add null defaults for dailyFortune and dominantElement props - add currentChildId guard and fix getMyCircles params - add iOS date parsing fallback for Java format - 商品编辑页el-card__body增加overflow-y:auto使表单可滚动,保存按钮可见 - member pricing display, wisdom/body page layout, :key expr in FamilyTianpanCard, remove FamilyRelationGraph - add membership_levels seed data and period-specific pricing keys - add mind/alert/active and mind/traditional/mirror to public paths - verify-password 400 error — replace broad /api/auth/ public path with explicit list - empty purchasedIds causing NOT IN () SQL syntax error - 8 test failures — entity fixes + test param alignment - Product entity column mapping + test param fixes - add migrations 126-132 with ensureColumn for column alignment - add 9 missing tables (migrations 117-125) + fix JwtInterceptor familyId + fix test emotion childId - 商城升级提示文案通用化 - '开通家庭会员'改为'开通付费会员' - move migrations 105/106 into runMigrations() — they were in dead code migration102() - resolve P0-1/2/2b/3/5/6 test bugs + P0-4 DB migration for growth_records - migration 106 add growth_records missing columns (family_member_id/school info) - restore tab-wisdom icons from earliest valid version (faedcc33) - year_month reserved word quoting + products.min_quantity migration - 修复 stats-report-flow.md Mermaid 虚线连接语法错误(-:- → -.-) - 修复 promotion_tier 表列名映射——teamSize1st→team_size_1st - decode tab-wisdom PNG icons from base64 to binary - 梳理慢性病文章因果措辞——炎症不再作为唯一病因 - schema.sql 补充 4 个 butler 表定义 - key 表达式改为方法调用,修复小程序非 H5 平台编译警告 - 修复growth-record-flow.md Mermaid语法错误 - remove broken image refs in gut-microbiota-testing.html - replace {param} with :param in mermaid node text to fix syntax error in v11.12.1 - replace bare
with
in mermaid flow diagrams to fix syntax error in v11.12.1 - goDiscoverCircles 跳转到 discover 首页(原路径 /pages/discover/circles 不存在) - add products.min_quantity migration to runMigrations() - remove invalid shape:box from all mermaid classDef - update article count from 2→1 after turmeric article removal - 报告日期/综合评分仅文件上传后显示,ping文件Ping重置日期评分 - 改进ensureColumn错误处理+添加迁移104/103验证日志 - correct activity flow diagram with proper business rules - 补充缺失的default-avatar.png,统一路径 - tianpan_daily_fortune表添加8个缺失字段修复Unknown column错误 - prioritize K8 (8-plate, 37900元), fix 20-year cost analysis, update certifications placeholder - DimensionProductList activeChildId为空时跳过渲染 - 推荐阅读数据补充dimensionWeights和likes字段 - P2/P3 article fixes - 快捷入口对齐action页原版样式和funcList - 行TabBar章鱼图+联系人导入,顺序对齐原计划 - unify 活性氢→分子氢 terminology across sales pages and infographic - unify terminology - 活性氢→分子氢, 磷脂配比→天然基底油, refine descriptions - remove dead link to deleted turmeric_rewritten.html - 行TabBar登录态数据加载对齐action页(孩子/能量/任务/活动/商品/文章) - products表添加min_quantity列(迁移103)+ schema.sql同步 - restore article reading timer + recordRead积分发放 + fix response code - recapture UKPDS 16 and DPP study reference screenshots - update microplastic and tap-water sales pages - update article content - update WHO PDF link to IRIS archive, restore ref-18 CAS card - 去掉行TabBar页的redirectTo,登录态内容内联渲染,保持底签可见 - 文章编辑页内容过长时无法滚动到底部 - 闭合rating.vue模板中缺失的view标签,修复编译报错 - add 300+ missing CSS rules to diabetes.html - correct gut-microbiome-damage.jpg path in cancer.html and diabetes.html feat: add missing reference screenshots (turmeric marketplace, nature figures) - 修复 createMultiItem 中 minQuantity 产品级校验注入位置错误 - move Hallmarks screenshot to content area, fix container nesting - 修复cardio-cerebro.html中ref-screenshot图片路径(/img→../img) - 替换cancer_ref3截图源,补全三篇文章ref-shot img标签 - 恢复行首页redirectTo;修复CircleRanking WXML编译错误;新增plans占位页 - 行首页登录后保持TabBar;家庭挑战任务移至身页面 - 用evidence-inline替换cancer/diabetes/osteoporosis断链截图 - 添加真实DOI参考文献到3篇geo-faq文章,修复导航链接路径 - 为8篇独立文章补充footer CSS样式 - resolve subpackage path conflict in pages.json - 修复肠脑轴图/页脚/参考文献/证据截图 - fix encoding corruption from directory rename and restore UTF-8 - Fix: - 修正图片引用路径并替换缺失的参考截图 - rename pages/index to pages/home and update all references - 修正 cancer/cardio-cerebro 路径引用 - 修正子目录路径引用,添加 turmeric 文章 - remove stale RelationshipTypes route referencing deleted component - add throws Exception to test methods calling preHandle - add missing MockHttpServletRequest import - resolve compilation errors - Java 8 var removal + type casts - fix 405 POST→GET redirect, RecommendedFeed items ref, and unhandled rejections - PROJECT-OVERVIEW §2.3 家庭成员体系状态 🚧→✅(4/4 全部完成) - remove dead getRelationshipTypes API after P0-001 backend removal - extend postinstall-fix.js to also patch HBuilderX bundled remove-scoped.js - revert to @vue/cli-service v4 + patch remove-scoped.js via postinstall - Fix: - fix syntax error in parent-index.vue - loadAlerts + handleDismissAlert - restore @vue/cli-service v5, remove PostCSS config files - Fix: - restore @vue/cli-service to v5 to fix WeChat DevTools compile error - use ES module default-export for generationLevel constants - @keyframes 从 scoped 移到非 scoped 样式块,修复 vue-cli-plugin-uni 编译错误 - point develop env to cfc.etotem.com.cn; extract deep selector to non-scoped style for HBuilderX compat - replace >>> deep selector with ::v-deep for postcss compat - fix hash operator precedence, use floorMod for negative-safe index - use setFontSize in renderLegacy for WeChat compat, add _destroyed lifecycle guard - 联系电话 010-86461234 → 010-58733188 - ensure .vue resolution in webpack - 修复 uni-app 小程序编译兼容性问题及运行优化 - align MemorySaver import path and pin dependency upper bounds - restore file encoding to UTF-8 (was corrupted by PowerShell ANSI default) - 添加 tab-wisdom 图标文件,修复 gitignore 顺序 - add tab-wisdom icons (temporary - copied from tab-mind) - add wx:key to v-for loops in RecommendedFeed and parent-index to suppress WXML warnings - pages.json tabBar icons corrected - wisdom uses tab-wisdom, wealth uses tab-wealth - FamilyMemberCard roleBadgeColor use this.member instead of bare member - 运势接口Mybatis错误 - 添加@Select注解修复Invalid bound statement + 表结构对齐 - add fallback when navigateBack has no pages in stack - parent-index wx:for 添加 wx:key 消除 WXML 运行时警告 - extract_full_report_v5.py - report interpretation content no longer truncated - FamilyFortuneMapper.selectByFamilyAndDate 添加 @Select SQL 注解 - 智首页渲染层FLOW_DEPTH错误 + web baseURL/401提示修复 + 页面and组件完善 - 每日运势接口(/api/mind/fortune) 400 错误修复 - 移除无效 request body - isLoggedIn computed → data property to fix login state reactivity - FamilyRelationGraph 组件兼容性修复 - 修正小程序requestAnimationFrame错误 - normalize Kangxi radicals in Java service - add CAG candidate genera for full coverage - move floating migrations into runMigrations(), fix brace balance - add 4 missing genera + fix Kangxi radical chars - 开发环境跳过 auto-login 避免启动时 10s 超时错误 - 修复支付页订单金额显示为0元 - 修复体检报告详情页小程序编译失败 - add wx:key to v-for placeholder loop in DimensionArticles - SKU编辑器适配Map类型specs + enabled Boolean转1/0 - 新增findByProductIdAll供管理端SKU列表(无enabled过滤) - ProductSkuDTO specs类型从List改为Map - resolve login API 405 and logo 404 on /admin/ deployment - clean bacteria names (remove Chinese prefix) + add 3 missing genera - product-detail 移除 memberPrice 价格回退 - update test to match new BindController signatures - resolve @RequestAttribute familyId 400 error by resolving via MembershipService - replace @RequestAttribute("familyId") with - 商品图片上传两项关键修复 - 商品图片上传两项关键修复 - probiotic species-level extraction (22 items), inline format timeout - inline format bacteria table timeout - skip truly compressed format, 朱评估报告 now completes - bacteria table inline parsing, pathogen tables, antibiotic dedup, harmful/other bacteria expansion - FamilyRelationGraph 齿轮/+号/高度自适应被误回退,重新实现 - comprehensive extraction fixes - Kangxi radicals, inline fallback, amino acid boundary, taxonomy levels - 移除活动菜单项 + MembershipCenter 改用本地axios - 管理端API请求方法修复 — PUT/DELETE统一改用POST - 文件存储调用方适配 — upload→store、移除原始文件IO逻辑 - 文件存储重构 — 可配置上传目录、MIME类型校验、delete方法 - comprehensive bacteria table & indicator extraction fixes - 非管理员登录避免死循环 — teacher 直接进 /teacher-dashboard - AdminArticleController.create 修复ArrayList强转String — visibility/visibleTo/articleType字段可能为JSON数组 - 修复循环依赖 + ProductOrder重复字段 + QrCodeService静态调用 - navigateBack instead of deleted plans page - add ProductService.getById() to resolve pre-existing compile error - break circular dependency between HealthReportService and DimensionScoreServiceImpl - remove duplicate closing brace in CSS - 解决 git stash 合并冲突残留标记(body/index, gut-index, report-list) - user delete soft-delete + ActivityProvision entity + DAN execution service - class 绑定改用预计算/内联表达式,避免方法调用 - 修复管理端多处模板标签闭合并将本地开发接口指向 127.0.0.1:9082 代理 - 完善Canvas渲染逻辑 - 修复小程序编译错误和完善商品下单流程 - 添加 getWealthDetail 到 api.js(富维度详情 API) - 迁移40 ALTER ENUM前先UPDATE非法role值,避免Data truncated错误 - FamilyTianpanCard 修复多余闭合括号导致编译失败 + Canvas动画改用setTimeout兼容小程序 - SKU specs Map正确序列化为JSON + 审核中心滚动容器统一 - 修复拖动时按比例分配算法,首维度多分配问题 - ArticleManage分页onPageChange未接收页码参数; 增加每页条数选择器 - 活动列表滚动容器统一用overflow:auto消除分页导致的宽度抖动 - 修复身页面编译错误 - 商品组件导入路径和天盘卡片语法 - 活动管理列表横向滚动 + 查询条件间距调大 - PackageAudit getPackageList/reviewPackage函数缺失修复; 修复后端reject用params传递reason - ActivityReview overflow-x:auto 修复横向滚动 - showDialog处理object规格+update移除productId避免400 - approveGuide 中 username 字段为 null 时使用 teacher_{userId} 兜底; fix(web): ArticleAudit 接口名/参数修正 + GuideAudit 分页 - 创建规划师admin时phone为null导致username为空 - ProductSkuDTO 适配 specs 字段 String→Object 变更 - sku.getSpecs() 返回非String类型时类型转换保护 - normalizeSpecsToJson 参数类型改为 Object 适配 specs 字段变更 - 审核中心10个页面添加横向滚动+filter-bar美化 - 修复规划师审核列表数据显示问题 - ProductSku create() sku_code NOT NULL 缺失自动生成默认值 - SupplyHierarchy change-requests systemId 改为可选 + ((Number)→Long.valueOf) 解析修复 - 修正管理端4个API路径+2个分页兼容 - ProductAudit 兼容 records 分页格式 - 修正7个小程序API路径错误(article/supplier/messages/upload/families) - 移除无对应路由的文章审核侧边栏项 - 退出切换改用 switchBackVerify 原子接口,修正密码校验逻辑 - 迁移guides表添加university和education_system列(修复GuideService查询报错) - 创建 GuideFamilyListController - /api/guide/family/list 端点 - 修复 createFamily API 路径错误 - body page radar chart display issue - entire chain: dimension data -> score validation -> canvas render -> visual display - SupplySettlementService/Controller ((Number)→.toString()) 修复ClassCastException - ProductService 添加 getById 方法,SupplierProductController 编译错误 - SupplySystemController @RequestParam→@RequestBody 修复400错误 - schema.sql 同步补充 79 张缺失表的 CREATE TABLE 定义 - add dimension_weights column to products table (migration 89) - DatabaseInitializer 显式声明 Logger 替代 @Slf4j 注解,避免 Lombok 处理异常 - add dimension_weights column to activities table (migration 88) - CommissionRecord 添加 family_id 字段 + CommissionService createCommissionRecord 集成 familyId - CommissionService 编译错误 - 补充 familyId 字段和 L2 调用参数 - move familyId declaration before use - resolve Spring MVC ambiguous mapping conflicts from PostMapping unification - 代码规范修复 — @Autowired→@Resource + Result泛型补全 - 后端稳定性 — catch块日志/空值处理/PostMapping统一/管家stub - 金融安全修复 — payment绕过/验证码stub/积分兑换/教师端点/类型转换 - 迁移87: articles表添加content_type/difficulty_level/dimension_ids/dimension_weights字段 - 迁移86: product_orders表添加purchase_info字段(OrderTimeoutCancelTask) - 调整 pages/profile/index 在 tabBar 中的位置并移除 customTabBar 配置 - 同步 pages/wealth/index 路径与远程一致 - 修复 Recipes.vue el-dialog 开始标签丢失 - missing SubscriptionBenefitLog import + column comparison in ButlerService - remove extra closing braces at end of DatabaseInitializer - 修复 pages.json tabBar 富页面注册缺失 + 维度权重前端修改 - resolve merge conflicts in package.json, CHANGELOG.md, .last_build_commit - add missing closing brace for export default in Detail.vue — fixes build error - resolve merge conflicts in cfc-web build files - 二维码分享功能统一收敛 — 新增通用 QR 后端接口 + 修复三处前端 QR 生成 - PpointService null date handling + adminList keyword filter; ProductPpointManage effectiveDate→startDate field name fix - resolve ambiguous mapping /api/recommend/dimension-products - remove duplicate from RecommendationController - SupplyManageController detail/update/delete robust id parsing - api.js repurchase-reminders GET→POST + click tracking - 添加 dify.callback-secret 配置 + 管理端多页面优化 - break circular dependency CircleService↔CircleMatchService with @Lazy - 修复DatabaseInitializer编译错误 - ProductController spec map JSON.parseArray type inference for Java 8 - CartService 回填 skuId + wisdom 阅读统计条件优化 - restore family member menu + auto-derive generationLevel + add birth/preference form fields - 退款流程5项修复 (ISSUE-007~011) - 拆分 v-if 条件提高可读性 - ArticleManage table 添加 max-height 防止溢出 - 修复前后端数据流5个关键bug - 待退款队列可见性 + 退款到帐中状态 + 防重复审核 - body index simplify childId checks use || '' fallback - FamilyRelationGraph 修复单成员家庭显示重复的问题 - 补充迁移79(pending_refund.order_type/order_no) + 修复TianpanDailyFortune import - add missing FamilyRelationGraph to mind page - 删除body页face多余的修复模板多根元素错误 - 修复E2E-TEST-SCENARIOS.md section12编码乱码 - 鏇存柊 playwright 閰嶇疆 + 鏂板娴嬭瘯鏂囦欢 (consignee/health-report/teacher-dashboard/publish-dimension-articles) - add updateTier(Long, String, String) overload to match call in PromotionTierEvalService - 七维健康图无个人数据时返回默认值 65 - 身/心维度页推荐文章添加dimensionCode过滤 - 修复退款失败 - package_orders表缺少user_coupon_id列 - add missing PpointService for CommissionService compilation - specs字段规范化为合法JSON避免MySQL JSON列报错 - resolve getPlanDetail duplicate declaration and clean up assessment controllers - getTrendStats send {} to avoid axios stringify undefined - 用原生 button @click 替换 el-button 绕过组件事件问题 - knowledge layout — wrap body, add status filter dropdown - el-link 点击事件改用 .native 修饰符 - 注册 Element UI Link 组件使变更日志可点击 - AdminArticleController 空字串转Long抛NumberFormatException - 系统状态卡片增加变更日志入口与服务器运行监控 - convert content-bearing VARCHAR columns to TEXT to prevent Data too long errors - show family relation graph card even with single member - connect after-sales request and product order refund flows - restore DatabaseInitializer encoding and fix ActivityController tests - 修复 numsoul_config 种子数据语法错误(缺失引号和逗号) - improve health report scoring and add admin report list - add role-based permission checks to activity endpoints - 补齐个人信息保存缺失的 idCard/mascot 映射 - repair playwright baseURL, add test scripts and lockfile - resolve merge conflict in DatabaseInitializer, add mascot to UpdateUserDTO - normalize time format to YYYY-MM-DD HH:mm:ss across admin pages - complete scroll wrapper for all 59 pages with fixed=right columns - revert error-throwing, keep auto-create for unidentified users - prevent auto-create user when openid not found and no phoneCode - wechatLogin use real code2Session API instead of mock openid - validate openid before WeChat prepay - reject phone-prefixed/mock openid (resolves PARAM_ERROR 无效的openid) - add missing wangEditor Toolbar component to enable rich text editing - add overflow:auto scroll wrapper to all 58 pages with fixed=right columns - admin UI improvements - action dropdown, scroll, labels, confirm dialogs - guard loadHealthDimensions on activeChildId + debug logs - add table overflow scroll to admin pages - CSS grid violations, teacher API null guards, progress fallback, improved changelog parser - add null/undefined guards in TeacherDashboard loadStats - replace grid with flexbox in Dashboard quick actions + today stats - guard null userId in ArticleService.recordRead to prevent creator_id NOT NULL error - redesign ContactImport - support WeChat contacts import & fix picker modal issue - ISSUE-007 SupplySystemService.create() validate adminId - fix FamilyMemberService.addMember DTO compatibility for generationLevel/peerType - map generationLevel/peerType to relationshipTypeKey for RelationshipType lookup, set generation/isSpouse on FamilyMember entity. - resolve ProductEdit.vue rebase conflict + cleanup supply entities - migration 36-37 — family_members generation/is_spouse columns - admin edit pages and CHANGELOG updates - add GenerationLevel enum and family member entity updates - PaymentService testMode mock + WeChat JSAPI payer.openid - resolve 5 UI bugs across CFC mini-program - CORS - add PrivateNetwork header + explicit allowedOrigins - points_log表添加family_member_id列(迁移35,修复家庭能量计算报错) - align supply distribution system with spec — member management, period-based settlement, 3-page frontend - FamilyRelationGraph 完善 + login/family-dashboard 页面更新 - add dan_assessment_results missing columns - familyMember/EMI/Big Five/snapshot fields - relationship_types.capability_role 添加默认值 - 迁移33 供应商分销体系(4新表+product_orders 3列) - health_reports补subject_id列 + 迁移32供商体系表(4张新表+product_orders 3列) - HealthEnergyConfig.vue 全角括号导致前端构建失败 - add deliveryMethod/rejectReason/categoryId/distributionSystemId mappings - ProductEdit field alignment - 多页面综合修复 + 后端关系质量/能量同步 + 前端组件完善 - 后端: DatabaseInitializer/RelationshipQualityController/DimensionEnergySyncService - 前端组件: ContactImport/DimensionActivities 完善 - 页面: action/body/mind/wisdom/discover/health 各维度更新 - splash.vue 删除 - 新增 HealthEnergyConfig.vue 管理端页面 - router/Layout 同步更新 - resolve rebase conflicts + update tests/docs - resolve .last_build_commit conflict - ProductEdit wangeditor 生产构建错误 — 改用 @wangeditor/editor-for-vue Vue组件替换programmatic API - product order stock check by product type (physical only) - resolve merge conflicts and sync build artifacts - create cart table migration and sync to schema.sql - add relationship score column migrations for family_members table - add require_registration, require_checkin_review, energy_penalty_unregistered migrations for activities table - add role_override column migration for family_members table - add default_role column migration for relationship_types table - add remaining child-specific column migrations for family_members table - activities表添加审核相关字段迁移(迁移25) - package.json 版本更新 - add id_card column migration for family_members table - resolve ArticleService.java merge conflict (autoGenerateTags + submitForReview/withdraw/reDraft) - 活动创建后弹窗提供继续添加/返回列表/直接发布选项 + 表单必填校验 - TabTransition 默认 true 确保首次渲染即出现,消除页面框架闪现 - 首次进入首页时 TabTransition 不应展示(由 splash overlay 覆盖) - DimensionWeightPicker 拖动时按比例重新分配维持100% - 环境配置更新 - action/index.vue 集成 WuxingSandbox 能量沙盘 - index.vue 闪屏逻辑优化 + api.js 中文注释编码修复 - DatabaseInitializer 添加 family_member_id 和 role_override 列迁移 - E2E tests for deployed admin at cfc.iwintrue.com/admin - relationship_types 迁移 default_role → capability_role - 后端+前端全面修复 - ArticleService/EnergyService/DimensionArticles/FamilyRelationshipSection及多页面完善 - ArticleService: getAdminList 返回值修复 - EnergyService: getEnergyOverview 能量概览补全 - DimensionArticles: 修复文章组件 - FamilyRelationshipSection: 完善关系管理组件 - 多页面: action/mind/wisdom-detail/promotion 等页面更新 - FamilyMemberVO/Service + family-members.vue 完善 - 后端全面修复 - 实体字段、Controller参数、Service方法补齐 + DTO新增 \n- 修复字段类型不匹配(Long/Integer/String)\n- 补齐缺失的 import/方法/参数\n- 修改 @PostMapping 路由统一\n- 新增 Cart/CartItemDTO/SystemConfig 相关实体和Service\n- 重命名 ChildNutritionProfileService -> FamilyMemberNutritionProfileService\n- 修复测试用例 - createUser — unique openid + try-catch exception handling - 测试编译错误修复 - ArticleService.getAdminList 参数补齐 + update 方法参数类型修正 - 修复编译错误(重复字段 + 缺失import + 参数不匹配) - update deployment script and admin router/activity api - add auto-migration for articles audit fields in DatabaseInitializer - create missing HealthDimensionsSection component - DimensionArticles & FamilyRelationGraph show empty state - uncomment ALTER TABLE for article audit fields in schema.sql - DimensionProducts always shows section with empty state - resolve Bean name collision between GuideActivityService and ActivityService - wisdom index radar chart - loadCognitiveReport race condition - call loadCognitiveReport() inside loadChildren's .then callback, - resolve API naming conflict for activity guide endpoints and WXML :class compatibility - connect article-center entry from discover page + profile menu - 修复退出登录遮罩冲突, 添加beforeunload防护 - correct article publish path in v8 final test - add article publish path endpoint + product_skus table auto-init - 修复退出登录确认框不显示、文章编辑页刷新弹出浏览器提示 - fix body goMoreProducts URL - was wrongly set to type=activity instead of type=product by rebase auto-merge - always show more button in DimensionActivities, fix goMoreActivities URLs with type param - 修复Controller单元测试编译错误 - 修复集成测试编译错误(适配生产API签名变更) - DailyCheckinService.updateCheckin改为Map参数,deleteCheckin增加userId参数 - 修复NEW-01/02/03运行时API错误 - login redirectTo + goMoreActivities/Products URLs with type filters - fix all tab pages - empty navigation methods, wrong paths, bad query params for goMoreActivities/goMoreProducts - remove DimensionProducts section from body page, fix goMoreProducts navigation - goShop navigates to correct product pages instead of broken action/index - relationship_types enabled 修复 + 清理 body/index.vue 冗余产品链接 - DatabaseInitializer: 启动时修复 enabled=NULL 的种子数据 - schema.sql: relationship_types INSERT 补上 enabled 列 - body/index.vue: 删除菌群检测产品链接区块, showTabTransition=true, 移除废弃方法 - RelationshipPicker.vue: 组件增强 - DimensionActivities.vue: 组件增强 - small adjustment in ArticleManage.vue - repair broken tag in mall.vue, CSS rename and normLevel fix in cognitive-report, small adjustments to add-member and ProfileMenu - testMode flag skips private key loading - Login.vue success路径补上this.守卫 - 修复后台登录成功后的崩溃bug (防止重复提交 + catch块防御) - 移除所有UTF-8 BOM - api.js + 3个shop页面 - PaymentService添加@Lazy解决循环依赖 - 心页快捷入口从一行改为两行布局 - GrowthTaskManagement import path and function names - add resolvedAt to EmotionAlertVO in toVO() mapping in both services - add resolvedAt field to EmotionAlertVO - make crisis hotline clickable in PsychCrisisBanner via uni.makePhoneCall - add emotion_checkin missing columns (moodScore, stressLevel, arousalLevel, sleepHours, sleepQuality, energyLevel) - resolve schema migration gate, controller NPE, auth check, WeChat template message support - 修复编译错误 - ActivityRegistrationService toList(), ProductOrder/TrialMembership缺失字段, DanshopSyncService BOM - ISSUE-001 ProductService.shelve() 状态检查 & ISSUE-003 AdminController.createUser() 缺省值 - 修复管理端侧边栏菜单滚动问题 - 修复report-survey微信小程序finally不兼容问题 - 修复文章发布500错误,补充detail接口及relatedDimensions类型转换 - List.of()→Collections.emptyList() (JDK8兼容) - 解决ambiguous mapping冲突(List.of改Collections+删除productList/productReview重复端点) - 调整tabBar顺序为行心身智富(五行相生) - 移除 date-picker value-format 避免 400 - Danshop迁移到cfc-backend + coupons/upgrade模板修复 - 修复energyMapForGraph缺wisdomScore + 添加返回首页快捷按钮 - resolve merge conflict + upgrade.vue template root element - add .pillar-card to scroll-reveal observer selector - restore and fix pre-existing test files for Java 8 compatibility - improve FIRST_TASK onboarding trigger to use task child ID - HealthDimensionScore/HealthDataSourceRecord 新表字段匹配 - use PDDocument.load() instead of deprecated Loader class - 修复小程序登录后首页状态不更新 + TabBar图标缺失 - FAQ精简为11个核心问题,修正文不对题;新增销售文案页 sales.html - 全站理念统一——精准健康方案→精准健康,SEM/FAQ/百科/策略同步 - 精准健康方案→精准健康 - 修正产品理念——健康档案/成长档案为容器,菌群/DAN测评为实际内容 - remove danLevel field call causing compilation error and add PdfParseServiceTest (10 tests) - add missing memberType and danLevel fields to FamilyMemberVO - 修复 Profile 子组件 import 路径 - Core function 识别诊断→科学识别 desc -3chars, 跟踪执行+5chars, 成果检验+5chars; enhance 菌群检测+精准健康; stats in about section - Move stats into about section; enhance 成长规划/菌群检测/精准健康 descriptions - Revamp about section into 企业使命/愿景/价值观; remove 40,000+ stats - Center QR code image - QR code 200px desktop, 160px mobile - correct media query placement - QR code to 200px; tighten role descriptions - Reduce QR code size to 100px (from 180px) - hero按钮统一蓝底黑字,消除点击困惑 - 营养健康模块5项缺陷修复 - 统一平台运营图标尺寸与对齐方式 - refactor profile.vue into 6 components + remove duplicate loadRewards - resolve git conflict markers in router/index.js and fix Layout.vue computed syntax - add monthActiveDays to /api/stats/child/overview - unify all order ops to DanShop API - convert totalAmount fen→yuan before passing to payment page - unify DanShop order operations — cancel/confirm/pay now route to DanShop API not CFC - 修复首页10个实现问题(主页风险修复计划) - pre-login entry flow - fix page order, remove stale resetTabBar, fix goShop nav, add auto-login refresh - 根据登录状态显示/隐藏TabBar(未登录跳转发现页) - ProductOrderController 使用 @RequestAttribute 读取用户ID - ProductService.decreaseStock 改用原子 UPDATE 防止超卖 - 数据库 schema 加 UNIQUE 约束 + 时间戳默认值 + 平台商品 vendor_id 置空 - 修复登录限制和密码重置逻辑 - 修复Task.java缩进和duration字段一致性 - 批量操作添加用户认证和所有权检查 - 修复SfmsDataSourceConfig配置前缀不匹配,去掉hikari层级 - 批量修复API路由冲突和权限控制 - 修复数据库迁移SQL语法错误和测试用例 - 修复预存的编译错误(DTO类型不匹配,status值) - 修复预存的编译错误并添加Service接口规范 - 注册teacher目录页面到pages.json - 修复tasks.vue和添加SchemaSyncHandler - 优化RewardService和pages.json路由配置 - 修复跨Controller路由冲突(RewardWishlistController+TaskReminderController) - 批量修复GET→POST迁移导致的路由冲突(TeacherController+UserController) - 修复ParentController路由冲突(getParentWishlist路径改为wishlist/list) - 修复TaskTemplatePackageController路由冲突(getPackageItems路径改为item-list) - 统一处理参数校验异常返回 - 补充createChild必填字段校验 - 修正测试基类元素解析契约 - 修复UserService.createChild空指针异常 - 统一前后端API为POST请求(安全迁移) - 修复AdminController类型转换异常和数据库迁移缺失 - tasks表child_id字段改为可空,支持parent任务 - rewards表child_id字段允许NULL,修复模板奖励插入失败问题 - 修复profile.vue模板格式 - 切换孩子模式时检查孩子数量并引导添加 - 优化手机号输入体验,11位自动触发检查 - 修复孩子端导航返回逻辑及移除TabBar游戏入口 - 修复RewardWishlistController API映射冲突 - 添加admin_task_templates表teacher_id字段迁移 - 修复TaskTemplatePackageController API映射冲突 - 修复GuideController与GuideFamilyTaskController API路径冲突 - 修复GuideController与BindInviteController API路径冲突 - 修复schema.sql中ALTER TABLE重复执行错误 - 修复数据库迁移重复执行错误 - 修复Java 8编译兼容性问题 - 修复小程序登录流程和用户编辑页跳转 - 修复Controller层userId获取方式及多个API端点 ### 其他 - - 生产库 id/product_id 为 INT,实体为 Long,插入超出 INT 范围的 id 报错 - - 生产 DB 已直连 ALTER(即时生效) - - - Product 实体已含字段,生产库缺列,商品列表分页查询报错 - - 生产 DB 已直连 ALTER(即时生效) - - schema.sql 同步补列 - - - Article 实体已含字段,生产库缺列,getFeatured 精选查询报错 - - 生产 DB 已直连 ALTER(即时生效) - - schema.sql 同步补列 + 解决 unlock_gates/microbiome_article 冲突 - - - 后端: AI自动分类接口 /api/growth/articles/products/ai-classify - - 前端: growth-main 新增推荐文章和推荐商品卡片 - - 前端: api.js 新增 getGrowthRecommendations() - - - 后端: GrowthRecommendationService 推荐查询 + AI分类 - - 后端: GrowthController /api/growth/recommendations + /ai-classify - - 前端: growth-main 新增推荐文章+推荐商品板块 - - - gut-flora-caution-detail → pages/growth/caution-detail - - gut-flora-foods-detail → pages/growth/foods-detail - - growth-main 新增戒备/饮食推荐行动卡片(戒备有数据时显示) - - 更新 gut-flora-detail.vue 跳转链接 - - - profile-main: 新增购物车(角标99+封顶)与收货地址入口 - - profile-main: 移除功能入口网格, 设置改为菜单项放退出登录上方 - - profile-main: loadOrderCounts 修正字段映射(pending/paid/shipped/refunding) - - profile-main: 补充 loadCartCount 方法定义 - - order-list: onLoad 支持 status 参数, 我的订单五宫格点击直达对应状态列表 - Ultraworked with [Sisyphus](https://github.com/oh-my-open-code/oh-my-open-code) - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - /data/cfc-uploads/ 文件,导致解析时报「文件不存在」。 - 修复:将 langgraph-data:/data 拆分为两层挂载: - - /data/cfc-uploads → bind mount 宿主机路径(共享上传文件) - - langgraph-data:/data/chroma_db → 独立命名卷(chroma 向量数据持久化) - - - report-confirm.vue 去除 onLoad 重复的 draftId/memberId 赋值,draftId 模式自动跳转详情页 - - report-upload.vue 上传草稿后跳转详情页 - - 新增健康报告编辑日志(HealthReportEditLog + Mapper + 建表迁移) - - 报告服务/区块组装/排序工具相关后端增强 - - - 前端: 新建 gut-flora-caution-detail.vue 页面,倒序展示 indexScore < 0 的食材 - - 前端: gut-flora-detail.vue 新增'食材戒备'入口卡片(有戒备食材时显示) - - 前端: api.js 新增 getFoodCautionList() - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - - BeijingNutritionService.analyzeGutFlora: 按功能分类聚合菌属 - (丁酸盐生产者/黏液屏障/蛋白质发酵者/SCFA/产气菌/益生菌等) - - 计算 Prevotella/Bacteroides 比值推断饮食模式 - - 组合风险模型(IBD/代谢/肠易激/神经-肠轴) - - 益生菌补充指导 - - POST /api/nutrition/beijing/analysis - 前端: - - gut-flora-detail.vue 新增分析卡片(功能维度评估/PB比值/饮食模式/风险/益生菌) - - api.js 添加 getGutFloraAnalysis - - Ultrawwork with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - - 后端: SortInterceptor + SortUtil 全量支持 - - 支持单击设主排序、Shift+Click追加、双击切换方向,最多3列组合 - - - 新增 SortUtil.applySort(wrapper) 自动注入 ORDER BY - - 批量 patch 110+ 个 controller/service 文件 - - 解决方案,平台承诺未经授权不向第三方提供报告内容。未勾选时点击上传 - 卡片会弹出确认弹窗,用户同意后自动勾选并继续选文件流程。 - Closes: 报告上传用户隐私声明需求 - - Co-authored-by: Sisyphus - - - 后端: AdminFoodController 解析前端 sort 数组传入 Service - - 前端: 列头点击排序(单击设主排序,Shift+Click追加,Ctrl+Click切换方向) - - 前端: 排序徽章显示当前排序链,最多支持3列组合排序 - - 前端: 排序列高亮 + 方向图标 - - - DietRecordService: getDailySummary/getWeeklyTrend 增加 userId 参数 + resolveMemberId 反查当前用户自己的 family_members 记录 - - SurveyController: 移除 status/history/submit 的缺少成员ID 报错 - - SurveyServiceImpl: resolveMemberId 兜底,submit 时仍无法确定则抛业务异常返回 400 - - - 11个分类: 蔬菜58、水果42、水产品35、肉类27、干果15、豆类14、主食14、蛋类7、乳制品6、汤3、快餐3 - - 字段: name, category, energy_kj, protein, fat, carbs, fiber, starch, cholesterol - - SQL: docs/superpowers/specs/food_seed_data.sql (可直接执行) - - 数据库已有 UNIQUE INDEX idx_name(name) 防重复 - - Co-authored-by: Sisyphus - - - 新增月度引导语(12个月差异化文案) - - 💧金色主题样式 - 健康页(health-main)登录前: - - 新增五维闭环体系可视化(身/心/智/行/富环形图) - - 相生关系: 身→智→富→行→心→身 - - 相克关系: 身克富·智克行·富克心·行克身·心克智 - - 五维介绍卡片(点击跳转对应维度页) - 成长页(growth-main)登录前: - - 同构五维闭环体系(绿色主题区分) - - 替换原理念卡位置,内容更丰富 - - 保留原登录后逻辑不变 - - - 品牌定位语'科学管理全家健康数据' - - 痛点卡: 指标正常≠健康 + 孩子反复生病文案 - - 4宫格功能预览(报告/认知测评/心理测评/智能方案) - - 15题五维健康自检入口 - - LoginGuideCard 升级版 - 成长页(growth-main)登录前: - - 品牌定位语'看见改变正在发生' - - 理念卡: 记录不是目的,看见改变才是 - - 脱敏案例展示(小明3个月前后对比) - - 4宫格功能预览(打卡/调研/里程碑/家庭挑战) - - LoginGuideCard 升级版 - - 原登录后逻辑不变 - - - pages.json 注册 pages/action-detail/index 页面 - - custom-tab-bar dimMap.action 从首页改为 /pages/action-detail/index - - - monitoring.py: Java后端检查由GET /api/改为POST /api/admin-auth/login-by-password - - monitoring.py: LLM检查由ainvoke改为abatch(max_tokens=1)加速 - - .env.production: JAVA_BASE_URL改为172.17.0.1(Docker桥接网关) - - (Java后端所有接口均为POST,GET返回404) - - .env.production: JAVA_BASE_URL由远程IP改为172.17.0.1(Docker桥接网关) - (Java后端运行在同服务器宿主机,Docker容器通过桥接网络访问) - - - parent-index.vue: 去掉自动选中children[0],默认显示自己,用户从FamilyMemberStrip选择后设置selectedChild - - 后端: HealthSleep/Water/Exercise/DailyCheckin/HealthDimension 五个Controller添加@RequestAttribute('currentMemberId')回退 - - 前端: sleep/water/exercise/daily-checkin/diet 五个健康页,child角色不从storage取currentChildId - - - 理念依据:《家的算法》书稿(测量先行→最小输入→循环→反馈→系统升级) - - 主线硬门禁:家庭级判据,任一成员完成五维自检解锁全家沙盘 - - 增值关卡:下单菌群检测/DAN测评(无前置依赖,可先于主线完成) - - 软引导:微行动/打卡里程碑/复测趋势,推荐不锁死 - - 管理端完整配置页:开关/顺序/奖励/条件,数据驱动 - - 同步更新 PROJECT-OVERVIEW.md 功能表与文档索引 - - - 表格高度自适应,无固定 max-height - - Java后端健康检查由 /health 改为 /api/(返回401=正常需认证) - - 组件详情展示 detail 字段而非 code - - - 健康页登录前新增痛点卡、功能预览、五维自测入口 - - 成长页新增登录前内容(理念卡+示例展示+功能预览+LoginGuideCard) - - 所有内容来自《家的算法》书稿(book/目录) - - 登录后内容保持不变 - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - - LoginResultDTO.roles: String → List - - UpdateUserDTO.roles: String → List - - UserService: 移除 parseRoles/joinRoles,直接使用 List - - EnergyService: 简化 parent 角色检查 - - SupplyManageController: 直接使用 List.contains() - - DataMigrationService: 使用 Arrays.asList() - - ServiceRoleApplicationServiceImpl: 保留 JSON 序列化(独立表字段) - - 形成 '/dashboard → / → /dashboard → …' 无限循环。 - 改为 next('/403') 直接跳 403 页面,终止循环。 - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - 低于 JWT HMAC-SHA 要求的 256 位。新增自动扩展逻辑: - - SHA-256 哈希扩展(密钥>=256位时直接使用原密钥) - - 字节填充回退 - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - - 移除功能测试面板(quickTests) - - API端点列表高度 500→700px - - 日志面板高度 250→600px - - 状态判定改为只看LLM/ChromaDB,Java后端因内外网隔离不作为降级依据 - - 刷新间隔从30s改为60s - 后端: - - adapter.py 新增 POST /api/v1/health/coach/generate 端点 - - 接收 {familyId, memberIds, dimensions, goal},调用 health_coach_graph - - 修复 Java 后端 HealthPlanServiceImpl 调用端点 404 问题 - 部署: - - 新增 deploy.sh 脚本(rsync同步 + docker-compose重启 + 健康检查) - - - 前端 profile.vue: loadUserInfo 按14个字段计算个人信息完整度 profileProgress, 修复一直显示0/14的问题 - - 后端: users/consignees 表新增 province/city/district/street 字段(迁移211 + schema.sql同步) - - UserService.updateUserInfo: 保存地区后自动创建/更新同名同手机号联系人, 共享地区数据 - - ConsigneeService.save: 联系人姓名手机号与当前用户一致时, 反向同步地区回用户 - - - 步骤指示器 + 卡片式报告选择 - - 需求输入区改为标准表单,非对话样式 - - LangGraph 调用逻辑不变(aiSendMessage),仅前端 UI 改造 - - 方案结果以普通卡片展示,任务列表支持执行人修改 - - - 后端 HealthReportService 新增 getFamilyReports(familyId) 方法 - - report-confirm.vue 确认后跳转 health-plan-summary - - 重写 health-plan-summary.vue: - - 选择全家已有报告(含其他家人) - - AI 对话式输入需求,返回方案内容 - - 自动解析任务列表,支持修改执行人 - - 确认后批量创建任务单 - - - 后端 HealthReportService 新增 getFamilyReports(familyId) 方法 - - report-confirm.vue 确认后跳转 health-plan-summary - - 重写 health-plan-summary.vue: - - 选择全家已有报告(含其他家人) - - AI 对话式输入需求,返回方案内容 - - 自动解析任务列表,支持修改执行人 - - 确认后批量创建任务单 - - (未知文本一律算异常),而 _cssClass/statusText 用白名单映射(未知显示正常), - 导致分组标题'X 项异常'把样式正常的指标计入异常数。 - 改为与 _cssClass 一致的白名单判定(仅 high/low/abnormal/偏高/偏低/异常/ - 缺乏/不足/注意/高风险 计异常),并补齐 _cssClass/statusText 的'异常'中文键。 - - parse/parse-preview 读取时又拼一次 uploadBaseDir,形成 - /data/cfc-uploads/data/cfc-uploads/uploads/... 的重复路径导致文件找不到。 - 新增 resolveUploadFilePath 兼容绝对/相对两种历史格式,两处读取统一走该方法。 - - 前端 uploadReportOnly 仍调旧路由命中一体化 uploadReport(返回详情无 draftId), - 导致上传成功但 res.data.draftId 为空、不跳转确认页且 toast 显示 message=success。 - 修正 URL 为 /api/health/report/upload-only。 - - - 新增SurveyTemplate/SurveyRecord实体 + Mapper + SurveyService - - 新增SurveyController(小程序端status/active/submit/history) - - 新增AdminSurveyController(管理端save/list/delete/ai-generate) - - AI生成调研题目调用LangGraph,失败回退本地fallback - - 前端小程序:新增survey-questionnaire/survey-history页面 - - 重构growth-main为干预中心(今日干预进度卡+持续追踪Tab+里程碑+定期调研) - - 前端api.js新增调研API,pages.json注册新页面 - - Web管理端:新增SurveyTemplates.vue(CRUD+AI生成)+ survey.js API - - 修复getSurveyStatus命名冲突(旧report-survey重命名为getReportSurveyStatus) - - 同步更新schema.sql + PROJECT-OVERVIEW.md - - - VARCHAR(50)→VARCHAR(255),源数据(菌种检出率描述)可能超过50字符 - - 生产 DB 已直连 ALTER(即时生效) - - schema.sql 新增 health_gut_flora 表 DDL - - - CouponGrantLog/DanExecution/CfValueManage/MembershipCenter/PendingRefund/ButlerAudit/ServiceRoleApplications/supply-system/Detail/HealthReportAudit: 新增resolveUserNames方法,通过searchUsers API将userId解析为用户名显示 - - - 在线测评(dimension-questionnaire.vue)扩展:cognitive/mental/relationship三套题库(各8题)+dim参数路由 - - 方案汇总页(health-plan-summary.vue)新建:生成表单+结果展示+历史列表 - - 后端:health_plans表+HealthPlan实体/Mapper/Service/Controller(4端点) - - 数据库迁移207:health_plans表 - - 前端API:generateHealthPlan/saveHealthPlan/getHealthPlanList/getHealthPlanDetail - - pages.json注册health-plan-summary页面 - - PROJECT-OVERVIEW更新 - - Co-authored-by: Sisyphus - - - 成长Tab: 移除重复体征记录入口,保留每日打卡等8项执行层入口 - - 全局改名: 成长档案 → 成长记录 (15个文件: 页面文本/导航标题/注释) - - 导航修复: mind-detail和wealth的TabBar页跳转改用nav.goPage; child-index/child-detail goToGrowth改用switchTab - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - - ArticleBookshelf 组件: 书册横滑改四列网格, 显示4篇文章 - - index-home: 推荐阅读移到推荐商品下方, 推荐商品请求数量 2->4 - - FamilyMemberStrip: 无 props 用法时自我加载可见家庭成员 - - UserService: 家庭成员列表按 userId 去重(创建者双表记录) - - - 8 个不存在的表(user_operation_log/daily_health_checkin等)不再产生噪声 - - → 改用 tableExists() 前置检查 + RENAME TABLE(无 IF EXISTS) - - 修复 1 处 CHANGE COLUMN min_quantity(列已不存在时报错) - → 改用 columnExists() 前置检查,不存在则跳过 - - 新增 tableExists() + columnExists() 辅助方法 - - 不影响业务,仅消除启动日志噪声 - - - 移除 dead code: 无意义的 empty-tip 视图 - - 移除无用 import: generateFamilyInviteQrCode - - onInvite 使用 uni.share type=5(小程序原生卡片分享),不再依赖 QR 图片 - - 分享卡片带标题+家庭名,被邀请人直接打开 invite/join 页面 - - 🛒 购物车 (pages/shop/cart/cart) 快捷入口。 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - 当 store familyId 为空时显示 FamilyEmptyState(暂无数据)。 - 编辑个人资料不应依赖是否有家庭,改为老用户 (isNewUserFlow=false) 始终显示表单。 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - - 移除 FamilyEnergyBar(沙盘已含能量信息) - - 移除 DimensionTasks/圈子模块,移入功能入口 - - 新增 3列功能入口网格(对齐健康/成长页 grid-3col) - - 移除未登录态五维全景幸福矩阵 - - 重构结构:Banner → FamilyMemberStrip → 沙盘 → 网格 → 挑战 → 推荐 - - 清理冗余 JS 数据/方法/API调用和 CSS 样式 - - 导致 ProfileHeader/Badges/Growth/Menu 加载失败,页面仅显示内联个人信息卡片。 - 将 4 个 Profile 组件复制到全局 components/ 目录,并更新两处 import 路径。 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - pages/health/index → pages/health-main/index - pages/growth/index → pages/growth-main/index - pages/profile/profile → pages/profile-main/profile - - 更新 nav.js, custom-tab-bar, pages.json 等 10 处引用 - - main.js 添加 custom-tab-bar 显式注册(强制构建编译) - - pages.json 4个Tab页添加 usingComponents 引用 custom-tab-bar - - 修复 checkout.vue ES6 简写方法语法错误 - - - 五维 index 页移入分包: mind→mind-detail, body→body-detail, wisdom→wisdom-detail, wealth分包 - - 新建 custom-tab-bar: 4Tab + 中间⭐按钮 + 五维半屏浮层, 规划师5Tab不变 - - 新建 pages/health/index.vue 健康Tab页(报告/测评/打卡概览) - - 增强 pages/growth/index.vue 为方案执行中心(待办/功能入口) - - 新建 utils/nav.js 统一导航工具 - - 替换 switchTab 引用为 nav.goPage/navigateTo - - 活动推荐移至成长页, 健康页新增科普文章推荐 - - profile 显示完整菜单(showServices=true) - - - 旧版 INSERT 未携带 type 字段,DB 列 NOT NULL 无默认值导致插入失败 - - 使用 MODIFY COLUMN 添加 DEFAULT 'login'(向后兼容,无需改代码) - - 直连生产 DB ALTER 已执行(下次服务重启 DBI 迁移幂等跳过) - - - 迁移191: foods 添加 report_id/score 列 - - 直连生产 DB ALTER 已执行 - - 修复 菌属-食材映射 JSON 解析失败: - - DB 顶层为 JSON Array 但代码期望 Map,加载时包装为 {_list: [...]} - - 消费端兼容两种形态 - - 修复 迁移112 日志等级: - - Duplicate column 已存在是幂等预期,log.error → log.warn - - 避免误报 - - - report_parse API 对接报告类型注册表 - - 新增 test_auto_tag 自动标注测试 - - report_unknown_cluster/report_unknown_upload/report_parser_import 五表 - - 新增 ReportParserController + ReportParserAdminController - - 新增 5 entity + 5 mapper + 3 service(ReportFingerprintService/ - ReportImportService/ReportParserDispatchService) - - schema.sql 同步 5 张新表定义 - - - addIngredient/removeIngredient/addFood 方法缺少 var self = this - - 2. 前端:无菌群报告/无推荐食材时弹窗引导上传报告 - 3. 后端:generateIngredientList 未配置共餐时降级为查询 - 家庭全部成员,而非返回空列表 - - 导致 ArrayIndexOutOfBoundsException: Index 7 out of bounds for length 7 - - 改为指向正确的饮食模块首页 /pages/diet/index - - - 修复 Unknown column 'is_living_together'(family_members, 迁移174已生效但DBI嵌套错误未触发) - - 修复嵌套 try/catch 结构(迁移178/180 误嵌在迁移179 catch 内) - - 迁移号校正:178→180, 180→181(diet 模块占用了原 178-181 编号) - - health_reports 新增 proxy_uploader_id / proxy_upload_note / ai_analysis - - health_report_drafts 新增 remark - 生产 DB 已直连 ALTER(无需等下次重启) - - - - - product-detail.vue: 详情页按会员身份展示 - 非会员显示普通价+加入会员享会员价链接,会员显示会员价+原价划线;去掉底部栏价格 - - 修复远端合并引入的编译错误: HealthReportController缺import、HealthReportService的reportMapper笔误、HealthReportDraft实体补remark字段 - - revert(frontend): 撤销 tabbar 4Tab 重构, 恢复 5维TabBar(行心身智富) - revert(frontend): 撤销分包重命名 -pkg, 恢复为 health/growth/profile - revert(frontend): 撤销 tabbar 入口页移至 pages/tabs/ 的改动 - 改为 v-if="!fanOpen"(默认常驻),且背景由透明边框改为实心半透明 - rgba(249,115,22,0.25)。该层绝对定位 72rpx 与 .fab-avatar 完全重合、 - DOM 顺序在后且未设 pointer-events: none,常驻覆盖在 FAB 按钮上层, - 拦截所有点击,导致家庭成员扇形无法展开。 - - .fab-pulse 增加 pointer-events: none,点击穿透到按钮本体 - - FAB 位置从 bottom: 33.33% 上移至 bottom: 45%(黄金分割位下移后过于靠下) - Reviewed-by: Sisyphus - - (