import { useState, useEffect } from 'react'; import api from '../services/api'; export default function HistoryPage() { const [analyses, setAnalyses] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(''); const [page, setPage] = useState(1); const [totalPages, setTotalPages] = useState(1); const [selectedAnalysis, setSelectedAnalysis] = useState(null); const [showDetail, setShowDetail] = useState(false); useEffect(() => { loadAnalyses(); }, [page]); const loadAnalyses = async () => { try { setLoading(true); const response = await api.getAnalysisHistory(page, 10); if (response.success) { setAnalyses(response.data); setTotalPages(response.pagination.totalPages); } } catch (err) { setError(err.message); } finally { setLoading(false); } }; const viewDetail = async (id) => { try { const response = await api.getAnalysisDetail(id); if (response.success) { setSelectedAnalysis(response.analysis); setShowDetail(true); } } catch (err) { alert('載入失敗: ' + err.message); } }; const deleteAnalysis = async (id) => { if (!confirm('確定要刪除此分析記錄嗎?')) return; try { const response = await api.deleteAnalysis(id); if (response.success) { loadAnalyses(); } } catch (err) { alert('刪除失敗: ' + err.message); } }; const getStatusBadge = (status) => { const statusMap = { pending: { color: 'gray', text: '待處理' }, processing: { color: 'blue', text: '處理中' }, completed: { color: 'green', text: '已完成' }, failed: { color: 'red', text: '失敗' }, }; const s = statusMap[status] || statusMap.pending; return ( {s.text} ); }; return (
查看您的所有 5 Why 分析記錄
{error}
| ID | 發現 | 狀態 | 建立時間 | 操作 |
|---|---|---|---|---|
| 尚無分析記錄 | ||||
| #{analysis.id} |
{analysis.finding}
|
{getStatusBadge(analysis.status)} | {new Date(analysis.created_at).toLocaleString('zh-TW')} | |
{selectedAnalysis.finding}
Why {why.why_level}:
{why.question}
{why.answer}
根本原因:
{perspective.root_cause}