luxiaotao1123
2021-04-08 91f2cd5b0f832091f654cce926585d2f05cad114
src/main/webapp/views/pda/combPro.html
@@ -18,11 +18,13 @@
            display: inline-block;
            width: 120px;
        }
        .number-tool:after {
            clear: both;
            content: "";
            display: table;
        }
        .number-tool button {
            background-color: #fff;
            margin-top: 3px;
@@ -32,6 +34,7 @@
            width: 25px;
            border: 1px solid #777777;
        }
        .number-tool input {
            text-align: center;
            height: 30px;
@@ -40,28 +43,48 @@
            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">
        <label class="layui-form-label">条码</label>
        <input class="layui-input" type="number" id="code" onkeyup="findCode(this)" oninput="if(value.length>8)value=value.slice(0,8)" placeholder="扫码 / 输入" autocomplete="off">
    </div>
    <div class="layui-input-inline" style="margin-top: 5px">
        <label class="layui-form-label">单号</label>
        <input class="layui-input" id="billNo" onkeyup="find(this)" placeholder="扫码 / 输入" autocomplete="off" style="width: 75%; height: 40px; margin-right: 0;">
        <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>
</header>
@@ -73,36 +96,77 @@
<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="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-item">
        <span>物料</span>
        <input id="matNo" type="text" disabled="disabled" style="width: 70%">
    </div>
    <div class="form-item">
        <span>名称</span>
        <input id="matName" type="text" disabled="disabled" style="width: 70%">
    <div class="form-box">
        <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="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="3" 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>
            <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>
    window.onload = function(){document.getElementById("code").focus();}
    window.onload = function () {
        document.getElementById("billNo").focus();
    }
    var tableIns;
    var countLayer;
    layui.use(['table','laydate', 'form'], function() {
    layui.use(['table', 'laydate', 'form'], function () {
        var table = layui.table;
        var $ = layui.jquery;
        var layer = layui.layer;
@@ -111,19 +175,28 @@
        tableIns = table.render({
            elem: '#chooseData',
            data: [],
            width: 320,
            limit: 500,
            cellMinWidth: 50,
            cols: [[
                {fixed: 'left', align: 'center', field: 'count', title: '数量', event: 'modify', style:'cursor: pointer;color: blue', width:50},
                {field: 'matNo', align: 'center', title: '物料编码'},
                {field: 'matName', align: 'center', title: '物料名称'}
                {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) {
        table.on('tool(chooseData)', function (obj) {
            var data = obj.data;
            switch (obj.event) {
                case 'modify':
@@ -132,12 +205,13 @@
                        offset: '20px',
                        title: '修改数量',
                        shadeClose: true,
                        area: ['80%', '200px'],
                        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;
                        }
                    });
@@ -148,20 +222,21 @@
    });
    function findCode(el) {
        if (el.value.length === 7) {
            $('#billNo').focus();
        }
//        if (el.value.length === 7) {
//            $('#code').focus();
//        }
    }
    // 添加表格数据
    var matData = [];
    function addTableData(data) {
        for (var i=0;i<data.length;i++) {
        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) {
            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;
                    toPush = false;
                }
            }
            if (toPush) {
@@ -169,21 +244,28 @@
            }
        }
        tableIns.reload({data: matData});
        $("#comb-btn").focus();
//        $("#comb-btn").focus();
    }
    /**
     * 根据通知单号查询物料详情
     */
    function find(el){
    function find(el) {
        if (isEmpty(el.value)) {
            return;
        }
        var billNo = el.value.split(",")[0].split("=")[1];
        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')},
@@ -202,19 +284,21 @@
                    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;
@@ -223,11 +307,12 @@
    }
    // 修改数量
    function confirm(){
    function confirm() {
        var matNo = $('#matNo').val();
        var count = $('#count').val();
        for (var j=0;j<matData.length;j++){
            if (matNo === matData[j].matNo) {
        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;
@@ -243,8 +328,9 @@
    // 移除物料
    function remove() {
        var matNo = $('#matNo').val();
        for (var j=0;j<matData.length;j++){
            if (matNo === matData[j].matNo) {
        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);
            }
        }
@@ -252,23 +338,6 @@
        layer.close(countLayer);
        tips("移除成功");
    }
    // 重置
@@ -296,15 +365,17 @@
            return;
        }
        var billNo = $('#billNo').val();
        var mnemonic = $('#mnemonic').val();
        $.ajax({
            url: baseUrl+"/mobile/comb/auth",
            url: baseUrl + "/mobile/comb/auth",
            headers: {'token': localStorage.getItem('token')},
            data: JSON.stringify({
                barcode: barcode,
                combMats: matData,
                billNo: billNo
                billNo: billNo,
                mnemonic: mnemonic,
            }),
            contentType:'application/json;charset=UTF-8',
            contentType: 'application/json;charset=UTF-8',
            method: 'POST',
            async: false,
            success: function (res) {
@@ -326,7 +397,7 @@
     * @param warn true:红色字体
     */
    function tips(msg, warn) {
        layer.msg(msg, {icon: warn?2:1})
        layer.msg(msg, {icon: warn ? 2 : 1})
    }
    document.onkeyup = function (e) {
@@ -341,5 +412,9 @@
            $("#code").focus();
        }
    }
    function back() {
        parent.backIndex();
    }
</script>
</html>