From d907a822a940c7ec0fb7de0ca845472bda52229b Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期二, 03 二月 2026 14:33:12 +0800
Subject: [PATCH] #pda料箱组托和换码

---
 src/main/webapp/views/pakStore/locDetlCheckQuery.html |  272 ++++++++++++++++++++++++++++++-----------------------
 1 files changed, 153 insertions(+), 119 deletions(-)

diff --git a/src/main/webapp/views/pakStore/locDetlCheckQuery.html b/src/main/webapp/views/pakStore/locDetlCheckQuery.html
index 3417b36..9ad375c 100644
--- a/src/main/webapp/views/pakStore/locDetlCheckQuery.html
+++ b/src/main/webapp/views/pakStore/locDetlCheckQuery.html
@@ -7,6 +7,7 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
     <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
     <link rel="stylesheet" href="../../static/css/cool.css" media="all">
     <link rel="stylesheet" href="../../static/css/common.css" media="all">
     <style>
@@ -35,47 +36,73 @@
         #data-search-btn.layui-btn-container .layui-btn {
             margin-right: 20px;
         }
+
     </style>
 </head>
 <body>
 
 <!-- 鎼滅储鏍� -->
 <fieldset class="layui-elem-field site-demo-button" style="margin: 20px;">
-    <legend>鎼滅储鏍�</legend>
+    <legend data-i18n="search_bar">鎼滅储鏍�</legend>
     <!-- 鎼滅储鏍� -->
     <div id="search-box" class="layui-form layui-card-header">
+<!--        <div class="layui-input-inline" style="margin-top: -10px">-->
+<!--            <select id="crnNo" name="crnNo">-->
+<!--                <option value="" style="display: none">璇烽�夋嫨宸烽亾</option>-->
+<!--                <option value="1">1鍙�</option>-->
+<!--                <option value="2">2鍙�</option>-->
+<!--                <option value="3">3鍙�</option>-->
+<!--                <option value="4">4鍙�</option>-->
+<!--            </select>-->
+<!--        </div>-->
         <div class="layui-inline">
-            <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="loc_no" placeholder="搴撲綅鍙�" autocomplete="off">
+            <div class="layui-input-inline cool-auto-complete">
+                <input id="crnNo" class="layui-input" name="crnNo" type="text" data-i18n-placeholder="please_input" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
+                <input id="crnNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" data-i18n-placeholder="crane_no" placeholder="鍫嗗灈鏈哄彿" onfocus=this.blur()>
+                <div class="cool-auto-complete-window">
+                    <input class="cool-auto-complete-window-input" data-key="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                    <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                    </select>
+                </div>
             </div>
         </div>
         <div class="layui-inline">
             <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="matnr" placeholder="鐗╂枡鍙�"  autocomplete="off">
+                <input class="layui-input" type="text" name="loc_no" data-i18n-placeholder="location_no" placeholder="搴撲綅鍙�" autocomplete="off">
             </div>
         </div>
         <div class="layui-inline">
             <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="maktx" placeholder="鐗╂枡鎻忚堪" autocomplete="off">
+                <input class="layui-input" type="text" name="matnr" data-i18n-placeholder="product_code" placeholder="鍟嗗搧缂栧彿"  autocomplete="off">
+            </div>
+        </div>
+        <div class="layui-inline">
+            <div class="layui-input-inline">
+                <input class="layui-input" type="text" name="specs" data-i18n-placeholder="spec" placeholder="瑙勬牸"  autocomplete="off">
+            </div>
+        </div>
+        <div class="layui-inline">
+            <div class="layui-input-inline">
+                <input class="layui-input" type="text" name="maktx" data-i18n-placeholder="material_desc" placeholder="鐗╂枡鎻忚堪" autocomplete="off">
             </div>
         </div>
         <!-- 鏃ユ湡鑼冨洿 -->
         <div class="layui-inline" style="width: 300px">
             <div class="layui-input-inline">
-                <input class="layui-input layui-laydate-range" name="modi_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+                <input class="layui-input layui-laydate-range" id="modi_time" name="modi_time" type="text" data-i18n-placeholder="start_end_time" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
             </div>
         </div>
         <!-- 寰呮坊鍔� -->
         <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
-            <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
-            <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+            <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search" data-i18n="search">鎼滅储</button>
+            <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset" data-i18n="reset">閲嶇疆</button>
         </div>
     </div>
 </fieldset>
 
 <script type="text/html" id="toolbar">
     <div class="layui-btn-container">
-        <button class="layui-btn" id="btn-confirm" lay-event="confirm" style="">鎻愬彇</button>
+        <button class="layui-btn" id="btn-confirm" lay-event="confirm" style="" data-i18n="extract">鎻愬彇</button>
     </div>
 </script>
 
@@ -86,71 +113,129 @@
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/i18n/i18n-helper.js"></script>
 <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
 
 </body>
 <script>
+    var locDetlTableIns;
+    function getCol() {
+        let cols = [
+            {type: 'checkbox', merge: ['locNo']}
+            ,{field: 'locNo', align: 'center',title: typeof I18n !== 'undefined' ? I18n.t('location_no') : '搴撲綅鍙�', merge: true, style: 'font-weight: bold'}
+        ];
+        var dCols = [];
+        if (typeof getDetlCols === 'function') {
+            dCols = getDetlCols();
+        } else {
+            dCols = detlCols.slice();
+        }
+        cols.push.apply(cols, dCols);
+        cols.push({field: 'modiUser$', align: 'center',title: typeof I18n !== 'undefined' ? I18n.t('modifier') : '淇敼浜哄憳', hide: true}
+            ,{field: 'modiTime$', align: 'center',title: typeof I18n !== 'undefined' ? I18n.t('modify_time') : '淇敼鏃堕棿'})
+        return cols;
+    }
 
-    var pageCurr;
-    layui.use(['table','laydate', 'form'], function() {
+    layui.config({
+        base: baseUrl + "/static/layui/lay/modules/"
+    }).use(['table','laydate', 'form', 'admin', 'tableMerge'], function() {
         var table = layui.table;
         var $ = layui.jquery;
         var layer = layui.layer;
         var layDate = layui.laydate;
         var form = layui.form;
-        // 鏁版嵁娓叉煋
-        locDetlTableIns = table.render({
-            elem: '#stockOut',
-            headers: {token: localStorage.getItem('token')},
-            url: baseUrl+'/stock/out/list/auth',
-            page: true,
-            limit: 10,
-            even: true,
-            toolbar: '#toolbar',
-            cellMinWidth: 50,
-            cols: [[
-                {type: 'checkbox', event: 'checkbox', templet:function(row){
-                        var html = "<input type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
-                        return html;
-                    }}
-                ,{field: 'locNo$', align: 'center',title: '搴撲綅鍙�'}
-                ,{field: 'matnr', align: 'center',title: '鐗╂枡'}
-                // ,{field: 'lgnum', align: 'center',title: '浠撳簱鍙�', width:80}
-                // ,{field: 'tbnum', align: 'center',title: '杞偍璇锋眰缂栧彿'}
-                // ,{field: 'tbpos', align: 'center',title: '琛岄」鐩�'}
-                // ,{field: 'zmatid', align: 'center',title: '鐗╂枡鏍囩ID', width:200}
-                ,{field: 'maktx', align: 'center',title: '鐗╂枡鎻忚堪'}
-                // ,{field: 'werks', align: 'center',title: '宸ュ巶'}
-                ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
-                ,{field: 'altme', align: 'center',title: '鍗曚綅'}
-                ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'}
-                // ,{field: 'bname', align: 'center',title: '鐢ㄦ埛ID'}
-                // ,{field: 'memo', align: 'center',title: '澶囨敞'}
-                ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳', hide: true}
-                ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'}
+        var admin = layui.admin;
+        var tableMerge = layui.tableMerge;
 
-            ]],
-            request: {
-                pageName: 'curr',
-                pageSize: 'limit'
-            },
-            parseData: function (res) {
-                return {
-                    'code': res.code,
-                    'msg': res.msg,
-                    'count': res.data.total,
-                    'data': res.data.records
+        var dateIns = layDate.render({
+            elem: '#modi_time'
+            ,type: 'datetime'
+            ,range: true
+            ,lang: typeof I18n !== 'undefined' && I18n.getLanguage().toLowerCase() === 'zh-cn' ? 'cn' : 'en'
+        });
+
+        // 鏁版嵁娓叉煋
+        function initTable() {
+            locDetlTableIns = table.render({
+                elem: '#stockOut',
+                headers: {token: localStorage.getItem('token')},
+                url: baseUrl+'/stock/out/list/auth',
+                page: true,
+                limit: 20,
+                limits: [20, 50, 100, 200, 500],
+                even: true,
+                toolbar: '#toolbar',
+                cellMinWidth: 50,
+                cols: [getCol()],
+                text: {
+                    none: typeof I18n !== 'undefined' ? I18n.t('no_data') : '鏆傛棤鐩稿叧鏁版嵁'
+                },
+                request: {
+                    pageName: 'curr',
+                    pageSize: 'limit'
+                },
+                parseData: function (res) {
+                    return {
+                        'code': res.code,
+                        'msg': res.msg,
+                        'count': res.data.total,
+                        'data': res.data.records
+                    }
+                },
+                response: {
+                    statusCode: 200
+                },
+                done: function(res, curr, count) {
+                    tableMerge.render(this);
+                    if (res.code === 403) {
+                        top.location.href = baseUrl+"/";
+                    }
+                    if (typeof I18n !== 'undefined') {
+                        I18n.updatePage();
+                        I18n.updateLayuiPagination();
+                    }
                 }
-            },
-            response: {
-                statusCode: 200
-            },
-            done: function(res, curr, count) {
-                if (res.code === 403) {
-                    top.location.href = baseUrl+"/";
-                }
-                pageCurr=curr;
+            });
+        }
+
+        // Initialize table when I18n is ready
+        if (typeof I18n !== 'undefined' && I18n.isReady()) {
+            initTable();
+        } else {
+            $(document).on('i18n:ready', function() {
+                initTable();
+            });
+        }
+
+        $(document).on('i18n:languageChanged', function() {
+            if (locDetlTableIns) {
+                locDetlTableIns.reload({
+                    cols: [getCol()]
+                });
+            } else {
+                initTable();
+            }
+            $('[data-i18n-placeholder]').each(function() {
+                var key = $(this).attr('data-i18n-placeholder');
+                $(this).attr('placeholder', I18n.t(key));
+            });
+            // Reload date component
+            if (typeof dateIns !== 'undefined') {
+                 // Completely remove and recreate the input element to force laydate reset
+                 var $input = $('#modi_time');
+                 var parent = $input.parent();
+                 var inputHtml = $input.prop("outerHTML");
+                 $input.remove();
+                 parent.append(inputHtml);
+                 $('#modi_time').removeAttr('lay-key'); // Ensure no key remains
+
+                 dateIns = layDate.render({
+                    elem: '#modi_time'
+                    ,type: 'datetime'
+                    ,range: true
+                    ,lang: I18n.getLanguage().toLowerCase() === 'zh-cn' ? 'cn' : 'en'
+                });
             }
         });
 
@@ -161,10 +246,10 @@
             switch(obj.event) {
                 case 'confirm':
                     if (data.length === 0){
-                        layer.msg("璇烽�夋嫨鏁版嵁");
+                        layer.msg(typeof I18n !== 'undefined' ? I18n.t('please_select_data') : "璇烽�夋嫨鏁版嵁", {icon: 2});
                         return;
                     }
-                    var locNos = [];
+                    let locNos = [];
                     data.forEach(function(elem) {
                         locNos.push(elem.locNo);
                     });
@@ -180,7 +265,7 @@
                             } else if (res.code === 403) {
                                 top.location.href = baseUrl + "/";
                             } else {
-                                layer.msg(res.msg)
+                                layer.msg(typeof I18n !== 'undefined' ? I18n.t(res.msg) : res.msg, {icon: 2})
                             }
                         }
                     })
@@ -189,77 +274,26 @@
             }
         });
 
-        // 鐩戝惉琛屽伐鍏蜂簨浠�
-        table.on('tool(stockOut)', function(obj) {
-            var data = obj.data;
-            switch (obj.event) {
-                case 'checkbox':
-                    var currDom = obj.tr.children("td:first").children().children("div");
-                    console.log(currDom.attr("class"))
-                    var otherDom = $("td[data-field=locNo\\$] div:contains("+ data.locNo +")").parent().prev().children().children("div");
-                    if (currDom.hasClass("layui-form-checked")){
-                        otherDom.addClass("layui-form-checked");
-                    } else {
-                        otherDom.removeClass("layui-form-checked");
-                    }
-                    break;
-            }
-        })
-
         // 鎼滅储鏍忔悳绱簨浠�
         form.on('submit(search)', function (data) {
-            pageCurr = 1;
             tableReload();
         });
 
-        // 鎼滅储鏍忛噸缃簨浠�
-        form.on('submit(reset)', function (data) {
-            pageCurr = 1;
-            clearFormVal($('#search-box'));
-            tableReload();
-        });
 
-        layDate.render({
-            elem: '.layui-laydate-range'
-            ,type: 'datetime'
-            ,range: true
-        });
     })
 
-    function tableReload(child) {
+    function tableReload() {
+        if (!locDetlTableIns) return;
         var searchData = {};
         $.each($('#search-box [name]').serializeArray(), function() {
             searchData[this.name] = this.value;
         });
         locDetlTableIns.reload({
-            where: searchData,
-            page: {
-                curr: pageCurr
-            },
-            done: function (res, curr, count) {
-                if (res.code === 403) {
-                    top.location.href = baseUrl+"/";
-                }
-                pageCurr=curr;
-                if (res.data.length === 0 && count !== 0) {
-                    locDetlTableIns.reload({
-                        where: searchData,
-                        page: {
-                            curr: pageCurr-1
-                        }
-                    });
-                    pageCurr -= 1;
-                }
-            }
+            where: searchData
         });
     }
 
-    function clearFormVal(el) {
-        $(':input', el)
-            .val('')
-            .removeAttr('checked')
-            .removeAttr('selected');
-    }
 </script>
+
 </html>
 

--
Gitblit v1.9.1