From 8b96705e839dfd751a595611071cb1c8525dd645 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 10 六月 2026 13:30:35 +0800
Subject: [PATCH] feat:标签打印字体和位置需要调整

---
 src/views/salesManagement/salesLedger/components/salesLabelPrint.js |   71 ++++++++++++++++++++++++-----------
 1 files changed, 49 insertions(+), 22 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/components/salesLabelPrint.js b/src/views/salesManagement/salesLedger/components/salesLabelPrint.js
index be2c8dc..e2578dd 100644
--- a/src/views/salesManagement/salesLedger/components/salesLabelPrint.js
+++ b/src/views/salesManagement/salesLedger/components/salesLabelPrint.js
@@ -37,15 +37,41 @@
   return String(value ?? "").trim();
 };
 
-const renderLabelCard = (item) => `
-  <div class="label-card">
-    <div class="line customer">${escapeHtml(item?.customerName)}</div>
-    <div class="line order">${escapeHtml(item?.salesContractNo)}</div>
-    <div class="line model">${escapeHtml(buildMainSpec(item))}</div>
-    <div class="line spec">${escapeHtml(buildDetailSpec(item))}</div>
-    <div class="line address">${escapeHtml(item?.floorCode)}</div>
-  </div>
-`;
+// 鏍规嵁鏂囨湰闀垮害鍔ㄦ�佽绠楀瓧浣撳ぇ灏�
+const getFontSize = (text, baseSize, maxWidthChars) => {
+  const len = String(text ?? "").length;
+  if (len <= maxWidthChars) return baseSize;
+  // 瓒呴暱鏂囨湰鎸夋瘮渚嬬缉灏�
+  const scale = maxWidthChars / len;
+  const minSize = baseSize * 0.7; // 鏈�灏忎笉浣庝簬鍩虹澶у皬鐨�70%
+  const calculatedSize = baseSize * scale;
+  return Math.max(calculatedSize, minSize);
+};
+
+const renderLabelCard = (item) => {
+  const customer = escapeHtml(item?.customerName);
+  const order = escapeHtml(item?.salesContractNo);
+  const model = escapeHtml(buildMainSpec(item));
+  const spec = escapeHtml(buildDetailSpec(item));
+  const address = escapeHtml(item?.floorCode);
+
+  // 鍔ㄦ�佽绠楀瓧浣撳ぇ灏忥紙鍩轰簬50mm瀹藉害锛岀害20-25涓瓧绗︿负姝e父鏄剧ず鑼冨洿锛�
+  const customerSize = getFontSize(customer, 4.2, 18);
+  const orderSize = getFontSize(order, 4.6, 16);
+  const modelSize = getFontSize(model, 4.0, 22);
+  const specSize = getFontSize(spec, 3.8, 28);
+  const addressSize = getFontSize(address, 3.5, 24);
+
+  return `
+    <div class="label-card">
+      <div class="line customer" style="font-size: ${customerSize}mm;">${customer}</div>
+      <div class="line order" style="font-size: ${orderSize}mm;">${order}</div>
+      <div class="line model" style="font-size: ${modelSize}mm;">${model}</div>
+      <div class="line spec" style="font-size: ${specSize}mm;">${spec}</div>
+      <div class="line address" style="font-size: ${addressSize}mm;">${address}</div>
+    </div>
+  `;
+};
 
 export const printSalesLabel = (rawList = []) => {
   const list = Array.isArray(rawList) ? rawList : [];
@@ -95,37 +121,38 @@
       .label-card {
         border: 0;
         border-radius: 0;
-        padding: 2.2mm 2.8mm;
+        padding: 2.2mm 2.5mm;
         width: 50mm;
         height: 40mm;
         box-sizing: border-box;
-        display: grid;
-        grid-template-rows: auto auto auto auto 1fr;
-        row-gap: 1mm;
+        display: flex;
+        flex-direction: column;
+        justify-content: flex-start;
+        overflow: hidden;
       }
       .line {
         font-weight: 700;
-        line-height: 1.15;
+        line-height: 1.2;
         word-break: break-all;
         margin: 0;
+        white-space: nowrap;
+        overflow: hidden;
+        text-overflow: clip;
       }
       .customer {
-        font-size: 4.2mm;
+        /* 鍩虹 4.2mm锛屽姩鎬佽皟鏁� */
       }
       .order {
-        font-size: 4.6mm;
-        letter-spacing: 0;
+        /* 鍩虹 4.6mm锛屽姩鎬佽皟鏁� */
       }
       .model {
-        font-size: 4.3mm;
-        letter-spacing: 0;
+        /* 鍩虹 4.0mm锛屽姩鎬佽皟鏁� */
       }
       .spec {
-        font-size: 4.9mm;
-        letter-spacing: 0;
+        /* 鍩虹 3.8mm锛屽姩鎬佽皟鏁� */
       }
       .address {
-        font-size: 3.7mm;
+        /* 鍩虹 3.5mm锛屽姩鎬佽皟鏁� */
       }
       @media print {
         @page {

--
Gitblit v1.9.3