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:
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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 处理文件?此操作不可恢复。', '确认')
|
||||
|
||||
Reference in New Issue
Block a user