fix(frontend): 任务列表勾选被3s自动刷新清掉——el-table勾选按行对象身份记,silentRefresh换新数组即丢;row-key=task_id+selection列reserve-selection按ID持久勾选,删除完clearSelection显式清;dev验证:勾选过2轮刷新仍保持且按钮计数正确 [nas]
CI/CD / test (push) Successful in 16s
CI/CD / nas-deploy (push) Successful in 28s
CI/CD / nas-verify (push) Successful in 13s

This commit is contained in:
2026-08-15 20:23:44 +08:00
parent 01184c2b1f
commit 94507f2ad7
+5 -2
View File
@@ -9,6 +9,8 @@ const tasks = ref<TaskListItem[]>([])
const loading = ref(false)
const deleting = ref(false)
const selection = ref<TaskListItem[]>([])
// reserve-selection 后勾选按 row-key 持久;删除完要显式清表内勾选
const tableRef = ref()
// 筛选
const typeFilter = ref<'all' | 'cta' | 'portfolio' | 'optimize' | 'factor'>('all')
@@ -189,6 +191,7 @@ async function doDelete(rows: TaskListItem[]): Promise<void> {
else ElMessage.success(`已删除 ${ids.length} 个任务`)
deleting.value = false
selection.value = []
tableRef.value?.clearSelection()
await load()
}
@@ -249,8 +252,8 @@ function durationText(row: TaskListItem): string {
</div>
<el-card v-loading="loading" class="table-card" shadow="never">
<el-table :data="paged" size="small" empty-text="暂无符合条件的任务" @selection-change="onSelectionChange">
<el-table-column type="selection" width="42" :selectable="isTerminal" />
<el-table ref="tableRef" :data="paged" size="small" row-key="task_id" empty-text="暂无符合条件的任务" @selection-change="onSelectionChange">
<el-table-column type="selection" width="42" :selectable="isTerminal" reserve-selection />
<el-table-column label="任务 ID" min-width="170">
<template #default="{ row }">
<span v-if="canReplay(row)" class="mono task-link" title="点击跳到参数页(预填该任务参数)" @click="replayParams(row)">{{ row.task_id }}</span>