From 8f83280dac99c01f5ae17546662a1092a363a825 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Mon, 18 May 2026 09:33:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E7=89=87=E7=82=B9=E5=87=BB=E6=94=BE?= =?UTF-8?q?=E5=A4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../longtron/production-work-report.vue | 56 ++++++++++++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/src/views/modules/longtron/production-work-report.vue b/src/views/modules/longtron/production-work-report.vue index d0f6dc4c..0953b9df 100644 --- a/src/views/modules/longtron/production-work-report.vue +++ b/src/views/modules/longtron/production-work-report.vue @@ -254,7 +254,12 @@
- capture-image + capture-image @@ -314,6 +319,14 @@ 关闭
+ +
+ +
@@ -358,7 +371,10 @@ export default { recording: false, recordedChunks: [], captureIndex: 1, - capturedMediaList: [] + capturedMediaList: [], + imagePreviewVisible: false, + imagePreviewUrl: '', + imagePreviewName: '' } }, computed: { @@ -851,6 +867,19 @@ export default { } this.capturedMediaList.splice(index, 1) }, + openImagePreview (item) { + if (!item || !item.previewUrl) { + return + } + this.imagePreviewUrl = item.previewUrl + this.imagePreviewName = item.name || '' + this.imagePreviewVisible = true + }, + closeImagePreview () { + this.imagePreviewVisible = false + this.imagePreviewUrl = '' + this.imagePreviewName = '' + }, resetCapturedMedia () { this.capturedMediaList.forEach(item => { if (item && item.previewUrl) { @@ -858,6 +887,7 @@ export default { } }) this.capturedMediaList = [] + this.closeImagePreview() }, resetRecordingState () { this.mediaRecorder = null @@ -1433,6 +1463,28 @@ export default { background: #000; } +.capture-thumb--image { + cursor: zoom-in; +} + +.image-preview-overlay { + position: fixed; + inset: 0; + z-index: 3000; + background: rgba(0, 0, 0, 0.85); + display: flex; + align-items: center; + justify-content: center; + padding: 24px; +} + +.image-preview-full { + max-width: calc(100vw - 48px); + max-height: calc(100vh - 48px); + object-fit: contain; + cursor: zoom-out; +} + .capture-meta { display: flex; align-items: center;