feat:增加训练场和错题集模块

This commit is contained in:
2026-07-29 19:50:40 +08:00
parent 1f88341019
commit 4d49660b18
21 changed files with 620 additions and 90 deletions

View File

@@ -1,8 +1,8 @@
<template>
<div class="file-list">
<library-filter v-if="libraryStore.fileList.length"/>
<library-filter v-if="filterLibraryFileList.length"/>
<div v-for="file in libraryStore.fileList" :key="file.id" class="file-card card-item">
<div v-for="file in filterLibraryFileList" :key="file.id" class="file-card card-item">
<div class="file-info">
<div class="file-icon" :class="file.type === 'image' ? 'icon-image' : 'icon-pdf'">
@@ -11,7 +11,7 @@
</div>
<div class="file-text">
<div class="file-name">{{ file.name }}</div>
<div class="file-meta">{{ file.size }} · {{ file.uploadTime }}</div>
<div class="file-meta">{{ filesize(file.size) }} · {{ fromNow(file.uploadTime)}}</div>
</div>
</div>
@@ -21,7 +21,7 @@
</div>
</div>
<el-empty v-if="!libraryStore.fileList.length" description="暂无文件" :image-size="80" />
<el-empty v-if="!filterLibraryFileList.length" description="暂无文件" :image-size="80" />
</div>
</template>
@@ -30,12 +30,22 @@ import { Delete, Edit, Picture, Document } from '@element-plus/icons-vue'
import { useLibraryStore } from '@/stores/library.ts'
import type { ILibraryFile } from '@/types/library.ts'
import LibraryFilter from '@/components/Library/LibraryFilter.vue'
import { computed } from 'vue'
import { fromNow } from '@/utils/dayUtil.ts'
import { filesize } from 'filesize'
const libraryStore = useLibraryStore()
const filterLibraryFileList = computed(() => {
const subject = libraryStore.selectedSubject
const module = libraryStore.selectedModule
return libraryStore.fileList.filter((item) => item.subject === subject && item.module === module)
})
const editClick = async (file: ILibraryFile) => {
await libraryStore.queryFileByList(file.id)
await libraryStore.queryFileById(file.id)
libraryStore.fileApiType = 'UPDATE'
libraryStore.activeStep = 1
libraryStore.hasGenerateQuestion = true
libraryStore.fileDialogVisible = true
}