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 = 'videolist';  //表格ID
    var type_id = $('input[name="typeid"]').val();

    switch (type_id)
    {
        case '1':

            var tab1 = [ //表头
                // {field:'city_pid',title:'ID',width:50},
                {field:'city_id',title:'ID',width:50},
                {field: 'city_name', title: '城市', align:'center',width:150},
                {field: 'population_size', title: '人口数量', width:150,align:'center'},
                {field: 'livable_index', title: '宜居指数', width:150,align:'center'},
                {field: 'rental_rate', title: '租房率', width:150,align:'center'},
                {field: 'rentalrate_return', title: '租金回报率', width:150,align:'center'},
                {field: 'salerental_ratio', title: '租售比', width:150,align:'center'},
                {field: 'url', title: '跳转地址', width:150,align:'center'},
                {field: 'create_at', title: '添加时间',width:150, align:'center'},
                {field: 'is_show', title: '审核',align:'center',width:150, 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'}

            ];
            break;
        case '2':

            var tab1 = [ //表头
                // {type:'numbers',title:'序号',width:50},
                // {field: 'remark', title: '城市', align:'center',width:250,edit: 'text'},
                // {field: 'population_size', title: '人口数量', width:250,align:'center',edit: 'text'},
                // {field: 'livable_index', title: '宜居指数', width:250,align:'center',edit: 'text'},
                // {field: 'rental_rate', title: '租房率', width:250,align:'center',edit: 'text'},
                // {field: 'rentalrate_return', title: '租金回报率', width:250,align:'center',edit: 'text'},
                // {field: 'salerental_ratio', title: '租售比', width:250,align:'center',edit: 'text'},
            ];
            break;
    }
    //第一个实例
    table.render({
        elem: '#'+tableIds
        ,url: '/categorycity/cityoverviewform' //数据接口
        ,where:{token:csrfToken,type:type_id}
        ,method:'post'
        ,page: true //开启分页
        ,text:'数据加载中'
        ,id:'tablerReload'
        ,limit:15
        ,cols: [tab1],
        done: function () {
            $("[data-field='city_pid']").css("display","none");
        }
    });

    //监听指定开关
    form.on('switch(switchTest)', function(data){
        layer.confirm('确定要修改此操作吗?',{btn: ['确定', '取消']},function () {
            $.post('/categorycity/viewdelshow',{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 === 'sortData'){       //修改排序
            /* 列表操作  edit  修改后执行  2018.7.24*/
            table.on('edit('+tableIds+')', function(obj){
                var data = obj.data;
                $.post('/pushm/',{id:data.id,type:'sort',sort:data.sort},function (data) {
                    if(data.code == 200)
                    {
                        layer.msg(data.msg);
                    } else if(data.code == 300 ) {
                        layer.msg(data.msg);
                    }
                })
            })
            // layer.prompt({
            //     formType: 2
            //     ,title: '排序热销楼盘:<span style="color:red">'+data.name+'</span>'
            //     ,value: data.sort
            // }, function(value, index){

            //         $.post('/pushm/saledelshow',{id:data.id,type:'sort',sort:value},function (data) {
            //             layer.msg(data.msg);
            //             table.reload('tablerReload');
            //         })
            // });
        }else if(layEvent === 'edit'){
            var index = layer.open({
                type: 2,
                title: '编辑',
                area:['100%','100%'],
                content: '/categorycity/overviewedit?id='+data.city_pid,
                end:function () {
                    table.reload('tablerReload');        //重新加载
                }
            });
        }else if(layEvent === 'del') {
            layer.confirm('您确定要删除吗?',{   btn: ['确定', '取消']},function () {
                $.post('/categorycity/viewdelshow',{id:data.city_id,type:'del'},function (data) {
                    layer.msg(data.msg);
                    table.reload('tablerReload');
                })
            })
        }else if(layEvent === 'produce'){
            //
            var index = layer.open({
                type: 2,
                title: '生成['+data.remark+']控制模板代码',
                closeBtn: 1, //不显示关闭按钮
                shade: [0],
                area: ['600px', '500px'],
                anim: 2,
                content: '/pushm/produce?id='+data.id+'&name='+data.name, //iframe的url,no代表不显示滚动条
                end:function () {
                    renderTable();
                }
            });
        }

    });

    table.on('edit(videolist)', function(obj){
        var value = obj.value //得到修改后的值
            ,data = obj.data //得到所在行所有键值
            ,field = obj.field; //得到字段
        layer.msg('[ID: '+ data.id +'] ' + field + ' 字段更改为:'+ value);
    });

     // 新增
     var $ = layui.$, active = {
        addData: function(){ //获取选中数据
            var index = layui.layer.open({
                type: 2,
                title: '添加时间',
                closeBtn: 1, //不显示关闭按钮
                area: ['100%','100%'],
                content: '/categorycity/create'
                ,success:function (layero, index) {
                    // indexOpen = layer.getChildFrame('body', index)  ;
                    // console.log(indexOpen);
                },
                end:function () {
                    table.reload('tablerReload');
                }
            });
        },
        reload:function(){
            var form = pfgs_serialize($('form'));
            // var name = '';
            // var house_name   = '';
            // if(form.input_house == 'name'){
            //     name = form.input_house_text;
            // } else if(form.input_house == 'house_name'){
            //     house_name = form.input_house_text;
            // }
            table.reload('tablerReload',{
                where:{
                    house_name: form.input_house_text
                }
            })
        }
    };
    $('.demoTable .layui-btn').on('click', function(){
        var type = $(this).data('type');
        active[type] ? active[type].call(this) : '';
    });


    $('.The_house').focus(function(){
        // $('form').append('<input type="hidden" name="aa" value="aaa">');
        indexOpen = parent.layui.layer.open({
            type: 2,
            title: '选择需要添加的楼盘',
            area: ['','100%'],
            content: '/publicuse/housename',
            success:function (layero, index) {
            },
            end:function(){
            }
        });
        parent.layui.layer.full(indexOpen);
        //改变窗口大小时,重置弹窗的宽高,防止超出可视区域(如F12调出debug的操作)
        $(window).on("resize",function(){
            parent.layui.layer.full(indexOpen);
        })
    })



    //加载省数据
    function loadProvince() {

        $.ajax({
            url : '/categorycity/citypid',
            type : 'post',
            async: false,//使用同步的方式,true为异步方式
            data : {'pid':0},//这里使用json对象
            success : function(data){
                var areaData = data.data;
                var proHtml = '';
                for (var i = 0; i < areaData.length; i++) {
                    proHtml += '<option value="' + areaData[i].id +'">' + areaData[i].city_name + '</option>';
                }
                //初始化省数据
                $('select[name=country]').append(proHtml);
                form.render();
            },
            fail:function(){

            }
        });


    }

    loadProvince();

    form.on('select(country)',function (data) {

       table.render({
            elem: '#overlist'
            ,url: '/categorycity/citypidajax' //数据接口
            ,where:{token:csrfToken,pid:data.value}
            ,method:'post'
            // ,page: true //开启分页
            ,text:'数据加载中'
            ,id:'overlist1'
            ,limit:5
            ,cols: [[ //表头
                {type:'numbers',title:'序号',width:50},
                // {field: 'city_name', title: '城市', align:'center',width:250,edit: 'text',name:'sn'},
                // {field: 'population_size', title: '人口数量', width:250,align:'center',edit: 'text',name:'sn0'},
                // {field: 'livable_index', title: '宜居指数', width:250,align:'center',edit: 'text',name:'sn1'},
                // {field: 'rental_rate', title: '租房率', width:250,align:'center',edit: 'text',name:'sn3'},
                // {field: 'rentalrate_return', title: '租金回报率', width:250,align:'center',edit: 'text',name:'sn4'},
                // {field: 'salerental_ratio', title: '租售比', width:250,align:'center',edit: 'text',name:'sn5'}
                {field: 'city_name', title: '城市', align:'center',width:150},
                {field: 'population_size', title: '人口数量', width:150,align:'center',edit: 'text'},
                {field: 'livable_index', title: '宜居指数', width:150,align:'center',edit: 'text'},
                {field: 'rental_rate', title: '租房率', width:150,align:'center',edit: 'text'},
                {field: 'rentalrate_return', title: '租金回报率', width:150,align:'center',edit: 'text'},
                {field: 'salerental_ratio', title: '租售比', width:150,align:'center',edit: 'text'},
                // {field: 'url', title: '跳转地址', width:150,align:'center',edit: 'text'},
            ]]
        });

        $('#reason').css('display','block');
        $('#url').css('display','block');

    })

    //添加页面提交数据
    form.on('submit(add)', function(data){
        var dh = layui.table.cache.overlist1;

        var index = layer.msg('数据提交中,请稍候',{icon: 16,time:false,shade:0.8});      //数据提交提示

        var formData = new FormData($('.layui-form')[0]);
        // console.log(formData)
        // formData.push(dh);
        // console.log(dh);

        $.each(dh,function(k,v){
            // console.log(v);
            var arr=[];
            $.each(v,function (key,val) {
                arr[key] = val;
                formData.append('as['+k+']['+key+']',val);
            })

        })

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


    var obj = $('select[name=country]');
    var pid = obj.attr('data-pid');
    // alert(pid);
    if(pid != "" && pid !=null && pid != 'undefined' && pid != undefined ){
        // alert(1111111);
        $('option[value='+pid+']').attr('selected',true);
        obj.parent().find('input').val($('option[value='+pid+']').text());
        $('#reason').css('display','block');
        $('#url').css('display','block');
        table.render({
            elem: '#overlist'
            ,url: '/categorycity/cityoverviewform' //数据接口
            ,where:{token:csrfToken,pid:pid}
            ,method:'post'
            // ,page: true //开启分页
            ,text:'数据加载中'
            ,id:'overlist1'
            ,limit:5
            ,cols: [[ //表头
                {type:'numbers',title:'序号',width:50},
                {field: 'city_name', title: '城市', align:'center',width:250,edit: 'text',name:'sn'},
                {field: 'population_size', title: '人口数量', width:250,align:'center',edit: 'text',name:'sn0'},
                {field: 'livable_index', title: '宜居指数', width:250,align:'center',edit: 'text',name:'sn1'},
                {field: 'rental_rate', title: '租房率', width:250,align:'center',edit: 'text',name:'sn3'},
                {field: 'rentalrate_return', title: '租金回报率', width:250,align:'center',edit: 'text',name:'sn4'},
                {field: 'salerental_ratio', title: '租售比', width:250,align:'center',edit: 'text',name:'sn5'}
            ]]
        });
    }
    //修改页面提交数据
    form.on('submit(edit)', function(data){
        var dh = layui.table.cache.overlist1;

        var index = layer.msg('数据提交中,请稍候',{icon: 16,time:false,shade:0.8});      //数据提交提示

        var formData = new FormData($('.layui-form')[0]);
        // console.log(formData)
        // formData.push(dh);
        // console.log(dh);

        $.each(dh,function(k,v){
            // console.log(v);
            var arr=[];
            $.each(v,function (key,val) {
                arr[key] = val;
                formData.append('as['+k+']['+key+']',val);
            })

        })

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