define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
    var Controller = {
        index: function () {
            $(".btn-add").data("area", ["1020px", "775px"]);
            // 初始化表格参数配置
            Table.api.init();
            this.table.first();
            this.table.second();
            $('#myModal').on('click','#J_new_folder', function () {
                var pid = $("#one #pid").val();
                // alert();
                var folder_name = $('#folder_name').val();
                if (folder_name){
                    $.get('file/make_folder',{pid:pid,name:folder_name},function(res){
                        if (res.code == 1){
                            $('#myModal').modal('hide')
                            $("#toolbar1 .btn-refresh").trigger("click");
                            Toastr.success(res.msg);
                        }else{
                            Toastr.error(res.msg);
                        }
                    });
                }else{
                    alert('请输入文件夹名称')
                }
            });
			
        },
        table: {
            first: function () {
                // 表格1
                var table1 = $("#table1");
                table1.bootstrapTable({
                    url: 'file/index' + location.search+'&type=folder',
                    extend: {
    					index_url: 'file/index' + location.search+'&type=folder',
                        add_url: 'file/add',
                        edit_url: 'file/edit',
                        del_url: 'file/del',
                        multi_url: 'file/multi',
                        import_url: '',
                        table: 'file',
                    },
                    toolbar: '#toolbar1',
                    sortName: 'id',
                    search: false,
                    pagination: false,
                    columns: [
                        [
                            {field: 'pid', title: __('Pid'),visible:false},
                            {
                                
                                field: 'operate', title: __('文件夹'), table: table1, events: Table.api.events.operate, buttons: [
                                    {
                                        name: 'log',
                                        title: '',
                                        text: function(row){return row.name},
                                        classname: 'btn text-success btn-click btn-custom',
                                        click: function (e, data) {
                                            if(data.id>0){
                                                $("#back").data('pid',data.id);
                                                $("#back").removeClass('hide');
                                            }else{
                                                $("#back").data('pid',0);
                                                $("#back").addClass('hide');
                                            }
                                            $("#myTabContent2 .form-commonsearch input[name='pid']").val(data.id);
                                            $("#myTabContent2 .form-commonsearch input[name='type']").val('file');
                                            $("#myTabContent2 .btn-refresh").trigger("click");
                                            $("#one #pid").val(data.id);
                                            $("#one .btn-refresh").trigger("click");
                                            $('#btn-upload-file').data('url','file/upload?pid='+data.id);
                                            Controller.api.reloadupload();
                                        }
                                    }
                                ], formatter: Table.api.formatter.operate
                            }
                        ]
                    ]
                });
                $('#back').click(function(){
                    var ids = $("#one #pid").val();;
                    if(ids>0){
                        $.get('file/get_pid',{'ids':ids},function(res){
                            $("#myTabContent2 .form-commonsearch input[name='pid']").val(res.data);
                            $("#myTabContent2 .form-commonsearch input[name='type']").val('file');
                            $("#myTabContent2 .btn-refresh").trigger("click");
                            $("#one #pid").val(res.data);
                            $("#one .btn-refresh").trigger("click");
                            $('#btn-upload-file').data('url','file/upload?pid='+res.data);
                            Controller.api.reloadupload();
                        });
                        
                    }
                    
                });
                // 为表格1绑定事件
                Table.api.bindevent(table1);
            },
            second: function () {
                // 表格2
                var table2 = $("#table2");
                table2.bootstrapTable({
                    url: 'file/index' + location.search,
                    extend: {
    					index_url: 'file/index' + location.search,
                        add_url: 'file/add',
                        edit_url: 'file/edit',
                        del_url: 'file/del',
                        multi_url: 'file/multi',
                        import_url: '',
                        table: 'file',
                    },
                    toolbar: '#toolbar2',
                    sortName: 'id',
                    search: false,
    				columns: [
					[
						{checkbox: true},
                        // {field: 'id', title: __('Id')},
                        {field: 'pid', title: __('Pid'),visible:false},
                        {field: 'name', title: __('Name'), operate: 'LIKE',formatter: Controller.api.formatter.url,align:'left'},
                        {field: 'url', title: __('Url'), operate: 'LIKE', formatter: Table.api.formatter.url,visible:false},
                        {field: 'type', title: __('Type'), operate: 'LIKE',visible:false},
                        {field: 'size', title: __('Size'), operate: 'LIKE'},
                        {field: 'admin_name', title: __('上传人')},
                        {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime,visible:false},
                        {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                        {field: 'operate', title: __('Operate'), table: table2, events: Table.api.events.operate,buttons:[
                            {
                                name:'下载',
                                title:'下载',
                                text:'下载',
                                icon:'fa fa-download',
                                url:function(row){
                                    return row.url;
                                },
                                classname:'btn btn-info btn-xs',
                                extend:'download=""',
                                visible:function(row){
                                    if(row.type=='file'){
                                        return true;
                                    }
                                    return false;
                                }
                            }
                            ], formatter:
                                function(value, row, index) {
                                    var that = $.extend({}, this);
                                    var table = $(that.table).clone(true);
                                    // operate-edit编辑  perate-del删除
                                    //判断什么时候显示什么时候不显示
                                    if (row.is_me != 1) {
                                        $(table).data("operate-del", null); // 列表页面隐藏 .编辑operate-edit  - 删除按钮operate-del
                                        $(table).data("operate-edit", null); // 列表页面隐藏 .编辑operate-edit  - 删除按钮operate-del
                                    }
                                    that.table = table2;
                                    return Table.api.formatter.operate.call(that, value, row, index);
                                }
                        }
					]
				]
                });
                var toolbar = ".toolbar";
    			if ($('.btn-updata', toolbar).size() > 0) {
    			    require(['upload'], function (Upload) {
    			        Upload.api.upload($('.btn-updata', toolbar), function (data, ret) {
    			            table2.trigger("uncheckbox");
    			            table2.bootstrapTable('refresh');
    						if(data == 1){
    							Toastr.success('操作成功');
    						}else{
    							Toastr.error('操作失败');
    						}
    			        });
    			    });
    			}
                // 为表格2绑定事件
                Table.api.bindevent(table2);
                table2.on('post-body.bs.table', function () {
                    $(".btn-editone").data("area", ["460px", "280px"]);
                })
            }
        },
        
        
//         index: function () {
//             var pid = $("#page_pid").val()||0;
//             // 初始化表格参数配置
//             Table.api.init({
//                 extend: {
//                     index_url: 'file/index' + location.search,
//                     add_url: 'file/add',
//                     edit_url: 'file/edit',
//                     del_url: 'file/del',
//                     multi_url: 'file/multi',
//                     import_url: '',
//                     table: 'file',
//                 }
//             });
//             var table = $("#table");
//             // 初始化表格
//             table.bootstrapTable({
//                 url: $.fn.bootstrapTable.defaults.extend.index_url,
//                 pk: 'id',
//                 sortName: 'type',
//                 sortOrder: 'desc',
//                 columns: [
//                     [
//                         {checkbox: true},
//                         // {field: 'id', title: __('Id')},
//                         {field: 'pid', title: __('Pid'),visible:false},
//                         {field: 'name', title: __('Name'), operate: 'LIKE',formatter: Controller.api.formatter.url,align:'left'},
//                         {field: 'url', title: __('Url'), operate: 'LIKE', formatter: Table.api.formatter.url,visible:false},
//                         {field: 'type', title: __('Type'), operate: 'LIKE',visible:false},
//                         {field: 'size', title: __('Size'), operate: 'LIKE'},
//                         {field: 'admin_name', title: __('上传人')},
//                         {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime,visible:false},
//                         {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
//                         {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,buttons:[
//                             {
//                                 name:'下载',
//                                 title:'下载',
//                                 text:'下载',
//                                 icon:'fa fa-download',
//                                 url:function(row){
//                                     return row.url;
//                                 },
//                                 classname:'btn btn-info',
//                                 extend:'download=""',
//                                 visible:function(row){
//                                     if(row.type=='file'){
//                                         return true;
//                                     }
//                                     return false;
//                                 }
//                             }
//                             ], formatter:
//                                 function(value, row, index) {
//                                     var that = $.extend({}, this);
//                                     var table = $(that.table).clone(true);
//                                     // operate-edit编辑  perate-del删除
//                                     //判断什么时候显示什么时候不显示
//                                     if (row.is_me != 1) {
//                                         $(table).data("operate-del", null); // 列表页面隐藏 .编辑operate-edit  - 删除按钮operate-del
//                                         $(table).data("operate-edit", null); // 列表页面隐藏 .编辑operate-edit  - 删除按钮operate-del
//                                     }
//                                     that.table = table;
//                                     return Table.api.formatter.operate.call(that, value, row, index);
//                                 }
//                         }
//                     ]
//                 ]
//             });
//             $('#myModal').on('click','#J_new_folder', function () {
//                 var folder_name = $('#folder_name').val();
//                 if (folder_name){
//                     $.get('file/make_folder',{pid:pid,name:folder_name},function(res){
//                         if (res.code == 1){
//                             $('#myModal').modal('hide')
//                             var container = $("#table").data("bootstrap.table").$container;
//                             var options = $("#table").bootstrapTable('getOptions');
//                             $("form.form-commonsearch", container).trigger('submit');
//                             Toastr.success(res.msg);
//                         }else{
//                             Toastr.error(res.msg);
//                         }
//                     });
//                 }else{
//                     alert('请输入文件夹名称')
//                 }
//             })
// 			var toolbar = ".toolbar";
// 			// 导入按钮事件
// 			if ($('.btn-updata', toolbar).size() > 0) {
// 			    require(['upload'], function (Upload) {
// 			        Upload.api.upload($('.btn-updata', toolbar), function (data, ret) {
// 			            table.trigger("uncheckbox");
// 			            table.bootstrapTable('refresh');
// 						if(data == 1){
// 							Toastr.success('操作成功');
// 						}else{
// 							Toastr.error('操作失败');
// 						}
// 			        });
// 			    });
// 			}
//             // 为表格绑定事件
//             Table.api.bindevent(table);
//             table.on('post-body.bs.table',function(){
// 				$(".btn-editone").data("area",["450px","360px"]);
// 			})
//             table.on('post-common-search.bs.table',function(){
//                 console.log('search')
//             });
//         },
        recyclebin: function () {
            // 初始化表格参数配置
            Table.api.init({
                extend: {
                    'dragsort_url': ''
                }
            });
            var table = $("#table");
            // 初始化表格
            table.bootstrapTable({
                url: 'file/recyclebin' + location.search,
                pk: 'id',
                sortName: 'id',
                columns: [
                    [
                        {checkbox: true},
                        {field: 'id', title: __('Id')},
                        {field: 'name', title: __('Name'), align: 'left'},
                        {
                            field: 'deletetime',
                            title: __('Deletetime'),
                            operate: 'RANGE',
                            addclass: 'datetimerange',
                            formatter: Table.api.formatter.datetime
                        },
                        {
                            field: 'operate',
                            width: '130px',
                            title: __('Operate'),
                            table: table,
                            events: Table.api.events.operate,
                            buttons: [
                                {
                                    name: 'Restore',
                                    text: __('Restore'),
                                    classname: 'btn btn-xs btn-info btn-ajax btn-restoreit',
                                    icon: 'fa fa-rotate-left',
                                    url: 'file/restore',
                                    refresh: true
                                },
                                {
                                    name: 'Destroy',
                                    text: __('Destroy'),
                                    classname: 'btn btn-xs btn-danger btn-ajax btn-destroyit',
                                    icon: 'fa fa-times',
                                    url: 'file/destroy',
                                    refresh: true
                                }
                            ],
                            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]"));
            },
            formatter: {//渲染的方法
                url: function (value, row, index) {
                    if(row.type!='folder')return ' '+value + '';
                    return ' '+value+'';
                },
                operate:function (value, row, index) {
                    return ' '
                },
            },
            events: {
                url: {
                    //格式为:方法名+空格+DOM元素
                    // 'click .btn-ip': function (e, value, row, index) {
                    //     e.stopPropagation();
                    //     var container = $("#table").data("bootstrap.table").$container;
                    //     var options = $("#table").bootstrapTable('getOptions');
                    //     //这里我们手动将数据填充到表单然后提交
                    //     $("form.form-commonsearch [name='pid']", container).val(row.pid);
                    //     $("form.form-commonsearch", container).trigger('submit');
                    // }
                },
            }
            ,reloadupload:function(){
                var table2 = $('#table2');
                var toolbar = ".toolbar";
    			if ($('.btn-updata', toolbar).size() > 0) {
    			    require(['upload'], function (Upload) {
    			        Upload.api.upload($('.btn-updata', toolbar), function (data, ret) {
    			            table2.trigger("uncheckbox");
    			            table2.bootstrapTable('refresh');
    						if(data == 1){
    							Toastr.success('操作成功');
    						}else{
    							Toastr.error('操作失败');
    						}
    			        });
    			    });
    			}
            }
        }
    };
    return Controller;
});