自动化立体仓库 - WMS系统
luxiaotao1123
2020-07-28 5c93d01a4c8100a7a4b306f5ce529e25e37c2942
#当前本版十分完美、冻结
3个文件已修改
258 ■■■■ 已修改文件
src/main/webapp/views/pda/index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pda/locDetlIframe.html 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pda/stockOut.html 229 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pda/index.html
@@ -79,7 +79,7 @@
</ul>
<!-- 主体内容 -->
<iframe id="content" src="stockOut.html"></iframe>
<iframe id="content" src="comb.html"></iframe>
</body>
<script>
src/main/webapp/views/pda/locDetlIframe.html
@@ -13,7 +13,7 @@
    <style>
        .form-box {
            padding: 15px 5px 5px 5px;
            font-size: 12px;
            font-size: 16px;
            text-align: center;
        }
@@ -22,16 +22,15 @@
        }
        .form-box span {
            font-size: 12px;
            display: inline-block;
            text-align: right;
            width: 50px;
            width: 70px;
        }
        .form-box input {
            width: 120px;
            margin-left: 10px;
            padding-left: 5px;
            height: 20px;
            height: 30px;
            border: 1px solid #777777;
            overflow:hidden;
            white-space:nowrap;
@@ -51,19 +50,19 @@
        }
        .number-tool button {
            background-color: #fff;
            margin-top: 2px;
            font-size: 13px;
            height: 18px;
            margin-top: 3px;
            font-size: 16px;
            height: 25px;
            float: left;
            width: 20px;
            width: 25px;
            border: 1px solid #777777;
        }
        .number-tool input {
            text-align: center;
            height: 20px;
            height: 30px;
            float: left;
            margin: 0 5px;
            width: 30px;
            width: 40px;
            padding: 0;
        }
@@ -90,7 +89,9 @@
    <div class="form-item">
        <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 class="form-button" id="save" onclick="save()">保存</button>
@@ -101,8 +102,8 @@
    var countDom = $('#count');
    function save() {
        if (countDom.val() <= 1) {
            alert("数量必须大于0")
        console.log(countDom.val())
        if (countDom.val() < 1) {
            return;
        }
        parent.updateTableData({
src/main/webapp/views/pda/stockOut.html
@@ -5,179 +5,44 @@
    <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-form-item">
        <select id="staNoSelect">
            <option value="">出库口</option>
        </select>
    <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>
<!-- 主体 -->
@@ -186,13 +51,9 @@
</main>
<!-- 尾部 -->
<footer>
    <!-- 出库口 -->
    <div class="site-list">
        <span style="display: inline-block; padding:0 0 0 10px; font-size: 12px;">出库口:</span>
    </div>
    <div class="layui-btn-container">
        <button type="button" class="layui-btn layui-btn-primary" onclick="reset()">重置</button>
        <button type="button" class="layui-btn layui-btn-normal" 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>
@@ -240,6 +101,7 @@
                        locDetlData = res.data;
                        tableIns.reload({data: locDetlData});
                    }
                    $('#pakOut').focus();
                } else if (res.code === 403) {
                    top.location.href = baseUrl + "/pda";
                } else {
@@ -267,7 +129,7 @@
            cellMinWidth: 50,
            cols: [[
                {type: 'checkbox', fixed: 'left', width:30},
                {field: 'count', align: 'center', title: '量', event: 'detail', style:'color: blue', width:30},
                {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'}
@@ -286,18 +148,20 @@
                        type: 2,
                        title: '库存明细',
                        shade: [0.3,'#000'],
                        area: ['90%', '77%'],
                        area: ['90%', '70%'],
                        content: 'locDetlIframe.html',
                        success: function(layero, index){
                            // 设置弹窗样式
                            $('.layui-layer-title').css('height', '20px').css('line-height', '20px').css('font-size', '12px').css('padding-left', '10px')
                            $('.layui-layer-setwin').css("top", '2px').css('right', '3px');
                            $('.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;
@@ -314,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 {
@@ -332,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;
        }
@@ -390,24 +254,35 @@
        $("#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:红色var字体
     */
    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="{{this}}">{{this}}</option>
    {{/each}}
</script>
</html>