王佳豪
2021-03-27 5080eb086d46f524bb5e7c39653abb737403ccf4
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,15 +43,33 @@
            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>
@@ -57,11 +78,13 @@
<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;">
        <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">
        <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,30 +96,63 @@
<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>
        <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>
    <div class="form-item">
        <span>生产单号</span>
        <input id="warehouse" type="text" disabled="disabled" style="width: 60%;height: 24.8px; color: blue">
    <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>
@@ -105,10 +161,12 @@
</body>
<script>
    window.onload = function(){document.getElementById("billNo").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;
@@ -122,7 +180,15 @@
            cols: [[
                {field: 'matNo', align: 'center', title: '物料编码'},
                {field: 'mnemonic', align: 'center', title: '生产单号'},
                {fixed: 'right', align: 'center', field: 'count', title: '数量', event: 'modify', style:'cursor: pointer;color: blue', width:50},
                {
                    fixed: 'right',
                    align: 'center',
                    field: 'count',
                    title: '数量',
                    event: 'modify',
                    style: 'cursor: pointer;color: blue',
                    width: 50
                },
//                {field: 'matName', align: 'center', title: '物料名称'}
            ]],
            done: function (res, curr, count) {
@@ -130,7 +196,7 @@
        });
        // 监听行工具事件
        table.on('tool(chooseData)', function(obj) {
        table.on('tool(chooseData)', function (obj) {
            var data = obj.data;
            switch (obj.event) {
                case 'modify':
@@ -139,13 +205,13 @@
                        offset: '20px',
                        title: '修改数量',
                        shadeClose: true,
                        area: ['80%', '220px'],
                        area: ['80%', '300px'],
                        content: $("#modify"),
                        success: function (layero, index) {
                            $('#matNo').val(data.matNo);
                            $('#matName').val(data.matName);
                            $('#count').val(data.count);
                            $('#warehouse').val(data.warehouse);
                            $('#mnemonic').val(data.mnemonic);
                            maxCount = data.count;
                        }
                    });
@@ -163,13 +229,14 @@
    // 添加表格数据
    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 && data[i].warehouse === matData[j].warehouse) {
            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) {
@@ -184,7 +251,7 @@
    /**
     * 根据通知单号查询物料详情
     */
    function find(el){
    function find(el) {
        if (isEmpty(el.value)) {
            return;
        }
@@ -222,12 +289,14 @@
    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;
@@ -236,12 +305,12 @@
    }
    // 修改数量
    function confirm(){
    function confirm() {
        var matNo = $('#matNo').val();
        var count = $('#count').val();
        var warehouse = $("#warehouse").val() === '' ? null : $("#warehouse").val();
        for (var j=0;j<matData.length;j++){
            if (matNo === matData[j].matNo && warehouse === matData[j].warehouse) {
        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;
@@ -257,9 +326,9 @@
    // 移除物料
    function remove() {
        var matNo = $('#matNo').val();
        var warehouse = $("#warehouse").val() === '' ? null : $("#warehouse").val();
        for (var j=0;j<matData.length;j++){
            if (matNo === matData[j].matNo && warehouse === matData[j].warehouse) {
        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);
            }
        }
@@ -267,23 +336,6 @@
        layer.close(countLayer);
        tips("移除成功");
    }
    // 重置
@@ -311,17 +363,17 @@
            return;
        }
        var billNo = $('#billNo').val();
        var warehouse = $('#warehouse').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,
                warehouse: warehouse,
                mnemonic: mnemonic,
            }),
            contentType:'application/json;charset=UTF-8',
            contentType: 'application/json;charset=UTF-8',
            method: 'POST',
            async: false,
            success: function (res) {
@@ -343,7 +395,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) {