| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'jstree'], function ($, undefined, Backend, Table, Form, undefined) {    //读取选中的条目    $.jstree.core.prototype.get_all_checked = function (full) {        var obj = this.get_selected(), i, j;        for (i = 0, j = obj.length; i < j; i++) {            obj = obj.concat(this.get_node(obj[i]).parents);        }        obj = $.grep(obj, function (v, i, a) {            return v != '#';        });        obj = obj.filter(function (itm, i, a) {            return i == a.indexOf(itm);        });        return full ? $.map(obj, $.proxy(function (i) {            return this.get_node(i);        }, this)) : obj;    };    var Controller = {        index: function () {            // 初始化表格参数配置            Table.api.init({                extend: {                    index_url: 'user/group/index',                    add_url: 'user/group/add',                    edit_url: 'user/group/edit',                    del_url: 'user/group/del',                    multi_url: 'user/group/multi',                    table: 'user_group',                }            });            var table = $("#table");            // 初始化表格            table.bootstrapTable({                url: $.fn.bootstrapTable.defaults.extend.index_url,                pk: 'id',                sortName: 'id',                columns: [                    [                        {checkbox: true},                        {field: 'id', title: __('Id')},                        {field: 'name', title: __('Name')},                        {field: 'createtime', title: __('Createtime'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},                        {field: 'updatetime', title: __('Updatetime'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},                        {field: 'status', title: __('Status'), formatter: Table.api.formatter.status},                        {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}                    ]                ]            });            // 为表格绑定事件            Table.api.bindevent(table);        },        add: function () {            Controller.api.bindevent();        },        edit: function () {            Controller.api.bindevent();        },        api: {            bindevent: function () {                Form.api.bindevent($("form[role=form]"), null, null, function () {                    if ($("#treeview").size() > 0) {                        var r = $("#treeview").jstree("get_all_checked");                        $("input[name='row[rules]']").val(r.join(','));                    }                    return true;                });                //渲染权限节点树                //销毁已有的节点树                $("#treeview").jstree("destroy");                Controller.api.rendertree(nodeData);                //全选和展开                $(document).on("click", "#checkall", function () {                    $("#treeview").jstree($(this).prop("checked") ? "check_all" : "uncheck_all");                });                $(document).on("click", "#expandall", function () {                    $("#treeview").jstree($(this).prop("checked") ? "open_all" : "close_all");                });                $("select[name='row[pid]']").trigger("change");            },            rendertree: function (content) {                $("#treeview")                        .on('redraw.jstree', function (e) {                            $(".layer-footer").attr("domrefresh", Math.random());                        })                        .jstree({                            "themes": {"stripes": true},                            "checkbox": {                                "keep_selected_style": false,                            },                            "types": {                                "root": {                                    "icon": "fa fa-folder-open",                                },                                "menu": {                                    "icon": "fa fa-folder-open",                                },                                "file": {                                    "icon": "fa fa-file-o",                                }                            },                            "plugins": ["checkbox", "types"],                            "core": {                                'check_callback': true,                                "data": content                            }                        });            }        }    };    return Controller;});
 |