define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
    var repeat_flag = false;//防重复标识
    var page_index = 0,
        page_count = 0;
    var Controller = {
        index: function () {
            // 初始化表格参数配置
            Table.api.init({
                extend: {
                    index_url: 'weixin/fans/index' + location.search,
                    table: 'weixin_fans',
                }
            });

            var table = $("#table");

            // 初始化表格
            table.bootstrapTable({
                url: $.fn.bootstrapTable.defaults.extend.index_url,
                pk: 'fans_id',
                sortName: 'fans_id',
                columns: [
                    [
                        {checkbox: true},
                        {field: 'nickname', title: __('Nickname')},
                        {field: 'headimgurl', title: __('Headimgurl'), events: Table.api.events.image, formatter: Table.api.formatter.image, operate: false},
                        {field: 'sex', title: __('Sex'), searchList: {"1":__('男'),"2":__('女')}, formatter: Controller.api.sex},
                        {field: 'province', title: __('Province')},
                        {field: 'city', title: __('City')},
                        {field: 'district', title: __('District')},
                        {field: 'is_subscribe', title: __('Is_subscribe'), searchList: {"0":__('否'),"1":__('是')}, formatter: Controller.api.subscribe},
                        {field: 'subscribe_time', title: __('Subscribe_time'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime},
                    ]
                ]
            });

            $('#refresh').click(function(){
                Controller.api.refresh();
            });

            // 为表格绑定事件
            Table.api.bindevent(table);
        },
        api: {
            sex: function (value, row, index) {
                if(row.sex == "1") {
                    return '男';
                } else if (row.sex == "2"){
                    return '女';
                }else{
                    return '未知';
                }
            },

            subscribe: function (value, row, index) {
                if(row.subscribe == "1") {
                    return '是';
                }else{
                    return '否';
                }
            },

            // 更新粉丝列表
            refresh: function () {
                if(repeat_flag) return;
                repeat_flag = true;
                $.ajax({
                    type : "post",
                    url : "syncWechatFans",
                    data : {
                        "page" : page_index,
                    },
                    dataType : "JSON",
                    beforeSend : function() {
                        //开始同步--转圈
                        $('#refresh').text('正在同步中(0%)');
                    },
                    success : function(data) {
                        repeat_flag = false;
                        if (data.code == 1) {
                            if (data.data == null) {
                                $('#refresh').text('同步粉丝信息');
                            }
                            if (page_index == 0) {
                                page_count = data['data']["page_count"];
                            }
                            if (page_index <= page_count) {
                                var speed_of_progress = (page_index / page_count * 100).toFixed(2);
                                $('#refresh').text('正在同步中(' + speed_of_progress + '%)');
                            }
                            if (page_index < page_count) {
                                page_index = parseInt(page_index) + 1;
                                Controller.api.refresh();
                            } else {
                                $('#refresh').text('同步粉丝信息');
                                layer.msg('更新完成');
                                $("#table").bootstrapTable('refresh');
                            }
                        } else {
                            $('#refresh').text('同步粉丝信息');
                            layer.msg(data.msg);
                        }
                    }
                })
            }
        }
    };
    return Controller;
});