美文网首页
新闻管理模块

新闻管理模块

作者: fangxu622 | 来源:发表于2017-03-02 08:52 被阅读455次

    首页:

    图片单击事件


    Paste_Image.png Paste_Image.png
        var newslistTable = $("#news_list_table").DataTable({
            "bInfo":false,
            "bPaginate": true,//显示(使用)分页器
            "bFilter": false,//是否启用客户端过滤功能
            "bAutoWidth": true,//自动计算表格各列宽度
            "bLengthChange": false,//显示一个每页长度的选择条(需要分页器支持)
            "aaSorting": [[1, "desc"]],//指定按多列数据排序的依据
            //"aoColumnDefs": [{"bSortable": false, "aTargets": [0,1,2,5]}],列定义配置数组
            "aoColumnDefs":[{"bSortable": false, "aTargets": [0]},{ "bVisible": false, "aTargets": [ 1 ] }],
            "iDisplayLength": 10,//用于指定一屏显示的条数,需开启分页器
            "sPaginationType": "bootstrap",//用于指定分页器风格
            "bDestroy": true,
            //"sScrollY": "200px",
            "bScrollCollapse": true,
            "oLanguage": {//语言设置
                "sLengthMenu": "每页显示 _MENU_ 条记录",
                "sZeroRecords": "没有数据",
                "sInfo": "_START_-_END_/_TOTAL_",
                "sInfoEmpty": "",
                "sProcessing": '<i class="fa fa-coffee"></i> 正在加载数据...',
                "oPaginate": {
                    "sFirst": "首页",
                    "sPrevious": "前一页",
                    "sNext": "后一页",
                    "sLast": "尾页"
                }
            }
        });
        var d1="<div><header class=\"news_heading panel-heading \" ><h4><strong>";
    
       //d1 d2 之间要加一个标题字符
    
        var d2="<\/strong><\/h4><span class=\"news_time\">";
    
        //d2 d3 之间要加一个时间字符
    
        var d3="<\/span><\/header><div class=\"news_cen\">         ";
    
        //d3 d4 之间则是文章第一段内容
        var d4="<br><span class=\"pull-right\"><a style=\"color: #0000FF\"  href=\"/news_detail?newsid=";
        //d4 d5 要加一个newsid 字符
    
        var d5="\" target=\"_blank\">";
        var d6="阅读详情 ";
        var d7="<i class=\"icon-angle-right\"><\/i><\/a><\/span><\/div><\/div>"
        var para;
        getdata(para);//para 参数可任意,值为undefine
    
        function getdata1(data) {
            var tt = data.getAttribute("value");
            if(tt=="typeone"){
                $("[name='li_active']").removeClass("active");
                $("#li1").addClass("active");
                $("#news_list_type").text("新闻公告")
            }
            if(tt=="typetwo"){
                $("[name='li_active']").removeClass("active");
                $("#li2").addClass("active");
                $("#news_list_type").text("行业动态")
            }
            if(tt=="typethree"){
                $("[name='li_active']").removeClass("active")
                $("#li3").addClass("active");
                $("#news_list_type").text("新闻中心")
            }
            newslistTable.fnClearTable();
            getdata(tt);
        }
        function getdata(kk) {
            var dd=""
            if(kk){
                dd="?news_type="+kk;
            }
    
            $.ajax({
                url:'/news_list_data'+dd,
                type:'get',
                error:function(err){
                    if(err){
                        toastr.error('服务器内部发生错误');
                    }
                },
                success:function(data){
                    var hh=data instanceof Array;
                    if(!hh){
                        toastr.warning('没有数据或者只有一条数据但不会显示')
                    }else{
    
                        var title;
                        var content;
                        var time;
                        var id;
                        var k;
                        for(var i=0;i<data.length;i++){
                            title=data[i].news_title1;
                            content=data[i].news_content_txt;
                            content=$.trim(content);
                            k=content.indexOf("    ");
                            if(k != -1){
                                content=content.substring(0,k);
                            }//取第一段内容
                            time=moment(data[i].news_date).format('YYYY/MM/DD HH:mm:ss')+'发表';
                            id=data[i].news_id;
                            newslistTable.fnAddData([d1+title+d2+time+d3+content+d4+id+d5+d6+d7,data[i].news_date]);//因为fnAddData是无序插入,所以要添加一个隐藏的时间列 控制顺序
                        }
                    }
                }
    
    

    详情页面

     var id=window.location.href;
        id=id.substr(id.indexOf("=")+1)
        var d1="<div><header class=\"news_heading panel-heading  \"  style=\"text-align: center\"><h2>"
        var d3="<\/h2><span class=\"news_time\">";
        var d5="<\/span><\/header><div class=\"news_cen\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    
        $.ajax({
            url:'/news_content',
            type:'post',
            data:{id:id},
            error:function(err){
                if(err){
                    toastr.err('服务器内部错误');
                }
            },
            success:function(data){
                //alert(data instanceof Array);
                //console.log(data.news_id);
                $("#news_type_div").text(data.news_type);
                $("#father").prepend(data.news_content);
                var d4=moment(data.news_date).format('YYYY/MM/DD HH:mm:ss');
                $("#father").prepend(d1+data.news_title1+d3+d4+d5);
            }
        })
    
        $.ajax({
            url:'/news_front_back',
            type:'get',
            //async:false,
            error:function(err){
                if(err){
                    toastr.err("服务器内部出错");
                }
            },
            success:function(data){//这个函数写这么复杂主要是考虑到 mongoose 若只返回一条数据的情况,此时它的类型部不为数组,所以不能用data.length来判断是否有数据返回
                    var kk=-1;
                    if(data instanceof Array){
                        for(var i=0;i<data.length;i++){
                            if(data[i].news_id==id){
                                 kk=i;
                                console.log(kk)
                                break;
                            }
                        }
                        if(kk==0){  //判断本文是否为第一条数据
                            $("#front_span").css('visibility','hidden');
                            $("#id_back").attr("href","/news_detail?newsid="+data[kk+1].news_id);
                            $("#id_back").text(data[kk+1].news_title1);
                        }else{
                            if(data.length==kk+1){  //判断本文是否为最后一条数据
                                $("#back_span").css('visibility','hidden');
                                $("#id_front").attr("href","/news_detail?newsid="+data[kk-1].news_id);
                                $("#id_front").text(data[kk-1].news_title1);
                            }
                            else{
                                $("#id_front").attr("href","/news_detail?newsid="+data[kk-1].news_id);
                                $("#id_front").text(data[kk-1].news_title1);
                                $("#id_back").attr("href",'/news_detail?newsid='+data[kk+1].news_id);
                                $("#id_back").text(data[kk+1].news_title1);
                            }
                        }
    
                    }else{
                        if(data){//这是只有一条数据的情况
                            $("#front_span").css('visibility','hidden');
                            $("#back_span").css('visibility','hidden');
                        }else{
                            toastr.warning('没有数据');
                        }
    
                    }
            }
    
        })
    

    数据库查找

    //从数据库中请求新闻数据
    router.get('/news_list_data',function(req,res,next){
        var queryfield;
        var ty=req.query.news_type;
        if (!ty){
            queryfield={};
        }else{
            if(ty=="typeone") {
                queryfield = {news_type: "新闻公告"};
            }else{
            if(ty=="typetwo"){
                queryfield = {news_type: "行业动态"};
            }
            else{
                queryfield={};
                }
            }
        }
        var newsdata=dbModel.newsDataModel;
            newsdata.find(queryfield,{},{sort:{news_date:-1}},function(err,docs){
                if(err){
                    res.json(0);
                }else{
                    res.json(docs);
                }
            })
    })
    
    //请求新闻详情页面
    router.get('/news_detail',function(req,res,next){
        var str=req.query.newsid;
        if(str.length ==13){
            res.sendfile('./views/CN/news_detail.html');
        }else{
            res.json( "Not Found Page ! 404");
        }
    })
    
    //在新闻详情页面里 ,从数据库中请求新闻数据
    router.post('/news_content',function(req,res,next){
        var str=req.body.id;
        var newsdata=dbModel.newsDataModel;
        newsdata.findOne({news_id:str},function(err,docs){
            if(err){
                res.json(0);
            }else{
                res.json(docs);
            }
        })
    })
    
    router.get('/news_front_back',function(req,res,next){
        var newsdata=dbModel.newsDataModel;
        newsdata.find({},'news_id news_title1 news_date',{sort:{news_date:-1}},function(err,docs){
            if(err){
                res.json(0);
            }else{
                res.json(docs);
            }
        })
    })
    

    相关文章

      网友评论

          本文标题:新闻管理模块

          本文链接:https://www.haomeiwen.com/subject/ktlhgttx.html