修正列印錯誤資訊

This commit is contained in:
2025-10-12 03:54:41 +08:00
parent ef640e9bdb
commit 18dc227e40

View File

@@ -398,7 +398,7 @@ function AdminResultDetailContent() {
if (printWindow) {
// 獲取當前頁面的數據
const userInfo = `
<div class="card">
<div class="card equal-height">
<h3>
<svg class="icon icon-user" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"></path>
@@ -419,7 +419,7 @@ function AdminResultDetailContent() {
`
const testResult = `
<div class="card" style="text-align: center;">
<div class="card equal-height centered-content">
<div class="score-circle">
<span>${result.score}</span>
</div>
@@ -432,8 +432,81 @@ function AdminResultDetailContent() {
let logicTest = ''
let creativeTest = ''
let recommendations = ['繼續保持現有的學習節奏,持續提升各方面能力'] // 默認建議
if (result.type === 'combined' && result.details) {
// 調試:輸出數據結構
console.log('Print Data Debug:', {
details: result.details,
result: result
})
// 從 breakdown 中獲取正確的數據
const logicBreakdown = result.details.breakdown || {}
const creativeBreakdown = result.details.creativeBreakdown || {}
console.log('Logic breakdown:', logicBreakdown)
console.log('Creative breakdown:', creativeBreakdown)
// 使用與網頁相同的計算方式
const logicQuestions = questions.filter(q => q.type === 'logic')
const creativeQuestions = questions.filter(q => q.type === 'creative')
// 邏輯測驗:計算正確答案數
const logicCorrectAnswers = logicQuestions.filter(q => q.isCorrect).length
const logicTotalQuestions = logicQuestions.length
// 創意測驗:計算實際分數
const creativeScore = creativeQuestions.reduce((sum, q) => sum + (q.score || 0), 0)
const creativeMaxScore = creativeQuestions.length * 5 // 每題5分
console.log('Extracted values:', {
logicCorrectAnswers,
logicTotalQuestions,
creativeScore,
creativeMaxScore
})
const logicLevelData = getScoreLevel(result.details.logicScore || 0, 'logic')
const creativeLevelData = getScoreLevel(result.details.creativeScore || 0, 'creative')
// 生成發展建議(與 CombinedAnalysis 組件相同的邏輯)
const generateRecommendations = () => {
const recommendations = []
const logicScore = result.details.logicScore || 0
const creativityScore = result.details.creativeScore || 0
if (logicScore < 70) {
recommendations.push("建議加強邏輯思維訓練,多做推理題和數學題")
recommendations.push("學習系統性思維方法,如思維導圖、流程圖等")
}
if (creativityScore < 70) {
recommendations.push("建議參與更多創意活動,如頭腦風暴、設計思維工作坊")
recommendations.push("培養好奇心,多接觸不同領域的知識和經驗")
}
const scoreDiff = Math.abs(logicScore - creativityScore)
if (scoreDiff > 20) {
if (logicScore > creativityScore) {
recommendations.push("您的邏輯思維較強,建議平衡發展創意能力")
} else {
recommendations.push("您的創意能力較強,建議平衡發展邏輯思維")
}
}
if (logicScore >= 80 && creativityScore >= 80) {
recommendations.push("您具備優秀的綜合能力,建議承擔更多挑戰性工作")
recommendations.push("可以考慮擔任需要創新和分析並重的領導角色")
}
return recommendations.length > 0 ? recommendations : ["繼續保持現有的學習節奏,持續提升各方面能力"]
}
const recommendations = generateRecommendations()
console.log('Generated recommendations:', recommendations)
logicTest = `
<div class="card">
<h4>
@@ -442,22 +515,35 @@ function AdminResultDetailContent() {
</svg>
邏輯思維測試
</h4>
<div class="stats">
<div class="stat-item">
<div class="stat-number">${result.details.logicScore || 0}</div>
<div class="stat-label">得分</div>
<div class="score-section">
<div class="score-text">得分</div>
<div class="progress-container">
<div class="progress-bar logic-progress">
<div class="progress-fill" style="width: ${Math.min((logicCorrectAnswers / (logicTotalQuestions || 1)) * 100, 100)}%"></div>
</div>
<div class="stat-item">
<div class="stat-number">${result.details.logicCorrectAnswers || 0}</div>
<span class="score-number logic-score">${logicCorrectAnswers}</span>
</div>
</div>
<div class="stats-grid">
<div class="stat-box correct">
<div class="stat-number">${logicCorrectAnswers}</div>
<div class="stat-label">答對題數</div>
</div>
<div class="stat-item">
<div class="stat-number">${result.details.logicTotalQuestions || 0}</div>
<div class="stat-box total">
<div class="stat-number">${logicTotalQuestions}</div>
<div class="stat-label">總題數</div>
</div>
</div>
<div class="level-badge">${getScoreLevel(result.details.logicScore || 0, 'logic').level}</div>
<div class="description">${getScoreLevel(result.details.logicScore || 0, 'logic').description}</div>
<div class="level-section">
<div class="level-badge logic-badge">${logicLevelData.level}</div>
<div class="description">${logicLevelData.description}</div>
<div class="suggestion">
<svg class="icon suggestion-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"></path>
</svg>
${logicLevelData.suggestion}
</div>
</div>
</div>
`
@@ -469,22 +555,35 @@ function AdminResultDetailContent() {
</svg>
創意能力測試
</h4>
<div class="stats">
<div class="stat-item">
<div class="stat-number">${result.details.creativeScore || 0}</div>
<div class="stat-label">得分</div>
<div class="score-section">
<div class="score-text">得分</div>
<div class="progress-container">
<div class="progress-bar creative-progress">
<div class="progress-fill" style="width: ${Math.min((creativeScore / (creativeMaxScore || 1)) * 100, 100)}%"></div>
</div>
<div class="stat-item">
<div class="stat-number">${result.details.creativeScore || 0}</div>
<span class="score-number creative-score">${creativeScore}</span>
</div>
</div>
<div class="stats-grid">
<div class="stat-box raw">
<div class="stat-number">${creativeScore}</div>
<div class="stat-label">原始得分</div>
</div>
<div class="stat-item">
<div class="stat-number">${result.details.creativeMaxScore || 0}</div>
<div class="stat-box max">
<div class="stat-number">${creativeMaxScore}</div>
<div class="stat-label">滿分</div>
</div>
</div>
<div class="level-badge">${getScoreLevel(result.details.creativeScore || 0, 'creative').level}</div>
<div class="description">${getScoreLevel(result.details.creativeScore || 0, 'creative').description}</div>
<div class="level-section">
<div class="level-badge creative-badge">${creativeLevelData.level}</div>
<div class="description">${creativeLevelData.description}</div>
<div class="suggestion">
<svg class="icon suggestion-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"></path>
</svg>
${creativeLevelData.suggestion}
</div>
</div>
</div>
`
}
@@ -536,6 +635,16 @@ function AdminResultDetailContent() {
padding: 0.75rem;
box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
}
.equal-height {
min-height: 12rem;
display: flex;
flex-direction: column;
}
.centered-content {
text-align: center;
justify-content: center;
align-items: center;
}
.card h3 {
margin: 0 0 0.5rem 0;
font-size: 0.875rem;
@@ -570,17 +679,20 @@ function AdminResultDetailContent() {
.info-grid {
display: grid;
grid-template-columns: auto 1fr;
gap: 0.25rem 0.5rem;
gap: 0.5rem 1rem;
margin-bottom: 0.5rem;
align-items: center;
}
.info-label {
font-weight: 500;
color: #6b7280;
font-size: 0.7rem;
white-space: nowrap;
}
.info-value {
color: #0f172a;
font-size: 0.7rem;
word-break: break-all;
}
.score-circle {
width: 2.5rem;
@@ -647,6 +759,117 @@ function AdminResultDetailContent() {
color: #64748b;
margin-top: 0.125rem;
}
.score-section {
margin-bottom: 0.75rem;
}
.score-text {
font-size: 0.65rem;
color: #6b7280;
margin-bottom: 0.25rem;
}
.progress-container {
display: flex;
align-items: center;
gap: 0.5rem;
}
.progress-bar {
flex: 1;
height: 0.375rem;
background: #e5e7eb;
border-radius: 9999px;
overflow: hidden;
position: relative;
}
.logic-progress .progress-fill {
background: #dc2626;
}
.creative-progress .progress-fill {
background: #f59e0b;
}
.progress-fill {
height: 100%;
border-radius: 9999px;
transition: width 0.3s ease;
}
.score-number {
font-size: 0.75rem;
font-weight: bold;
min-width: 1.5rem;
text-align: right;
}
.logic-score {
color: #dc2626;
}
.creative-score {
color: #f59e0b;
}
.stats-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0.5rem;
margin-bottom: 0.75rem;
}
.stat-box {
background: #f8fafc;
border-radius: 0.375rem;
padding: 0.5rem;
text-align: center;
border: 1px solid #e2e8f0;
}
.stat-box.correct .stat-number {
color: #059669;
}
.stat-box.total .stat-number {
color: #3b82f6;
}
.stat-box.raw .stat-number {
color: #059669;
}
.stat-box.max .stat-number {
color: #3b82f6;
}
.level-section {
margin-bottom: 0.5rem;
}
.level-badge {
display: inline-block;
background: #f1f5f9;
color: #475569;
padding: 0.125rem 0.5rem;
border-radius: 9999px;
font-size: 0.6rem;
font-weight: 500;
margin-bottom: 0.5rem;
}
.logic-badge {
background: #fef2f2;
color: #dc2626;
}
.creative-badge {
background: #fef3c7;
color: #f59e0b;
}
.description {
color: #4b5563;
font-size: 0.65rem;
margin-bottom: 0.5rem;
line-height: 1.4;
}
.suggestion {
display: flex;
align-items: flex-start;
gap: 0.25rem;
color: #374151;
font-size: 0.65rem;
line-height: 1.4;
}
.suggestion-icon {
width: 0.75rem;
height: 0.75rem;
color: #6b7280;
flex-shrink: 0;
margin-top: 0.125rem;
}
.ability-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
@@ -872,26 +1095,12 @@ function AdminResultDetailContent() {
</svg>
發展建議
</h3>
${recommendations.map((recommendation, index) => `
<div class="suggestion-item">
<div class="suggestion-number">1</div>
<div class="suggestion-text">建議加強邏輯思維訓練,多做推理題和數學題</div>
</div>
<div class="suggestion-item">
<div class="suggestion-number">2</div>
<div class="suggestion-text">學習系統性思維方法,如思維導圖、流程圖等</div>
</div>
<div class="suggestion-item">
<div class="suggestion-number">3</div>
<div class="suggestion-text">建議參與更多創意活動,如頭腦風暴、設計思維工作坊</div>
</div>
<div class="suggestion-item">
<div class="suggestion-number">4</div>
<div class="suggestion-text">培養好奇心,多接觸不同領域的知識和經驗</div>
</div>
<div class="suggestion-item">
<div class="suggestion-number">5</div>
<div class="suggestion-text">您的創意能力較強,建議平衡發展邏輯思維</div>
<div class="suggestion-number">${index + 1}</div>
<div class="suggestion-text">${recommendation}</div>
</div>
`).join('')}
</div>
` : ''}