From 40e24ffdfc95c186bccc24c2bc99a0ffcfec73e3 Mon Sep 17 00:00:00 2001
From: zc <zc>
Date: 星期一, 29 七月 2024 10:48:21 +0800
Subject: [PATCH] 订单组托代码

---
 src/main/webapp/views/pda/stockOut.html |  280 +++++++++++++++++++++-----------------------------------
 1 files changed, 105 insertions(+), 175 deletions(-)

diff --git a/src/main/webapp/views/pda/stockOut.html b/src/main/webapp/views/pda/stockOut.html
index 06a5502..54cd9c7 100644
--- a/src/main/webapp/views/pda/stockOut.html
+++ b/src/main/webapp/views/pda/stockOut.html
@@ -5,189 +5,55 @@
     <meta name="viewport" content="width=device-width, target-densitydpi=high-dpi, 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>
-        * {
-            font-family: microsoft yahei,serif;
-            margin: 0;
-            padding: 0;
-            box-sizing: border-box;
-            -webkit-box-sizing: border-box;
-            -moz-box-sizing: border-box;
-            font-size: 11px;
+        .layui-input-block {
+            margin-left: 60px;
         }
-        html {
-            height: 100%;
-            background-color: #f1f1f1;
-            padding: 5px;
-        }
-        body {
-            height: 100%;
-            background-color: #fff;
-            border-radius: 5px;
-            box-shadow: 0 0 3px rgba(0,0,0,.3);
-            padding: 2px 5px;
-            position: relative;
-        }
-        /* 澶撮儴 */
-        header {
-            padding: 5px 0;
-        }
-        .layui-input-inline {
-            margin-bottom: 5px;
-        }
-        .layui-form-label {
-            width: initial;
-            padding: 2px 10px;
-        }
-        .layui-input {
-            width: 75%;
-            height: 25px;
-            margin-right: 0;
-        }
-        /* layer */
-        .layui-layer-title {
-            font-size: 11px;
-            height: 20px;
-            line-height: 20px;
-        }
-        /* 涓讳綋 */
         main {
-            height: 150px;
-            overflow: auto;
-        }
-        .layui-table, .layui-table-view {
-            margin: 0;
-        }
-        .layui-table-view .layui-table td, .layui-table-view .layui-table th {
-            padding: 0;
-        }
-        .layui-table-cell {
-            height: 22px;
-            line-height: 22px;
-            padding: 0;
-        }
-        .layui-table-grid-down {
-            display: none;
-        }
-        .layui-form-checkbox[lay-skin=primary] {
-            height: 15px;
-            width: 15px;
-        }
-        .layui-table-view .layui-form-checkbox[lay-skin=primary] i {
-            height: 15px;
-            width: 15px;
-        }
-        /* 灏鹃儴 */
-        footer {
-            position: absolute;
-            bottom: 5px;
-            width: 100%;
-        }
-
-        .site-list {
-            padding: 2px 0;
-            height: 22px;
-            margin-bottom: 5px;
-        }
-        .site-list label {
-            padding-right: 15px;
-        }
-        .site-list label span {
-            vertical-align: middle;
-            font-size: 13px;
-        }
-
-        .cool-checkbox:checked {
-            background:#1673ff
-        }
-        .cool-checkbox {
-            width:15px;
-            height:15px;
-            background-color:#ffffff;
-            border:solid 1px #dddddd;
-            -webkit-border-radius:50%;
-            border-radius:50%;
-            font-size:15px;
-            margin:0 5px 0 0;
-            padding:0;
-            position:relative;
-            display:inline-block;
-            vertical-align:middle;
-            cursor:default;
-            -webkit-appearance:none;
-            -webkit-user-select:none;
-            user-select:none;
-            -webkit-transition:background-color ease 0.1s;
-            transition:background-color ease 0.1s;
-        }
-        .cool-checkbox:checked::after {
-            content:'';
-            top:3px;
-            left:3px;
-            position:absolute;
-            background:transparent;
-            border:#fff solid 2px;
-            border-top:none;
-            border-right:none;
-            height:3px;
-            width:6px;
-            -moz-transform:rotate(-45deg);
-            -ms-transform:rotate(-45deg);
-            -webkit-transform:rotate(-45deg);
-            transform:rotate(-45deg);
-        }
-
-        .layui-btn-container .layui-btn {
-            margin-left: 10px;
-            margin-bottom: 2px;
-        }
-        #tips {
-            display: inline-block;
-            width: 90px;
-            color: #666;
-            margin-left: 5px;
-            margin-bottom: 5px;
-            vertical-align: middle;
-            overflow:hidden;
-            white-space:nowrap;
-            text-overflow:ellipsis;
-        }
-
-        .layui-btn-primary:hover {
-            border-color: #C9C9C9
+            height: 200px;
         }
     </style>
 </head>
 <body>
 <!-- 澶撮儴 -->
-<header>
+<header class="layui-form">
     <div class="layui-input-inline">
         <label class="layui-form-label">搴撲綅</label>
-        <input class="layui-input" type="text" id="locNo" onkeyup="findByLocNo(this)" autocomplete="off">
+        <div class="layui-input-block">
+            <input class="layui-input" type="number" id="locNo" onkeyup="findByLocNo(this)" autocomplete="off">
+        </div>
+
     </div>
     <div class="layui-input-inline">
         <label class="layui-form-label">鐗╂枡</label>
-        <input class="layui-input" type="text" id="matNo" onkeyup="findByMatNo(this)" autocomplete="off">
+        <div class="layui-input-block">
+            <input class="layui-input" type="text" id="matNo" onkeyup="findByMatNo(this)" autocomplete="off">
+        </div>
+    </div>
+    <div class="layui-input-inline">
+        <label class="layui-form-label">鍑哄簱鍙�</label>
+        <div class="layui-input-inline" style="margin-left: 5px;width: 120px">
+            <select id="staNoSelect">
+                <option value="">璇烽�夋嫨</option>
+            </select>
+        </div>
     </div>
 </header>
 <!-- 涓讳綋 -->
 <main>
-    <table class="layui-table" id="dataByLoc" lay-filter="chooseData"></table>
+    <table class="layui-table" id="dataByLoc" lay-filter="dataByLoc"></table>
 </main>
 <!-- 灏鹃儴 -->
 <footer>
-    <!-- 鍑哄簱鍙� -->
-    <div class="site-list">
-        <span style="display: inline-block; padding:0 0 0 10px; font-size: 12px;">鍑哄簱鍙o細</span>
-    </div>
     <div class="layui-btn-container">
-        <button type="button" class="layui-btn layui-btn-xs layui-btn-primary" onclick="reset()">閲嶇疆</button>
-        <button type="button" class="layui-btn layui-btn-normal  layui-btn-xs" onclick="pakOut()" style="margin-left: 20px">鍑哄簱</button>
+        <button id="reset" type="button" class="layui-btn layui-btn-primary" onclick="reset()">閲嶇疆</button>
+        <button id="pakOut" type="button" class="layui-btn layui-btn-normal" onclick="pakOut()" style="margin-left: 20px">鍑哄簱</button>
         <span id="tips"></span>
     </div>
 </footer>
@@ -211,7 +77,7 @@
     }
 
     /**
-     * 鏍规嵁鐗╂枡鍙锋煡鎵惧簱瀛樻槑缁�
+     * 鏍规嵁鍟嗗搧缂栧彿鏌ユ壘搴撳瓨鏄庣粏
      */
     function findByMatNo(el){
         if (isEmpty(el.value)) {
@@ -235,6 +101,7 @@
                         locDetlData = res.data;
                         tableIns.reload({data: locDetlData});
                     }
+                    $('#pakOut').focus();
                 } else if (res.code === 403) {
                     top.location.href = baseUrl + "/pda";
                 } else {
@@ -245,6 +112,7 @@
         })
     }
 
+    // 琛ㄦ牸
     var locDetlData = [];
     var tableIns;
     layui.use(['table','laydate', 'form'], function() {
@@ -261,14 +129,44 @@
             cellMinWidth: 50,
             cols: [[
                 {type: 'checkbox', fixed: 'left', width:30},
-                {field: 'count', align: 'center', title: '閲�', style:'color: blue', width:30},
-                {field: 'matnr', align: 'center', title: '缂栫爜'},
-                {field: 'maktx', align: 'center', title: '鍚嶇О'},
-                {field: 'locNo', align: 'center', title: '搴撲綅'}
+                {field: 'count', align: 'center', title: '鏁伴噺', event: 'detail', style:'color: blue', width:50},
+                {field: 'matnr', align: 'center', title: '缂栫爜', event: 'detail'},
+                {field: 'maktx', align: 'center', title: '鍚嶇О', event: 'detail'},
+                {field: 'locNo', align: 'center', title: '搴撲綅', event: 'detail'}
             ]],
             done: function (res, curr, count) {
             }
         });
+
+        // 鐩戝惉琛屽伐鍏蜂簨浠�
+        table.on('tool(dataByLoc)', function(obj) {
+            var data = obj.data;
+            switch (obj.event) {
+                // 璇︽儏
+                case 'detail':
+                    layer.open({
+                        type: 2,
+                        title: '搴撳瓨鏄庣粏',
+                        shade: [0.3,'#000'],
+                        area: ['90%', '70%'],
+                        content: 'locDetlIframe.html',
+                        success: function(layero, index){
+                            // 璁剧疆寮圭獥鏍峰紡
+                            $('.layui-layer-title').css('font-size', '16px');
+                            // 娉ㄥ叆鍊�
+                            let el = layer.getChildFrame('.form-box', index);
+                            for (var val in data) {
+                                var find = el.find(":input[id='" + val + "']");
+                                find.val(data[val]);
+                            }
+                        },
+                        end: function () {
+                            $('#pakOut').focus();
+                        }
+                    });
+                    break;
+            }
+        })
     });
 
     // 鑾峰彇鍑哄簱鍙�
@@ -280,10 +178,11 @@
             async: false,
             success: function (res) {
                 if (res.code === 200){
-                    var tpl = $("#outSitesTemplate").html();
+                    var tpl = $("#takeSiteSelectTemplate").html();
                     var template = Handlebars.compile(tpl);
                     var html = template(res);
-                    $('.site-list').append(html);
+                    $('#staNoSelect').append(html);
+                    layui.form.render('select');
                 } else if (res.code === 403){
                     top.location.href = baseUrl+"/pda";
                 }else {
@@ -298,11 +197,10 @@
         var tableData = layui.table.checkStatus('tableIdx').data;
         if (tableData.length === 0) {
             tips("璇烽�夋嫨鐗╂枡", true);
-            document.getElementById("locNo").focus();
             return;
         }
-        let site = $('input:radio[name="site"]:checked').next("span").html();
-        if (null === site || undefined === site) {
+        var site = $('#staNoSelect').val();
+        if (null === site || undefined === site || site === "") {
             tips("璇烽�夋嫨鍑哄簱鍙�", true);
             return;
         }
@@ -329,30 +227,62 @@
         })
     }
 
+    // 淇敼琛ㄦ牸鏁版嵁
+    function updateTableData(data) {
+        for (var i=0;i<locDetlData.length;i++) {
+            if (data.matnr === locDetlData[i].matnr && data.locNo === locDetlData[i].locNo) {
+                locDetlData[i].count = data.count;
+                break
+            }
+        }
+        tableIns.reload({data: locDetlData});
+    }
+
+    // 鍒犻櫎琛ㄦ牸琛�
+    function removeTableData(data) {
+        for (var i = locDetlData.length - 1; i >= 0; i--) {
+            if (locDetlData[i].locNo === data.locNo && locDetlData[i].matnr === data.matnr) {
+                locDetlData.splice(i, 1);
+            }
+        }
+        tableIns.reload({data: locDetlData});
+    }
+
     // 閲嶇疆
     function reset() {
         $("#matNo").val("");
         $("#locNo").val("");
         locDetlData = [];
         tableIns.reload({data: locDetlData});
-        $('input:radio[name="site"]').prop('checked',false);
-        tips("");
+        $('#staNoSelect').val("");
+        layui.form.render('select');
     }
 
     /**
      * 鎻愮ず淇℃伅
      * @param msg 鎻愮ず鍐呭
-     * @param warn true锛氱孩鑹插瓧浣�
+     * @param warn true锛氱孩鑹瞯ar瀛椾綋
      */
     function tips(msg, warn) {
-        let tips = $('#tips');
-        tips.html(msg);
-        tips.css("color", warn?"red":'#666');
+        layer.msg(msg, {icon: warn?2:1})
+    }
+
+    document.onkeyup = function (e) {
+        if (window.event)//濡傛灉window.event瀵硅薄瀛樺湪锛屽氨浠ユ浜嬩欢瀵硅薄涓哄噯
+            e = window.event;
+        var key = e.charCode || e.keyCode;
+        if (key === 115) {
+            $("#pakOut").focus();
+            pakOut();
+        } else if (key === 113) {
+            $("#locNo").val("");
+            $("#locNo").focus();
+        }
     }
 </script>
-<script type="text/template" id="outSitesTemplate">
+<script type="text/template" id="takeSiteSelectTemplate">
     {{#each data}}
-    <label><input class="cool-checkbox" type="radio" name="site"><span>{{this}}</span></label>
+    <option value="{{siteId}}">{{desc}}</option>
     {{/each}}
 </script>
 </html>
\ No newline at end of file

--
Gitblit v1.9.1