feat(admin): 导入结果提示区分「忽略非参赛选手」条数(R32)

- onExcelImport 读取 result.ignored 并在成功提示中单列展示
- 控制台 console.info 输出 ignoredBy 身份明细(报名人/指导教师/领队)
- 仅账号导入这一处;客观题导入提示未动
This commit is contained in:
2026-09-29 09:40:51 +08:00
parent 2ca82d0da3
commit cb672b621a

View File

@@ -1737,12 +1737,17 @@ async function onExcelImport(file) {
const result = await adminApi.importExcel(formData) const result = await adminApi.importExcel(formData)
const imported = (result && result.imported) || 0 const imported = (result && result.imported) || 0
const skipped = (result && result.skipped) || 0 const skipped = (result && result.skipped) || 0
// 非参赛选手行(报名人/指导教师/领队)按业务规则主动忽略,与「跳过」分开计数并展示
const ignored = (result && result.ignored) || 0
if (ignored && result.ignoredBy) {
console.info('按身份忽略明细:', result.ignoredBy)
}
if (imported === 0 && skipped > 0) { if (imported === 0 && skipped > 0) {
const detail = ((result && result.errors) || []).slice(0, 3) const detail = ((result && result.errors) || []).slice(0, 3)
.map(e => `第${e.row}行:${e.message}`).join(';') .map(e => `第${e.row}行:${e.message}`).join(';')
ElMessage.warning(`导入完成但 0 条成功、跳过 ${skipped} 条。原因:${detail || '见控制台'}`) ElMessage.warning(`导入完成但 0 条成功、跳过 ${skipped} 条。原因:${detail || '见控制台'}`)
} else { } else {
ElMessage.success(`Excel 导入成功:成功 ${imported} 条${importAsTest.value ? '(已标记为测试数据)' : ''}${skipped ? `,跳过 ${skipped} 条` : ''}`) ElMessage.success(`Excel 导入成功:成功 ${imported} 条${importAsTest.value ? '(已标记为测试数据)' : ''}${skipped ? `,跳过 ${skipped} 条` : ''}${ignored ? `,忽略非参赛选手 ${ignored} 条` : ''}`)
} }
accountsPage.value = 1 accountsPage.value = 1
fetchAccounts() fetchAccounts()