修正 vercal 部署失敗問題

This commit is contained in:
2025-09-29 21:21:52 +08:00
parent 426deafbb8
commit 3aba1451bd
144 changed files with 321 additions and 11283 deletions

View File

@@ -446,7 +446,7 @@ function UsersManagementContent() {
{user.role === "admin" ? "管理員" : "一般用戶"}
</Badge>
</TableCell>
<TableCell>{new Date(user.created_at).toLocaleDateString("zh-TW")}</TableCell>
<TableCell>{new Date(user.createdAt).toLocaleDateString("zh-TW")}</TableCell>
<TableCell>
<div className="flex gap-2">
<Button variant="ghost" size="sm" onClick={() => handleEditUser(user)}>

View File

@@ -94,14 +94,14 @@ export async function GET(request: NextRequest) {
console.log('Debug: 所有創意題目數量:', allCreativeQuestions.length)
for (let i = 0; i < answerEntries.length; i++) {
const [questionIndex, score] = answerEntries[i]
const [questionIndex, score] = answerEntries[i] as [string, number]
const question = allCreativeQuestions[parseInt(questionIndex)] // 使用索引獲取題目
if (question) {
questions.push({
...question,
type: 'creative',
userAnswer: score.toString(), // 創意題的答案就是分數
score: score as number,
score: score,
isReverse: question.is_reverse
})
}

View File

@@ -35,21 +35,24 @@ export async function GET(request: NextRequest) {
if (result.test_type === 'logic') {
const logicAnswers = await getLogicTestAnswersByTestResultId(result.id)
if (logicAnswers.length > 0) {
const logicAnswer = logicAnswers[0]
const correctAnswers = logicAnswers.filter(answer => answer.is_correct).length
const totalQuestions = logicAnswers.length
const accuracy = totalQuestions > 0 ? Math.round((correctAnswers / totalQuestions) * 100) : 0
details = {
correctAnswers: logicAnswer.correct_answers,
totalQuestions: logicAnswer.total_questions,
accuracy: logicAnswer.accuracy
correctAnswers,
totalQuestions,
accuracy
}
}
} else if (result.test_type === 'creative') {
const creativeAnswers = await getCreativeTestAnswersByTestResultId(result.id)
if (creativeAnswers.length > 0) {
const creativeAnswer = creativeAnswers[0]
const totalScore = creativeAnswers.reduce((sum, answer) => sum + answer.score, 0)
const maxScore = creativeAnswers.length * 5 // Assuming max score per question is 5
details = {
dimensionScores: creativeAnswer.dimension_scores,
totalScore: creativeAnswer.total_score,
maxScore: creativeAnswer.max_score
dimensionScores: {}, // This would need to be calculated based on question categories
totalScore,
maxScore
}
}
}

View File

@@ -37,21 +37,24 @@ export async function GET(request: NextRequest) {
if (result.test_type === 'logic') {
const logicAnswers = await getLogicTestAnswersByTestResultId(result.id)
if (logicAnswers.length > 0) {
const logicAnswer = logicAnswers[0] // 取第一個答案記錄
const correctAnswers = logicAnswers.filter(answer => answer.is_correct).length
const totalQuestions = logicAnswers.length
const accuracy = totalQuestions > 0 ? Math.round((correctAnswers / totalQuestions) * 100) : 0
details = {
correctAnswers: logicAnswer.correct_answers,
totalQuestions: logicAnswer.total_questions,
accuracy: logicAnswer.accuracy
correctAnswers,
totalQuestions,
accuracy
}
}
} else if (result.test_type === 'creative') {
const creativeAnswers = await getCreativeTestAnswersByTestResultId(result.id)
if (creativeAnswers.length > 0) {
const creativeAnswer = creativeAnswers[0] // 取第一個答案記錄
const totalScore = creativeAnswers.reduce((sum, answer) => sum + answer.score, 0)
const maxScore = creativeAnswers.length * 5 // Assuming max score per question is 5
details = {
dimensionScores: creativeAnswer.dimension_scores,
totalScore: creativeAnswer.total_score,
maxScore: creativeAnswer.max_score
dimensionScores: {}, // This would need to be calculated based on question categories
totalScore,
maxScore
}
}
}

View File

@@ -2,13 +2,11 @@ import { NextRequest, NextResponse } from "next/server"
import * as XLSX from "xlsx"
import {
createLogicQuestion,
updateLogicQuestion,
getAllLogicQuestions,
clearLogicQuestions
} from "@/lib/database/models/logic_question"
import {
createCreativeQuestion,
updateCreativeQuestion,
getAllCreativeQuestions,
clearCreativeQuestions
} from "@/lib/database/models/creative_question"

View File

@@ -110,8 +110,7 @@ export async function POST(request: NextRequest) {
console.error('上傳邏輯測驗結果失敗:', error)
console.error('錯誤詳情:', {
message: error instanceof Error ? error.message : '未知錯誤',
stack: error instanceof Error ? error.stack : undefined,
body: body
stack: error instanceof Error ? error.stack : undefined
})
return NextResponse.json(
{

View File

@@ -42,7 +42,7 @@ export default function CreativeResultsPage() {
if (data.success && data.data.length > 0) {
// 按創建時間排序,取最新的結果
const sortedResults = data.data.sort((a, b) => new Date(b.created_at) - new Date(a.created_at))
const sortedResults = data.data.sort((a: any, b: any) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime())
const latestResult = sortedResults[0]
// 獲取題目資料來計算各維度分數