From 46d9a52288d5c36985435e775a8433df4e12000b Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 16 Jul 2025 14:27:59 +0800
Subject: [PATCH] feat(mall): 添加自定义打印功能并优化订单相关接口

---
 src/main/resources/templates/febs/views/modules/clothesType/orderList.html |   68 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 0 deletions(-)

diff --git a/src/main/resources/templates/febs/views/modules/clothesType/orderList.html b/src/main/resources/templates/febs/views/modules/clothesType/orderList.html
index d5a50f8..a498a93 100644
--- a/src/main/resources/templates/febs/views/modules/clothesType/orderList.html
+++ b/src/main/resources/templates/febs/views/modules/clothesType/orderList.html
@@ -100,6 +100,7 @@
 </script>
 <script type="text/html" id="tableToolBarClothesOrder">
     <div class="layui-btn-container">
+        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="printSelect">自定义打印</button>
         <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="deliverGoods">发货</button>
         <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="updateDeliver">修改物流信息</button>
         <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="refundOrder">仅退款</button>
@@ -150,6 +151,28 @@
             var layEvent = obj.event;
             var id = obj.config.id;
             var checkStatus = table.checkStatus(id);
+            if(layEvent === 'printSelect'){
+                let data = checkStatus.data;
+                if (data.length > 1) {
+                    febs.alert.warn('每次只能操作一个订单');
+                    return;
+                }
+                let ids = "";
+                for(let i = 0;i < data.length;i++){
+                    console.log(data[i].status);
+                    if(data[i].status != 2){
+                        febs.alert.warn('请选择待发货的订单');
+                        return;
+                    }else{
+                        ids = data[i].id;
+                    }
+                }
+                if(ids == null || ids == ""){
+                    febs.alert.warn('请选择订单');
+                    return;
+                }
+                printSelect(data)
+            }
 
             if (layEvent === 'deliverGoods') {
                 let data = checkStatus.data;
@@ -282,6 +305,51 @@
 
         });
 
+
+        /*
+         * [自定义打印选中行数据]
+         * @param  {[type]}  allData [传入选中行]
+         */
+        function printSelect(allData) {
+            //用于包含内容
+            var v = document.createElement("div");
+            //页面头部,导入css  ,media="print"表示打印时使用该样式
+            var f = ["<head>", "<style>", "div{font-size:8px;}", ".main{width:100%;}",
+                ".main div{width:100%;display:inline-block;}", "</style>", "</head>"
+            ].join("");
+            var contentHtml = "";
+            for (let i = 0; i < allData.length; i++) {
+                let data = allData[i]
+                var template =
+                    "<div class='main'>" +
+                    "<table cellspacing=\"0\" width=\"100%\" style=\"border-collapse: separate; border-spacing: 0px;\">" +
+                    "<tr>" +
+                    "<td style='width: 50%;'>" +
+                    "<img src='" + data.img + "' style='width: 100%;'/>" +
+                    "</td>" +
+                    "<td style='width: 50%;'>" +
+                    "<img src='" + data.img + "' style='width: 100%;'/>" +
+                    "</td>" +
+                    "</tr>" +
+                    "</table>" +
+                    "<div style='text-align: center;font-size: 10px;font-weight: bold;margin-bottom: 10px'>订单编号:" + data.orderNo + "</div>" +
+                    "</div>"
+
+                contentHtml += template;
+            }
+
+            //contentHtml为已拼凑好的内容
+            $(v).append(contentHtml)
+            //新建窗口
+            var h = window.open("打印窗口", "_blank");
+            //写入拼凑内容
+            h.document.write(f + $(v).prop("outerHTML"));
+            //调用打印
+            h.print();
+            //关闭页面
+            h.close();
+        }
+
         function refundOrder(id) {
             febs.get(ctx + 'admin/clothesType/refundOrder/' + id, null, function () {
                 febs.alert.success('操作成功');

--
Gitblit v1.9.1