From 23e31685793e281f9a76622cf560f6f618a26cad Mon Sep 17 00:00:00 2001
From: 王佳豪 <g675230687@126.com>
Date: 星期五, 04 六月 2021 15:51:22 +0800
Subject: [PATCH] pda新增小车关联组托功能

---
 src/main/webapp/views/pda/index.html      |   21 +
 src/main/webapp/views/pda/combProAgv.html |  473 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/webapp/views/pda/combAgv.html    |    1 
 3 files changed, 486 insertions(+), 9 deletions(-)

diff --git a/src/main/webapp/views/pda/combAgv.html b/src/main/webapp/views/pda/combAgv.html
index f4b1785..3a580f6 100644
--- a/src/main/webapp/views/pda/combAgv.html
+++ b/src/main/webapp/views/pda/combAgv.html
@@ -88,7 +88,6 @@
             async: false,
             success: function (res) {
                 if (res.code === 200){
-                    debugger
                     var tpl = $("#devpSelectTemplate").html();
                     var template = Handlebars.compile(tpl);
                     var html = template(res);
diff --git a/src/main/webapp/views/pda/combProAgv.html b/src/main/webapp/views/pda/combProAgv.html
new file mode 100644
index 0000000..e324cc2
--- /dev/null
+++ b/src/main/webapp/views/pda/combProAgv.html
@@ -0,0 +1,473 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <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 class="layui-input-inline" style="margin-top: 5px">
+        <label class="layui-form-label" style="margin-left: 16px">鍗曞彿</label>
+        <input class="layui-input" id="billNo" oninput="find(this)" placeholder="鎵爜 / 杈撳叆" autocomplete="off"
+               style="width: 175px; height: 40px; margin-right: 0;">
+    </div>
+    <div class="layui-input-inline">
+        <label class="layui-form-label">鎵樼洏鐮�</label>
+        <input class="layui-input" style="width: 175px;" type="number" id="code" onkeyup="findCode(this)"
+               oninput="if(value.length>8)value=value.slice(0,8)" placeholder="鎵爜 / 杈撳叆" autocomplete="off">
+    </div>
+    <div class="layui-form">
+        <div style="margin: 5px 1px 5px 5px; display: inline-block">
+            <button id="mat-btn" type="button" class="layui-btn layui-btn-normal" onclick="getMat()"><i class="layui-icon">+</i>鎻愬彇</button>
+        </div>
+        <div style="display: inline-block">
+            宸ヤ綔鍖�
+            <!-- 宸ヤ綔鍖� -->
+            <div class="layui-inline" style="width: 100px; margin-left: 10px">
+                <select id="devpSelect">
+                    <option value="">宸ヤ綔鍖�</option>
+                </select>
+            </div>
+        </div>
+    </div>
+</header>
+
+<!-- 涓讳綋 -->
+<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()"
+                style="margin-left: 20px">杩斿洖
+        </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>
+</body>
+
+<script type="text/template" id="devpSelectTemplate">
+    {{#each data}}
+    <option value="{{this}}">{{this}}</option>
+    {{/each}}
+</script>
+
+<script>
+    window.onload = function () {
+        document.getElementById("billNo").focus();
+    }
+    var tableIns;
+    var countLayer;
+    var matData = [];
+    var sourceData = [];
+    layui.use(['table', 'laydate', 'form'], function () {
+        var table = layui.table;
+        var $ = layui.jquery;
+        var layer = layui.layer;
+        var form = layui.form;
+
+        tableIns = table.render({
+            elem: '#chooseData',
+            data: [],
+            width: 320,
+            limit: 500,
+            cellMinWidth: 50,
+            cols: [[
+                {field: 'matNo', align: 'center', title: '鐗╂枡缂栫爜', event: 'modify',},
+                {field: 'mnemonic', align: 'center', title: '鐢熶骇鍗曞彿', event: 'modify',},
+                {
+                    align: 'center',
+                    field: 'count',
+                    title: '鏁伴噺',
+                    event: 'modify',
+                    style: 'cursor: pointer;color: blue',
+                    width: 50
+                },
+                {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;
+            }
+        });
+
+    });
+
+    // 鑾峰彇宸ヤ綔鍖�
+    function getDevp(){
+        $.ajax({
+            url: baseUrl+"/available/put/site",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            async: false,
+            success: function (res) {
+                if (res.code === 200){
+                    var tpl = $("#devpSelectTemplate").html();
+                    var template = Handlebars.compile(tpl);
+                    var html = template(res);
+                    $('#devpSelect').append(html);
+                    layui.form.render('select');
+                } else if (res.code === 403){
+                    top.location.href = baseUrl+"/pda";
+                }else {
+                    tips("鑾峰彇宸ヤ綔鍖哄け璐�", true)
+                }
+            }
+        })
+    }
+    getDevp();
+
+    // 娣诲姞琛ㄦ牸鏁版嵁
+    //    var matData = [];
+
+    function addTableData(data) {
+        for (var i = 0; i < data.length; i++) {
+            var toPush = true;
+            for (var j = 0; j < matData.length; j++) {
+                if (data[i].matNo === matData[j].matNo && data[i].mnemonic === matData[j].mnemonic) {
+                    matData[j].count = Number(matData[j].count) + Number(data[i].count);
+                    toPush = false;
+                }
+            }
+            if (toPush) {
+                matData.push(data[i]);
+                sourceData.push({
+                    matNo: data[i].matNo,
+                    count: data[i].count,
+                    supplier: data[i].supplier,
+                    mnemonic: data[i].mnemonic,
+                });
+            }
+        }
+        tableIns.reload({data: matData});
+//        $("#comb-btn").focus();
+    }
+
+
+    /**
+     * 鏍规嵁閫氱煡鍗曞彿鏌ヨ鐗╂枡璇︽儏
+     */
+    function find(el) {
+        if (isEmpty(el.value)) {
+            return;
+        }
+        var billNo = el.value;
+        if (billNo.indexOf('=') > -1) {
+            billNo = billNo.split(",")[0].split("=")[1];
+        }
+        if (isEmpty(billNo)) {
+            return;
+        }
+        // 璧嬪�煎墠娓呯┖琛ㄦ牸
+//        matData = [];
+        tableIns.reload({data: matData});
+
+        $.ajax({
+            url: baseUrl + "/mobile/bill/query/auth",
+            headers: {'token': localStorage.getItem('token')},
+            data: {
+                billNo: billNo
+            },
+            method: 'POST',
+            success: function (res) {
+                if (res.code === 200) {
+                    if (res.data != null) {
+                        addTableData(res.data);
+                        // 寤惰繜1绉掑悗娓呯┖閫氱煡鍗曞彿
+                        setTimeout(function () {
+                            $('#billNo').val("");
+                        }, 500);
+                    }
+                } else if (res.code === 403) {
+                    top.location.href = baseUrl + "/pda";
+                } else {
+                    tips(res.msg, true)
+                }
+            }
+        });
+    }
+
+    /*************************************  鏁伴噺  ****************************************/
+    var countDom = $('#count');
+    var minCount = 1;
+    var maxCount = 1;
+
+    function add() {
+        if (countDom.val() >= maxCount) {
+            return;
+        }
+        countDom.val(Number(countDom.val()) + 1);
+    }
+
+    function reduce() {
+        if (countDom.val() <= minCount) {
+            return;
+        }
+        countDom.val(countDom.val() - 1);
+    }
+
+    // 淇敼鏁伴噺
+    function confirm() {
+        var matNo = $('#matNo').val();
+        var count = $('#count').val();
+        var mnemonic = $("#mnemonic").val() === '' ? null : $("#mnemonic").val();
+        for (var j = 0; j < matData.length; j++) {
+            if (matNo === matData[j].matNo && mnemonic === matData[j].mnemonic) {
+                if (count > maxCount || count < minCount) {
+                    tips("鏁伴噺涓嶈兘瓒呰繃鑼冨洿", true);
+                    return;
+                }
+                matData[j].count = Number(count);
+            }
+        }
+        tableIns.reload({data: matData});
+        layer.close(countLayer);
+        tips("淇敼鎴愬姛");
+    }
+
+    // 绉婚櫎鐗╂枡
+    function remove() {
+        var matNo = $('#matNo').val();
+        var mnemonic = $("#mnemonic").val() === '' ? null : $("#mnemonic").val();
+        for (var j = 0; j < matData.length; j++) {
+            if (matNo === matData[j].matNo && mnemonic === matData[j].mnemonic) {
+                matData.splice(j, 1);
+            }
+        }
+        tableIns.reload({data: matData});
+        layer.close(countLayer);
+        tips("绉婚櫎鎴愬姛");
+    }
+
+
+    // 閲嶇疆
+    function reset() {
+        $('#code').val("");
+        $('#billNo').val("");
+        matData = [];
+        sourceData = [];
+        tableIns.reload({data: matData});
+    }
+
+    // 缁勬墭
+    function comb() {
+        var barcode = $('#code').val();
+        var devp = $("#devpSelect").val();
+        if (isEmpty(barcode)) {
+            tips("鎵樼洏鏉$爜涓虹┖", true);
+            // document.getElementById("code").focus();
+            return;
+        }
+        if (barcode.length !== 7) {
+            tips("鏉$爜蹇呴』涓�7浣�", true);
+            return;
+        }
+        if (matData.length === 0) {
+            tips("璇锋彁鍙栫墿鏂�", true);
+            return;
+        }
+        if (isEmpty(devp)) {
+            tips("璇烽�夋嫨宸ヤ綔鍖�", true);
+            return;
+        }
+        alert("灏忚溅鍏宠仈缁勬墭瀹屾垚锛堝姛鑳借繕鏈疄鐜帮級");
+//        $.ajax({
+//            url: baseUrl + "/mobile/comb/auth/batch",
+//            headers: {'token': localStorage.getItem('token')},
+//            data: JSON.stringify({
+//                barcode: barcode,
+//                combMats: matData,
+//            }),
+//            contentType: 'application/json;charset=UTF-8',
+//            method: 'POST',
+//            async: false,
+//            success: function (res) {
+//                if (res.code === 200) {
+//                    reset();
+//                    tips("缁勬墭鎴愬姛")
+//                } else if (res.code === 403) {
+//                    top.location.href = baseUrl + "/pda";
+//                } else {
+//                    tips(res.msg, true)
+//                }
+//            }
+//        })
+    }
+
+    /**
+     * 鎻愮ず淇℃伅
+     * @param msg 鎻愮ず鍐呭
+     * @param warn true锛氱孩鑹插瓧浣�
+     */
+    function tips(msg, warn) {
+        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) {
+            $("#comb-btn").focus();
+            comb();
+        } else if (key === 113) {
+            $("#code").val("");
+            $("#code").focus();
+        }
+    }
+
+    function back() {
+        parent.backIndex();
+    }
+</script>
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/pda/index.html b/src/main/webapp/views/pda/index.html
index 55f229b..5d6dfa5 100644
--- a/src/main/webapp/views/pda/index.html
+++ b/src/main/webapp/views/pda/index.html
@@ -100,37 +100,42 @@
             <div id="combAgv" onclick="nav(this.id)" class="nav-font-size">灏忚溅缁勬墭鍏ュ簱</div>
         </td>
         <td>
-            <div id="comb" onclick="nav(this.id)" class="nav-font-size">绔嬪簱缁勬墭鍏ュ簱</div>
+            <div id="combProAgv" onclick="nav(this.id)" class="nav-font-size">灏忚溅鍏宠仈缁勬墭</div>
         </td>
     </tr>
     <tr>
+        <td>
+            <div id="comb" onclick="nav(this.id)" class="nav-font-size">绔嬪簱缁勬墭鍏ュ簱</div>
+        </td>
         <td>
             <div id="combPro" onclick="nav(this.id)" style="font-size: 15px">绔嬪簱浠诲姟鍗曞叆搴�</div>
         </td>
+    </tr>
+    <tr>
         <td>
             <div id="stockIn" onclick="nav(this.id)" class="nav-font-size">绔嬪簱閰嶄欢鍏ュ簱</div>
         </td>
-    </tr>
-    <tr>
         <td>
             <div id="stockOut" onclick="nav(this.id)" class="nav-font-size">绔嬪簱閰嶄欢鍑哄簱</div>
         </td>
+    </tr>
+    <tr>
         <td>
             <div id="locNormalIn1" onclick="nav(this.id)" class="nav-font-size">骞充粨鏉愭枡鍏ュ簱</div>
         </td>
-    </tr>
-    <tr>
         <td>
             <div id="locNormalOut1" onclick="nav(this.id)" class="nav-font-size">骞充粨鏉愭枡鍑哄簱</div>
         </td>
-        <td>
-            <div id="locNormalIn" onclick="nav(this.id)" class="nav-font-size">骞充粨鎴愬搧鍏ュ簱</div>
-        </td>
     </tr>
     <tr>
         <td>
+            <div id="locNormalIn" onclick="nav(this.id)" class="nav-font-size">骞充粨鎴愬搧鍏ュ簱</div>
+        </td>
+        <td>
             <div id="locNormalOut" onclick="nav(this.id)" class="nav-font-size">骞充粨鎴愬搧鍑哄簱</div>
         </td>
+    </tr>
+    <tr>
         <td>
             <div id="locNormalMove" onclick="nav(this.id)" class="nav-font-size">骞充粨鎴愬搧绉诲簱</div>
         </td>

--
Gitblit v1.9.1