define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
    var Controller = {
        index: function () {
            // 初始化表格参数配置
            Table.api.init({
                extend: {
                    index_url: 'student/collection/index' + location.search,
                    table: 'teacher_collection',
                }
            });
            var table = $("#table");
            // 初始化表格
            table.bootstrapTable({
                url: $.fn.bootstrapTable.defaults.extend.index_url,
                pk: 'exam_collection_id',
                sortName: 'exam_collection_id',
                fixedColumns: true,
                fixedRightNumber: 1,
                searchFormVisible:true,
                columns: [
                    [
                        {checkbox: true},
                        {field: 'exam_collection_id', title: __('编号')},
                        {field: 'exam_collection_name', title: __('Exam_collection_name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
                        {field: 'sim_type', title: __('Sim_type'),searchList:{"0001":"FZD04B型侦毒器","0002":"FZB006型毒剂报警器","0003":"防化兵用毒剂报警器"},formatter: Table.api.formatter.simtype},
                        {field: 'question_setting_method', title: __('Question_setting_method'),searchList:{"1":"系统随机","2":"教员自选","3":"任务自选"},formatter: Table.api.formatter.simmethod},
                        {field: 'limit_duration', title: __('Limit_duration')},
                        {field: 'start_time', title: __('Start_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false,},
                        {field: 'end_time', title: __('End_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
                        // {field: 'create_user_id', title: __('Create_user_id')},
                        {field: 'create_by', title: __('Create_by'), operate: 'LIKE'},
                        // {field: 'createtime', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
                        // {field: 'update_by', title: __('Update_by'), operate: 'LIKE'},
                        // {field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
                        // {field: 'remark', title: __('Remark'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
                        // {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                        {field: 'operate', title: __('Operate'), table: table,
                            events: Table.api.events.operate,
                            // formatter: Table.api.formatter.operate,
                            formatter: Table.api.formatter.buttons,
                            buttons: [
                                {
                                    name: 'dispatch',
                                    text: '进入',
                                    icon: 'fa fa-hand-pointer-o',
                                    title: '进入',
                                    visible: function (row){
                                        if(row.is_user_examed==0){
                                            return true;
                                        }
                                        return  false;
                                    },
                                    classname: 'btn btn-info btn-xs btn-magic btn-addtabs',
                                    extend: 'data-area=\'["85%","85%"]\'',
                                    url: 'student/collection/into',
                                }
                            ],
                        }
                    ]
                ]
            });
            // 为表格绑定事件
            Table.api.bindevent(table);
        },
        add: function () {
            Controller.api.bindevent();
        },
        into: function () {
            $(document).on('click', '.btn-startexam', function () {
                // var index = Layer.load(0, {shade: false}); //0代表加载的风格,支持0-2
                var index =  Layer.load(2, {
                    shade: [0.5,'#393D49'],
                    content: '正在检查模拟器并下发故障,请稍后...', // 这里是加载的文字
                });
                $(this).removeClass('btn-info');
                $(this).addClass('btn-primary');
                if(Config.is_fault){
                    $.ajax({
                        ///sim/real-exam/student/exam/start/15?ip=192.168.1.110
                        url: Config.url_type+"/sim/real-exam/student/exam/start/"+Config.exam_id+"?ip="+Config.server_ip,
                        type: 'get',
                        success: function (data) {
                            console.log(data);
                            if(data.code==200){
                                window.location.href = '/admin/student/collection/examing/ids/'+Config.exam_id;
                            }else{
                                Layer.alert(data.msg);
                                Layer.close(index);
                                return;
                            }
                        }
                    });
                }else{
                    window.location.href = '/admin/student/collection/examing/ids/'+Config.exam_id;
                }
            });
            //刷新模拟器
            $(document).on('click', '.btn-refreshs', function () {
                var index =  Layer.load(2, {
                    shade: [0.5,'#393D49'],
                    content: '正在刷新检查模拟器,请稍后...', // 这里是加载的文字
                });
                $(this).removeClass('btn-info');
                $(this).addClass('btn-primary');
                if(Config.is_fault){
                    $.ajax({
                        url: Config.url_type+"/sim/real-exam/student/refresh-sim-state?userId="+Config.user_id+"&ip="+Config.server_ip,
                        type: 'get',
                        success: function (data) {
                            console.log(data);
                            if(data.code==200 && data.data.simState==2){
                                $(".kaiguan").css('display','block');
                            }else{
                                $(".kaiguan").css('display','none');
                            }
                            Layer.close(index);
                            $(".mnq_zt").val(data.msg);
                        }
                    });
                }else{
                    window.location.href='';
                }
            });
            if(Config.is_fault){
                var index =  Layer.load(2, {
                    shade: [0.5,'#393D49'],
                    content: '正在刷新检查模拟器,请稍后...', // 这里是加载的文字
                });
                $.ajax({
                    url: Config.url_type+"/sim/real-exam/student/refresh-sim-state?userId="+Config.user_id+"&ip="+Config.server_ip,
                    type: 'get',
                    success: function (data) {
                        console.log(data);
                        if(data.code==200 && data.data.simState==2){
                            $(".kaiguan").css('display','block');
                        }else{
                            $(".kaiguan").css('display','none');
                        }
                        Layer.close(index);
                        $(".mnq_zt").val(data.msg)
                    }
                });
            }
        },
        examing: function () {
            var dingshi = '';
            $(document).ready(function() {
                var countdownTime = Config.timer; // 倒计时时间,单位为秒
                var countdownTime1 = 600; // 10分钟倒计时时间,单位为秒
                var display = $('#timer');
                var fenzhong = 0;
                var timer = setInterval(function() {
                    var minutes = parseInt(countdownTime / 60, 10);
                    var seconds = parseInt(countdownTime % 60, 10);
                    // minutes = minutes < 10 ? "0" + minutes : minutes;
                    // seconds = seconds < 10 ? "0" + seconds : seconds;
                    display.text(minutes + "分" + seconds+'秒');
                    // console.log(minutes.replace("0-",''));
                    // console.log(parseInt(minutes.replace("0-",'')));
                    if (--countdownTime < 0) {
                        // $(".djs").html('已经超时,10分钟00秒后系统自动交卷。');
                        $.ajax({
                            url: "student/collection/countdown/ids/"+Config.ids,
                            type: 'post',
                            data: {},
                            success: function (data) {
                                if(data.code==1){
                                    console.log(data.msg);
                                    $(".djs").html(data.msg);
                                    if(data.msg==0){
                                        $('#update-form').submit();
                                        clearInterval(timer);
                                    }
                                }
                                if(data.code==0){
                                    Layer.alert(data.msg);
                                }
                            }
                        });
                    }
                }, 1000);
                //五秒刷新,同步更换件列表数据
                if(Config.isloading==1 && countdownTime>0){
                    dingshi = setInterval(function() {
                        window.location.reload();
                    }, 30000);//30000
                }
            });
            $(document).on('click', '.btn-replace', function () {
                console.log($(".other_replace").val());
                if($(".other_replace").val()=='[{"fault_id":"","request_status":"0"}]'){
                    Layer.alert('请先填写更换件');
                    return false;
                }
                $.ajax({
                    url: "student/collection/replace/ids/"+Config.ids,
                    type: 'post',
                    data: {
                        other_replace: $(".other_replace").val(),
                        other_report: $(".other_report").val(),
                    },
                    success: function (data) {
                        if(data.code==1){
                            Layer.alert(data.msg, {
                                btn: ['确定'], // 或者直接使用默认的确定按钮
                                yes: function(index, layero){
                                    // 刷新页面
                                    window.location.reload();
                                }
                            });
                        }
                        if(data.code==0){
                            Layer.alert(data.msg);
                        }
                    }
                });
            });
            //追加记录
            $(document).on('click', '.btn-addlog', function () {
                clearTimeout(dingshi);
                var ids = Config.ids;
                var other_report_count = Config.other_report_count;
                if(other_report_count==3){
                    Layer.alert('维修报告最多允许增加三条');
                    return false;
                }
                Fast.api.open('student/collection/addreport/ids/'+ids, __("维修报告"), {
                    area: ["95%", "85%"],
                    callback:function(value){
                        console.log(value+'@@@@');
                    }
                });
            });
            //编辑记录
            $(document).on('click', '.btnedit', function () {
                clearTimeout(dingshi);
                var ids = Config.ids;
                var xh_id = $(this).attr('xh_id');
                Fast.api.open('student/collection/editreport/ids/'+ids+'/xh_id/'+xh_id, __("维修报告"), {
                    area: ["95%", "85%"],
                    callback:function(value){
                        console.log(value+'@@@@');
                    } 
                });
            });
            //移除记录
            $(document).on('click', '.btnmove', function () {
                var ids = Config.ids;
                var xh_id = $(this).attr('xh_id');
                Layer.confirm(
                    __('确定要移除此条记录吗?', ids.length),
                    {icon:3, title: __('Warning'), shadeClose: true, btn: [__('OK'), __('Cancel')]},
                    function (index) {
                        var url = 'student/collection/delreport/ids/'+ids;
                        options = {url: url, data: {xh_id: xh_id}};
                        Fast.api.ajax(options, function (data, ret) {
                            window.location.reload();
                        }, function (data, ret) {
                            var error = $(that).data("error") || $.noop;
                            if (typeof error === 'function') {
                                if (false === error.call(that, data, ret)) {
                                    return false;
                                }
                            }
                        });
                        Layer.close(index);
                    }
                );
            });
            $(document).on('click', '.layui-layer-close1', function () {
                window.location.reload();
            });
            $(document).on('click', '.btn-jiaojuan', function () {
                // Layer.confirm(__('确定交卷?
交卷后无法再修改维修报告和进行维修。'), {
                //     icon: 3,
                //     title: '提示'
                // }, function (index) {
                //     Layer.close(index);
                //     $("#update-form").submit();
                // });
                Layer.confirm(__('确定交卷?
交卷后无法再修改维修报告和进行维修。'), {
                    icon: 3,
                    title: '提示'
                }, function (index) {
                    if(Config.is_fault){
                        Layer.closeAll();
                        var indexnew =  Layer.load(2, {
                            shade: [0.5,'#393D49'],
                            content: '正在交卷中,请稍后...', // 这里是加载的文字
                        });
                        $.ajax({
                            url: Config.url_type+"/sim/real-exam/student/exam/submit/"+Config.exam_id+"?ip="+Config.server_ip,
                            type: 'get',
                            success: function (data) {
                                console.log(data);
                                console.log(data.code);
                                if(data.code==200){
                                    $("#update-form").submit();
                                }else{
                                    Layer.close(indexnew);
                                    Layer.alert(data.msg);
                                }
                            }
                        });
                        // Fast.api.ajax({
                        //     url: Config.url_type+"/sim/real-exam/student/exam/submit/"+Config.exam_id+"?ip="+Config.server_ip,
                        // }, function (data) {
                        //     console.log(data);
                        //     if(data.code==200){
                        //         $("#update-form").submit();
                        //     }else{
                        //         Layer.closeAll();
                        //         Layer.alert(data.msg);
                        //     }
                        // });
                    }else{
                        $("#update-form").submit();
                    }
                });
            });
            $(document).on("fa.event.appendfieldlist", "#second-fieldlist .btn-append", function (e, obj) {
                //绑定动态下拉组件
                Form.events.selectpage(obj);
            });
            Form.api.bindevent($("form[role=form]"), function(data, ret) {
                if(ret.code==1){
                    Backend.api.addtabs( ret.url,'成绩管理');
                    Backend.api.closetabs('/admin/student/collection/index');
                }
            });
        },
        addreport: function () {
            Form.api.bindevent($("form[role=form]"), function(data, ret) {
                if(ret.code==1){
                    parent.location.reload();
                }
            });
        },
        editreport: function () {
            Form.api.bindevent($("form[role=form]"), function(data, ret) {
                if(ret.code==1){
                    parent.location.reload();
                }
            });
        },
        delreport: function () {
            Controller.api.bindevent();
        },
        analysis: function () {
            Form.api.bindevent($("form[role=form]"), function(data, ret) {
                if(ret.code==1){
                    Backend.api.addtabs( ret.url);
                }
            });
        },
        edit: function () {
            Controller.api.bindevent();
        },
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            }
        }
    };
    return Controller;
});