refactor: 评测列表移除内嵌维度管理

EvalView 移除维度列表加载/删除与相关 Tab 内容,聚焦评测任务展示;维度表单与规则步骤同步微调,回归脚本适配。
This commit is contained in:
caoxiaozhu
2026-07-13 11:47:46 +08:00
parent 5c469a1778
commit 91a7c84d7c
4 changed files with 31 additions and 76 deletions

View File

@@ -6,19 +6,14 @@ import DataTablePage from '@/components/DataTablePage.vue'
import {
getEvalList,
deleteEval,
getDimensionList,
deleteDimension,
} from '@/api/modules/eval'
import { DIMENSION_TYPE_MAP } from '@/constants'
import type { EvalTask, Dimension } from '@/types'
import type { EvalTask } from '@/types'
const router = useRouter()
const activeTab = ref('tasks')
const evalLoading = ref(false)
const evalList = ref<EvalTask[]>([])
const dimLoading = ref(false)
const dimensionList = ref<Dimension[]>([])
// 排行榜(原项目为 mock 数据)
const leaderboard = ref([
@@ -38,17 +33,6 @@ async function loadEvalList() {
}
}
async function loadDimensions() {
dimLoading.value = true
try {
dimensionList.value = (await getDimensionList()) || []
} catch {
dimensionList.value = []
} finally {
dimLoading.value = false
}
}
async function handleDeleteEval(row: any) {
await ElMessageBox.confirm('确定要删除这个评测任务吗?', '确认删除', { type: 'warning' })
await deleteEval(row.id)
@@ -56,17 +40,6 @@ async function handleDeleteEval(row: any) {
loadEvalList()
}
async function handleDeleteDimension(row: any) {
await ElMessageBox.confirm('确定要删除这个评测维度吗?', '确认删除', { type: 'warning' })
await deleteDimension(row.id)
ElMessage.success('删除成功')
loadDimensions()
}
function editDimension(row: any) {
router.push(`/model-eval/dimension/${row.id}/edit`)
}
function handleCreateClick() {
router.push('/model-eval/create')
}
@@ -81,7 +54,6 @@ function handleViewDetail(row: any) {
onMounted(() => {
loadEvalList()
loadDimensions()
})
</script>
@@ -103,7 +75,6 @@ onMounted(() => {
<div class="capsule-tabs">
<button class="capsule-tab-item" :class="{ active: isActiveTab('tasks') }" @click="activeTab = 'tasks'">评测任务</button>
<button class="capsule-tab-item" :class="{ active: isActiveTab('leaderboard') }" @click="activeTab = 'leaderboard'">排行榜</button>
<button class="capsule-tab-item" :class="{ active: isActiveTab('dimensions') }" @click="activeTab = 'dimensions'">评测维度</button>
</div>
</template>
<template #columns>
@@ -136,7 +107,6 @@ onMounted(() => {
<div class="capsule-tabs">
<button class="capsule-tab-item" :class="{ active: isActiveTab('tasks') }" @click="activeTab = 'tasks'">评测任务</button>
<button class="capsule-tab-item" :class="{ active: isActiveTab('leaderboard') }" @click="activeTab = 'leaderboard'">排行榜</button>
<button class="capsule-tab-item" :class="{ active: isActiveTab('dimensions') }" @click="activeTab = 'dimensions'">评测维度</button>
</div>
</template>
<template #columns>
@@ -146,43 +116,6 @@ onMounted(() => {
</template>
</DataTablePage>
<!-- 评测维度 -->
<DataTablePage
v-if="activeTab === 'dimensions'"
title=""
:data="dimensionList"
:loading="dimLoading"
:delete-fn="handleDeleteDimension"
row-key="id"
@refresh="loadDimensions"
>
<template #title>
<div class="capsule-tabs">
<button class="capsule-tab-item" :class="{ active: isActiveTab('tasks') }" @click="activeTab = 'tasks'">评测任务</button>
<button class="capsule-tab-item" :class="{ active: isActiveTab('leaderboard') }" @click="activeTab = 'leaderboard'">排行榜</button>
<button class="capsule-tab-item" :class="{ active: isActiveTab('dimensions') }" @click="activeTab = 'dimensions'">评测维度</button>
</div>
</template>
<template #columns>
<el-table-column label="维度名称" prop="name" align="center" />
<el-table-column label="类型" align="center" width="160">
<template #default="{ row }">
{{ DIMENSION_TYPE_MAP[row.type] || row.type }}
</template>
</el-table-column>
<el-table-column label="描述" prop="description" show-overflow-tooltip align="center" />
<el-table-column label="状态" align="center" width="100">
<template #default="{ row }">
<el-tag v-if="row.is_active" type="success" size="small">启用</el-tag>
<el-tag v-else type="info" size="small">禁用</el-tag>
</template>
</el-table-column>
</template>
<template #actions="{ row }">
<el-button link type="primary" size="small" @click="editDimension(row)">编辑</el-button>
<el-button link type="danger" size="small" @click="handleDeleteDimension(row)">删除</el-button>
</template>
</DataTablePage>
</div>
</template>