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

    var Controller = {
        index: function () {
            // 初始化表格参数配置
            Table.api.init({
                extend: {
                    index_url: 'inspection/route/index' + location.search,
                    add_url: 'inspection/route/add',
                    edit_url: 'inspection/route/edit',
                    del_url: 'inspection/route/del',
                    multi_url: 'inspection/route/multi',
                    import_url: 'inspection/route/import',
                    table: 'inspection_route',
                }
            });

            var table = $("#table");
            $(".btn-add").data("area", ["100%", "100%"]);
            //当内容渲染完成给编辑按钮添加`data-area`属性
            table.on('post-body.bs.table', function (e, settings, json, xhr) {
                $(".btn-editone").data("area", ["100%", "100%"]);
            });

            // 初始化表格
            table.bootstrapTable({
                url: $.fn.bootstrapTable.defaults.extend.index_url,
                pk: 'id',
                sortName: 'id',
                columns: [
                    [
                        {checkbox: true},
                        {field: 'id', title: __('Id')},
                        {field: 'route_name', title: __('Route_name'), operate: 'LIKE'},
                        {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime},
                        {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                    ]
                ]
            });

            // 为表格绑定事件
            Table.api.bindevent(table);
        },
        add: function () {
            $(".btn-append_site").click(function () {
                var url = 'inspection/route/sel_area_site';
                var that = this;
                Fast.api.open(url, "选择巡检点", {area:["80%", "80%"],
                    callback:function(data){

                    console.log(data)
                        var k = $(that).parent().parent().find(".form-inline").length;
                        $(that).parent().before('<dd class="form-inline">\n'+
                            '                    <input type="hidden" readonly name="row[configgroup]['+k+'][id]" class="form-control"  value="'+data.id+'">\n' +
                            '                    <input type="text" readonly name="row[configgroup]['+k+'][value]" class="form-control" style="width: 200px;" value="'+data.site_name+'">\n' +
                            '                    <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span>\n' +
                            '                    <span class="btn btn-sm btn-primary btn-dragsort"><i class="fa fa-arrows"></i></span>\n' +
                            '                </dd>');
                    }
                });
            })
            Controller.api.bindevent();
        },
        sel_area_site: function () {

            require(['jstree'], function () {
                Table.api.init();

                // 巡检点列表
                var table = $("#table");
                table.bootstrapTable({
                    toolbar: '#toolbar',
                    url: "inspection/areasite/index",
                    extend: {
                        index_url: 'inspection/areasite/index',
                        table: 'inspection_areasite',
                    },
                    sortName: 'id',
                    pageSize:10,
                    search: false,
                    columns: [
                        [
                            {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
                                buttons: [{
                                    name: 'content',
                                    title: __('选择'),
                                    text:'选择',
                                    classname: 'btn btn-xs btn-danger btn-click',
                                    click : function (data, ret) {
                                        Fast.api.close(ret);
                                    },
                                }],formatter: Table.api.formatter.operate},
                            {field: 'id', title: __('Id'),operate:false},
                            {field: 'site_name', title: __('巡检点名称'),operate:'like'},
                            {field: 'lnglat', title: __('经纬度'),operate:false},
                            {field: 'distance', title: __('有效距离(米)'),operate:false},
                            {field: 'createtime', title: __('添加时间'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime},
                        ]
                    ]
                });

                // 为表格1绑定事件
                Table.api.bindevent(table);

                $('#channeltree').on("changed.jstree", function (e, data) {
                    if(data.node){
                        node_id = data.node.id;
                        table.bootstrapTable('refresh', {url: "inspection/areasite/index?area_id="+node_id,pageNumber:1});

                        $("#toolbar2").find(".btn-add").removeClass("btn-disabled").removeClass("disabled");
                    }

                    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/area/tree',
                            'data' : function (node) {
                                return { 'id' : node.id};
                            }
                        }
                    }
                });
                //
                // // 为表格绑定事件
                // Table.api.bindevent(table);
            })
        },
        edit: function () {
            $(".btn-append_site").click(function () {
                var url = 'inspection/route/sel_area_site';
                var that = this;
                Fast.api.open(url, "选择巡检点", {area:["80%", "80%"],
                    callback:function(data){
                        var k = $(that).parent().parent().find(".form-inline").length;
                        $(that).parent().before('<dd class="form-inline">\n'+
                            '                    <input type="hidden" readonly name="row[configgroup]['+k+'][id]" class="form-control"  value="'+data.id+'">\n' +
                            '                    <input type="text" readonly name="row[configgroup]['+k+'][value]" class="form-control" style="width: 200px;" value="'+data.site_name+'">\n' +
                            '                    <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span>\n' +
                            '                    <span class="btn btn-sm btn-primary btn-dragsort"><i class="fa fa-arrows"></i></span>\n' +
                            '                </dd>');
                    }
                });
            })
            Controller.api.bindevent();
        },
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            }
        }
    };
    return Controller;
});