feat(ui): 添加文件上传成功事件并刷新任务列表

在文件上传组件中添加success事件,当上传成功时触发并刷新任务列表。同时在基准评测组件中添加刷新按钮并优化任务提交后的处理逻辑。
This commit is contained in:
Wenjie Zhang 2025-12-10 22:58:25 +08:00
parent ade5445cae
commit 9032848450
3 changed files with 22 additions and 4 deletions

View File

@ -6,6 +6,10 @@
<span class="total-count">{{ benchmarks.length }} 个基准</span>
</div>
<div class="header-right">
<a-button @click="loadBenchmarks">
<template #icon><ReloadOutlined /></template>
刷新
</a-button>
<a-button type="primary" @click="showUploadModal">
<template #icon><UploadOutlined /></template>
上传基准
@ -92,7 +96,6 @@
<!-- 底部信息 -->
<div class="benchmark-footer">
<span class="benchmark-time">{{ formatDate(benchmark.created_at) }}</span>
<span class="benchmark-id">{{ benchmark.benchmark_id.slice(0, 8) }}</span>
<span class="benchmark-count">{{ benchmark.question_count }} 个问题</span>
</div>
</div>
@ -182,9 +185,11 @@ import {
EyeOutlined,
DeleteOutlined,
CheckCircleOutlined,
CloseCircleOutlined
CloseCircleOutlined,
ReloadOutlined
} from '@ant-design/icons-vue';
import { evaluationApi } from '@/apis/knowledge_api';
import { useTaskerStore } from '@/stores/tasker';
import BenchmarkUploadModal from './modals/BenchmarkUploadModal.vue';
import BenchmarkGenerateModal from './modals/BenchmarkGenerateModal.vue';
@ -197,6 +202,8 @@ const props = defineProps({
const emit = defineEmits(['refresh']);
const taskerStore = useTaskerStore();
//
const loading = ref(false);
const benchmarks = ref([]);
@ -243,6 +250,7 @@ const showGenerateModal = () => {
const onUploadSuccess = () => {
loadBenchmarks();
message.success('基准上传成功');
taskerStore.loadTasks(); //
//
emit('refresh');
};
@ -250,7 +258,8 @@ const onUploadSuccess = () => {
//
const onGenerateSuccess = () => {
loadBenchmarks();
message.success('基准生成成功');
// message.success(''); //
taskerStore.loadTasks(); //
//
emit('refresh');
};

View File

@ -172,7 +172,7 @@ const props = defineProps({
},
});
const emit = defineEmits(['update:visible']);
const emit = defineEmits(['update:visible', 'success']);
const store = useDatabaseStore();
@ -740,6 +740,7 @@ const chunkData = async () => {
if (success) {
emit('update:visible', false);
emit('success');
fileList.value = [];
sameNameFiles.value = []; //
}

View File

@ -4,6 +4,7 @@
<FileUploadModal
v-model:visible="addFilesModalVisible"
@success="onFileUploadSuccess"
/>
<div class="unified-layout">
@ -75,6 +76,7 @@
import { onMounted, reactive, ref, watch, onUnmounted, computed } from 'vue';
import { useRoute } from 'vue-router';
import { useDatabaseStore } from '@/stores/database';
import { useTaskerStore } from '@/stores/tasker';
import KnowledgeBaseCard from '@/components/KnowledgeBaseCard.vue';
import FileTable from '@/components/FileTable.vue';
import FileDetailModal from '@/components/FileDetailModal.vue';
@ -87,6 +89,7 @@ import EvaluationBenchmarks from '@/components/EvaluationBenchmarks.vue';
const route = useRoute();
const store = useDatabaseStore();
const taskerStore = useTaskerStore();
const databaseId = computed(() => store.databaseId);
const database = computed(() => store.database);
@ -167,6 +170,11 @@ const showAddFilesModal = () => {
addFilesModalVisible.value = true;
};
//
const onFileUploadSuccess = () => {
taskerStore.loadTasks();
};
//
const resetFileSelectionState = () => {
store.selectedRowKeys = [];