PalletInOut.js 14.5 KB
layui.config({
    base: "/js/"
}).use(['form', 'element', 'vue', 'layer', 'laydate', 'jquery','hhweb', 'table', 'utils', 'Universal'], function () {
    var form = layui.form,
        layer = layui.layer,
        element = layui.element,
        laydate = layui.laydate,
        $ = layui.jquery,
        table = layui.table,
        Universal = layui.Universal;

    var AreaName = 'task';
    var TableName = 'TaskDetail';

    var vm = new Vue({
        el: '#PalletForm'
    });

    var taskDel = new Vue({
        data: {}
    });

    var vmq = new Vue({
        data: {
            ContainerCode: 'ContainerCode',
            TaskNo: 'TaskNo'
        }
    });

    var mainList = {
        //NoData: function () {
        //    return "<div id='background' style='width:100%;height:100%;background-image:url(../../images/NoData.png);background-repeat:no-repeat;background-size:cover;'>.</div>"
        //},
        mainList: function (vm) {
            table.reload('mainList', {
                url: "/" + AreaName + "/" + TableName + "/FindTaskDel"
                , where: vm.$data
                , method: "post"
                , text: { none: "暂无数据,请扫码容器编号!" }
               // , text: { none: this.NoData() }
            });
        }
    };

    var selector = {
        'TaskType': {
            SelType: "FromDict",
            SelFrom: "taskType",
            SelModel: "TaskType",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='TaskType']")]
        },
        'Code': {
            SelType: "FromUrl",
            SelFrom: "/general/Station/Load",
            SelModel: "Code",
            SelLabel: "Name",
            SelValue: "Code",
            Dom: [$("[name='Code']")]
        }
    };

    var vml = new Array({
        vm: vm,
        vmq: vmq
    });

    Universal.BindSelector($, form, vml, selector);
    mainList.mainList(vmq);

    //出库查看完成
    $(document).on("click", "#btnFinishCheck", function () {
        var type = $('[name = "OperationType"]')[0].value;
            if (type == "出库") {
                $.ajax({
                    async: false,
                    url: "/task/Task/FinishCheck",
                    type: "post",
                    data: { taskDel: taskDel.$data },
                    dataType: "json",
                    success: function (result) {
                        if (result.code == 200) {
                            FindFirstTask();
                            layer.msg("查看完成!", { icon: 6, shade: 0.4, time: 1000 });
                        }
                        else {
                            layer.alert("失败:" + result.msg, { icon: 5, shadeClose: true, title: "错误信息" });
                        }
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        layer.alert(errorThrown, { icon: 2, title: '提示' });
                    }
                });
            } else {
                layer.alert("失败:" + type + "类型无效", { icon: 5, shadeClose: true, title: "错误信息" });
            }
            FindFirstTask();
    });

    //收(取)料完成
    $(document).on("click", "#btnFinish", function () {
        var oderQty = eval(vm.OderQty) - eval(vm.HadQty);
        var num = eval($('[name = "Num"]')[0].value);
        if (num == 0) {
            layer.alert("失败:" + result.msg, { icon: 5, shadeClose: true, title: "错误信息" });
            return null;
        }
        taskDel.$data.HadQty = num;
        var type = $('[name = "OperationType"]')[0].value;
        if (oderQty >= num) {
            if (type == "入库") {
                $.ajax({
                    async: false,
                    url: "/receipt/ReceiptHeader/FinishMaterial",
                    type: "post",
                    data: { taskDel: taskDel.$data},
                    dataType: "json",
                    success: function (result) {
                        if (result.code == 200) {
                            layer.msg("放料成功", { icon: 6, shade: 0.4, time: 1000 });
                        }
                        else {
                            layer.alert("失败:" + result.msg, { icon: 5, shadeClose: true, title: "错误信息" });
                        }
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        layer.alert(errorThrown, { icon: 2, title: '提示' });
                    }
                });
            } else if (type == "出库") {
                $.ajax({
                    async: false,
                    url: "/task/Task/FinishPick",
                    type: "post",
                    data: { taskDel: taskDel.$data },
                    dataType: "json",
                    success: function (result) {
                        if (result.code == 200) {
                            FindFirstTask();
                            layer.msg("拣货成功!", { icon: 6, shade: 0.4, time: 1000 });
                        }
                        else {
                            layer.alert("失败:" + result.msg, { icon: 5, shadeClose: true, title: "错误信息" });
                        }
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        layer.alert(errorThrown, { icon: 2, title: '提示' });
                    }
                });
            } else {
                layer.alert("失败:" + type + "类型无效", { icon: 5, shadeClose: true, title: "错误信息" });
            }
            FindFirstTask();
        } else {
            layer.alert("失败:完成数量不能大于库存数量", { icon: 5, shadeClose: true, title: "错误信息" });
        }
    });

    //托盘回库
    $(document).on("click", "#btnBack", function () {
        if ($('[name = "ContainerId"]')[0].value != "") {
            $.ajax({
                async: false,
                url: "/" + "task" + "/" + "Task" + "/BulidContainerBack",
                type: "post",
                data: { containerCode: $('[name = "ContainerId"]')[0].value, IsFull: $('[name = "IsFull"]:checked')[0].value },
                dataType: "json",
                success: function (result) {
                    if (result.code == 200) {
                        layer.msg("回库成功", { icon: 6, shade: 0.4, time: 1000 });
                        $('[name = "ContainerId"]').val("");
                        $('[name = "ContainerId"]').focus();
                        $('#radioSome').prop("checked", "checked");
                        form.render();
                    }
                    else {
                        layer.alert("失败:" + result.msg, { icon: 5, shadeClose: true, title: "错误信息" });
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    layer.alert(errorThrown, { icon: 2, title: '提示' });
                }
            });
            FindFirstTask();
        } else {
            layer.alert("请填写托盘号", { icon: 5, shadeClose: true, title: "错误信息" });
        }
    });

    //空托盘回库
    $(document).on("click", "#btnEmptyBack", function () {
        if ($('[name = "ContainerId"]')[0].value != "" && $('[name = "Code"]')[0].value != "") {
            $.ajax({
                async: false,
                url: "/" + "task" + "/" + "Task" + "/BulidEmptyContainerBack",
                type: "post",
                data: { station: $('[name = "Code"]')[0].value, containerCode: $('[name = "ContainerId"]')[0].value },
                dataType: "json",
                success: function (result) {
                    if (result.code == 200) {
                        layer.msg("空托回库成功", { icon: 6, shade: 0.4, time: 1000 });
                        $('[name = "ContainerId"]').val("");
                        $('[name = "ContainerId"]').focus();
                    }
                    else {
                        layer.alert("失败:" + result.msg, { icon: 5, shadeClose: true, title: "错误信息" });
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    layer.alert(errorThrown, { icon: 2, title: '提示' });
                }
            });
            vmq.$set('ContainerCode', 'ContainerCode');
            vmq.$set('TaskNo', 'TaskNo');
            mainList.mainList(vmq);
            vm.$set('$data','');
            taskDel.$set('$data', '');
            $('[name = "Num"]').val("");
            $('[name = "OperationType"]').val("");
        } else {
            layer.alert("请填写托盘号和站台!", { icon: 5, shadeClose: true, title: "错误信息" });
        }
    });

    //打开页面聚焦“容器管理”
    $(document).ready(function () {
        $('[name = "ContainerId"]').focus();
    });

    //单击行监听
    table.on('row(mainList)', function (obj) {
        //行变为点击状态
        $(obj.tr[0]).siblings().removeClass('layui-table-click');
        $(obj.tr[0]).addClass('layui-table-click');
        //赋值
        vm.$set('$data', obj.data);
        taskDel.$set('$data', obj.data);
        FindTaskType(obj.data);
        //改变焦点
        $('[name = "Num"]').focus();
    });

    //“容器编号”回车监听
    $('[name = "ContainerId"]').bind("keydown", function (e) {
        if (e.which == 13) {

            

            e.preventDefault(); //Skip default behavior of the enter key
            if ($(this).val() != "") {
                FindFirstTask();
                //改变焦点
                $('[name = "Num"]').focus();
            }
            else {
                $(this).focus();
            }
        }
    });

    //“数量”回车监听
    $('[name = "Num"]').bind("keydown", function (e) {
        if (e.which == 13 && $('[name = "Num"]')[0].value != "") {
            e.preventDefault(); //Skip default behavior of the enter key
            if ($('[name = "TaskType"]').val() == "出库查看") {
                $('#btnFinishCheck').click();
            } else {
                $('#btnFinish').click();
            }
            //改变焦点
            $('[name = "Num"]').focus();
        }
    });

    //出入库翻译
    function FindTaskType(data) {
        $.ajax({
            async: false,
            type: "post",
            data: { DictType:'taskType'},
            url: '/base/SysDictData/FindSysDictData',
            dataType: "json",
            success: function (result) {
                for (var i = 0; i < result.data.length;i++) {
                    if (result.data[i].DictValue == data.TaskType) {
                        vm.$set('TaskType', result.data[i].DictLabel);
                        $('[name = "TaskType"]').val(result.data[i].DictLabel);

                        //填写业务类型
                        if (result.data[i].DictLabel.split("入库").length > 1) {
                            $('[name = "OperationType"]').css('color', 'forestgreen');
                            $('[name = "TaskType"]').css('color', 'forestgreen');
                            $('[name = "OperationType"]').val("入库");
                        } else if (result.data[i].DictLabel.split("出库").length > 1) {
                            $('[name = "OperationType"]').css('color', 'blue');
                            $('[name = "TaskType"]').css('color', 'blue');
                            $('[name = "OperationType"]').val("出库");
                        } else {
                            $('[name = "OperationType"]').val(result.data[i].DictLabel);
                        }
                        

                        if ($('[name = "TaskType"]').val() == "出库查看") {
                            $('[name = "Num"]').val(eval(data.OderQty));

                        } else {
                            if (result.data[i].DictLabel.split("入库").length > 1) {
                                //导入数量
                                $('[name = "Num"]').val(eval(data.OderQty) - eval(data.HadQty));
                            } else {
                                //导入数量
                                $('[name = "Num"]').val(eval(data.ContainerQty) - eval(data.HadQty));
                            }
                        }

                        break;
                    }
                }
                if ($('[name = "TaskType"]').val() == "出库查看") {
                    $('.btn2').hide();
                    $('#btn1').show();
                    $('[name = "Num"]').attr({ readonly: "readonly" });
                    $('#btnFinishCheck').focus();

                } else {
                        $('#btn1').hide();
                        $('.btn2').show();
                }
                //    if ($('[name = "TaskType"]').val() == "整盘出库" || $('[name = "TaskType"]').val() == "分拣出库") {
                //    $('#btn1').hide();
                //    $('#btn2').show();
                //}
            }
        });
    }

    //查询容器的第一个任务
    function FindFirstTask() {
        $.ajax({
            async:false,
            url: "/" + "task" + "/" + "Task" + "/FindSourceCode",
            type: "post",
            data: { Code: $('[name = "ContainerId"]')[0].value },
            dataType: "json",
            success: function (result) {
                if (result.code == 200) {
                    vmq.$set('ContainerCode', result.data.ContainerCode);
                    vmq.$set('TaskNo', result.data.TaskNo);
                    mainList.mainList(vmq);
                    vm.$set('$data', result.data);
                    taskDel.$set('$data', result.data);
                    FindTaskType(result.data);
                    
                }
                else if (result.code == 0) {
                    vmq.$set('ContainerCode', 'ContainerCode');
                    vmq.$set('TaskNo', 'TaskNo');
                    mainList.mainList(vmq);
                    vm.$set('$data', result.data);
                    taskDel.$set('$data', result.data);
                    $('[name = "Num"]').val("");
                    $('[name = "OperationType"]').val("");
                }
                else {
                    layer.alert("失败:" + result.msg, { icon: 5, shadeClose: true, title: "错误信息" });
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                layer.alert(errorThrown, { icon: 2, title: '提示' });
            }
        });
    }
});