From b4a8d50e3d97fc9e893b554a60134e4eceb012eb Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期一, 05 一月 2026 08:58:08 +0800
Subject: [PATCH] #

---
 src/main/webapp/views/pda/locNormalIn.html |  536 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 468 insertions(+), 68 deletions(-)

diff --git a/src/main/webapp/views/pda/locNormalIn.html b/src/main/webapp/views/pda/locNormalIn.html
index f91e840..d6e14db 100644
--- a/src/main/webapp/views/pda/locNormalIn.html
+++ b/src/main/webapp/views/pda/locNormalIn.html
@@ -1,55 +1,188 @@
 <!DOCTYPE html>
 <html lang="en">
+
 <head>
     <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
     <title>骞充粨鍏ュ簱</title>
     <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
     <link rel="stylesheet" href="../../static/css/pda.css" media="all">
+
     <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/cool.js" charset="utf-8"></script>
     <script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
     <style>
+        .number-tool {
+            margin-left: 10px;
+            padding: 1px 0 1px 5px;
+            display: inline-block;
+            width: 120px;
+        }
 
+        .number-tool:after {
+            clear: both;
+            content: "";
+            display: table;
+        }
+
+        .number-tool button {
+            background-color: #fff;
+            margin-top: 3px;
+            font-size: 16px;
+            height: 25px;
+            float: left;
+            width: 25px;
+            border: 1px solid #777777;
+        }
+
+        .number-tool input {
+            text-align: center;
+            height: 30px;
+            float: left;
+            margin: 0 5px;
+            width: 50px;
+            padding: 0;
+        }
+
+        #confirm {
+            margin: 10px 10px;
+            padding: 5px 20px;
+            font-weight: 600;
+        }
+
+        #remove {
+            margin: 10px 10px;
+            padding: 5px 20px;
+            color: darkred;
+        }
+
+        .form-box span {
+            font-size: 16px;
+            display: inline-block;
+            text-align: right;
+        }
+
+        .form-box input {
+            width: 165px;
+            padding-left: 5px;
+            height: 30px;
+            border: 1px solid #777777;
+            overflow: hidden;
+            white-space: nowrap;
+            text-overflow: ellipsis;
+        }
     </style>
 </head>
+
 <body>
-<!-- 澶撮儴 -->
-<header>
-    <div>
-        <div class="layui-input-inline">
-            <label class="layui-form-label">搴撳尯</label>
-            <input class="layui-input" type="number" id="warehouse" onkeyup="findCode(this)" placeholder="鎵爜 / 杈撳叆"
-                   autocomplete="off">
+    <!-- 澶撮儴 -->
+    <header class="layui-form">
+        <div>
+            <div class="layui-input-inline">
+                <label class="layui-form-label">鍗曞彿</label>
+                <div class="layui-input-inline" style="width: 175px">
+                    <input id="billNo" class="layui-input" autocomplete="off" oninput="find(this)">
+                </div>
+            </div>
         </div>
-    </div>
+        <div>
+            <div class="layui-input-inline">
+                <label class="layui-form-label">搴撳尯</label>
+                <div class="layui-input-inline" style="width: 175px">
+                    <select id="uuid">
+                        <option value="">璇烽�夋嫨</option>
+                    </select>
+                </div>
+            </div>
+        </div>
 
-    <div style="margin: 5px 5px">
-        <button id="mat-btn" type="button" class="layui-btn layui-btn-normal" onclick="getMat()"><i
-                class="layui-icon">+</i>鎻愬彇
-        </button>
-    </div>
-</header>
+        <!--<div style="margin: 5px 5px">-->
+        <!--<button id="mat-btn" type="button" class="layui-btn layui-btn-normal" onclick="getMat()"><i-->
+        <!--        class="layui-icon">+</i>鎻愬彇-->
+        <!--</button>-->
+        <!--</div>-->
+    </header>
+    <!-- 涓讳綋 -->
+    <main>
+        <div class="layui-btn-group demoTable">
+            <div class="layui-inline">
+                <input class="layui-input" name="id" id="demoReload" autocomplete="off" placeholder="鐢熶骇鍗曞彿">
+            </div>
+            <button class="layui-btn" data-type="reload">鎼滅储</button>
+            <button class="layui-btn" data-type="getCheckData">鎻愬彇</button>
+        </div>
+        <table class="layui-table" id="chooseData" lay-filter="chooseData"></table>
+    </main>
 
-<!-- 涓讳綋 -->
-<main>
-    <table class="layui-table" id="chooseData" lay-filter="chooseData"></table>
-</main>
-<!-- 灏鹃儴 -->
-<footer>
-    <div class="layui-btn-container">
-        <button type="button" id="reset-btn" class="layui-btn layui-btn-primary" onclick="reset()">閲嶇疆</button>
-        <button type="button" id="comb-btn" class="layui-btn layui-btn-normal " onclick="comb()"
-                style="margin-left: 20px">缁勬墭
-        </button>
-        <button type="button" id="retrun-btn" class="layui-btn layui-btn-primary " onclick="back()"
+    <!-- 灏鹃儴 -->
+    <footer>
+        <div class="layui-btn-container">
+            <button type="button" id="reset-btn" class="layui-btn layui-btn-primary" onclick="reset()">閲嶇疆</button>
+            <button type="button" id="comb-btn" class="layui-btn layui-btn-normal " onclick="comb()"
+                style="margin-left: 20px">鍏ュ簱
+            </button>
+            <button type="button" id="retrun-btn" class="layui-btn layui-btn-primary " onclick="back()"
                 style="margin-left: 20px">杩斿洖
-        </button>
-        <span id="tips"></span>
+            </button>
+            <span id="tips"></span>
+        </div>
+    </footer>
+
+    <!-- 淇敼鏁伴噺寮圭獥 -->
+    <div id="modify" style="display: none; text-align: center;padding-top: 10px">
+        <div class="form-box">
+            <div class="form-item">
+                <table style="display: none">
+                    <tr>
+                        <td>
+                            <span style="width: 35px; margin-right: 5px">鐗╂枡</span>
+                        </td>
+                        <td style="text-align: left">
+                            <input id="matNo" type="text" disabled="disabled">
+                        </td>
+                    </tr>
+                </table>
+            </div>
+            <div class="form-item">
+                <table style="display: inline">
+                    <tr>
+                        <td style="vertical-align: top">
+                            <span style="width: 35px; margin-right: 5px">鍚嶇О</span>
+                        </td>
+                        <td style="text-align: left">
+                            <textarea rows="2" style="resize: none; width: 165px" id="matName" type="text"
+                                disabled="disabled" readonly="readonly"></textarea>
+                        </td>
+                    </tr>
+                </table>
+            </div>
+            <div class="form-item">
+                <table style="display: inline">
+                    <tr>
+                        <td>
+                            <span style="width: 35px; margin-right: 5px">鍗曞彿</span>
+                        </td>
+                        <td style="text-align: left">
+                            <input id="mnemonic" type="text" disabled="disabled">
+                        </td>
+                    </tr>
+                </table>
+            </div>
+        </div>
+        <div class="form-item" style="margin-top: 5px">
+            <span style="vertical-align: middle">鏁伴噺</span>
+            <div class="number-tool" style="vertical-align: middle">
+                <button onclick="reduce()">-</button>
+                <input id="count" type="number">
+                <button onclick="add()">+</button>
+            </div>
+        </div>
+        <button id="remove" onclick="remove()">绉婚櫎</button>
+        <button id="confirm" onclick="confirm()">淇濆瓨</button>
     </div>
-</footer>
+
 </body>
 <script>
     var tableIns;
@@ -59,31 +192,160 @@
         var layer = layui.layer;
         var form = layui.form;
 
+        var $$ = layui.$, active = {
+            getCheckData: function () { //鑾峰彇閫変腑鏁版嵁
+                var checkStatus = table.checkStatus('chooseData')
+                    , data = checkStatus.data;
+                matData = data
+                tableIns.reload({ data: matData });
+            },
+            reload: function () {
+                findMata();
+            }
+        };
+        $$('.demoTable .layui-btn').on('click', function () {
+            var type = $(this).data('type');
+            active[type] ? active[type].call(this) : '';
+        });
+        document.getElementById("billNo").focus();
+
         tableIns = table.render({
             elem: '#chooseData',
             data: [],
+            width: 320,
             limit: 500,
             cellMinWidth: 50,
             cols: [[
-                {fixed: 'left', align: 'center', field: 'count', title: '鏁伴噺', style: 'color: blue', width: 50},
-                {field: 'matNo', align: 'center', title: '鐗╂枡缂栫爜'},
-                {field: 'matName', align: 'center', title: '鐗╂枡鍚嶇О'}
+                { type: 'checkbox' },
+                { field: 'matNo', align: 'center', title: '鐗╂枡缂栫爜', event: 'modify' },
+                { field: 'mnemonic', align: 'center', title: '鐢熶骇鍗曞彿', event: 'modify' },
+                { field: 'count', align: 'center', title: '鏁伴噺', style: 'color: blue', width: 50, event: 'modify' },
+                { field: 'matName', align: 'center', title: '鐗╂枡鍚嶇О', event: 'modify' },
             ]],
             done: function (res, curr, count) {
             }
         });
 
+        // 鐩戝惉琛屽伐鍏蜂簨浠�
+        table.on('tool(chooseData)', function (obj) {
+            var data = obj.data;
+            switch (obj.event) {
+                case 'modify':
+                    countLayer = layer.open({
+                        type: 1,
+                        offset: '20px',
+                        title: '淇敼鏁伴噺',
+                        shadeClose: true,
+                        area: ['80%', '300px'],
+                        content: $("#modify"),
+                        success: function (layero, index) {
+                            $('#matNo').val(data.matNo);
+                            $('#matName').val(data.matName);
+                            $('#count').val(data.count);
+                            $('#mnemonic').val(data.mnemonic);
+                            maxCount = data.count;
+                        }
+                    });
+                    break;
+            }
+        });
+
+
+        var areaType = getQueryVariable('areaType');
+        // 鑾峰彇浠撳簱涓嬫媺
+        $.ajax({
+            url: baseUrl + "/locArea/queryAll/auth?areaType=" + (areaType ? areaType : ""),
+            headers: { 'token': localStorage.getItem('token') },
+            method: 'POST',
+            success: function (res) {
+                if (res.code === 200) {
+                    var html = "";
+                    if (res.data && res.data.length > 0) {
+                        html += res.data.map(function (item) {
+                            return "<Option value=" + item.uuid + ">" + item.name + "</Option>";
+                        });
+                    }
+                    $('#uuid').append(html);
+                    layui.form.render('select');
+                } else if (res.code === 403) {
+                    top.location.href = baseUrl + "/pda";
+                } else {
+                    layer.msg(res.msg)
+                }
+            }
+        });
     });
 
-    window.onload = function () {
-        document.getElementById("warehouse").focus();
+
+    /*************************************  鏁伴噺  ****************************************/
+    var countDom = $('#count');
+    var minCount = 1;
+    var maxCount = 1;
+    function add() {
+        if (countDom.val() >= maxCount) {
+            return;
+        }
+        countDom.val(Number(countDom.val()) + 1);
     }
 
-    function findCode(el) {
-        if (el.value.length === 7) {
-            $('#mat-btn').focus();
-            getMat();
+    function reduce() {
+        if (countDom.val() <= minCount) {
+            return;
         }
+        countDom.val(countDom.val() - 1);
+    }
+
+    // 淇敼鏁伴噺
+    function confirm() {
+        var matNo = $('#matNo').val();
+        var count = $('#count').val();
+        if (count > maxCount) {
+            alert("鏁伴噺涓嶈兘瓒呰繃" + maxCount);
+            return;
+        }
+        if (count < minCount) {
+            alert("鏁伴噺涓嶈兘浣庝簬" + minCount);
+            return;
+        }
+        var mnemonic = $("#mnemonic").val() === '' ? null : $("#mnemonic").val();
+        for (var j = 0; j < matData.length; j++) {
+            if (mnemonic) {
+                if (matNo === matData[j].matNo && mnemonic === matData[j].mnemonic) {
+                    matData[j].count = Number(count);
+                }
+            } else {
+                if (matNo === matData[j].matNo) {
+                    matData[j].count = Number(count);
+                }
+            }
+        }
+        tableIns.reload({ data: matData });
+        layer.close(countLayer);
+        tips("淇敼鎴愬姛");
+    }
+
+    function remove() {
+        var matnr = $('#matNo').val();
+        var index = $('#index').val();
+        var mnemonic = $("#mnemonic").val() === '' ? null : $("#mnemonic").val();
+        for (var j = 0; j < matData.length; j++) {
+            if (mnemonic) {
+                if (matnr === matData[j].matNo && mnemonic === matData[j].mnemonic) {
+                    matData.splice(j, 1);
+                }
+            } else {
+                if (matnr === matData[j].matNo) {
+                    matData.splice(j, 1);
+                }
+            }
+        }
+        tableIns.reload({ data: matData });
+        layer.close(countLayer);
+        tips("绉婚櫎鎴愬姛");
+    }
+
+    window.onload = function () {
+        document.getElementById("uuid").focus();
     }
 
     var matCodeLayerIdx;
@@ -93,7 +355,7 @@
             type: 2,
             title: '鎻愬彇鐗╂枡',
             shade: [0.3, '#000'],
-            area: ['90%', '80%'],
+            area: ['90%', '90%'],
             content: 'matQuery.html',
             success: function (layero, index) {
                 $('.layui-layer-title').css('font-size', '16px');
@@ -123,26 +385,32 @@
             matData.push(data);
         }
         tips("鎻愬彇鎴愬姛");
-        tableIns.reload({data: matData});
+        tableIns.reload({ data: matData });
     }
 
-    // 閲嶇疆
-    function reset() {
-        $('#warehouse').val("");
-        matData = [];
-        tableIns.reload({data: matData});
-    }
+    // 缁勬墭 - 闃叉姈閿�
+    var isCombLocked = false;
 
     // 缁勬墭
     function comb() {
-        let barcode = $('#warehouse').val();
+        // 闃叉姈妫�鏌�
+        if (isCombLocked) {
+            tips("鎿嶄綔涓紝璇风◢鍊�...", true);
+            return;
+        }
+        isCombLocked = true;
+
+        let barcode = $('#uuid').val();
+        console.log('barcode', barcode);
         if (isEmpty(barcode)) {
-            tips("搴撳尯鏉$爜涓虹┖", true);
-            document.getElementById("warehouse").focus();
+            tips("璇烽�夋嫨搴撳尯", true);
+            document.getElementById("uuid").focus();
+            isCombLocked = false;
             return;
         }
         if (matData.length === 0) {
             tips("璇锋彁鍙栫墿鏂�", true);
+            isCombLocked = false;
             return;
         }
 
@@ -154,32 +422,155 @@
                 maktx: item.matName,
                 anfme: item.count,
                 warehouse: barcode,
+                mnemonic: item.mnemonic,
+                supplier: item.supplier,
+                lgnum: item.lgnum,
+                type: item.type,
+                altme: item.altme,
             });
         });
 
         // 璇锋眰淇濆瓨鎺ュ彛
+        var areaType = getQueryVariable('areaType');
+        if (areaType == 1) {
+            $.ajax({
+                url: baseUrl + "/locNormal/in/source",
+                headers: { 'token': localStorage.getItem('token') },
+                data: JSON.stringify({
+                    normalList: data,
+                }),
+                contentType: 'application/json;charset=UTF-8',
+                method: 'POST',
+                async: false,
+                success: function (res) {
+                    if (res.code === 200) {
+                        reset(true);
+                        tips("缁勬墭鎴愬姛")
+                    } else if (res.code === 403) {
+                        top.location.href = baseUrl + "/pda";
+                    } else {
+                        tips(res.msg, true)
+                    }
+                    // 寤惰繜瑙i攣闃叉姈
+                    setTimeout(function () { isCombLocked = false; }, 500);
+                },
+                error: function () {
+                    tips("璇锋眰澶辫触", true);
+                    isCombLocked = false;
+                }
+            });
+        } else {
+            $.ajax({
+                url: baseUrl + "/locNormal/pda/in",
+                headers: { 'token': localStorage.getItem('token') },
+                data: JSON.stringify({
+                    normalList: data,
+                }),
+                contentType: 'application/json;charset=UTF-8',
+                method: 'POST',
+                async: false,
+                success: function (res) {
+                    if (res.code === 200) {
+                        reset(true);
+                        tips("缁勬墭鎴愬姛")
+                    } else if (res.code === 403) {
+                        top.location.href = baseUrl + "/pda";
+                    } else {
+                        tips(res.msg, true)
+                    }
+                    // 寤惰繜瑙i攣闃叉姈
+                    setTimeout(function () { isCombLocked = false; }, 500);
+                },
+                error: function () {
+                    tips("璇锋眰澶辫触", true);
+                    isCombLocked = false;
+                }
+            });
+        }
+    }
+
+    /**
+     * 鏍规嵁閫氱煡鍗曞彿鏌ヨ鐗╂枡璇︽儏
+     */
+    function find(el) {
+        var billNo = el.value;
+        if (isEmpty(billNo)) {
+            return;
+        }
+        if (billNo.indexOf('=') > -1) {
+            billNo = billNo.split(",")[0].split("=")[1];
+        }
+        // 璧嬪�煎墠娓呯┖琛ㄦ牸
+        matData = [];
+        tableIns.reload({ data: matData });
+
         $.ajax({
-            url: baseUrl + "/locNormal/pda/in",
-            headers: {'token': localStorage.getItem('token')},
-            data: JSON.stringify({
-                normalList: data,
-            }),
-            contentType: 'application/json;charset=UTF-8',
+            url: baseUrl + "/mobile/bill/query/auth",
+            headers: { 'token': localStorage.getItem('token') },
+            data: {
+                billNo: billNo,
+                mnemonic: '',
+            },
             method: 'POST',
-            async: false,
             success: function (res) {
                 if (res.code === 200) {
-                    reset();
-                    tips("缁勬墭鎴愬姛")
+                    if (res.data != null) {
+                        console.log('鍗曞彿鏁版嵁', res.data);
+                        var data = res.data;
+                        if (data.length > 0) {
+                            for (var i = 0; i < data.length; i++) {
+                                addTableData(data[i]);
+                            }
+                        }
+                    }
                 } else if (res.code === 403) {
                     top.location.href = baseUrl + "/pda";
                 } else {
                     tips(res.msg, true)
                 }
-            },
+            }
         });
-
-
+    }
+    function findMata() {
+        var billNo = $('#billNo').val()
+        if (isEmpty(billNo)) {
+            return;
+        }
+        if (billNo.indexOf('=') > -1) {
+            billNo = billNo.split(",")[0].split("=")[1];
+        }
+        var mnemonic = $('#demoReload').val();
+        // 璧嬪�煎墠娓呯┖琛ㄦ牸
+        matData = [];
+        tableIns.reload({ data: matData });
+        console.log(billNo)
+        console.log(mnemonic)
+        $.ajax({
+            url: baseUrl + "/mobile/bill/query/auth",
+            headers: { 'token': localStorage.getItem('token') },
+            data: {
+                billNo: billNo,
+                mnemonic: mnemonic,
+            },
+            method: 'POST',
+            success: function (res) {
+                if (res.code === 200) {
+                    if (res.data != null) {
+                        console.log('鍗曞彿鏁版嵁', res.data);
+                        var data = res.data;
+                        if (data.length > 0) {
+                            for (var i = 0; i < data.length; i++) {
+                                addTableData(data[i]);
+                            }
+                        }
+                    }
+                } else if (res.code === 403) {
+                    top.location.href = baseUrl + "/pda";
+                } else {
+                    tips(res.msg, true)
+                }
+            }
+        });
     }
 
     /**
@@ -188,10 +579,7 @@
      * @param warn true锛氱孩鑹插瓧浣�
      */
     function tips(msg, warn) {
-        // var tips = $('#tips');
-        // tips.html(msg);
-        // tips.css("color", warn?"red":'#666');
-        layer.msg(msg, {icon: warn ? 2 : 1})
+        layer.msg(msg, { icon: warn ? 2 : 1 })
     }
 
     document.onkeyup = function (e) {
@@ -202,13 +590,25 @@
             $("#comb-btn").focus();
             comb();
         } else if (key === 113) {
-            $("#warehouse").val("");
-            $("#warehouse").focus();
+            $("#uuid").val("");
+            $("#uuid").focus();
         }
     }
 
     function back() {
         parent.backIndex();
     }
+
+    // 閲嶇疆
+    function reset() {
+        matData = [];
+        tableIns.reload({ data: matData });
+        layer.closeAll();
+        $("#billNo").val("");
+        $("#uuid").val("");
+        $("#demoReload").val("");
+        layui.form.render('select');
+    }
 </script>
+
 </html>
\ No newline at end of file

--
Gitblit v1.9.1