Inventory.js 8.8 KB
layui.config({
    base: "/js/"
}).use(['form', 'element', 'vue', 'layer', 'laydate', 'jquery', 'table', 'hhweb', 'utils', 'Universal'], function () {
    var form = layui.form,
        layer = layui.layer,
        element = layui.element,
        laydate = layui.laydate,
        $ = layui.jquery,
        table = layui.table,
        hhweb = layui.hhweb,
        Universal = layui.Universal;
    
    var AreaName = 'inventory';
    var TableName = 'Inventory';
    
    var vm = new Vue({
        el: '#modifyForm'
    });
    
    var vmq = new Vue({
        el: '#panelSearch',
        data: {
        }
    });
 
    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 () {
            table.reload('mainList', {
                url: "/" + AreaName + "/" + TableName + "/Load"
                , method: "post"
                , text: { none: this.NoData() }
            });
        }
    };
    
    //编辑
    var EditInfo = function (tabledata) {
        data = tabledata;
        vm.$set('$data', data);
        //表单修改时填充需修改的数据
        var list = {};
        $('.ClearSelector_' + TableName).each(function () {
            var selDom = ($(this));
            if ($(selDom)[0].name.search("q") == -1) {
                list[$(selDom)[0].name] = data[$(selDom)[0].name] + "";
            }
        });
        //表单修改时填充需修改的数据
        form.val('modifyForm', list);
    };

    var selfbtn = {
        //自定义按钮
        //直接出库
        GoodsOut: function (index) {
            var checkStatus = table.checkStatus('mainList');
            var count = checkStatus.data.length;//选中的行数
            var data1 = checkStatus.data;
            if (count < 1) {
                layer.alert("请至少选择一条数据", { icon: 5, shade: 0.4, time: 1000 });
                return;
            }
            $("#selectLoad").empty();
            var list;
            $.ajax({
                async: true,
                type: "post",
                url: "/receipt/ReceiptHeader/LoadStation",
                data: { list: data1},
                dataType: "json",
                success: function (result) {
                    if (result.code == 200) {
                        list = result.data;
                        var html = "<option value=''>请选择</option>";
                        var IsExistence = 0;
                        for (var i = 0; i < list.length; i++) {
                            var a = list[i].Code;
                            if (a.indexOf("BufferStationD0") == 0 && IsExistence == 0) {
                                IsExistence = 1;
                                html += "<option class='select_Station' value='" + list[i].Code + "'>" + list[i].Name + "</option>";
                            }
                            else if (a.indexOf("BufferStationD0") == 0 && IsExistence == 1) {
                                continue;
                            } else {
                                html += "<option class='select_Station' value='" + list[i].Code + "'>" + list[i].Name + "</option>";
                            }
                        }
                        $("#selectLoad").append(html);

                        //选择下拉列表,改变托盘号
                        //$("#selectLoad").change(function () {
                        //    $("#Pallet").val("");
                        //    var a = $("#selectLoad").val();
                        //    for (var i = 0; i < list.length; i++) {
                        //        if (list[i].Code == a) {
                        //            $("#Pallet").val(list[i].Containercode)
                        //        }
                        //    }
                        //})
                        layer.open({
                            type: 1,
                            //  skin: 'layui-layer-molv',
                            btnAlign: 'c',
                            moveType: 1, //拖拽模式,0或者1
                            title: "选择站台并出库", //不显示标题
                            area: ['600px', '400px'], //宽高
                            content: $('#tanchuang'), //捕获的元素
                            scrollbar: true,
                            btn: ['出库', '关闭'],
                            yes: function (index, layero) {
                                //if ($("#Pallet").val() != "") {
                                //    layer.msg("当前站台已有托盘占用", { icon: 5, shade: 0.4, time: 1500 });
                                //} else {
                                    $.ajax({
                                        url: "/" + AreaName + "/" + TableName + "/" + "GoodsOut",
                                        type: "POST",
                                        data: { Table_entitys: data1, Station: $("#selectLoad").val() },
                                        dataType: "json",
                                        success: function (result) {
                                            if (result.Code == 200) {
                                                layer.msg("出库任务创建成功!", { icon: 6, shade: 0.4, time: 1000 });
                                                layer.close(index);
                                                mainList.mainList();
                                            } else {
                                                layer.alert("出库任务创建失败", { icon: 5, shadeClose: true, title: "错误信息" });
                                            }
                                        },
                                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                                            layer.alert(errorThrown, { icon: 2, title: '提示' });
                                        }
                                    });
                                //}
                            },
                            cancel: function (index) {
                                layer.close(index);
                            }
                        });
                    } else {
                        layer.alert("请选择相同库位的库存出库", { icon: 5, shadeClose: true, title: "错误信息" });
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    layer.alert(errorThrown, { icon: 2, title: '提示' });
                }
            });

            
        },
        DomConfig: function (AddOrUpdate) {
            if (AddOrUpdate) {
                hhweb.DomEnable($("#modifyForm [name='MaterialCode']"));
                hhweb.DomEnable($("#modifyForm [name='Status']"));
                hhweb.DomEnable($("#modifyForm [name='Qty']"));
            }
            else {
                hhweb.DomDisable($("#modifyForm [name='WirePart']"));
                hhweb.DomDisable($("#modifyForm [name='Status']"));
                hhweb.DomDisable($("#modifyForm [name='Qty']"));
            }
        },
        SaveBefore: function (AddOrEditOrDelete) {
            if (AddOrEditOrDelete in { Add: null, Edit: null }) {
                var rtn = hhweb.CheckRequired("#modifyForm", AddOrEditOrDelete);
                return rtn;
            }
        }
    };
    
    var selector = {
        'Status': {
            SelType: "FromDict",
            SelFrom: "inventoryStatus",
            SelModel: "Status",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='Status']"), $("[name='qStatus']")]
        },
        'ContainerStatus': {
            SelType: "FromDict",
            SelFrom: "containerStatus",
            SelModel: "ContainerStatus",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='ContainerStatus']"), $("[name='qContainerStatus']")]
        },
        'TaskStatus': {
            SelType: "FromDict",
            SelFrom: "IsCyclecountStatus",
            SelModel: "TaskStatus",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='TaskStatus']"), $("[name='qTaskStatus']")]
        },
        'LocationCode': {
            SelType: "FromDict",
            SelFrom: "LocationCode",
            SelModel: "LocationCode",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='LocationCode']")] 
        }
    };
    
    var vml = new Array({
        vm: vm,
        vmq: vmq,
    });
    
    Universal.BindSelector($, form, vml, selector);
    Universal.mmain(AreaName, TableName, table, layer, element, laydate, $, vm, vmq, EditInfo, selfbtn, mainList, form);
});