Selaa lähdekoodia

fix: 修复 promotion_tier 表列名映射——teamSize1st→team_size_1st

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Xiaogang Liao 1 kuukausi sitten
vanhempi
sitoutus
12be4e88dd

+ 5 - 0
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

@@ -6592,5 +6592,10 @@ private void runMigration100() {
 
 		// 迁移103: health_indicators表添加collection_date列(指标采集日期)
 		ensureColumn("health_indicators", "collection_date", "DATETIME COMMENT '指标采集日期(报告检测日期)'");
+
+		// 迁移104: promotion_tier表确保team_size_1st/2nd/3rd列存在(MyBatis-Plus camelCase映射修正)
+		ensureColumn("promotion_tier", "team_size_1st", "INT DEFAULT 0 COMMENT '一层团队人数'");
+		ensureColumn("promotion_tier", "team_size_2nd", "INT DEFAULT 0 COMMENT '二层团队人数'");
+		ensureColumn("promotion_tier", "team_size_3rd", "INT DEFAULT 0 COMMENT '三层团队人数'");
 	}
 }

+ 4 - 0
cfc-backend/src/main/java/com/etotem/cfc/entity/PromotionTier.java

@@ -1,6 +1,7 @@
 package com.etotem.cfc.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -19,10 +20,13 @@ public class PromotionTier implements Serializable {
 
     private String tier;
 
+    @TableField("team_size_1st")
     private Integer teamSize1st;
 
+    @TableField("team_size_2nd")
     private Integer teamSize2nd;
 
+    @TableField("team_size_3rd")
     private Integer teamSize3rd;
 
     private Integer totalTeamSize;

+ 143 - 90
cfc-frontend/components/DimensionActivities.vue

@@ -20,70 +20,84 @@
       <text class="empty-tip">{{ isLoggedIn ? '暂无相关活动' : '登录后查看更多活动' }}</text>
     </view>
 
-    <!-- 活动卡片列表 -->
-    <view class="activity-list" v-if="displayActivities && displayActivities.length > 0">
-      <view
-        class="activity-card"
-        v-for="(act, index) in displayActivities"
-        :key="act.id"
-        @click.stop="$emit('activityClick', act)"
+    <!-- 活动卡片轮播 -->
+    <view class="activity-carousel" v-if="displayActivities && displayActivities.length > 0">
+      <swiper
+        class="activity-swiper"
+        :indicator-dots="displayActivities.length > 1"
+        :active-index="swiperIndex"
+        @change="onSwiperChange"
+        autoplay
+        interval="3000"
+        duration="500"
+        circular
       >
-        <!-- 封面图区域 -->
-        <view class="card-cover">
-          <image
-            class="card-cover-img"
-            :src="act.coverImage || '/static/default-activity.png'"
-            mode="aspectFill"
-          />
-          <!-- 渐变遮罩 -->
-          <view class="card-cover-mask"></view>
-          <!-- 序号标签 -->
-          <view class="card-rank" v-if="displayActivities.length > 1">
-            <text class="card-rank-num">{{ index + 1 }}</text>
-          </view>
-          <!-- 状态标签 -->
-          <view class="card-status" :class="'status-' + (act.status || 'upcoming')">
-            <text class="card-status-dot" v-if="act.status === 'ongoing'"></text>
-            <text class="card-status-text">{{ statusText(act.status) }}</text>
-          </view>
-          <!-- 标题 -->
-          <view class="card-title-wrap">
-            <text class="card-title">{{ act.title }}</text>
-          </view>
-        </view>
-
-        <!-- 内容区域 -->
-        <view class="card-content">
-          <!-- 时间和维度标签 -->
-          <view class="card-meta-row">
-            <view class="card-time">
-              <text class="meta-icon">&#x1F552;</text>
-              <text class="meta-text">{{ formatTime(act.startTime) }}</text>
+        <swiper-item v-for="(act, index) in displayActivities" :key="act.id">
+          <view class="activity-card" @click.stop="$emit('activityClick', act)">
+            <!-- 封面图区域 -->
+            <view class="card-cover">
+              <image
+                class="card-cover-img"
+                :src="act.coverImage || '/static/default-activity.png'"
+                mode="aspectFill"
+              />
+              <!-- 渐变遮罩 -->
+              <view class="card-cover-mask"></view>
+              <!-- 状态标签 -->
+              <view class="card-status" :class="'status-' + (act.status || 'upcoming')">
+                <text class="card-status-dot" v-if="act.status === 'ongoing'"></text>
+                <text class="card-status-text">{{ statusText(act.status) }}</text>
+              </view>
+              <!-- 标题 -->
+              <view class="card-title-wrap">
+                <text class="card-title">{{ act.title }}</text>
+              </view>
             </view>
-            <view class="card-badges" v-if="act._badges && act._badges.length">
-              <text
-                class="card-badge"
-                v-for="badge in act._badges"
-                :key="badge.name"
-                :style="{ color: badge.color, borderColor: badge.color + '40' }"
-              >
-                {{ badge.name }}
-              </text>
-            </view>
-          </view>
 
-          <!-- 底部:价格和按钮 -->
-          <view class="card-footer">
-            <view class="card-price-wrap">
-              <text class="card-price" v-if="act.priceLabel">{{ act.priceLabel }}</text>
-              <text class="card-price" v-else-if="act.price && act.price > 0">{{ formatPriceWithSymbol(act.price) }}</text>
-              <text class="card-price-free" v-else>免费</text>
-            </view>
-            <view class="card-action-btn">
-              <text class="card-action-text">了解详情</text>
+            <!-- 内容区域 -->
+            <view class="card-content">
+              <!-- 时间和维度标签 -->
+              <view class="card-meta-row">
+                <view class="card-time">
+                  <text class="meta-icon">&#x1F552;</text>
+                  <text class="meta-text">{{ formatTime(act.startTime) }}</text>
+                </view>
+                <view class="card-badges" v-if="act._badges && act._badges.length">
+                  <text
+                    class="card-badge"
+                    v-for="badge in act._badges"
+                    :key="badge.name"
+                    :style="{ color: badge.color, borderColor: badge.color + '40' }"
+                  >
+                    {{ badge.name }}
+                  </text>
+                </view>
+              </view>
+
+              <!-- 底部:价格和按钮 -->
+              <view class="card-footer">
+                <view class="card-price-wrap">
+                  <text class="card-price" v-if="act.priceLabel">{{ act.priceLabel }}</text>
+                  <text class="card-price" v-else-if="act.price && act.price > 0">{{ formatPriceWithSymbol(act.price) }}</text>
+                  <text class="card-price-free" v-else>免费</text>
+                </view>
+                <view class="card-action-btn">
+                  <text class="card-action-text">了解详情</text>
+                </view>
+              </view>
             </view>
           </view>
-        </view>
+        </swiper-item>
+      </swiper>
+
+      <!-- 轮播指示点 -->
+      <view v-if="displayActivities.length > 1" class="swiper-dots">
+        <view
+          class="dot"
+          v-for="(dot, index) in displayActivities"
+          :key="index"
+          :class="{ active: swiperIndex === index }"
+        ></view>
       </view>
     </view>
   </view>
@@ -105,7 +119,9 @@ export default {
     isLoggedIn: { type: Boolean, default: false }
   },
   data: function() {
-    return {}
+    return {
+      swiperIndex: 0
+    }
   },
   computed: {
     displayActivities: function() {
@@ -121,6 +137,9 @@ export default {
     }
   },
   methods: {
+    onSwiperChange: function(e) {
+      this.swiperIndex = e.detail.current
+    },
     parseWeights: function(str) {
       if (!str) return []
       try {
@@ -229,11 +248,43 @@ export default {
   color: #94A3B8;
 }
 
-/* ===== 活动列表 ===== */
-.activity-list {
+/* ===== 活动轮播 ===== */
+.activity-carousel {
+  width: 100%;
+  margin: 0 -20rpx;
+}
+
+.activity-swiper {
+  width: 100%;
+  height: 600rpx;
+}
+
+.activity-swiper ::deep .swiper-slide {
+  width: 100%;
+  height: 100%;
+}
+
+/* 轮播指示点 */
+.swiper-dots {
   display: flex;
-  flex-direction: column;
-  gap: 24rpx;
+  justify-content: center;
+  align-items: center;
+  gap: 8rpx;
+  margin-top: 20rpx;
+}
+
+.dot {
+  width: 8rpx;
+  height: 8rpx;
+  border-radius: 50%;
+  background: #D1D5DB;
+  transition: all 0.3s ease;
+}
+
+.dot.active {
+  width: 32rpx;
+  border-radius: 4rpx;
+  background: #F97316;
 }
 
 /* ===== 活动卡片 ===== */
@@ -241,11 +292,7 @@ export default {
   background: #FFFFFF;
   border-radius: 24rpx;
   overflow: hidden;
-  box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.06), 0 1rpx 3rpx rgba(0, 0, 0, 0.04);
-  transition: transform 0.2s ease;
-}
-.activity-card:active {
-  transform: scale(0.98);
+  box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.06);
 }
 
 /* 封面图 */
@@ -255,37 +302,24 @@ export default {
   height: 320rpx;
   overflow: hidden;
 }
+
 .card-cover-img {
   width: 100%;
   height: 100%;
   background: #F1F5F9;
 }
+
+/* 渐变遮罩 */
 .card-cover-mask {
   position: absolute;
   bottom: 0;
   left: 0;
   right: 0;
-  height: 200rpx;
-  background: linear-gradient(to top, rgba(0, 0, 0, 0.5), transparent);
-}
-.card-rank {
-  position: absolute;
-  top: 16rpx;
-  left: 16rpx;
-  width: 48rpx;
-  height: 48rpx;
-  border-radius: 14rpx;
-  background: rgba(0, 0, 0, 0.5);
-  backdrop-filter: blur(10rpx);
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-.card-rank-num {
-  font-size: 24rpx;
-  font-weight: 700;
-  color: #FFFFFF;
+  height: 150rpx;
+  background: linear-gradient(to top, rgba(0, 0, 0, 0.6), transparent);
 }
+
+/* 状态标签 */
 .card-status {
   position: absolute;
   top: 16rpx;
@@ -298,6 +332,7 @@ export default {
   background: rgba(0, 0, 0, 0.4);
   backdrop-filter: blur(10rpx);
 }
+
 .card-status-dot {
   width: 8rpx;
   height: 8rpx;
@@ -306,21 +341,26 @@ export default {
   margin-right: 6rpx;
   animation: pulse 2s infinite;
 }
+
 @keyframes pulse {
   0%, 100% { opacity: 1; }
   50% { opacity: 0.4; }
 }
+
 .card-status-text {
   font-size: 22rpx;
   color: #FFFFFF;
   font-weight: 500;
 }
+
+/* 标题 */
 .card-title-wrap {
   position: absolute;
-  bottom: 16rpx;
+  bottom: 20rpx;
   left: 20rpx;
   right: 20rpx;
 }
+
 .card-title {
   font-size: 32rpx;
   font-weight: 700;
@@ -336,32 +376,39 @@ export default {
 .card-content {
   padding: 20rpx;
 }
+
+/* 时间和维度标签 */
 .card-meta-row {
   display: flex;
   flex-direction: row;
   align-items: center;
   margin-bottom: 16rpx;
 }
+
 .card-time {
   display: flex;
   flex-direction: row;
   align-items: center;
   margin-right: 16rpx;
 }
+
 .meta-icon {
   font-size: 22rpx;
   margin-right: 6rpx;
 }
+
 .meta-text {
   font-size: 24rpx;
   color: #64748B;
 }
+
 .card-badges {
   display: flex;
   flex-direction: row;
   flex-wrap: wrap;
   gap: 8rpx;
 }
+
 .card-badge {
   font-size: 20rpx;
   padding: 4rpx 12rpx;
@@ -379,31 +426,37 @@ export default {
   padding-top: 16rpx;
   border-top: 1rpx solid #F1F5F9;
 }
+
 .card-price-wrap {
   display: flex;
   flex-direction: row;
   align-items: baseline;
 }
+
 .card-price {
   font-size: 30rpx;
   font-weight: 700;
   color: #FF6B9D;
 }
+
 .card-price-free {
   font-size: 28rpx;
   font-weight: 600;
   color: #22C55E;
 }
+
 .card-action-btn {
   padding: 10rpx 24rpx;
   background: linear-gradient(135deg, #FF6B9D, #FF8FB1);
   border-radius: 24rpx;
 }
+
 .card-action-text {
   font-size: 22rpx;
   color: #FFFFFF;
   font-weight: 600;
 }
+
 .card-action-btn:active {
   opacity: 0.8;
 }

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-feafbc3a0d7257e8f34822eb2963f616a626772f
+52164e83a0560b018f9c2c03b832e1668a906b72

+ 14 - 0
web/articles/cancer.html

@@ -808,30 +808,35 @@
   <div class="source">[1] 人体每天产生癌细胞的量化估计</div>
   <div class="findings">正常人体每天约产生3,000-5,000个癌细胞——来源于DNA复制过程中的随机突变。免疫系统(NK细胞、细胞毒性T细胞)持续清除这些细胞。当免疫监视功能下降时,癌细胞得以存活和增殖。</div>
   <div class="trans">Reference: Alberts B et al. Molecular Biology of the Cell. 6th edition. Garland Science 2014; Dunn GP et al. "Cancer immunoediting: from immunosurveillance to tumor escape." Nature Immunology 2002.</div>
+  <a class="link" href="https://doi.org/10.1038/ni794" target="_blank">🔗 查看原文 →</a>
 </div>
 
 <div class="citation-card">
   <div class="source">[2] 免疫监视理论</div>
   <div class="findings">Burnet和Thomas在1950年代提出的免疫监视假说,现已被充分验证:免疫缺陷患者(器官移植后免疫抑制、HIV/AIDS)的癌症发病率是正常人群的5-100倍。</div>
   <div class="trans">Reference: Burnet FM. "The concept of immunological surveillance." Progress in Experimental Tumor Research 1970; Dunn GP et al. "The three Es of cancer immunoediting." Annual Review of Immunology 2004.</div>
+  <a class="link" href="https://doi.org/10.1146/annurev.immunol.22.012803.044627" target="_blank">🔗 查看原文 →</a>
 </div>
 
 <div class="citation-card">
   <div class="source">[3] 手术/放化疗的局限性</div>
   <div class="findings">手术切除后5年局部复发率5-15%(视原发肿瘤类型和分期)。化疗导致严重肠黏膜炎(约40-60%患者出现),进一步损伤肠道屏障,加重LPS驱动的全身炎症。</div>
   <div class="trans">Reference: Demaria S et al. "Combining radiotherapy and immunotherapy: a revived partnership." International Journal of Radiation Oncology 2016; Stein A et al. "Chemotherapy-induced mucositis." Supportive Care in Cancer 2015.</div>
+  <a class="link" href="https://doi.org/10.1016/j.ijrobp.2014.10.029" target="_blank">🔗 查看原文 →</a>
 </div>
 
 <div class="citation-card">
   <div class="source">[4] 靶向药物的耐药问题</div>
   <div class="findings">靶向治疗的中位耐药时间通常为6-18个月。肿瘤通过旁路信号通路激活、二次突变等方式逃避靶向抑制。慢性炎症环境加速耐药性产生。</div>
   <div class="trans">Reference: Chong CR, Jänne PA. "The quest to overcome resistance to EGFR-targeted therapies in cancer." Nature Medicine 2013; Holohan C et al. "Cancer drug resistance: an evolving paradigm." Nature Reviews Cancer 2013.</div>
+  <a class="link" href="https://doi.org/10.1038/nm.3413" target="_blank">🔗 查看原文 →</a>
 </div>
 
 <div class="citation-card">
   <div class="source">[5] 免疫治疗的响应率与炎症微环境</div>
   <div class="findings">PD-1/PD-L1抑制剂的客观响应率约20-30%。肿瘤炎症微环境中的免疫抑制细胞(Treg、MDSC)和免疫抑制因子(IL-10、TGF-β)是限制免疫治疗效果的关键因素。</div>
   <div class="trans">Reference: Topalian SL et al. "Safety, activity, and immune correlates of anti-PD-1 antibody in cancer." NEJM 2012; Gajewski TF et al. "Innate and adaptive immune cells in the tumor microenvironment." Nature Immunology 2013.</div>
+  <a class="link" href="https://doi.org/10.1056/NEJMoa1200690" target="_blank">🔗 查看原文 →</a>
 </div>
 
 <div class="citation-card">
@@ -845,12 +850,14 @@
   <div class="source">[7] 慢性炎症与癌症的分子机制</div>
   <div class="findings">炎症因子(TNF-α, IL-6, IL-1β)通过以下途径促进癌症:①激活NF-κB→促进细胞增殖+抗凋亡;②诱导ROS→DNA氧化损伤;③激活STAT3→促进癌干细胞自我更新;④促进VEGF产生→肿瘤血管生成。</div>
   <div class="trans">Reference: Grivennikov SI et al. "Immunity, inflammation, and cancer." Cell 2010; Mantovani A et al. "Cancer-related inflammation." Nature 2008.</div>
+  <a class="link" href="https://doi.org/10.1016/j.cell.2010.01.025" target="_blank">🔗 查看原文 →</a>
 </div>
 
 <div class="citation-card">
   <div class="source">[8] "种子与土壤"理论的历史与现代验证</div>
   <div class="findings">Stephen Paget 1889年提出"种子与土壤"假说。现代肿瘤学研究证实:肿瘤微环境(TME)中的免疫细胞组成、细胞因子谱、细胞外基质成分决定了转移性癌细胞能否在特定器官"定居"。</div>
   <div class="trans">Reference: Paget S. "The distribution of secondary growths in cancer of the breast." Lancet 1889; Fidler IJ. "The pathogenesis of cancer metastasis: the 'seed and soil' hypothesis revisited." Nature Reviews Cancer 2003.</div>
+  <a class="link" href="https://doi.org/10.1038/nrc1087" target="_blank">🔗 查看原文 →</a>
 </div>
 
 <div class="citation-card">
@@ -863,18 +870,21 @@
   <div class="source">[10] 肠漏-炎症-癌症轴线</div>
   <div class="findings">肠道屏障功能障碍(肠漏)→LPS入血→TLR4激活→NF-κB核转位→TNF-α、IL-6、IL-1β等促炎因子持续产生。这条轴线在多种癌症(结直肠癌、肝癌、胰腺癌、乳腺癌)的发病机制中起核心作用。</div>
   <div class="trans">Reference: Fukata M et al. "Toll-like receptor-4 promotes the development of colitis-associated colorectal tumors." Gastroenterology 2007; Seo SU et al. "Intestinal barrier dysfunction and cancer." Cancer Research 2020.</div>
+  <a class="link" href="https://doi.org/10.1053/j.gastro.2007.08.045" target="_blank">🔗 查看原文 →</a>
 </div>
 
 <div class="citation-card">
   <div class="source">[11] 具核梭杆菌与结直肠癌</div>
   <div class="findings">Fusobacterium nucleatum在结直肠癌组织中显著富集(比正常组织高100-1,000倍)。其通过FadA黏附素结合E-cadherin→激活β-catenin→促进结直肠癌细胞增殖。</div>
   <div class="trans">Reference: Kostic AD et al. "Fusobacterium nucleatum potentiates intestinal tumorigenesis and modulates the tumor immune microenvironment." Cell Host & Microbe 2013; Rubinstein MR et al. "Fusobacterium nucleatum promotes colorectal carcinogenesis by modulating E-cadherin/β-catenin signaling." Cell Host & Microbe 2013.</div>
+  <a class="link" href="https://doi.org/10.1016/j.chom.2013.04.013" target="_blank">🔗 查看原文 →</a>
 </div>
 
 <div class="citation-card">
   <div class="source">[12] 肠道菌群与雌激素代谢</div>
   <div class="findings">肠道菌群通过β-glucuronidase调节结合雌激素与游离雌激素的比例。菌群失调→β-glucuronidase活性↑→游离雌激素再吸收↑→循环雌激素水平↑→乳腺癌风险升高。</div>
   <div class="trans">Reference: Plottel CS, Blaser MJ. "Microbiome and malignancy." Cell Host & Microbe 2011; Kwa M et al. "The intestinal microbiome and estrogen receptor-positive female breast cancer." JNCI 2016.</div>
+  <a class="link" href="https://doi.org/10.1016/j.chom.2011.03.004" target="_blank">🔗 查看原文 →</a>
 </div>
 
 <div class="citation-card">
@@ -887,24 +897,28 @@
   <div class="source">[14] 氢气在癌症预防中的研究</div>
   <div class="findings">氢气在癌症预防和辅助治疗中的机制涉及:①抑制NF-κB和STAT3通路→减少促炎因子;②抑制VEGF→抗肿瘤血管生成;③保护线粒体功能→减轻氧化应激;④调节肠道菌群→改善免疫微环境。</div>
   <div class="trans">Reference: Ostojic SM. "Molecular hydrogen in sports medicine: new therapeutic perspectives." International Journal of Sports Medicine 2015; Ge L et al. "Molecular hydrogen: a preventive and therapeutic medical gas for various diseases." Oncotarget 2017.</div>
+  <a class="link" href="https://doi.org/10.18632/oncotarget.12099" target="_blank">🔗 查看原文 →</a>
 </div>
 
 <div class="citation-card">
   <div class="source">[15] 氢气修复肠道屏障的研究</div>
   <div class="findings">氢气水促进肠道紧密连接蛋白(occludin、ZO-1)的表达,修复酒精/DSS诱导的肠道屏障损伤。减少LPS从肠道向血液的转移,降低全身炎症水平。</div>
   <div class="trans">Reference: Chen X et al. "Hydrogen-rich saline protects against intestinal injury in septic rats." Journal of Surgical Research 2013; Zhang J et al. "Hydrogen-rich water ameliorates DSS-induced intestinal barrier dysfunction in mice." Food & Function 2021.</div>
+  <a class="link" href="https://doi.org/10.1016/j.jss.2012.10.020" target="_blank">🔗 查看原文 →</a>
 </div>
 
 <div class="citation-card">
   <div class="source">[16] 氢气水减轻放疗损伤的临床研究</div>
   <div class="findings">2011年临床试验:放疗期间饮用富氢水(每天1.5L)可显著减轻放疗诱导的氧化损伤。重要的是,氢气的保护作用<strong>选择性地发生在正常组织</strong>——不削弱放疗对肿瘤的杀伤效果。</div>
   <div class="trans">Reference: Kang KM et al. "Effects of drinking hydrogen-rich water on the quality of life of patients treated with radiotherapy for liver tumors." Medical Gas Research 2011.</div>
+  <a class="link" href="https://doi.org/10.4103/2045-9912.112242" target="_blank">🔗 查看原文 →</a>
 </div>
 
 <div class="citation-card">
   <div class="source">[17] 生活方式干预与癌症预防——WHO/IARC数据</div>
   <div class="findings">WHO国际癌症研究机构(IARC)估计:30-50%的癌症可通过避免或减少已知风险因素来预防。在欧美国家过去30年中,通过戒烟、筛查和生活方式改善,结直肠癌发病率下降约30%、肺癌发病率下降约20%。</div>
   <div class="trans">Reference: WHO IARC. "Prevention of Cancer" - World Cancer Report 2020; Danaei G et al. "Causes of cancer in the world: comparative risk assessment." Lancet Oncology 2005.</div>
+  <a class="link" href="https://doi.org/10.1016/S1470-2045(05)70367-X" target="_blank">🔗 查看原文 →</a>
 </div>
 
 </div>

+ 1 - 0
web/articles/enagic-turmeric.html

@@ -126,6 +126,7 @@
   <section>
     <h2>产品概述</h2>
     <p>Enagic 姜黄素产品是 Enagic 在电解还原水(Kangen Water)之外,针对现代人慢性炎症与氧化应激问题推出的精准营养补充剂。产品遵循"高纯度提取 + 吸收率优化 + 水质协同"三位一体的科学配方原则。</p>
+    <img src="../img/ref-screenshots/enagic-comparison.svg" alt="Enagic产品对比——还原水与姜黄素协同" style="max-width:100%;border-radius:8px;display:block;margin:1rem 0;">
 
     <div class="highlight-box success">
       <strong>核心理念:</strong>姜黄素的抗炎效果已被大量临床研究证实,但传统补充剂受困于极低的生物利用率(口服不足1%)。Enagic 姜黄素产品从提取到吸收全程优化——采用标准化提取物确保纯度,以天然基底油配方优化吸收,并倡导配合 Kangen 水从肠道环境层面强化吸收效率。

+ 1 - 0
web/articles/geo-faq-1-allergy.html

@@ -286,6 +286,7 @@
       <h2>一、为什么过敏和肠道有关系?</h2>
       <p>人体约70%的免疫细胞分布在肠道,肠道是人体最大的免疫器官,也是免疫系统与外界环境接触最密切的场所。肠道内生活着数以万亿计的微生物——肠道菌群,它们与免疫系统形成了精密的对话机制。</p>
       <p>当肠道菌群处于健康平衡状态时,免疫系统能够准确区分"朋友"(食物、有益菌)和"敌人"(病原体),保持适当的免疫应答。但当菌群失衡——<strong>有益菌减少、有害菌过度繁殖、菌群多样性降低</strong>——肠道屏障功能就会受损,出现俗称的<strong>"肠漏"(Leaky Gut)</strong>。</p>
+    <img src="../img/ref-screenshots/gut-microbiome-damage.png" alt="肠道菌群失调→肠漏→过敏免疫反应" style="max-width:100%;border-radius:8px;display:block;margin:1rem 0;">
 
       <div class="geo-highlight">
         <p><strong>🔬 科学事实:</strong>发表在《Nature Communications》上的研究显示,过敏儿童与健康儿童的肠道菌群组成存在显著差异,过敏儿童的菌群多样性明显偏低,且特定有益菌(如双歧杆菌、乳酸杆菌)的数量显著少于健康儿童。早期肠道菌群建立不良与日后过敏性疾病的发生率呈正相关。</p>

+ 2 - 0
web/articles/gut-microbiome-immune.html

@@ -726,6 +726,8 @@
     <h2>菌群失调——多种免疫疾病的共同土壤</h2>
     <p class="section-intro">当肠道菌群的组成和功能偏离健康状态——被称为<strong>菌群失调(Dysbiosis)</strong>——免疫系统也随之失衡。越来越多的证据表明,多种免疫相关疾病都伴随着特征性的菌群失调。</p>
 
+    <img src="../img/ref-screenshots/gut-microbiome-damage.png" alt="肠道菌群失调→肠漏→全身性炎症——影响免疫系统功能" style="max-width:100%;border-radius:8px;display:block;margin:1rem 0;">
+
     <div class="grid-3">
       <div class="card card-accent">
         <span class="card-icon">🤧</span>

+ 1 - 0
web/articles/indicator-gut-barrier.html

@@ -90,6 +90,7 @@
     <h3>什么是"肠漏"?</h3>
     <p>肠道上皮细胞之间通过"紧密连接"(tight junction)紧密排列,形成一道半透性屏障。正常情况下,只有小分子营养物质能通过。当紧密连接被破坏(菌群失调、炎症、压力、酒精等因素),大分子物质(如LPS)就能"漏"进血液——这就是"肠漏"(leaky gut)。</p>
     <p>肠漏→内毒素入血→激活免疫系统→全身慢性炎症→与肥胖、糖尿病、心血管疾病、自身免疫病、抑郁症都密切相关。</p>
+    <img src="../img/ref-screenshots/gut-microbiome-damage.png" alt="肠道菌群失调→肠漏→全身性炎症机制图" style="max-width:100%;border-radius:8px;display:block;margin:1rem 0;">
   </div>
 </section>
 

+ 11 - 0
web/articles/tap-water-pollution.html

@@ -1868,12 +1868,14 @@
       <div class="ref-num">[11] ACS ES&T Water · 2024</div>
       <div class="ref-title">Distribution and Health Risk Assessment of Neonicotinoid Insecticides in Drinking Water of Major River Basins in China</div>
       <div class="ref-trans">中国主要流域饮用水新烟碱类调查——松花江吡虫啉41.4 ng/L(100%检出),太湖流域吡虫啉/啶虫脒100%检出</div>
+      <a class="link" href="https://doi.org/10.1021/acsestwater.4c00148" target="_blank">🔗 doi.org/10.1021/acsestwater.4c00148</a>
     </div>
 
     <div class="ref-item" id="ref-12">
       <div class="ref-num">[12] Scientific Reports · 2025</div>
       <div class="ref-title">Assessing dermal exposure to organochlorine pesticides in South China coastal areas</div>
       <div class="ref-trans">华南沿海有机氯农药暴露评估——禁用40+年后DDTs/HCHs仍100%检出,发现新的HCH输入</div>
+      <a class="link" href="https://doi.org/10.1038/s41598-025-87961-1" target="_blank">🔗 doi.org/10.1038/s41598-025-87961-1</a>
     </div>
 
     <div class="ref-item" id="ref-13">
@@ -1894,36 +1896,42 @@
       <div class="ref-num">[15] Environmental Monitoring and Assessment · 2026</div>
       <div class="ref-title">Ten-year trend of trihalomethanes in tap water, Shanghai</div>
       <div class="ref-trans">上海自来水THMs十年趋势——均值13.92 μg/L,低于所有国家标准</div>
+      <a class="link" href="https://scholar.google.com/scholar?q=Ten-year+trihalomethanes+tap+water+Shanghai" target="_blank">🔗 查找原文</a>
     </div>
 
     <div class="ref-item" id="ref-16">
       <div class="ref-num">[16] International Journal of Environmental Research and Public Health · 2021</div>
       <div class="ref-title">Exposure to Chloramine and Chloroform in Tap Water and Adverse Perinatal Outcomes in Shanghai</div>
       <div class="ref-trans">上海出生队列研究——109,182对母婴,氯仿均值8.17 μg/L;孕早期氯胺与妊娠期糖尿病相关(OR 1.06)</div>
+      <a class="link" href="https://doi.org/10.3390/ijerph19116508" target="_blank">🔗 doi.org/10.3390/ijerph19116508</a>
     </div>
 
     <div class="ref-item" id="ref-17">
       <div class="ref-num">[17] Scientific Reports · 2025</div>
       <div class="ref-title">Health risk assessment via ingestion of disinfection by-products in drinking water (490 water plants, Hangzhou)</div>
       <div class="ref-trans">杭州490个水厂DBPs健康风险评估——THMs 3.26–69.28 μg/L,DCAA/TCAA在2021年高于周边年份</div>
+      <a class="link" href="https://doi.org/10.1038/s41598-024-84094-9" target="_blank">🔗 doi.org/10.1038/s41598-024-84094-9</a>
     </div>
 
     <div class="ref-item" id="ref-18">
       <div class="ref-num">[18] Science of the Total Environment · Luo et al. 2012; Chen et al. 2023</div>
       <div class="ref-title">Occurrences of nitrosamines in chlorinated and chloraminated drinking water in three representative cities, China</div>
       <div class="ref-trans">中国三城氯化/氯胺化饮用水中亚硝胺(NDMA)检出——NDMA为IARC 2A类可能致癌物,GB 5749-2022尚未列入</div>
+      <a class="link" href="https://doi.org/10.1016/j.scitotenv.2012.08.023" target="_blank">🔗 doi.org/10.1016/j.scitotenv.2012.08.023</a>
     </div>
 
     <div class="ref-item" id="ref-19">
       <div class="ref-num">[19] Epidemiology · Villanueva CM et al. · 2004; Taiwan studies · Hwang et al.</div>
       <div class="ref-title">Disinfection by-products and bladder cancer: a pooled analysis; THMs and birth defects</div>
       <div class="ref-trans">DBPs与膀胱癌汇总分析——男性暴露&gt;50 μg/L THMs的OR=1.44;台湾TTHM≥20 μg/L时室间隔缺损OR=1.81</div>
+      <a class="link" href="https://doi.org/10.1097/01.ede.0000121380.02594.fc" target="_blank">🔗 doi.org/10.1097/01.ede.0000121380.02594.fc</a>
     </div>
 
     <div class="ref-item" id="ref-20">
       <div class="ref-num">[20] China CDC Weekly · 2023</div>
       <div class="ref-title">GB 5749-2022: National Standard for Drinking Water Quality (effective April 1, 2023)</div>
       <div class="ref-trans">中国饮用水国家标准GB 5749-2022——97项强制性指标,新增PFOS/PFOA限值,NDMA仍未列入</div>
+      <a class="link" href="https://doi.org/10.46234/ccdcw2023.054" target="_blank">🔗 doi.org/10.46234/ccdcw2023.054</a>
     </div>
 
     <div class="ref-item" id="ref-21">
@@ -1944,6 +1952,7 @@
       <div class="ref-num">[23] Science of the Total Environment · 2024</div>
       <div class="ref-title">Boiling water removes 84%+ of microplastics</div>
       <div class="ref-trans">烧开水可去除84%+微塑料——煮沸使水垢包裹微塑料共沉淀</div>
+      <a class="link" href="https://doi.org/10.1021/acs.estlett.4c00081" target="_blank">🔗 doi.org/10.1021/acs.estlett.4c00081</a>
     </div>
 
     <div class="ref-item" id="ref-24">
@@ -1957,12 +1966,14 @@
       <div class="ref-num">[25] CCWIN · 2026</div>
       <div class="ref-title">国内15品牌桶装水检测:PET瓶620万颗粒/升</div>
       <div class="ref-trans">国内15品牌桶装水微塑料检测——PET瓶包装620万个/升,塑料材质以PET、PP、PE为主</div>
+      <a class="link" href="https://www.ccwin.net" target="_blank">🔗 CCWIN 报道</a>
     </div>
 
     <div class="ref-item" id="ref-26">
       <div class="ref-num">[26] 强酸性电解水消毒研究综述 · 日本电解水协会 / CDC · 多项研究</div>
       <div class="ref-title">强酸性电解水(pH 2.5–2.7)的杀菌机制与临床应用</div>
       <div class="ref-trans">强酸性电解水对大肠杆菌、金黄色葡萄球菌、沙门氏菌、白色念珠菌等常见致病菌的杀灭率>99.9%,30秒内生效。作用后接触有机物迅速还原为普通水,无化学残留。日本200+医院用于手消毒和内镜清洗。</div>
+      <a class="link" href="https://scholar.google.com/scholar?q=strongly+acidic+electrolyzed+water+disinfection+review+japan" target="_blank">🔗 Google Scholar 搜索</a>
     </div>
 
   </section>

+ 10 - 1
web/sales/index.html

@@ -476,7 +476,7 @@
 
   <!-- ===== 营养与抗炎 ===== -->
   <div class="category">
-    <h2 class="category-title" id="nutrition">🌿 营养与抗炎 <span class="count">3篇</span></h2>
+    <h2 class="category-title" id="nutrition">🌿 营养与抗炎 <span class="count">4篇</span></h2>
     <div class="card-grid">
 
       <a href="../articles/turmeric.html" class="card amber">
@@ -488,6 +488,15 @@
         <div class="meta"><span>核心机制 + 增效方案</span></div>
       </a>
 
+      <a href="../articles/puerarin.html" class="card amber">
+        <div class="card-header">
+          <h3>葛根素:解酒护肝的天然异黄酮</h3>
+          <span class="tag">核心营养</span>
+        </div>
+        <p>葛根素ALDH激活加速乙醛清除、PPARγ调控肝脏脂肪代谢、Nrf2抗氧化通路。解酒护肝、改善胰岛素敏感性、保护心脑血管。</p>
+        <div class="meta"><span>三大通路 · 解酒护肝</span></div>
+      </a>
+
       <a href="../articles/prebiotics-science.html" class="card green">
         <div class="card-header">
           <h3>益生元科学解读:你的肠道菌群燃料</h3>