Files
AI-Grading-Assistant-Tauri/src/stores/grading.ts
T

40 lines
1.6 KiB
TypeScript

import { defineStore } from 'pinia'
import { ref } from 'vue'
import type { GradeResult, QuestionItem } from '@/types'
export const useGradingStore = defineStore('grading', () => {
const currentImage = ref<string | null>(null)
const currentResult = ref<GradeResult | null>(null)
const questions = ref<QuestionItem[]>([])
const currentQuestionIndex = ref(0)
const rubric = ref('')
const questionTitle = ref('')
const maxScore = ref(100)
const referenceAnswer = ref('')
const teacherScore = ref<number | null>(null)
const teacherComment = ref('')
function setImage(base64: string) { currentImage.value = base64 }
function setResult(result: GradeResult) { currentResult.value = result }
function setRubric(text: string) { rubric.value = text }
function setQuestionTitle(text: string) { questionTitle.value = text }
function setMaxScore(val: number) { maxScore.value = val }
function setReferenceAnswer(val: string) { referenceAnswer.value = val }
function setQuestions(list: QuestionItem[]) { questions.value = list }
function setCurrentQuestionIndex(idx: number) { currentQuestionIndex.value = idx }
function reset() {
currentImage.value = null
currentResult.value = null
teacherScore.value = null
teacherComment.value = ''
}
return {
currentImage, currentResult, questions, currentQuestionIndex, rubric,
questionTitle, maxScore, referenceAnswer, teacherScore, teacherComment,
setImage, setResult, setRubric, setQuestionTitle, setMaxScore, setReferenceAnswer,
setQuestions, setCurrentQuestionIndex, reset
}
})