From d4b23790a10ba328b83701dd3ed75850a77b587c Mon Sep 17 00:00:00 2001 From: dxc Date: Mon, 9 Feb 2026 17:15:50 +0800 Subject: [PATCH] fix: only close camera dialog on successful upload Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) --- inventory-web/src/views/material/list.vue | 6 +++++- inventory-web/src/views/stock/inbound/buy.vue | 6 +++++- inventory-web/src/views/stock/inbound/product.vue | 6 +++++- inventory-web/src/views/stock/inbound/semi.vue | 6 +++++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/inventory-web/src/views/material/list.vue b/inventory-web/src/views/material/list.vue index 1e93160..810a301 100644 --- a/inventory-web/src/views/material/list.vue +++ b/inventory-web/src/views/material/list.vue @@ -758,6 +758,7 @@ const handleCameraConfirm = async (file: File) => { const formData = new FormData(); formData.append('file', file); const loadingMsg = ElMessage.loading({ message: '照片上传中...', duration: 0 }); + let success = false; try { const res: any = await uploadFile(formData); if (res.code === 200) { @@ -770,6 +771,7 @@ const handleCameraConfirm = async (file: File) => { fileListManual.value.push({ name: newUrl.split('/').pop(), url: getImageUrl(newUrl) }); } ElMessage.success('拍照上传成功'); + success = true; } else { ElMessage.error(res.msg || '上传失败'); } @@ -777,7 +779,9 @@ const handleCameraConfirm = async (file: File) => { ElMessage.error('网络错误,上传失败'); } finally { loadingMsg.close(); - cameraDialogVisible.value = false; + if (success) { + cameraDialogVisible.value = false; + } } }; diff --git a/inventory-web/src/views/stock/inbound/buy.vue b/inventory-web/src/views/stock/inbound/buy.vue index f08ed05..43950bf 100644 --- a/inventory-web/src/views/stock/inbound/buy.vue +++ b/inventory-web/src/views/stock/inbound/buy.vue @@ -798,6 +798,7 @@ const handleCameraConfirm = async (file: File) => { const formData = new FormData(); formData.append('file', file); const loadingMsg = ElMessage.loading({ message: '照片上传中...', duration: 0 }); + let success = false; try { const res: any = await uploadFile(formData); if (res.code === 200) { @@ -810,6 +811,7 @@ const handleCameraConfirm = async (file: File) => { reportFileList.value.push({ name: newUrl.split('/').pop(), url: getImageUrl(newUrl) }); } ElMessage.success('拍照上传成功'); + success = true; } else { ElMessage.error(res.msg || '上传失败'); } @@ -817,7 +819,9 @@ const handleCameraConfirm = async (file: File) => { ElMessage.error('网络错误,上传失败'); } finally { loadingMsg.close(); - cameraDialogVisible.value = false; + if (success) { + cameraDialogVisible.value = false; + } } }; const handleDelete = async (row: any) => { try { await deleteBuyInbound(row.id); ElMessage.success('删除成功'); fetchData() } catch (e) { ElMessage.error('删除失败') } } diff --git a/inventory-web/src/views/stock/inbound/product.vue b/inventory-web/src/views/stock/inbound/product.vue index 5d580e9..ad3419d 100644 --- a/inventory-web/src/views/stock/inbound/product.vue +++ b/inventory-web/src/views/stock/inbound/product.vue @@ -578,6 +578,7 @@ const handleCameraConfirm = async (file: File) => { const formData = new FormData(); formData.append('file', file); const loadingMsg = ElMessage.loading({ message: '上传中...', duration: 0 }); + let success = false; try { const res: any = await uploadFile(formData); if (res.code === 200) { @@ -592,6 +593,7 @@ const handleCameraConfirm = async (file: File) => { inspectionFileList.value.push({ name: newUrl.split('/').pop(), url: getImageUrl(newUrl) }); } ElMessage.success('拍照上传成功'); + success = true; } else { ElMessage.error(res.msg || '上传失败'); } @@ -599,7 +601,9 @@ const handleCameraConfirm = async (file: File) => { ElMessage.error('网络错误'); } finally { loadingMsg.close(); - cameraDialogVisible.value = false; + if (success) { + cameraDialogVisible.value = false; + } } }; const handlePreviewPicture = (uploadFile: any) => { dialogImageUrl.value = uploadFile.url!; dialogVisibleImage.value = true } diff --git a/inventory-web/src/views/stock/inbound/semi.vue b/inventory-web/src/views/stock/inbound/semi.vue index 27069ee..273b3d8 100644 --- a/inventory-web/src/views/stock/inbound/semi.vue +++ b/inventory-web/src/views/stock/inbound/semi.vue @@ -754,6 +754,7 @@ const handleCameraConfirm = async (file: File) => { const formData = new FormData(); formData.append('file', file); const loadingMsg = ElMessage.loading({ message: '照片上传中...', duration: 0 }); + let success = false; try { const res: any = await uploadFile(formData); if (res.code === 200) { @@ -766,6 +767,7 @@ const handleCameraConfirm = async (file: File) => { reportFileList.value.push({ name: newUrl.split('/').pop(), url: getImageUrl(newUrl) }); } ElMessage.success('拍照上传成功'); + success = true; } else { ElMessage.error(res.msg || '上传失败'); } @@ -773,7 +775,9 @@ const handleCameraConfirm = async (file: File) => { ElMessage.error('网络错误,上传失败'); } finally { loadingMsg.close(); - cameraDialogVisible.value = false; + if (success) { + cameraDialogVisible.value = false; + } } };