From 5c63bc8e882563f4ac7fab61bdcb0c31109229ac Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期六, 27 一月 2024 08:32:15 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/PlaController.java |   23 +++++
 src/main/webapp/views/pla/plaDetl.html                  |  106 ++++++++++++++++++++++++++
 src/main/webapp/static/js/pla/plaDetl.js                |   85 +++++++++++++++++++++
 3 files changed, 214 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/PlaController.java b/src/main/java/com/zy/asrs/controller/PlaController.java
index de93414..982f65a 100644
--- a/src/main/java/com/zy/asrs/controller/PlaController.java
+++ b/src/main/java/com/zy/asrs/controller/PlaController.java
@@ -277,6 +277,29 @@
         return R.ok("鎴愬姛鍚屾"+listener.getTotal()+"鏉la鐗╂枡鏁版嵁");
     }
 
+//    // 鎵撳嵃
+//    @RequestMapping(value = "/pla/print/auth")
+//    @ManagerAuth(memo = "pla缂栫爜鎵撳嵃")
+//    public R matCodePrint(@RequestParam(value = "param[]") String[] param) {
+//        if(Cools.isEmpty(param)) {
+//            return R.parse(CodeRes.EMPTY);
+//        }
+//        List<MatPrint> res = new ArrayList<>();
+//        for (String matnr : param){
+//            Mat mat = matService.selectByMatnr(matnr);
+//            // 鎵撳嵃鏁版嵁娉ㄥ叆
+//            MatPrint print = new MatPrint();
+//            print.setMatnr(mat.getMatnr());
+//            print.setBarcode(mat.getBarcode());
+//            print.setMaktx(mat.getMaktx());
+//            print.setSpecs(mat.getSpecs());
+//            print.setUnit(mat.getUnit());
+//            print.setMemo(mat.getMemo());
+//            res.add(print);
+//        }
+//        return R.ok().add(res);
+//    }
+
     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
         for (Map.Entry<String, Object> entry : map.entrySet()){
             String val = String.valueOf(entry.getValue());
diff --git a/src/main/webapp/static/js/pla/plaDetl.js b/src/main/webapp/static/js/pla/plaDetl.js
index ba2eb66..1c8c989 100644
--- a/src/main/webapp/static/js/pla/plaDetl.js
+++ b/src/main/webapp/static/js/pla/plaDetl.js
@@ -7,6 +7,7 @@
 var checkStatus = [];
 var dataCheck = [];
 var admin;
+var printData = [];
 function getCol() {
     var cols = [
         {field: 'id', title: 'id', align: 'center',hide:true}
@@ -227,6 +228,7 @@
     // 鐩戝惉澶村伐鍏锋爮浜嬩欢
     table.on('toolbar(plaDetl)', function (obj) {
         var checkStatus = table.checkStatus(obj.config.id)
+        printData = checkStatus;
         switch(obj.event) {
             case 'updateData':
                 var data = checkStatus.data;
@@ -365,9 +367,92 @@
                     });
                 }
                 break;
+            // 鎵归噺鎵撳嵃
+            case "btnPrintBatch":
+                printMatCodeNos = [];
+                var data = checkStatus.data;
+                if (data.length === 0){
+                    layer.msg('璇烽�夋嫨鎵撳嵃鏁版嵁');
+                } else {
+                    layer.open({
+                        type: 1,
+                        title: '鎵归噺鎵撳嵃 [鏁伴噺'+ data.length +']',
+                        area: ['500px'],
+                        shadeClose: true,
+                        content: $('#printDataDiv'),
+                        success: function(layero, index){
+                            for (var i = 0; i<data.length;i++) {
+                                printMatCodeNos.push(data[i].matnr);
+                            }
+                        },
+                        end: function () {
+                        }
+                    });
+                }
+                break;
         }
     })
 
+    // 妯℃澘閫夋嫨
+    form.on('radio(selectTemplateRadio)', function (data) {
+        $('.template-preview').hide();
+        $('#template-preview-'+data.value).show();
+    });
+
+    // 寮�濮嬫墦鍗�
+    form.on('submit(doPrint)', function (data) {
+        var templateNo = data.field.selectTemplate;
+        var templateDom = $("#templatePreview"+templateNo);
+        var className = templateDom.attr("class");
+        layer.closeAll();
+        for (let i=0;i<printData.length;i++){
+            if (className === 'template-barcode') {
+                printData[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=1&param="+(printData[i].batch+";"+printData[i].packageNo)
+            } else {
+                res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2&param="+(printData[i].batch+";"+printData[i].packageNo)
+            }
+        }
+        var tpl = templateDom.html();
+        var template = Handlebars.compile(tpl);
+        var html = template(printData);
+        var box = $("#box");
+        box.html(html);box.show();
+        box.print({mediaPrint:true});
+        box.hide();
+        // $.ajax({
+        //     url: baseUrl+"/pla/print/auth",
+        //     headers: {'token': localStorage.getItem('token')},
+        //     data: {param: printMatCodeNos},
+        //     method: 'POST',
+        //     async: false,
+        //     success: function (res) {
+        //         if (res.code === 200){
+        //             layer.closeAll();
+        //             for (let i=0;i<res.data.length;i++){
+        //                 var templateDom = $("#templatePreview"+templateNo);
+        //                 var className = templateDom.attr("class");
+        //                 if (className === 'template-barcode') {
+        //                     res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=1&param="+res.data[i].matnr;
+        //                 } else {
+        //                     res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2&param="+res.data[i].matnr;
+        //                 }
+        //             }
+        //             var tpl = templateDom.html();
+        //             var template = Handlebars.compile(tpl);
+        //             var html = template(res);
+        //             var box = $("#box");
+        //             box.html(html);box.show();
+        //             box.print({mediaPrint:true});
+        //             box.hide();
+        //         } else if (res.code === 403){
+        //             top.location.href = baseUrl+"/";
+        //         }else {
+        //             layer.msg(res.msg)
+        //         }
+        //     }
+        // })
+    });
+
     // 鎼滅储鏍忔悳绱簨浠�
     form.on('submit(search)', function (data) {
         pageCurr = 1;
diff --git a/src/main/webapp/views/pla/plaDetl.html b/src/main/webapp/views/pla/plaDetl.html
index d765b25..33e2da4 100644
--- a/src/main/webapp/views/pla/plaDetl.html
+++ b/src/main/webapp/views/pla/plaDetl.html
@@ -106,6 +106,17 @@
             position: fixed;
             z-index: 999;
         }
+        /* ------------------------- 鎵撳嵃琛ㄦ牸 -----------------------  */
+        .template-preview {
+            height: 200px;
+            display: inline-block;
+        }
+        .contain td {
+            border: 1px solid #000;
+            /*font-family: 榛戜綋;*/
+            /*font-weight: bold;*/
+            /*color: #000000;*/
+        }
     </style>
 </head>
 <body style="padding-bottom: 30px">
@@ -223,6 +234,7 @@
         <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-viladate" lay-event="viladate" style="display: none">鏍¢獙</button>
         <button class="layui-btn layui-btn-sm layui-btn-danger " id="btn-freeze" lay-event="freezeData" style="display: none">鍐荤粨</button>
         <button class="layui-btn layui-btn-sm layui-btn-checked " id="btn-disfreeze" lay-event="disFreezeData" style="display: none">瑙e喕</button>
+        <button class="layui-btn layui-btn-sm layui-btn-checked " id="btn-printBatch" lay-event="btnPrintBatch" >鎵归噺鎵撳嵃</button>
         <!-- 鍟嗗搧/鐗╂枡 鏁版嵁涓績 -->
         <div class="dropdown-menu" style="float: right">
             <button id="syncData" style="display: none;" class="layui-btn layui-btn-primary layui-border-black icon-btn layui-btn-sm">&nbsp;鏁版嵁鍚屾 <i class="layui-icon layui-icon-drop"></i></button>
@@ -268,6 +280,100 @@
 <script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
 <script type="text/javascript" src="../../static/js/pla/plaDetl.js" charset="utf-8"></script>
 
+<!-- 鎵撳嵃鎿嶄綔寮圭獥 -->
+<div id="printDataDiv" style="display: none;padding: 20px">
+    <div class="layui-form" style="text-align: center">
+        <hr>
+        <!--鍗曢�夋-->
+        <div class="layui-form-item" style="display: inline-block; margin-bottom: 10px">
+            <input type="radio" name="selectTemplate" value="1" title="妯℃澘涓�"  lay-filter="selectTemplateRadio" checked="">
+        </div>
+        <fieldset class="layui-elem-field site-demo-button" style="margin-top: 30px;text-align: center;">
+            <legend>鎵撳嵃棰勮</legend>
+            <div id="template-container" style="margin: 20px;text-align: center">
+                <!-- 棰勮鍥� 3 -->
+                <div id="template-preview-1" class="template-preview" style="display: block">
+                    <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
+                        <tr style="height: 74px">
+                            <td align="center" scope="col" colspan="1">鐗屽彿</td>
+                            <td align="center" scope="col" colspan="1" style="">xxxxxx-xx/xx</td>
+                            <td align="center" scope="col" colspan="2" rowspan="2">
+                                <img class="template-code template-qrcode" src="" width="80%">
+                                <div style="letter-spacing: 1px;margin-top: 1px; text-align: center">
+                                    <span>xxxxxx</span>
+                                </div>
+                            </td>
+                        </tr>
+                        <tr style="height: 74px">
+                            <td align="center" colspan="1">閲嶉噺</td>
+                            <td align="center" colspan="1" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">xxxxxxx</td>
+                        </tr>
+                        <tr style="height: 74px">
+                            <td align="center" colspan="1">鎵瑰彿</td>
+                            <td align="center" colspan="1" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">xxxxxxx</td>
+                            <td align="center" colspan="1">鍖呭彿</td>
+                            <td align="center" colspan="1" style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">xxxxxxx</td>
+                        </tr>
+                    </table>
+                </div>
+            </div>
+        </fieldset>
+
+        <button class="layui-btn" id="doPrint" lay-submit lay-filter="doPrint" style="margin-top: 20px">纭畾</button>
+    </div>
+</div>
+
+<div id="box" style="display: block"></div>
+
+<!-- 鍒濆鍖栨墦鍗版ā鏉跨殑鏉″舰鐮� -->
+<script type="text/javascript">
+    $('.template-barcode').attr("src", baseUrl+"/mac/code/auth?type=1&param=123");
+    $('.template-qrcode').attr("src", baseUrl+"/mac/code/auth?type=2&param=123");
+</script>
+
+<!-- 妯℃澘寮曟搸 -->
+<!-- 妯℃澘3 -->
+<script type="text/template" id="templatePreview1" class="template-qrcode">
+    {{#each data}}
+    <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;">
+        <tr style="height: 74px" >
+            <td align="center" scope="col" colspan="1" style="font-weight: bold;"><strong style="font-weight: bold;color: black;">鐗屽彿</strong></td>
+            <td align="center" scope="col" colspan="1" style="
+                font-weight: bold;
+                display: inline-block;
+                line-height: 20px;
+                vertical-align: middle;
+                border: none;
+                border-top: 1px solid #000;
+                overflow: hidden;
+                text-overflow: ellipsis;
+                display: -webkit-box;
+                -webkit-line-clamp: 3;
+                -webkit-box-orient: vertical;
+                    ">
+                <strong style="font-weight: bold;color: black;">{{this.brand}}</strong>
+            </td>
+            <td align="center" scope="col" colspan="2" rowspan="2">
+                <img class="template-code template-qrcode" src="{{this.barcodeUrl}}" width="80%">
+                <div style="letter-spacing: 1px;margin-top: 1px; text-align: center">
+                    <span style="font-weight: bold;color: black;"><strong style="font-weight: bold;color: black;">{{this.brand}}</strong></span>
+                </div>
+            </td>
+        </tr>
+        <tr style="height: 74px">
+            <td align="center" colspan="1" style="font-weight: bold;color: black;"><strong style="font-weight: bold;color: black;">閲嶉噺</strong></td>
+            <td align="center" colspan="1" style="font-weight: bold;color: black;overflow:hidden; white-space:nowrap; text-overflow:ellipsis;"><strong style="font-weight: bold;color: black;">{{this.weightAnfme}}</strong></td>
+        </tr>
+        <tr style="height: 74px">
+            <td align="center" colspan="1" style="font-weight: bold;color: black;"><strong style="font-weight: bold;color: black;">鎵瑰彿</strong></td>
+            <td align="center" colspan="1" style="font-weight: bold;color: black;overflow:hidden; white-space:nowrap; text-overflow:ellipsis;"><strong style="font-weight: bold;color: black;">{{this.batch}}</strong></td>
+            <td align="center" colspan="1" style="font-weight: bold;color: black;"><strong style="font-weight: bold;color: black;">鍖呭彿</strong></td>
+            <td align="center" colspan="1" style="font-weight: bold;color: black;overflow:hidden; white-space:nowrap; text-overflow:ellipsis;"><strong style="font-weight: bold;color: black;">{{this.packageNo}}</strong></td>
+        </tr>
+    </table>
+    {{/each}}
+</script>
+
 </body>
 </html>
 

--
Gitblit v1.9.1