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}