Explorar el Código

链科云打印A4模板调整

ouyang hace 3 semanas
padre
commit
546382a367
Se han modificado 1 ficheros con 114 adiciones y 89 borrados
  1. 114 89
      common/templates/delivery-slip-a4.php

+ 114 - 89
common/templates/delivery-slip-a4.php

@@ -1,6 +1,6 @@
 <?php
 /**
- * A4 鲜花配送单 HTML 模板(链科云打印)
+ * A4 鲜花配送单 HTML 模板(链科云打印,HTML 直打
  *
  * @var array $data
  */
@@ -15,8 +15,8 @@ $escape = function ($value) {
     <title><?= $escape($data['title'] ?? '鲜花配送单') ?></title>
     <style>
         @page {
-            size: A4;
-            margin: 12mm;
+            size: A4 portrait;
+            margin: 10mm;
         }
         * {
             margin: 0;
@@ -25,17 +25,26 @@ $escape = function ($value) {
             font-family: "SimSun", "宋体", serif;
         }
         body {
-            padding: 30px;
+            margin: 0;
+            padding: 0;
             background: #ffffff;
         }
+        /* 外层 table 居中:兼容 Windows 打印 HTML 时 margin:auto 失效 */
+        .page-center {
+            width: 100%;
+            border: 0;
+            border-collapse: collapse;
+        }
         .delivery-wrap {
-            width: 1000px;
+            width: 190mm;
+            max-width: 100%;
             margin: 0 auto;
             position: relative;
+            text-align: left;
         }
         .header-top {
             text-align: center;
-            padding: 15px 0;
+            padding: 4mm 0;
             position: relative;
         }
         .title {
@@ -45,30 +54,30 @@ $escape = function ($value) {
         .order-no {
             position: absolute;
             right: 0;
-            top: 15px;
+            top: 4mm;
             font-size: 22px;
         }
-        table {
+        table.sheet {
             width: 100%;
             border-collapse: collapse;
         }
-        td {
-            padding: 16px 20px;
+        table.sheet td {
+            padding: 4mm 5mm;
             vertical-align: top;
             font-size: 24px;
             border: 1px solid #000;
             background: transparent;
         }
-        td:first-child {
-            width: 160px;
+        table.sheet td:first-child {
+            width: 36mm;
             font-weight: bold;
         }
         tr.time-row td,
         tr.card-row td,
         tr.name-row td,
         tr.addr-row td {
-            padding-top: 32px;
-            padding-bottom: 32px;
+            padding-top: 8mm;
+            padding-bottom: 8mm;
         }
         tr.addr-row td:last-child {
             text-align: left;
@@ -79,7 +88,7 @@ $escape = function ($value) {
         }
         .addr-distance {
             display: block;
-            margin-top: 24px;
+            margin-top: 6mm;
             line-height: 1.5;
         }
         .goods-label {
@@ -88,28 +97,28 @@ $escape = function ($value) {
         }
         .circle-num {
             position: absolute;
-            right: 60px;
-            top: 140px;
-            width: 220px;
-            height: 220px;
+            right: 12mm;
+            top: 32mm;
+            width: 52mm;
+            height: 52mm;
             border: 3px solid #000;
             border-radius: 50%;
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            font-size: 120px;
+            text-align: center;
+            line-height: 52mm;
+            font-size: 28mm;
             font-weight: bold;
             z-index: 10;
             background: #fff;
         }
         .goods-row {
-            display: flex;
-            gap: 20px;
-            align-items: flex-start;
+            display: block;
+            overflow: hidden;
         }
         .goods-img {
-            width: 220px;
-            height: 260px;
+            float: left;
+            width: 52mm;
+            height: 62mm;
+            margin-right: 5mm;
             background: #eee;
         }
         .goods-img img {
@@ -118,12 +127,13 @@ $escape = function ($value) {
             object-fit: cover;
         }
         .goods-text {
-            padding-top: 10px;
+            padding-top: 2mm;
+            overflow: hidden;
         }
         .goods-name {
             font-size: 24px;
             font-weight: bold;
-            margin-bottom: 12px;
+            margin-bottom: 3mm;
         }
         .goods-count {
             font-weight: bold;
@@ -132,75 +142,90 @@ $escape = function ($value) {
             font-size: 48px;
         }
         .bottom-tip {
-            padding: 20px 0 0;
+            padding: 5mm 0 0;
             text-align: center;
             font-size: 23px;
             font-weight: bold;
         }
+        @media print {
+            body {
+                padding: 0;
+                margin: 0;
+            }
+            .delivery-wrap {
+                width: 190mm;
+                margin: 0 auto;
+            }
+        }
     </style>
 </head>
 <body>
-    <div class="delivery-wrap">
-        <?php if (!empty($data['sendNum'])): ?>
-        <div class="circle-num"><?= $escape($data['sendNum']) ?></div>
-        <?php endif; ?>
+<table class="page-center" cellpadding="0" cellspacing="0" border="0">
+    <tr>
+        <td align="center" valign="top">
+            <div class="delivery-wrap">
+                <?php if (!empty($data['sendNum'])): ?>
+                <div class="circle-num"><?= $escape($data['sendNum']) ?></div>
+                <?php endif; ?>
 
-        <div class="header-top">
-            <div class="title"><?= $escape($data['title'] ?? '鲜花配送单') ?></div>
-            <div class="order-no">[<?= $escape($data['sendNum'] ?? '') ?>]</div>
-        </div>
+                <div class="header-top">
+                    <div class="title"><?= $escape($data['title'] ?? '鲜花配送单') ?></div>
+                    <div class="order-no"><?= $escape($data['batchNo'] ?? '') ?></div>
+                </div>
 
-        <table>
-            <tr class="name-row">
-                <td>顾客姓名</td>
-                <td><?= $escape($data['receiveUserName'] ?? '') ?></td>
-                <td>顾客电话</td>
-                <td><strong><?= $escape($data['receiveMobile'] ?? '') ?></strong></td>
-            </tr>
-            <tr class="addr-row">
-                <td>顾客地址</td>
-                <td colspan="3">
-                    <span class="addr-block"><strong><?= $escape($data['fullAddress'] ?? '') ?></strong></span>
-                    <?php if (!empty($data['distanceText'])): ?>
-                    <span class="addr-distance">配送距离: <?= $escape($data['distanceText']) ?></span>
-                    <?php endif; ?>
-                    <span class="addr-distance">配送距离:直线304米</span>
-                </td>
-            </tr>
-            <tr class="time-row">
-                <td>配送时间</td>
-                <td colspan="3">
-                    <strong><?= $escape($data['reachDateLabel'] ?? '') ?></strong>
-                    <strong><?= $escape($data['reachDateTime'] ?? '') ?></strong>
-                </td>
-            </tr>
-            <tr>
-                <td class="goods-label">商品描述<br>参考照片</td>
-                <td colspan="3">
-                    <div class="goods-row">
-                        <div class="goods-img">
-                            <?php if (!empty($data['productImage'])): ?>
-                            <img src="<?= $escape($data['productImage']) ?>" alt="<?= $escape($data['productName'] ?? '商品图') ?>">
+                <table class="sheet">
+                    <tr class="name-row">
+                        <td>顾客姓名</td>
+                        <td><?= $escape($data['receiveUserName'] ?? '') ?></td>
+                        <td>顾客电话</td>
+                        <td><strong><?= $escape($data['receiveMobile'] ?? '') ?></strong></td>
+                    </tr>
+                    <tr class="addr-row">
+                        <td>顾客地址</td>
+                        <td colspan="3">
+                            <span class="addr-block"><strong><?= $escape($data['fullAddress'] ?? '') ?></strong></span>
+                            <?php if (!empty($data['distanceText'])): ?>
+                            <span class="addr-distance">配送距离: <?= $escape($data['distanceText']) ?></span>
                             <?php endif; ?>
-                        </div>
-                        <div class="goods-text">
-                            <div class="goods-name"><?= $escape($data['productName'] ?? '') ?></div>
-                            <div class="goods-count">共 <span class="num"><?= $escape($data['productCount'] ?? '1') ?></span> 个</div>
-                        </div>
-                    </div>
-                </td>
-            </tr>
-            <tr class="card-row">
-                <td>贺卡内容</td>
-                <td colspan="3"><?= nl2br($escape($data['cardInfo'] ?? '')) ?></td>
-            </tr>
-        </table>
+                        </td>
+                    </tr>
+                    <tr class="time-row">
+                        <td>配送时间</td>
+                        <td colspan="3">
+                            <strong><?= $escape($data['reachDateLabel'] ?? '') ?></strong>
+                            <strong><?= $escape($data['reachDateTime'] ?? '') ?></strong>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="goods-label">商品描述<br>参考照片</td>
+                        <td colspan="3">
+                            <div class="goods-row">
+                                <div class="goods-img">
+                                    <?php if (!empty($data['productImage'])): ?>
+                                    <img src="<?= $escape($data['productImage']) ?>" alt="<?= $escape($data['productName'] ?? '商品图') ?>">
+                                    <?php endif; ?>
+                                </div>
+                                <div class="goods-text">
+                                    <div class="goods-name"><?= $escape($data['productName'] ?? '') ?></div>
+                                    <div class="goods-count">共 <span class="num"><?= $escape($data['productCount'] ?? '1') ?></span> 个</div>
+                                </div>
+                            </div>
+                        </td>
+                    </tr>
+                    <tr class="card-row">
+                        <td>贺卡内容</td>
+                        <td colspan="3"><?= nl2br($escape($data['cardInfo'] ?? '')) ?></td>
+                    </tr>
+                </table>
 
-        <?php if (!empty($data['servicePhone'])): ?>
-        <div class="bottom-tip">
-            如在制作,配送环节出现问题或疑问,欢迎随时致电: <?= $escape($data['servicePhone']) ?>
-        </div>
-        <?php endif; ?>
-    </div>
+                <?php if (!empty($data['servicePhone'])): ?>
+                <div class="bottom-tip">
+                    如在制作,配送环节出现问题或疑问,欢迎随时致电: <?= $escape($data['servicePhone']) ?>
+                </div>
+                <?php endif; ?>
+            </div>
+        </td>
+    </tr>
+</table>
 </body>
 </html>