This commit is contained in:
Wxp 2025-08-12 20:26:27 +08:00
parent 4bfd6f2351
commit 90ffb5a444
56 changed files with 86 additions and 86 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 800 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 953 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

View File

@ -388,60 +388,60 @@
</AppLayout>
</template>
<script setup lang="ts">
import { defineProps, defineEmits } from 'vue'
import { defineEmits } from 'vue'
import AppLayout from './layout/AppLayout.vue'
//
interface ExamOption {
id: string
text: string
image?: string
}
// interface ExamOption {
// id: string
// text: string
// image?: string
// }
interface ExamQuestion {
id: number
title: string
content: string
options: ExamOption[]
correctAnswers: string[]
userAnswers: string[]
isCorrect: boolean
}
// interface ExamQuestion {
// id: number
// title: string
// content: string
// options: ExamOption[]
// correctAnswers: string[]
// userAnswers: string[]
// isCorrect: boolean
// }
interface ExamDetail {
id: number
title: string
examDate?: string
practiceDate?: string
duration: number
totalQuestions: number
correctCount: number
wrongCount: number
score: number
questions: ExamQuestion[]
}
// interface ExamDetail {
// id: number
// title: string
// examDate?: string
// practiceDate?: string
// duration: number
// totalQuestions: number
// correctCount: number
// wrongCount: number
// score: number
// questions: ExamQuestion[]
// }
// props
const props = defineProps<{
currentExamDetail: ExamDetail
currentDetailType: 'exam' | 'practice'
}>()
// const props = defineProps<{
// currentExamDetail: ExamDetail
// currentDetailType: 'exam' | 'practice'
// }>()
// emits
const emit = defineEmits(['close'])
//
const closeExamDetail = () => {
emit('close')
}
//
const getAnswerItemClass = (questionId: number) => {
const question = props.currentExamDetail.questions.find(q => q.id === questionId)
if (!question) return ''
if (question.userAnswers.length === 0) return 'not-answered'
return question.isCorrect ? 'correct' : 'wrong'
}
//const closeExamDetail = () => {
// emit('close')
//}
//
////
//const getAnswerItemClass = (questionId: number) => {
// const question = props.currentExamDetail.questions.find(q => q.id === questionId)
// if (!question) return ''
// if (question.userAnswers.length === 0) return 'not-answered'
// return question.isCorrect ? 'correct' : 'wrong'
//}
</script>
<style scoped>
body * {

View File

@ -673,36 +673,36 @@ const partners = computed(() => [
])
//
const featuredReviews = computed(() => [
{
id: 1,
name: t('home.reviewsData.reviewer1.name'),
title: t('home.reviewsData.reviewer1.title'),
avatar: '/opinion/opioion1.png',
content: t('home.reviewsData.reviewer1.content')
},
{
id: 2,
name: t('home.reviewsData.reviewer2.name'),
title: t('home.reviewsData.reviewer2.title'),
avatar: '/opinion/opioion2.png',
content: t('home.reviewsData.reviewer2.content')
},
{
id: 3,
name: t('home.reviewsData.reviewer3.name'),
title: t('home.reviewsData.reviewer3.title'),
avatar: '/opinion/opioion3.png',
content: t('home.reviewsData.reviewer3.content')
},
{
id: 3,
name: t('home.reviewsData.reviewer3.name'),
title: t('home.reviewsData.reviewer3.title'),
avatar: '/opinion/opioion3.png',
content: t('home.reviewsData.reviewer3.content')
}
])
// const featuredReviews = computed(() => [
// {
// id: 1,
// name: t('home.reviewsData.reviewer1.name'),
// title: t('home.reviewsData.reviewer1.title'),
// avatar: '/opinion/opioion1.png',
// content: t('home.reviewsData.reviewer1.content')
// },
// {
// id: 2,
// name: t('home.reviewsData.reviewer2.name'),
// title: t('home.reviewsData.reviewer2.title'),
// avatar: '/opinion/opioion2.png',
// content: t('home.reviewsData.reviewer2.content')
// },
// {
// id: 3,
// name: t('home.reviewsData.reviewer3.name'),
// title: t('home.reviewsData.reviewer3.title'),
// avatar: '/opinion/opioion3.png',
// content: t('home.reviewsData.reviewer3.content')
// },
// {
// id: 3,
// name: t('home.reviewsData.reviewer3.name'),
// title: t('home.reviewsData.reviewer3.title'),
// avatar: '/opinion/opioion3.png',
// content: t('home.reviewsData.reviewer3.content')
// }
// ])
//
const goToCourseDetail = (courseId: number) => {

View File

@ -2263,9 +2263,9 @@ const getFileIcon = () => {
}
}
const createNewFolder = () => {
message.info('新建文件夹功能开发中...')
}
// const createNewFolder = () => {
// message.info('...')
// }
const renameFile = (fileId: number) => {
message.info(`重命名文件 ${fileId}`)
@ -2382,17 +2382,17 @@ const closeExamDetail = () => {
currentDetailType.value = 'exam'
}
//
const getAnswerItemClass = (index: number) => {
// 1011-15
if (index <= 10) {
return 'correct'
} else if (index <= 15) {
return 'wrong'
} else {
return 'unanswered'
}
}
// //
// const getAnswerItemClass = (index: number) => {
// // 1011-15
// if (index <= 10) {
// return 'correct'
// } else if (index <= 15) {
// return 'wrong'
// } else {
// return 'unanswered'
// }
// }
//
const viewAssignmentDetail = (assignment: Assignment) => {