Location.js 12.9 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 = 'general';
    var TableName = 'Location';

    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 = {
        //自定义按钮
        btnIsStopTrue: function () {
            var checkStatus = table.checkStatus('mainList');
            var count = checkStatus.data.length;//选中的行数
            var data = checkStatus.data; //获取选中行的数据
            if (count > 0) {
                    $.ajax({
                        url: "/" + AreaName + "/" + TableName + "/IsStope",
                        type: "post",
                        data: {ids: data.map(function (e) { return e.Id; }),stop:true },
                        dataType: "json",
                        success: function (result) {
                            if (result.code == 200) {
                                layer.msg('禁用成功', { icon: 6, shade: 0.4, time: 1000 });
                                mainList.mainList();//重载TABLE
                            }
                            else {
                                layer.alert("禁用失败:" + result.Message, { icon: 5, shadeClose: true, title: "错误信息" });
                            }
                        },
                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                            layer.alert(errorThrown, { icon: 2, title: '提示' });
                        }
                    });
            }
            else
                layer.alert("请至少选择一条数据", { icon: 5, shadeClose: true, title: "错误信息" });
        },
        btnIsStopFalse: function () {
            var checkStatus = table.checkStatus('mainList');
            var count = checkStatus.data.length;//选中的行数
            var data = checkStatus.data; //获取选中行的数据
            if (count > 0) {
                $.ajax({
                    url: "/" + AreaName + "/" + TableName + "/IsStope",
                    type: "post",
                    data: { ids: data.map(function (e) { return e.Id; }), stop: false },
                    dataType: "json",
                    success: function (result) {
                        if (result.code == 200) {
                            layer.msg('解禁成功', { icon: 6, shade: 0.4, time: 1000 });
                            mainList.mainList();//重载TABLE
                        }
                        else {
                            layer.alert("解禁失败:" + result.Message, { icon: 5, shadeClose: true, title: "错误信息" });
                        }
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        layer.alert(errorThrown, { icon: 2, title: '提示' });
                    }
                });
            }
            else
                layer.alert("请至少选择一条数据", { icon: 5, shadeClose: true, title: "错误信息" });
        },
        DomConfig: function (AddOrUpdate) {
           if (AddOrUpdate) {
               hhweb.DomEnable($("#modifyForm [name='Code']"));
               hhweb.DomEnable($("#modifyForm [name='Row']"));
               hhweb.DomEnable($("#modifyForm [name='Line']"));
               hhweb.DomEnable($("#modifyForm [name='Layer']"));
               hhweb.DomEnable($("#modifyForm [name='Roadway']"));
               hhweb.DomEnable($("#modifyForm [name='Type']"));
               hhweb.DomEnable($("#modifyForm [name='Status']"));
            }
           else {
               hhweb.DomDisable($("#modifyForm [name='Code']"));
               hhweb.DomDisable($("#modifyForm [name='Row']"));
               hhweb.DomDisable($("#modifyForm [name='Line']"));
               hhweb.DomDisable($("#modifyForm [name='Layer']"));
               hhweb.DomDisable($("#modifyForm [name='Roadway']"));
               hhweb.DomDisable($("#modifyForm [name='Type']"));
               hhweb.DomDisable($("#modifyForm [name='Status']"));
            }
        },
        DomConfig_Inventory: function (AddOrUpdate) {
            if (AddOrUpdate) {
                hhweb.DomEnable($("#modifyFormDtl_Inventory [name='ContainerCode']"));
                hhweb.DomEnable($("#modifyFormDtl_Inventory [name='ContainerCode']"));
            }
            else {
             
            }
        },
        SaveBefore: function (AddOrEditOrDelete) {
            if (AddOrEditOrDelete in { Add: null, Edit: null }) {
                var rtn = hhweb.CheckRequired("#modifyForm", AddOrEditOrDelete);
                return rtn;
            }
        },
        SaveBefore_Inventory: function (AddOrEditOrDelete) {
            if (AddOrEditOrDelete in { Add: null, Edit: null }) {
                var rtn = hhweb.CheckRequired("#modifyFormDtl_Inventory", AddOrEditOrDelete);
                return rtn;
            }
        },
        BatchCreateLocation: function () {
            //重置from的所有数据
            document.getElementById("BtchForm").reset();
            layer.open({
                type: 1,
                //  skin: 'layui-layer-molv',
                moveType: 1, //拖拽模式,0或者1
                title: "批量创建", //不显示标题
                area: ["750px", "450px"], //宽高
                content: $('#TypeBtch'), //捕获的元素
                scrollbar: true,
                btn: ['创建', '关闭'],
                yes: function (index, layero) {
                    var Type = $("#Type").val();           //库位类型
                    var Row = $("#Row").val();             //总行
                    var Line = $("#Line").val();           //总列
                    var Layer = $("#Layer").val();         //总层
                    var Grid = 0;  
                    var Roadway = $("#Roadway").val();     //巷道
                    var MaxHeight = $("#MaxHeight").val();  //最大高度
                    var MaxWeight = $("#MaxWeight").val();  //最大重量

                    if (Type == "") {
                        layer.alert("库位类型不能为空!", { icon: 5, shadeClose: true, title: "错误信息" });
                        return null;
                    } 
                    if (Row == "") {
                        layer.alert("总行数不能为空!", { icon: 5, shadeClose: true, title: "错误信息" });
                        return null;
                    } 
                    if (Line == "") {
                        layer.alert("总列数不能为空!", { icon: 5, shadeClose: true, title: "错误信息" });
                        return null;
                    } 
                    if (Layer == "") {
                        layer.alert("总层数不能为空!", { icon: 5, shadeClose: true, title: "错误信息" });
                        return null;
                    } 
                    if (Roadway == "") {
                        layer.alert("巷道不能为空!", { icon: 5, shadeClose: true, title: "错误信息" });
                        return null;
                    } 
                    $.ajax({
                        url: "/general/Location/BtchAdd",
                        type: "POST",
                        data: {
                            Type: Type,
                            Row: Row,
                            Line: Line,
                            Layer: Layer,
                            Grid: 0,
                            Roadway: Roadway,
                            Height: MaxHeight,
                            Weight: MaxWeight
                        },
                        dataType: "json",
                        success: function (result) {
                            if ( result.status) {
                                layer.msg("创建成功!", { icon: 6, shade: 0.4, time: 1000 });
                                layer.close(index);
                                mainList.mainList();

                            } else {
                                layer.alert("创建失败:" + result.Message, { icon: 5, shadeClose: true, title: "错误信息" });
                            }
                        },
                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                            layer.alert(errorThrown, { icon: 2, title: '提示' });
                        }
                    });
                },
                cancel: function (index) {
                    layer.close(index);
                }
            });
        }
    };

    var selector = {
        'Status': {
            SelType: "FromDict",
            SelFrom: "locationStatus",
            SelModel: "Status",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='Status']"), $("[name='qStatus']")]
        },
        'IStatus': {
            SelType: "FromDict",
            SelFrom: "inventoryStatus",
            SelModel: "IStatus",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='IStatus']")]
        },
        'ContainerStatus': {
            SelType: "FromDict",
            SelFrom: "containerStatus",
            SelModel: "ContainerStatus",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='ContainerStatus']")]
        },
        'IsStop': {
            SelType: "FromDict",
            SelFrom: "IsStop",
            SelModel: "IsStop",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='IsStop']"), $("[name='qIsStop']")]
        },
        'Type': {
            SelType: "FromDict",
            SelFrom: "warehouseType",
            SelModel: "Type",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='Type']"), $("[name='qType']")]
        },
        'DistributionType': {
            SelType: "FromDict",
            SelFrom: "DistributionType",
            SelModel: "DistributionType",
            SelLabel: "DictLabel",
            SelValue: "DictValue",
            Dom: [$("[name='DistributionType']"), $("[name='qDistributionType']")]
        }
    };

    var All = new Array();

    //子表逻辑
    var AreaNameDtlInventory = 'Inventory';
    var TableNameDtlInventory = 'Inventory';
    //{子表字段:主表字段}
    var NameDtlInventory = { LocationCode: 'Code' };
    var vmDtlInventory = new Vue({
        el: '#modifyFormDtl_' + TableNameDtlInventory
    });
    var vmqDtlInventory = new Vue({
        data: { LocationCode: '' }
    });
    //编辑
    var EditInfoDtlInventory = function (tabledata) {
        data = tabledata;
        vmDtlInventory.$set('$data', tabledata);
        var list = {};
        $('.ClearSelector_' + TableNameDtlInventory).each(function () {
            var selDom = ($(this));
            if ($(selDom)[0].name.search("q") == -1) {
                list[$(selDom)[0].name] = data[$(selDom)[0].name] + "";
            }
        });
        //表单修改时填充需修改的数据
        form.val('modifyFormDtl_' + TableNameDtlInventory, list);
    };

    var vml = new Array({
        vm: vm,
        vmq: vmq,
        vmDtlInventory: vmDtlInventory
    });
    Universal.BindSelector($, form, vml, selector);
    Universal.mmain(AreaName, TableName, table, layer, element, laydate, $, vm, vmq, EditInfo, selfbtn, mainList, form);
    All.push({ AreaNameDtl: AreaNameDtlInventory, TableNameDtl: TableNameDtlInventory, vmqDtl: vmqDtlInventory, vmDtl: vmDtlInventory, EditInfoDtl: EditInfoDtlInventory, NameDtl: NameDtlInventory });
    Universal.mainDtl(table, layer, element, $, selfbtn, All, form);
});