新闻管理模块
2017-03-02 本文已影响455人
fangxu622
首页:
图片单击事件
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\"> ";
$.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);
}
})
})