From 8bb93ad5c341cf7d9a94cb0a6a8e71a6274cd88d Mon Sep 17 00:00:00 2001 From: weijuesen Date: Wed, 12 Aug 2026 11:31:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(miniapp):=20=E7=9F=A5=E8=AF=86=E5=BA=93?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20LAMP=20=E6=95=99=E7=A8=8B=E5=85=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E4=BF=AE=E5=A4=8D=E8=AF=A6=E6=83=85=E9=A1=B5?= =?UTF-8?q?=E6=96=87=E7=AB=A0=E7=B1=BB=E5=9E=8B=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- miniapp/src/api/knowledge.ts | 1 + miniapp/src/pages/knowledge/detail/index.tsx | 6 ++--- miniapp/src/pages/knowledge/index.tsx | 24 ++++++++++++++++++-- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/miniapp/src/api/knowledge.ts b/miniapp/src/api/knowledge.ts index 98b7c85..4994b84 100644 --- a/miniapp/src/api/knowledge.ts +++ b/miniapp/src/api/knowledge.ts @@ -31,4 +31,5 @@ export interface KnowledgeArticle { export const listDiseases = () => get('/knowledge/diseases'); export const getDisease = (id: string) => get(`/knowledge/diseases/${id}`); export const listAIGuides = () => get('/knowledge/articles', { kind: 'ai_guide' }); +export const listLAMPGuides = () => get('/knowledge/articles', { kind: 'lamp_guide' }); export const getArticle = (id: string) => get(`/knowledge/articles/${id}`); diff --git a/miniapp/src/pages/knowledge/detail/index.tsx b/miniapp/src/pages/knowledge/detail/index.tsx index 55d171b..a32317a 100644 --- a/miniapp/src/pages/knowledge/detail/index.tsx +++ b/miniapp/src/pages/knowledge/detail/index.tsx @@ -49,10 +49,10 @@ const DetailPage: React.FC = () => { return; } try { - if (kind === 'ai_guide') { - setArticle(await getArticle(id)); - } else { + if (kind === 'disease') { setDisease(await getDisease(id)); + } else { + setArticle(await getArticle(id)); } } catch (err) { console.error('[KnowledgeDetail] 加载失败:', err); diff --git a/miniapp/src/pages/knowledge/index.tsx b/miniapp/src/pages/knowledge/index.tsx index d34d820..16b7dd8 100644 --- a/miniapp/src/pages/knowledge/index.tsx +++ b/miniapp/src/pages/knowledge/index.tsx @@ -4,11 +4,17 @@ import Taro, { usePullDownRefresh } from '@tarojs/taro'; import styles from './index.module.scss'; import { listAIGuides, + listLAMPGuides, listDiseases, type Disease, type KnowledgeArticle, } from '@/api/knowledge'; +const GUIDE_LABELS: Record = { + ai_guide: 'AI 解读', + lamp_guide: 'LAMP 教程', +}; + const CATEGORY_LABELS: Record = { viral: '病毒性', fungal: '真菌性', @@ -20,16 +26,19 @@ const CATEGORY_LABELS: Record = { const KnowledgePage: React.FC = () => { const [diseases, setDiseases] = useState([]); const [guides, setGuides] = useState([]); + const [lampGuides, setLampGuides] = useState([]); const [loading, setLoading] = useState(true); const fetchData = useCallback(async () => { try { - const [diseaseRes, guideRes] = await Promise.all([ + const [diseaseRes, guideRes, lampRes] = await Promise.all([ listDiseases().catch(() => [] as Disease[]), listAIGuides().catch(() => [] as KnowledgeArticle[]), + listLAMPGuides().catch(() => [] as KnowledgeArticle[]), ]); setDiseases(diseaseRes); setGuides(guideRes); + setLampGuides(lampRes); } catch (err) { console.error('[Knowledge] 数据加载失败:', err); Taro.showToast({ @@ -62,7 +71,18 @@ const KnowledgePage: React.FC = () => { {guides.map((a) => ( openGuide(a)}> - AI 解读 + {GUIDE_LABELS[a.kind] || a.kind} + + + {a.title} + {a.summary ? {a.summary} : null} + + ))} + + {lampGuides.map((a) => ( + openGuide(a)}> + + {GUIDE_LABELS[a.kind] || a.kind} {a.title}