feat: auto-sync file list + clear processing cache

- Auto-sync file_relations on every query (files appear immediately)
- Add POST /api/files/reset-cache endpoint to delete output/result
  files and reset status to pending for reprocessing
- Add "清除处理缓存" button to all 3 file views

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-12 22:18:47 +08:00
parent ec8d0d7db6
commit 13ef605481
5 changed files with 144 additions and 1 deletions
+19
View File
@@ -19,6 +19,9 @@
<el-button type="danger" :disabled="!selected.length" @click="batchDelete">
批量删除
</el-button>
<el-button :disabled="!selected.length" @click="resetCache">
清除处理缓存
</el-button>
<input
ref="uploadInput"
type="file"
@@ -287,6 +290,22 @@ async function batchDelete() {
}
}
async function resetCache() {
try {
await ElMessageBox.confirm(`确定清除选中的 ${selected.value.length} 个文件的处理缓存?删除后可重新处理。`, '确认')
const files = selected.value.map(r => ({
input_image: r.input_image,
output_excel: r.output_excel,
result_purchase: r.result_purchase,
}))
const res = await api.post('/files/reset-cache', { files })
ElMessage.success(`已清除 ${res.data.deleted_files} 个缓存文件`)
loadData()
} catch (err: any) {
if (err !== 'cancel') ElMessage.error('清除缓存失败')
}
}
onMounted(loadData)
</script>
+19
View File
@@ -15,6 +15,9 @@
<el-button type="danger" :disabled="!selected.length" @click="batchDelete">
批量删除
</el-button>
<el-button :disabled="!selected.length" @click="resetCache">
清除处理缓存
</el-button>
</div>
</div>
@@ -238,6 +241,22 @@ async function batchDelete() {
}
}
async function resetCache() {
try {
await ElMessageBox.confirm(`确定清除选中的 ${selected.value.length} 个文件的处理缓存?删除后可重新处理。`, '确认')
const files = selected.value.map(r => ({
input_image: r.input_image,
output_excel: r.output_excel,
result_purchase: r.result_purchase,
}))
const res = await api.post('/files/reset-cache', { files })
ElMessage.success(`已清除 ${res.data.deleted_files} 个缓存文件`)
loadData()
} catch (err: any) {
if (err !== 'cancel') ElMessage.error('清除缓存失败')
}
}
onMounted(loadData)
</script>
+19
View File
@@ -13,6 +13,9 @@
<el-button :disabled="!selected.length" @click="batchDelete">
批量删除
</el-button>
<el-button :disabled="!selected.length" @click="resetCache">
清除处理缓存
</el-button>
<el-button type="danger" @click="clearAll">
删除全部
</el-button>
@@ -246,6 +249,22 @@ async function batchDelete() {
}
}
async function resetCache() {
try {
await ElMessageBox.confirm(`确定清除选中的 ${selected.value.length} 个文件的处理缓存?删除后可重新处理。`, '确认')
const files = selected.value.map(r => ({
input_image: r.input_image,
output_excel: r.output_excel,
result_purchase: r.result_purchase,
}))
const res = await api.post('/files/reset-cache', { files })
ElMessage.success(`已清除 ${res.data.deleted_files} 个缓存文件`)
loadData()
} catch (err: any) {
if (err !== 'cancel') ElMessage.error('清除缓存失败')
}
}
async function clearAll() {
try {
await ElMessageBox.confirm('确定清空所有 Excel 处理文件?此操作不可恢复。', '确认')