layui.use(['laypage', 'layer', 'table', 'element', 'form', 'upload'], function () {

    var laypage = layui.laypage //分页
        , $ = layui.jquery
        , layer = layui.layer //弹层
        , table = layui.table //表格
        , element = layui.element //元素操作
        , form = layui.form
        , upload = layui.upload;


    var tableIds = 'list';  //表格ID

    //第一个实例
    table.render({
        elem: '#' + tableIds
        , url: '/testnumber/indexform' //数据接口
        , where: {token: csrfToken}
        , method: 'post'
        , page: true //开启分页
        , text: '数据加载中'
        , id: 'tablerReload'
        , limit: 20
        , cols: [[ //表头
            {type: 'numbers', title: '序号', width: 50},
            {field: 'number', title: '测试号码', align: 'center'},
            {field: 'explain', title: '号码说明', align: 'center'},
            {field: 'create_at', title: '添加时间', width: 180, align: 'center'},
            {
                field: 'is_show', title: '审核', align: 'center', width: 100, templet: function (d) {
                    if (d.is_show == 2) {
                        return '<input type="checkbox"  value="' + d.id + '" name="open"  lay-skin="switch" lay-filter="switchTest" lay-text="|">'
                    } else {
                        return '<input type="checkbox" checked  value="' + d.id + '" name="open"  lay-skin="switch" lay-filter="switchTest" lay-text="|">'
                    }
                }
            },
            {fixed: 'right', title: '操作', width: 300, align: 'center', toolbar: '#operate'}
        ]]
    });


    //监听指定开关
    form.on('switch(switchTest)', function (data) {

        layer.confirm('确定要修改此操作吗?', {btn: ['确定', '取消']}, function () {
            $.post('/testnumber/setnumber', {id: data.value, type: 'show'}, function (data) {
                layer.msg(data.msg);
                table.reload('tablerReload');

            })
        }, function (aa) {
            table.reload('tablerReload');        //重新加载
        })

    });


    //列表操作
    table.on('tool(' + tableIds + ')', function (obj) {
        var layEvent = obj.event,
            data = obj.data;

        if (layEvent === 'del') {

            layer.confirm('您确定要删除该号码吗?', {btn: ['确定', '取消']}, function () {
                $.post('/testnumber/setnumber', {id: data.id, type: 'del'}, function (data) {
                    layer.msg(data.msg);
                    table.reload('tablerReload');
                })
            })

        } else if (layEvent === 'edit') {

            var index = layer.open({
                type: 2,
                title: '编辑测试号码',
                area: ['50%', '50%'],
                content: '/testnumber/edit?id=' + data.id,
                end: function () {
                    table.reload('tablerReload');        //重新加载
                }
            });

        }

    });


    // 新增
    var $ = layui.$, active = {

        addData: function () { //获取选中数据
            var index = layui.layer.open({
                type: 2,
                title: '新增测试号码',
                closeBtn: 1, //不显示关闭按钮
                area: ['50%', '50%'],
                content: '/testnumber/add' //iframe的url,no代表不显示滚动条
                , success: function (layero, index) {
                },
                end: function () {
                    table.reload('tablerReload');
                }
            });
        },

        reload: function () {//搜索
            var form = pfgs_serialize($('form'));
            var name = '';

            table.reload('tablerReload', {
                where: {
                    number: form.input_number_text,
                },
                page: {
                    curr: 1
                }
            })
        },
    };

    $('.demoTable .layui-btn').on('click', function () {
        var type = $(this).data('type');
        active[type] ? active[type].call(this) : '';
    });

    //添加页面提交数据
    form.on('submit(add_number)', function (data) {
        var formData = new FormData($('form')[0]);

        layer.confirm('您确定添加该号码吗?', {btn: ['确定', '取消']}, function () {

            layer.msg('数据提交中,请稍候', {icon: 16, time: false, shade: 0.8});      //数据提交提示
            $.ajax({
                type: "post",
                url: "/testnumber/addform",
                data: formData,
                contentType: false,   //jax 中 contentType 设置为 false 是为了避免 JQuery 对其操作,从而失去分界符,而使服务器不能正常解析文件
                processData: false,   //当设置为true的时候,jquery ajax 提交的时候不会序列化 data,而是直接使用data
                error: function (request) {
                    layer.close(index);
                    layer.msg("请联系管理员");
                },
                success: function (data) {
                    if (data.data != null) {
                        layer.msg(ReturnInfo(data.data), {icon: 5});
                        return;
                    }
                    layer.msg(data.msg);
                    parent.layer.close(oindex); //再执行关闭
                }
            });

        })

        return false;

    });


    form.on('submit(edit_number)', function (data) {
        var index = layer.msg('数据提交中,请稍候', {icon: 16, time: false, shade: 0.8});      //数据提交提示
        var formData = new FormData($('form')[0]);

        $.ajax({
            type: "post",
            url: "/testnumber/editform",
            data: formData,
            contentType: false,   //jax 中 contentType 设置为 false 是为了避免 JQuery 对其操作,从而失去分界符,而使服务器不能正常解析文件
            processData: false,   //当设置为true的时候,jquery ajax 提交的时候不会序列化 data,而是直接使用data
            error: function (request) {
                layer.close(index);
                layer.msg("请联系管理员");
            },
            success: function (data) {
                if (data.data != null) {
                    layer.msg(ReturnInfo(data.data), {icon: 5});
                    return;
                }
                layer.msg(data.msg);
                parent.layer.close(oindex); //再执行关闭
            }

        });

        return false;

    });

    // form.on('select(position)', function (data) {
    //     console.log(data.value);
    //     var type = data.value;
    //     table.reload('tablerReload', {
    //         url: 'brandform'
    //         , where: {token: csrfToken, abroad: type}
    //         , method: 'post'
    //     });
    // });

})