Просмотр исходного кода

fix(beautify): 修复 A批脚本吞掉 style 标签空格 (240文件 <stylescoped-><style scoped>) + D1 ComprehensiveSurvey 暖棕收编

- replace-hex-to-token.js 的 attrs.trim() 在补 lang=scss 时吞掉 <style 与 scoped 之间空格,
  产生非法标签 <stylescoped,240 个 .vue 文件受影响(已提交至远程,此为紧急修复)
- 新增 scripts/fix-merged-style-tag.js 全量恢复 <style scoped lang=scss>
- D1: pages/health/components/ComprehensiveSurvey.vue 暖棕系 11 色收编为页面级局部变量
  (c-survey-*),非 palette hex 44 -> 2(余 #FF8C42 模板 slider + 已收编 divider-2)
- P0 债务页 5 -> 4;硬编码色 1851 -> 1818
- 新增 scripts/lookup-token.js 令牌查证工具
liaoxg 4 дней назад
Родитель
Сommit
17c8f97b05
100 измененных файлов с 100 добавлено и 100 удалено
  1. 1 1
      cfc-frontend/components/ArticleBookshelf.vue
  2. 1 1
      cfc-frontend/components/BadgeGrid.vue
  3. 1 1
      cfc-frontend/components/BaseBadge.vue
  4. 1 1
      cfc-frontend/components/BaseLoading.vue
  5. 1 1
      cfc-frontend/components/ConfigurableGuide.vue
  6. 1 1
      cfc-frontend/components/ContentSharePoster.vue
  7. 1 1
      cfc-frontend/components/DimensionActivities.vue
  8. 1 1
      cfc-frontend/components/DimensionArticles.vue
  9. 1 1
      cfc-frontend/components/DimensionProducts.vue
  10. 1 1
      cfc-frontend/components/DimensionTasks.vue
  11. 1 1
      cfc-frontend/components/DimensionVisitorCard.vue
  12. 1 1
      cfc-frontend/components/FamilyChallengeCard.vue
  13. 1 1
      cfc-frontend/components/FamilyEnergyBar.vue
  14. 1 1
      cfc-frontend/components/FamilyMemberCard.vue
  15. 1 1
      cfc-frontend/components/FamilyMemberStrip.vue
  16. 1 1
      cfc-frontend/components/FamilyRelationGraph.vue
  17. 1 1
      cfc-frontend/components/GenerationPicker.vue
  18. 1 1
      cfc-frontend/components/HealthBadge.vue
  19. 1 1
      cfc-frontend/components/HealthTimeline.vue
  20. 1 1
      cfc-frontend/components/LoginGuideCard.vue
  21. 1 1
      cfc-frontend/components/OnboardingGuide.vue
  22. 1 1
      cfc-frontend/components/OnboardingProgressBar.vue
  23. 1 1
      cfc-frontend/components/PlayfulButton.vue
  24. 1 1
      cfc-frontend/components/PlayfulCard.vue
  25. 1 1
      cfc-frontend/components/ProfileBadges.vue
  26. 1 1
      cfc-frontend/components/ProfileGrowth.vue
  27. 1 1
      cfc-frontend/components/RadarChart.vue
  28. 1 1
      cfc-frontend/components/RecommendedFeed.vue
  29. 1 1
      cfc-frontend/components/TrendChart.vue
  30. 1 1
      cfc-frontend/components/address-picker.vue
  31. 1 1
      cfc-frontend/components/daily-task-card.vue
  32. 1 1
      cfc-frontend/components/hand-signature/hand-signature.vue
  33. 1 1
      cfc-frontend/components/login-sheet.vue
  34. 1 1
      cfc-frontend/components/report-upload-card.vue
  35. 1 1
      cfc-frontend/custom-tab-bar/index.vue
  36. 1 1
      cfc-frontend/pages/achievement/index.vue
  37. 1 1
      cfc-frontend/pages/activity/activity-detail/activity-detail.vue
  38. 1 1
      cfc-frontend/pages/activity/create.vue
  39. 1 1
      cfc-frontend/pages/activity/index.vue
  40. 1 1
      cfc-frontend/pages/activity/order-pay/order-pay.vue
  41. 1 1
      cfc-frontend/pages/ai/chat.vue
  42. 1 1
      cfc-frontend/pages/ai/components/AITaskCard.vue
  43. 1 1
      cfc-frontend/pages/ai/components/QuotaProgressBar.vue
  44. 1 1
      cfc-frontend/pages/ai/components/UpgradeGuideModal.vue
  45. 1 1
      cfc-frontend/pages/article-center/index.vue
  46. 1 1
      cfc-frontend/pages/assessment/apply.vue
  47. 1 1
      cfc-frontend/pages/assessment/execution.vue
  48. 1 1
      cfc-frontend/pages/assessment/purchase.vue
  49. 1 1
      cfc-frontend/pages/assessment/quota.vue
  50. 1 1
      cfc-frontend/pages/assessment/rating.vue
  51. 1 1
      cfc-frontend/pages/assessment/results.vue
  52. 1 1
      cfc-frontend/pages/assessment/upload-report.vue
  53. 1 1
      cfc-frontend/pages/child/rewards.vue
  54. 1 1
      cfc-frontend/pages/child/tasks.vue
  55. 1 1
      cfc-frontend/pages/cognitive-test/language-test.vue
  56. 1 1
      cfc-frontend/pages/cognitive-test/logic-test.vue
  57. 1 1
      cfc-frontend/pages/cognitive-test/memory-test.vue
  58. 1 1
      cfc-frontend/pages/cognitive-test/perception-test.vue
  59. 1 1
      cfc-frontend/pages/cognitive-test/spatial-test.vue
  60. 1 1
      cfc-frontend/pages/cognitive-test/speed-test.vue
  61. 1 1
      cfc-frontend/pages/dan-assessment/comparison.vue
  62. 1 1
      cfc-frontend/pages/dan-assessment/report-result.vue
  63. 1 1
      cfc-frontend/pages/diet/food-query.vue
  64. 1 1
      cfc-frontend/pages/diet/index.vue
  65. 1 1
      cfc-frontend/pages/diet/preferences.vue
  66. 1 1
      cfc-frontend/pages/diet/recommendation.vue
  67. 1 1
      cfc-frontend/pages/diet/record-detail.vue
  68. 1 1
      cfc-frontend/pages/diet/records.vue
  69. 1 1
      cfc-frontend/pages/discover-detail/product-detail/product-detail.vue
  70. 1 1
      cfc-frontend/pages/discover/circle-feed.vue
  71. 1 1
      cfc-frontend/pages/discover/circles.vue
  72. 1 1
      cfc-frontend/pages/discover/components/CircleCard.vue
  73. 1 1
      cfc-frontend/pages/discover/components/CircleDetail.vue
  74. 1 1
      cfc-frontend/pages/discover/create-circle.vue
  75. 1 1
      cfc-frontend/pages/energy/detail.vue
  76. 1 1
      cfc-frontend/pages/energy/index.vue
  77. 1 1
      cfc-frontend/pages/family/add-member.vue
  78. 1 1
      cfc-frontend/pages/family/address-edit.vue
  79. 1 1
      cfc-frontend/pages/family/manual-score-entry.vue
  80. 1 1
      cfc-frontend/pages/family/mbti-entry.vue
  81. 1 1
      cfc-frontend/pages/family/mbti-profile.vue
  82. 1 1
      cfc-frontend/pages/family/mbti-result.vue
  83. 1 1
      cfc-frontend/pages/family/mbti-test.vue
  84. 1 1
      cfc-frontend/pages/family/self-check-ai.vue
  85. 1 1
      cfc-frontend/pages/family/self-check-entry.vue
  86. 1 1
      cfc-frontend/pages/family/self-check-result.vue
  87. 1 1
      cfc-frontend/pages/family/self-check.vue
  88. 1 1
      cfc-frontend/pages/games/1a2b.vue
  89. 1 1
      cfc-frontend/pages/games/list.vue
  90. 1 1
      cfc-frontend/pages/games/records.vue
  91. 1 1
      cfc-frontend/pages/games/schulte.vue
  92. 1 1
      cfc-frontend/pages/games/stats.vue
  93. 1 1
      cfc-frontend/pages/games/sudoku.vue
  94. 1 1
      cfc-frontend/pages/growth/assessment-result.vue
  95. 1 1
      cfc-frontend/pages/growth/caution-detail.vue
  96. 1 1
      cfc-frontend/pages/growth/challenge-progress.vue
  97. 1 1
      cfc-frontend/pages/growth/create.vue
  98. 1 1
      cfc-frontend/pages/growth/detail.vue
  99. 1 1
      cfc-frontend/pages/growth/diet-checkin.vue
  100. 1 1
      cfc-frontend/pages/growth/exercise-checkin.vue

+ 1 - 1
cfc-frontend/components/ArticleBookshelf.vue

@@ -163,7 +163,7 @@ export default {
 </script>
 import { primaryPale } from '@/utils/brand-colors.js'
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 /* ======================================
    ArticleBookshelf — 四列网格推荐阅读组件
    浠艾福 (Care Family) 设计系统

+ 1 - 1
cfc-frontend/components/BadgeGrid.vue

@@ -20,7 +20,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .badge-grid {
   background: $app-surface;
   border-radius: 20rpx;

+ 1 - 1
cfc-frontend/components/BaseBadge.vue

@@ -19,7 +19,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .base-badge {
   display: inline-flex;
   align-items: center;

+ 1 - 1
cfc-frontend/components/BaseLoading.vue

@@ -20,7 +20,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .base-loading {
   display: flex;
   flex-direction: column;

+ 1 - 1
cfc-frontend/components/ConfigurableGuide.vue

@@ -102,7 +102,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .cg-overlay {
   position: fixed;
   top: 0;

+ 1 - 1
cfc-frontend/components/ContentSharePoster.vue

@@ -767,7 +767,7 @@ export default {
 </script>
 import { body, primary, primaryPale, success, white, wisdom } from '@/utils/brand-colors.js'
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .poster-overlay {
   position: fixed;
   top: 0;

+ 1 - 1
cfc-frontend/components/DimensionActivities.vue

@@ -219,7 +219,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .section {
   margin: 16rpx 20rpx;
 }

+ 1 - 1
cfc-frontend/components/DimensionArticles.vue

@@ -139,7 +139,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .section {
   margin: 20rpx 20rpx;
 }

+ 1 - 1
cfc-frontend/components/DimensionProducts.vue

@@ -160,7 +160,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .product-list {
   display: flex;
   flex-wrap: wrap;

+ 1 - 1
cfc-frontend/components/DimensionTasks.vue

@@ -60,7 +60,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .section {
   margin: 20rpx 20rpx;
 }

+ 1 - 1
cfc-frontend/components/DimensionVisitorCard.vue

@@ -99,7 +99,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .dvc {
   margin: 12rpx 30rpx 0;
 }

+ 1 - 1
cfc-frontend/components/FamilyChallengeCard.vue

@@ -179,7 +179,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .challenge-card {
   background: $app-surface;
   border-radius: 16rpx;

+ 1 - 1
cfc-frontend/components/FamilyEnergyBar.vue

@@ -153,7 +153,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .family-energy-bar {
   margin: 20rpx 30rpx;
   background: $app-surface;

+ 1 - 1
cfc-frontend/components/FamilyMemberCard.vue

@@ -100,7 +100,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .family-member-card {
   display: flex;
   flex-direction: column;

+ 1 - 1
cfc-frontend/components/FamilyMemberStrip.vue

@@ -356,7 +356,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .family-member-strip {
   margin: 16rpx 0;
   padding: 0 30rpx;

+ 1 - 1
cfc-frontend/components/FamilyRelationGraph.vue

@@ -914,7 +914,7 @@ simulationTick: function() {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .family-graph-wrapper {
   position: relative;
   width: 100%;

+ 1 - 1
cfc-frontend/components/GenerationPicker.vue

@@ -95,7 +95,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .generation-picker-wrap {
   width: 100%;
 }

+ 1 - 1
cfc-frontend/components/HealthBadge.vue

@@ -34,7 +34,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .health-badge {
   display: flex;
   align-items: center;

+ 1 - 1
cfc-frontend/components/HealthTimeline.vue

@@ -28,7 +28,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .timeline {
   padding: 0 20rpx;
   margin-bottom: 32rpx;

+ 1 - 1
cfc-frontend/components/LoginGuideCard.vue

@@ -34,7 +34,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .login-guide-card {
   margin: 20rpx 30rpx;
   background: linear-gradient(135deg, $uni-primary-pale, #FFE4D6);

+ 1 - 1
cfc-frontend/components/OnboardingGuide.vue

@@ -140,7 +140,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 /* ============================================================
    OnboardingGuide — 首次登录引导浮层
    设计体系:统一使用 uni.scss design tokens

+ 1 - 1
cfc-frontend/components/OnboardingProgressBar.vue

@@ -71,7 +71,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .opb-card {
   margin: 20rpx 24rpx;
   padding: 24rpx 28rpx;

+ 1 - 1
cfc-frontend/components/PlayfulButton.vue

@@ -33,7 +33,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .playful-btn {
   display: inline-flex;
   align-items: center;

+ 1 - 1
cfc-frontend/components/PlayfulCard.vue

@@ -53,7 +53,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .playful-card {
   background: var(--surface, $app-surface);
   border-radius: 20rpx;

+ 1 - 1
cfc-frontend/components/ProfileBadges.vue

@@ -111,7 +111,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .section {
   margin: 20rpx 30rpx;
 }

+ 1 - 1
cfc-frontend/components/ProfileGrowth.vue

@@ -82,7 +82,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .section {
   margin: 20rpx 30rpx;
 }

+ 1 - 1
cfc-frontend/components/RadarChart.vue

@@ -848,7 +848,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .radar-chart-wrap {
   margin: 20rpx 30rpx;
   background: $app-surface;

+ 1 - 1
cfc-frontend/components/RecommendedFeed.vue

@@ -138,7 +138,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .section {
   margin: 20rpx 20rpx;
 }

+ 1 - 1
cfc-frontend/components/TrendChart.vue

@@ -259,7 +259,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .trend-chart-wrap {
   display: flex;
   flex-direction: column;

+ 1 - 1
cfc-frontend/components/address-picker.vue

@@ -367,7 +367,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .address-picker {
   width: 100%;
 }

+ 1 - 1
cfc-frontend/components/daily-task-card.vue

@@ -122,7 +122,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .daily-task-card {
   margin: 24rpx 24rpx 0;
   padding: 28rpx;

+ 1 - 1
cfc-frontend/components/hand-signature/hand-signature.vue

@@ -259,7 +259,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .hand-signature {
   width: 100%;
 }

+ 1 - 1
cfc-frontend/components/login-sheet.vue

@@ -227,7 +227,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 /* ===== 浮层遮罩 ===== */
 .login-sheet-overlay {
   position: fixed;

+ 1 - 1
cfc-frontend/components/report-upload-card.vue

@@ -31,7 +31,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .report-upload-card {
   display: flex;
   flex-direction: row;

+ 1 - 1
cfc-frontend/custom-tab-bar/index.vue

@@ -163,7 +163,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .tab-bar-wrap {
   position: fixed;
   bottom: 0;

+ 1 - 1
cfc-frontend/pages/achievement/index.vue

@@ -106,7 +106,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   min-height: 100vh;
   background: $app-bg;

+ 1 - 1
cfc-frontend/pages/activity/activity-detail/activity-detail.vue

@@ -918,7 +918,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   min-height: 100vh;
   background: $uni-primary-pale;

+ 1 - 1
cfc-frontend/pages/activity/create.vue

@@ -565,7 +565,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   min-height: 100vh;
   background: $app-bg;

+ 1 - 1
cfc-frontend/pages/activity/index.vue

@@ -889,7 +889,7 @@ uni.showToast({ title: '请先选择家庭成员身份', icon: 'none' })
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .activity-container {
   min-height: 100vh;
   background: $facade-fill-2;

+ 1 - 1
cfc-frontend/pages/activity/order-pay/order-pay.vue

@@ -170,7 +170,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   min-height: 100vh;
   background: $app-bg;

+ 1 - 1
cfc-frontend/pages/ai/chat.vue

@@ -508,7 +508,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .chat-container {
   display: flex;
   flex-direction: column;

+ 1 - 1
cfc-frontend/pages/ai/components/AITaskCard.vue

@@ -130,7 +130,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .ai-task-card {
   background-color: $app-surface;
   border-radius: 16rpx;

+ 1 - 1
cfc-frontend/pages/ai/components/QuotaProgressBar.vue

@@ -27,7 +27,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .quota-progress-bar {
   margin-bottom: 16rpx;
 }

+ 1 - 1
cfc-frontend/pages/ai/components/UpgradeGuideModal.vue

@@ -69,7 +69,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .upgrade-guide-mask {
   position: fixed;
   top: 0; left: 0; right: 0; bottom: 0;

+ 1 - 1
cfc-frontend/pages/article-center/index.vue

@@ -329,7 +329,7 @@ onLoad(options) {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 /* ====================================
    知识分享 — 重设计
    白色导航 + 药丸Tab + 精装卡片

+ 1 - 1
cfc-frontend/pages/assessment/apply.vue

@@ -349,7 +349,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   padding: 30rpx;
   background: $facade-fill-page;

+ 1 - 1
cfc-frontend/pages/assessment/execution.vue

@@ -223,7 +223,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   padding: 40rpx;
   background: $facade-fill-2;

+ 1 - 1
cfc-frontend/pages/assessment/purchase.vue

@@ -353,7 +353,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   padding: 30rpx;
   background: $facade-fill-page;

+ 1 - 1
cfc-frontend/pages/assessment/quota.vue

@@ -97,7 +97,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   padding: 30rpx;
   background: $facade-fill-page;

+ 1 - 1
cfc-frontend/pages/assessment/rating.vue

@@ -200,7 +200,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   padding: 40rpx;
   background: $facade-fill-2;

+ 1 - 1
cfc-frontend/pages/assessment/results.vue

@@ -229,7 +229,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   padding: 30rpx;
   background: $facade-fill-page;

+ 1 - 1
cfc-frontend/pages/assessment/upload-report.vue

@@ -110,7 +110,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   padding: 30rpx;
   background: $facade-fill-page;

+ 1 - 1
cfc-frontend/pages/child/rewards.vue

@@ -135,7 +135,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container { padding: 30rpx; padding-bottom: 120rpx; }
 .exit-switch { background: $facade-fill-2; padding: 20rpx; border-radius: 10rpx; margin-bottom: 20rpx; text-align: center; color: $facade-text-body; font-size: 28rpx; }
 .reward-item { background: $app-surface; border-radius: 16rpx; padding: 30rpx; margin-bottom: 20rpx; }

+ 1 - 1
cfc-frontend/pages/child/tasks.vue

@@ -376,7 +376,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 /* =============================================
    页面基础
    ============================================= */

+ 1 - 1
cfc-frontend/pages/cognitive-test/language-test.vue

@@ -242,7 +242,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .test-container {
   min-height: 100vh;
   background: linear-gradient(135deg, $app-ink-night 0%, #16213e 100%);

+ 1 - 1
cfc-frontend/pages/cognitive-test/logic-test.vue

@@ -267,7 +267,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   min-height: 100vh;
   background: linear-gradient(135deg, $app-ink-night 0%, #16213e 100%);

+ 1 - 1
cfc-frontend/pages/cognitive-test/memory-test.vue

@@ -302,7 +302,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .page {
   min-height: 100vh;
   background: linear-gradient(135deg, $app-ink-night 0%, #16213e 100%);

+ 1 - 1
cfc-frontend/pages/cognitive-test/perception-test.vue

@@ -241,7 +241,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .test-container {
   min-height: 100vh;
   background: linear-gradient(135deg, $app-ink-night 0%, #16213e 100%);

+ 1 - 1
cfc-frontend/pages/cognitive-test/spatial-test.vue

@@ -271,7 +271,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .page {
   min-height: 100vh;
   background: linear-gradient(135deg, $app-ink-night 0%, #16213e 100%);

+ 1 - 1
cfc-frontend/pages/cognitive-test/speed-test.vue

@@ -319,7 +319,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .page-container {
   min-height: 100vh;
   background: linear-gradient(135deg, $app-ink-night 0%, #16213e 100%);

+ 1 - 1
cfc-frontend/pages/dan-assessment/comparison.vue

@@ -154,7 +154,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .page {
   min-height: 100vh;
   background: $uni-bg-color;

+ 1 - 1
cfc-frontend/pages/dan-assessment/report-result.vue

@@ -636,7 +636,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container { min-height: 100vh; background: #F3F2FA; padding-bottom: 40rpx; }
 
 /* ==================== Hero ==================== */

+ 1 - 1
cfc-frontend/pages/diet/food-query.vue

@@ -415,7 +415,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .food-query-page {
   height: 100vh;
   overflow: hidden;

+ 1 - 1
cfc-frontend/pages/diet/index.vue

@@ -401,7 +401,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 /* ===== 页面令牌(暖灶·家的味道) ===== */
 .diet-page {
   min-height: 100vh;

+ 1 - 1
cfc-frontend/pages/diet/preferences.vue

@@ -375,7 +375,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .preferences-page {
   min-height: 100vh;
   background: linear-gradient(180deg, $uni-primary-pale 0%, #FFF3E6 100%);

+ 1 - 1
cfc-frontend/pages/diet/recommendation.vue

@@ -256,7 +256,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .recommendation-page {
   min-height: 100vh;
   background-color: $app-bg;

+ 1 - 1
cfc-frontend/pages/diet/record-detail.vue

@@ -171,7 +171,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .record-detail-page {
   min-height: 100vh;
   background-color: $app-bg;

+ 1 - 1
cfc-frontend/pages/diet/records.vue

@@ -374,7 +374,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .page { min-height: 100vh; background: $uni-primary-pale; display: flex; flex-direction: column; }
 
 /* 成员切换栏 */

+ 1 - 1
cfc-frontend/pages/discover-detail/product-detail/product-detail.vue

@@ -826,7 +826,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   min-height: 100vh;
   background: $facade-fill-2;

+ 1 - 1
cfc-frontend/pages/discover/circle-feed.vue

@@ -465,7 +465,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .feed-page {
   min-height: 100vh;
   background: $app-bg;

+ 1 - 1
cfc-frontend/pages/discover/circles.vue

@@ -347,7 +347,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .circles-container {
   min-height: 100vh;
   background: $uni-primary-pale;

+ 1 - 1
cfc-frontend/pages/discover/components/CircleCard.vue

@@ -80,7 +80,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .circle-card {
   display: flex;
   flex-direction: row;

+ 1 - 1
cfc-frontend/pages/discover/components/CircleDetail.vue

@@ -98,7 +98,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .circle-overlay {
   position: fixed;
   top: 0;

+ 1 - 1
cfc-frontend/pages/discover/create-circle.vue

@@ -126,7 +126,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .create-circle-page { min-height: 100vh; background: $app-bg; padding-bottom: 160rpx; }
 .nav-bar {
   display: flex; align-items: center; justify-content: space-between;

+ 1 - 1
cfc-frontend/pages/energy/detail.vue

@@ -131,7 +131,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   min-height: 100vh;
   background: #0F1B2D;

+ 1 - 1
cfc-frontend/pages/energy/index.vue

@@ -417,7 +417,7 @@ export default {
 </script>
 import { primary, success } from '@/utils/brand-colors.js'
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   min-height: 100vh;
   background: linear-gradient(180deg, #0F1B2D 0%, #1A2744 100%);

+ 1 - 1
cfc-frontend/pages/family/add-member.vue

@@ -364,7 +364,7 @@ this.submitting = false
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container { padding: 30rpx; }
 .form-container { background: $app-surface; border-radius: 20rpx; padding: 30rpx; }
 .page-title { font-size: 34rpx; font-weight: bold; color: $facade-text-strong; margin-bottom: 30rpx; }

+ 1 - 1
cfc-frontend/pages/family/address-edit.vue

@@ -109,7 +109,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .family-address {
   min-height: 100vh;
   background: $facade-fill-2;

+ 1 - 1
cfc-frontend/pages/family/manual-score-entry.vue

@@ -101,7 +101,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .mse-page { min-height: 100vh; background: $facade-fill-blue-ghost; padding: 24rpx 30rpx 120rpx; box-sizing: border-box }
 .mse-loading { display: flex; justify-content: center; align-items: center; height: 50vh }
 .mse-loading-text { font-size: 28rpx; color: $facade-text-muted }

+ 1 - 1
cfc-frontend/pages/family/mbti-entry.vue

@@ -71,7 +71,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .mbe-page { min-height: 100vh; background: $facade-fill-blue-ghost; padding: 24rpx 30rpx 120rpx; box-sizing: border-box }
 .mbe-loading { display: flex; justify-content: center; align-items: center; height: 50vh }
 .mbe-loading-text { font-size: 28rpx; color: $facade-text-muted }

+ 1 - 1
cfc-frontend/pages/family/mbti-profile.vue

@@ -95,7 +95,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .mbp-page { min-height: 100vh; background: $facade-fill-blue-ghost; padding: 24rpx 30rpx 120rpx; box-sizing: border-box }
 .mbp-header { text-align: center; padding: 20rpx 0 10rpx }
 .mbp-title { font-size: 32rpx; font-weight: 600; color: $facade-text-strong; display: block }

+ 1 - 1
cfc-frontend/pages/family/mbti-result.vue

@@ -160,7 +160,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .mbr-page { min-height: 100vh; background: $facade-fill-blue-ghost; padding: 24rpx 30rpx 120rpx; box-sizing: border-box }
 .mbr-loading { display: flex; justify-content: center; align-items: center; height: 50vh }
 .mbr-hero { border-radius: 24rpx; padding: 40rpx 30rpx; margin-bottom: 24rpx; background: linear-gradient(135deg, $dim-wisdom, $dim-wisdom-light); box-shadow: 0 6rpx 20rpx rgba(99,102,241,0.25) }

+ 1 - 1
cfc-frontend/pages/family/mbti-test.vue

@@ -104,7 +104,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .mbt-page { min-height: 100vh; background: $facade-fill-blue-ghost; padding-bottom: 180rpx }
 .mbt-header { padding: 20rpx 30rpx; text-align: right }
 .mbt-progress-text { font-size: 24rpx; color: $facade-text-muted }

+ 1 - 1
cfc-frontend/pages/family/self-check-ai.vue

@@ -237,7 +237,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .sc-page {
   min-height: 100vh;
   background: $facade-fill-blue-ghost;

+ 1 - 1
cfc-frontend/pages/family/self-check-entry.vue

@@ -182,7 +182,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .sce-page {
   min-height: 100vh;
   background: $facade-fill-blue-ghost;

+ 1 - 1
cfc-frontend/pages/family/self-check-result.vue

@@ -323,7 +323,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .scr-page {
   min-height: 100vh;
   background: $facade-fill-blue-ghost;

+ 1 - 1
cfc-frontend/pages/family/self-check.vue

@@ -203,7 +203,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .sc-page {
   min-height: 100vh;
   background: $facade-fill-blue-ghost;

+ 1 - 1
cfc-frontend/pages/games/1a2b.vue

@@ -201,7 +201,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .game-container {
   min-height: 100vh;
   background: linear-gradient(135deg, $app-ink-night 0%, #16213e 100%);

+ 1 - 1
cfc-frontend/pages/games/list.vue

@@ -82,7 +82,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   padding: 30rpx;
   background: linear-gradient(135deg, $app-ink-night 0%, #16213e 100%);

+ 1 - 1
cfc-frontend/pages/games/records.vue

@@ -130,7 +130,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .records-container {
   min-height: 100vh;
   background: $app-bg;

+ 1 - 1
cfc-frontend/pages/games/schulte.vue

@@ -178,7 +178,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .game-container {
   min-height: 100vh;
   background: linear-gradient(135deg, $app-ink-night 0%, #16213e 100%);

+ 1 - 1
cfc-frontend/pages/games/stats.vue

@@ -140,7 +140,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .stats-container {
   min-height: 100vh;
   background: $app-bg;

+ 1 - 1
cfc-frontend/pages/games/sudoku.vue

@@ -319,7 +319,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .game-container {
   min-height: 100vh;
   background: linear-gradient(135deg, $app-ink-night 0%, #16213e 100%);

+ 1 - 1
cfc-frontend/pages/growth/assessment-result.vue

@@ -98,7 +98,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   padding: 30rpx;
   background: $facade-fill-page;

+ 1 - 1
cfc-frontend/pages/growth/caution-detail.vue

@@ -237,7 +237,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .page {
   min-height: 100vh;
   background: #f5f6fa;

+ 1 - 1
cfc-frontend/pages/growth/challenge-progress.vue

@@ -105,7 +105,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .page { min-height: 100vh; background: $uni-primary-pale; }
 .nav-bar { display: flex; align-items: center; height: 88rpx; padding-top: env(safe-area-inset-top); background: $app-surface; border-bottom: 1rpx solid $facade-fill; position: relative; }
 .nav-back { position: absolute; left: 24rpx; top: 0; bottom: 0; display: flex; align-items: center; }

+ 1 - 1
cfc-frontend/pages/growth/create.vue

@@ -243,7 +243,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   padding: 30rpx;
   background: $facade-fill-page;

+ 1 - 1
cfc-frontend/pages/growth/detail.vue

@@ -273,7 +273,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 .container {
   padding: 30rpx;
   background: $facade-fill-page;

+ 1 - 1
cfc-frontend/pages/growth/diet-checkin.vue

@@ -495,7 +495,7 @@ success: function(res) {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 /* ===== 页面基础 ===== */
 .page { min-height: 100vh; background: $uni-primary-pale; }
 .nav-bar { height: 88rpx; padding: 24rpx 24rpx 0; display: flex; align-items: flex-end; }

+ 1 - 1
cfc-frontend/pages/growth/exercise-checkin.vue

@@ -495,7 +495,7 @@ export default {
 }
 </script>
 
-<stylescoped lang="scss">
+<style scoped lang="scss">
 /* ===== 页面基础 ===== */
 .page { min-height: 100vh; background: $uni-primary-pale; }
 .nav-bar { height: 88rpx; padding: 24rpx 24rpx 0; display: flex; align-items: flex-end; }

Некоторые файлы не были показаны из-за большого количества измененных файлов