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

View File

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

View File

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