懒羊羊
2023-08-30 1ac2bc1590406d9babec036e154d8d08f34a6aa1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
layui.use(['layer', 'form', 'ztree', 'laydate', 'admin', 'ax', 'treeTable', 'func'], function () {
    var layer = layui.layer;
    var form = layui.form;
    var $ZTree = layui.ztree;
    var $ax = layui.ax;
    var laydate = layui.laydate;
    var admin = layui.admin;
    var treeTable = layui.treeTable;
    var func = layui.func;
 
    //table的初始化实例
    var insTb;
 
    /**
     * 系统管理--菜单管理
     */
    var Menu = {
        tableId: "menuTable",    //表格id
        condition: {
            menuId: "",
            menuName: "",
            level: ""
        }
    };
 
    /**
     * 初始化表格的列
     */
    Menu.initColumn = function () {
        return [
            {type: 'numbers'},
            {field: 'name', align: "left", sort: true, title: '菜单名称', minWidth: 240},
            {field: 'code', align: "center", sort: true, title: '菜单编号', minWidth: 120},
            {field: 'pcode', align: "center", sort: true, title: '菜单父编号'},
            {field: 'url', align: "center", sort: true, title: '请求地址'},
            {field: 'sort', align: "center", sort: true, title: '排序'},
            {field: 'levels', align: "center", sort: true, title: '层级'},
            {field: 'isMenuName', align: "center", sort: true, title: '是否是菜单'},
            {field: 'statusName', align: "center", sort: true, title: '状态'},
            {align: 'center', toolbar: '#menuTableBar', title: '操作', minWidth: 200}
        ];
    };
 
    /**
     * 点击菜单树时
     */
    Menu.onClickMenu = function (e, treeId, treeNode) {
        Menu.condition.menuId = treeNode.id;
        Menu.search();
    };
 
    /**
     * 点击查询按钮
     */
    Menu.search = function () {
        var queryData = {};
        queryData['menuName'] = $("#menuName").val();
        queryData['level'] = $("#level").val();
        Menu.initTable(Menu.tableId, queryData);
    };
 
    /**
     * 弹出添加菜单对话框
     */
    Menu.openAddMenu = function () {
        func.open({
            height: 720,
            title: '添加菜单',
            content: Feng.ctxPath + '/menu/menu_add',
            tableId: Menu.tableId,
            endCallback: function () {
                Menu.initTable(Menu.tableId);
            }
        });
    };
 
    /**
     * 点击编辑菜单按钮时
     *
     * @param data 点击按钮时候的行数据
     */
    Menu.onEditMenu = function (data) {
        func.open({
            height: 720,
            title: '修改菜单',
            content: Feng.ctxPath + "/menu/menu_edit?menuId=" + data.menuId,
            tableId: Menu.tableId,
            endCallback: function () {
                Menu.initTable(Menu.tableId);
            }
        });
    };
 
    /**
     * 点击删除菜单按钮
     *
     * @param data 点击按钮时候的行数据
     */
    Menu.onDeleteMenu = function (data) {
        var operation = function () {
            var ajax = new $ax(Feng.ctxPath + "/menu/remove", function () {
                Feng.success("删除成功!");
                Menu.condition.menuId = "";
                Menu.initTable(Menu.tableId);
            }, function (xhr) {
                Feng.error("删除失败!" + xhr.responseJSON.message + "!");
            });
            ajax.set("menuId", data.menuId);
            ajax.start();
        };
        Feng.confirm("是否删除菜单" + data.name + "?", operation);
    };
 
    /**
     * 初始化表格
     */
    Menu.initTable = function (menuId, reqData) {
        return treeTable.render({
            elem: '#' + menuId,
            tree: {
                iconIndex: 1,           // 折叠图标显示在第几列
                idName: 'code',         // 自定义id字段的名称
                pidName: 'pcode',       // 自定义标识是否还有子节点的字段名称
                haveChildName: 'haveChild',  // 自定义标识是否还有子节点的字段名称
                isPidData: true         // 是否是pid形式数据
            },
            height: "full-98",
            cols: Menu.initColumn(),
            reqData: function (data, callback) {
                var ajax = new $ax(Feng.ctxPath + '/menu/listTree', function (res) {
                    callback(res.data);
                }, function (res) {
                    Feng.error("删除失败!" + res.responseJSON.message + "!");
                });
                ajax.setData(reqData);
                ajax.start();
            }
        });
    };
 
    // 渲染表格
    insTb = Menu.initTable(Menu.tableId);
    $('#expandAll').click(function () {
        insTb.expandAll();
    });
    $('#foldAll').click(function () {
        insTb.foldAll();
    });
 
    //渲染时间选择框
    laydate.render({
        elem: '#timeLimit',
        range: true,
        max: Feng.currentDate()
    });
 
    //初始化左侧部门树
    var ztree = new $ZTree("menuTree", "/menu/selectMenuTreeList");
    ztree.bindOnClick(Menu.onClickMenu);
    ztree.init();
 
    // 搜索按钮点击事件
    $('#btnSearch').click(function () {
        Menu.search();
    });
 
    // 添加按钮点击事件
    $('#btnAdd').click(function () {
        Menu.openAddMenu();
    });
 
    // 工具条点击事件
    treeTable.on('tool(menuTable)', function (obj) {
        var data = obj.data;
        var layEvent = obj.event;
 
        if (layEvent === 'edit') {
            Menu.onEditMenu(data);
        } else if (layEvent === 'delete') {
            Menu.onDeleteMenu(data);
        }
    });
 
});