define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {

    var Controller = {
        index: function () {
            require(['jstree'], function () {
                // 初始化表格参数配置
                Table.api.init({
                    extend: {
                        index_url: 'inspection/staff/index',
                        add_url: 'inspection/staff/add',
                        edit_url: 'inspection/staff/edit',
                        del_url: 'inspection/staff/del',
                        multi_url: 'inspection/staff/multi',
                        table: 'inspection_staff',
                    }
                });

                var table = $("#table");

                // 初始化表格
                table.bootstrapTable({
                    url: $.fn.bootstrapTable.defaults.extend.index_url,
                    pk: 'id',
                    sortName: 'weigh asc,id desc',
                    searchFormVisible:true,
                    columns: [
                        [
                            {checkbox: true},
                            {field: 'id', title: __('Id'),operate:false},
                            {field: 'is_screen_mng', title: __('Is_screen_mng'), searchList: {"0":__('Is_screen_mng 0'),"1":__('Is_screen_mng 1')}, formatter: Table.api.formatter.normal},
                            {field: 'is_regulatory_mng', title: __('Is_regulatory_mng'), searchList: {"0":__('Is_regulatory_mng 0'),"1":__('Is_regulatory_mng 1')}, formatter: Table.api.formatter.normal},
                            {field: 'staff_code', title: __('工号'),operate:'like'},
                            {field: 'staff_name', title: __('员工姓名'),operate:'like'},
                            {field: 'mobile', title: __('电话'),operate:false},
                            {field: 'duty', title: __('职务'),operate:false},
                            {field: 'depart.depart_name', title: __('所属部门'),operate:false},
                            {field: 'avatar', title: __('头像'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},

                            // {field: 'createtime', title: __('添加时间'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime},
                            {field: 'weigh', title: __('排序'),operate:false},
                            {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                        ]
                    ]
                });


                $('#channeltree').on("changed.jstree", function (e, data) {
                    if(data.node){
                        node_id = data.node.id;
                        $.fn.bootstrapTable.defaults.extend.add_url = "inspection/staff/add?depart_id="+node_id;
                        table.bootstrapTable('refresh', {url: $.fn.bootstrapTable.defaults.extend.index_url+"?depart_id="+node_id,pageNumber:1});
                    }

                    return false;
                });

                $('#channeltree').jstree({
                    "checkbox": {"keep_selected_style": false,},
                    "types": {
                        "total": {"icon": "fa fa-folder-o",},
                        "folder": {"icon": "fa fa-folder",},
                        "disabled": {"check_node": false,"uncheck_node": false}
                    },
                    'plugins': ["types"],
                    "core": {
                        "themes": {
                            "stripes": false,
                            "dots": false,//是否显示树连接线
                            "icons": true,//是否显示节点的图标
                        },
                        'check_callback': true,
                        'data':{
                            'url' : 'inspection/depart/tree',
                            'data' : function (node) {
                                return { 'id' : node.id};
                            }
                        }
                    }
                });



                // 为表格绑定事件
                Table.api.bindevent(table);
            })
        },
        add: function () {
            Controller.api.bindevent();
        },
        edit: function () {
            Controller.api.bindevent();
        },
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            }
        }
    };
    return Controller;
});