From d9ff374c80f3ed9077eae5136a7edea37668afbf Mon Sep 17 00:00:00 2001
From: zhou zhou <zozhouo3o@gmail.com>
Date: 星期五, 17 四月 2026 09:59:08 +0800
Subject: [PATCH] #条码自定义增加图片

---
 rsf-design/src/views/basic-info/wh-mat/modules/matnr-print-canvas.vue |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/rsf-design/src/views/basic-info/wh-mat/modules/matnr-print-canvas.vue b/rsf-design/src/views/basic-info/wh-mat/modules/matnr-print-canvas.vue
index 9a3f530..378f365 100644
--- a/rsf-design/src/views/basic-info/wh-mat/modules/matnr-print-canvas.vue
+++ b/rsf-design/src/views/basic-info/wh-mat/modules/matnr-print-canvas.vue
@@ -46,6 +46,17 @@
           />
         </div>
 
+        <div v-else-if="element.type === 'image'" class="matnr-print-element__image">
+          <img
+            v-if="element.resolvedSrc"
+            :src="element.resolvedSrc"
+            :style="getImageStyle(element)"
+            alt=""
+            draggable="false"
+          />
+          <div v-else class="matnr-print-element__image-placeholder"></div>
+        </div>
+
         <div
           v-else-if="element.type === 'line'"
           class="matnr-print-element__line"
@@ -234,6 +245,12 @@
       borderRadius: editorMode.value
         ? mmToPx(element.radius || 0, props.scale)
         : `${element.radius || 0}mm`
+    }
+  }
+
+  function getImageStyle(element) {
+    return {
+      objectFit: element.objectFit || 'contain'
     }
   }
 
@@ -459,6 +476,7 @@
   .matnr-print-element__text,
   .matnr-print-element__barcode,
   .matnr-print-element__qrcode,
+  .matnr-print-element__image,
   .matnr-print-element__rect,
   .matnr-print-element__table {
     width: 100%;
@@ -489,6 +507,30 @@
     height: 100%;
   }
 
+  .matnr-print-element__image {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background: rgba(248, 250, 252, 0.6);
+  }
+
+  .matnr-print-element__image img {
+    width: 100%;
+    height: 100%;
+    display: block;
+    user-select: none;
+    pointer-events: none;
+  }
+
+  .matnr-print-element__image-placeholder {
+    width: 100%;
+    height: 100%;
+    border: 1px dashed rgba(148, 163, 184, 0.65);
+    background:
+      linear-gradient(135deg, rgba(226, 232, 240, 0.75), rgba(241, 245, 249, 0.35)),
+      linear-gradient(45deg, rgba(203, 213, 225, 0.35), transparent);
+  }
+
   .matnr-print-element__line {
     position: absolute;
     inset: 0;

--
Gitblit v1.9.1