BaseEquipmentGroup.js 6.95 KB
layui.config({
    base: "/js/"
}).use(['form', 'vue', 'ztree', 'layer', 'jquery', 'table', 'droptree', 'hhweb', 'utils'], function () {
    var form = layui.form,
        layer = layui.layer,
        $ = layui.jquery;
    var table = layui.table;
    var hhweb = layui.hhweb;
    //layui.droptree("/equipment/baseEquipmentGroup/Load", "#ParentName", "#ParentId", false);

    $("#menus").loadMenus("SysDept", 1);

    //主列表加载,可反复调用进行刷新
    var config = {};  //table的参数,如搜索key,点击tree的id
    var mainList = function (options) {
        if (options != undefined) {
            $.extend(config, options);
        }
        table.reload('mainList', {
            url: '/equipment/baseEquipmentGroup/Load'
            , method: 'POST'
            , where: config,
            page: {
                curr: 1 //重新从第 1 页开始
            }
        });
    }
    //左边树状机构列表
    var ztree = function () {
        var url = '/equipment/baseEquipmentGroup/Load';
        var zTreeObj;
        var setting = {
            view: { selectedMulti: false },
            data: {
                key: {
                    name: 'name',
                    title: 'name'
                },
                simpleData: {
                    enable: true,
                    idKey: 'id',
                    pIdKey: 'parentId',
                    rootPId: 'null'
                }
            },
            callback: {
                onClick: function (event, treeId, treeNode) {
                    mainList({ parentId: treeNode.id });
                }
            }
        };
        var load = function () {
            $.getJSON(url, function (json) {
                zTreeObj = $.fn.zTree.init($("#tree"), setting);
                zTreeObj.addNodes(null, json);
                mainList({ parentId: "" });
                zTreeObj.expandAll(true);
            });
        };
        load();
        return {
            reload: load
        }
    }();
    $("#tree").height($("div.layui-table-view").height());

    //添加(编辑)对话框
    var editDlg = function () {
        var vm = new Vue({
            el: "#formEdit",
            data: {
                parentId: 0,
                parentName: null,
            },
            methods: {
                updateNodeVal(id, name) {
                    this.parentId = id;
                    this.parentName = name;
                }
            }
        });
        var update = false;  //是否为更新
        var show = function (data) {
            var title = update ? "编辑" : "新增";
            index = layer.open({
                title: title,
                area: ["500px", "400px"],
                type: 1,
                content: $('#divEdit'),
                success: function () {
                    vm.$set('$data', data);
                },
                cancel: function () {
                    $('#menuContent').css("display", "none");
                }
            });

            var url = "/equipment/baseEquipmentGroup/Add";
            if (update) {
                url = "/equipment/baseEquipmentGroup/Update"; //暂时和添加一个地址
            }

            let treeNodes = [];
            $.getJSON('/equipment/baseEquipmentGroup/Load', function (json) {
                treeNodes = json;
                let obj = treeNodes.find(x => x.id == data.parentId);
                if (obj != undefined) {
                    vm.updateNodeVal(data.parentId, obj.name);
                }
            });

            $('#ParentName').focus(function () {
                $('#menuContent').css("display", "inline");
                let setting = {
                    view: { selectedMulti: false },
                    data: {
                        key: {
                            name: 'name',
                            title: 'name'
                        },
                        simpleData: {
                            enable: true,
                            idKey: 'id',
                            pIdKey: 'parentId',
                            rootPId: 'null'
                        }
                    },
                    callback: {
                        onClick: function (event, treeId, treeNode) {
                            let obj = treeNodes.find(x => x.id == treeNode.id);
                            vm.updateNodeVal(obj.id, obj.name);
                            $('#menuContent').css("display", "none");
                        }
                    }
                };
                $.fn.zTree.init($("#org"), setting, treeNodes);
            })

            //提交数据
            form.on('submit(formSubmit)', function (data) {
                $.post(url,
                    data.field,
                    function (data) {
                        layer.msg(data.Message);
                        // if ((!update) && data.Code == 200) {  //添加成功要刷新左边的树
                        ztree.reload();
                        // }
                        mainList();
                        layer.close(index);
                    },
                    "json");
                return false;
            });
        }
        return {
            add: function () { //弹出添加
                update = false;
                show({
                    id: '',
                    code: '',
                    name: '',
                    parentId: null,
                    parentName: '',
                    sortNo: 1
                });
            },
            update: function (data) { //弹出编辑框
                update = true;
                data.parentName = '';
                show(data);
            }
        };
    }();

    //监听页面主按钮操作
    var active = {
        btnDel: function () {      //批量删除
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;
            hhweb.del("/equipment/baseEquipmentGroup/Delete",
                data.map(function (e) { return e.id; }),
                function () {
                    mainList();
                    ztree.reload();
                });
        }
        , btnAdd: function () {  //添加
            editDlg.add();
        }
        , btnEdit: function () {  //编辑
            var checkStatus = table.checkStatus('mainList')
                , data = checkStatus.data;
            if (data.length != 1) {
                layer.alert("请选择编辑的行,且同时只能编辑一行", { icon: 2, shadeClose: true, title: "错误信息" });
                return;
            }
            editDlg.update(data[0]);
        }

        , search: function () {   //搜索
            mainList({ key: $('#key').val() });
        }
        , btnRefresh: function () {
            mainList();
        }
    };

    $('.toolList .layui-btn').on('click', function () {
        var type = $(this).data('type');
        active[type] ? active[type].call(this) : '';
    });

    //监听页面主按钮操作 end
})