1
0
mirror of https://gitee.com/coder-xiaomo/flashsale synced 2025-02-07 00:30:29 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
flashsale/frontend/static/js/common/loadMoreData.js

334 lines
10 KiB
JavaScript

/**
* ajax load more data
*/
/**
* 加载更多(供index&标签详情使用)
*/
function loadData(params){
/* 打开页面首次加载数据 */
var returnJson={};
getReturnJson(returnJson,params);
/* 点击加载更多 */
$('.loadMore').click(function(){
/* 正常加载数据 */
if(returnJson.status===0){
params.page++;
getReturnJson(returnJson,params);
}
/* 没有更多数据 */
else if(returnJson.status===1){
$('.loadTips').text('没有更多数据').stop().fadeIn(500).fadeOut(1500);
}
/* 加载数据异常,重试 */
else{
getReturnJson(returnJson,params);
}
});
}
//获取ajax的success or error回调函数返回的JSON
function getReturnJson(returnJson,params){
Disabled($('.loadMore'),'');
Loading($('.loadMore'));
$.when(getScreenShotList(params.url,params.page))
.done(function(data){
returnJson.status=data.status;
returnJson.msg=data.msg;
})
.fail(function(data){
returnJson.status=data.status;
returnJson.msg=data.msg;
});
}
//获取ScreenShotList
/* 加载更多(供index&标签详情使用) */
function getScreenShotList(url,page){
var returnJson={};
var defer=$.Deferred();
/* ajax请求获取数据 */
$.ajax({
type:"GET",
url:url,
dataType:'json',
data:{
page:page
},
contentType : 'application/json',
success:function(data,status){
console.log(status);
console.log('screenshots:'+data);
//获取json数据不为空
if(data.content.length>0){
/* 遍历screenshorts */
$.each(data.content,function(key,value){
$('.shot-container').append(
'<div class="shot third column" id="screenshot'+value.id+'" data-application="">'+
'<div class="shot-image">'+
'<div class="actions">'+
'</div>'+
'<img src="http://www.placehold.it/286x508/EFEFEF/AAAAAA&text=egggo.cn" data-url="'+value.pic.mediumFileUrl+'" class="unload"/>'+
'<div class="cover"></div>'+
'</div>'+
'<div class="shot-info">'+
'<div class="text-overflow"><a class="two-thirds dark-gray text-align-left" href="/applications/get/'+value.application.id+'" target="_blank">'+value.application.name+'</a></div>'+
'<div class="third text-align-right fr"><i class="iconfont like-count inline-block">&#xe606;</i><h6>'+value.likeCount+'</h6></div>'+
'<div id="'+value.id+'" class="mark-container light-gray" name="screenshot-mark-container">'+
'<h6 class="text-overflow">'+
'</h6>'+
'</div>'+
'</div>'+
'</div>'
);
var marks=[],screenShotContents=[],application={};
/* LikeOrNot */
if(value.isLiked===0){
$('#screenshot'+value.id).find('.actions').append(
'<a class="btn-like text-align-center" id="'+value.id+'" onclick="like(this,'+value.id+')">'+
'<i class="iconfont unlike inline-block is-hidden">&#xe606;</i>'+
'<i class="iconfont liked inline-block">&#xe607;</i>'+
'</a>'
);
}
else{
$('#screenshot'+value.id).find('.actions').append(
'<a class="btn-like text-align-center" id="'+value.id+'" onclick="unlike(this,'+value.id+')">'+
'<i class="iconfont unlike inline-block">&#xe606;</i>'+
'<i class="iconfont liked inline-block is-hidden">&#xe607;</i>'+
'</a>'
);
}
/* 遍历marks */
$.each(value.marks,function(k,v){
$('#screenshot'+value.id).find('.mark-container').find('.text-overflow').append(
'<a href="/screenshots/searchscreenshot?search='+v.name+'" target="_blank">'+v.name+'</a>'+
'<span> , </span>'
);
marks.push({
id:v.id,
name:v.name
});
});
/* 遍历ScreenshotsContent */
$.each(value.screenShotContents,function(k,v){
screenShotContents.push({
type:v.type,
url:v.pic.mediumFileUrl+'&method=attachment'
});
});
//浏览图片Modal需要的数据
var application={
screenShotId:value.id,
pic:value.pic.originFileUrl,
appVersion:value.appVersion,
likeCount:value.likeCount,
applicationName:value.application.name,
applicationIcon:value.application.icon.thumbFileUrl,
updatedTime:value.createdAt,
marks:marks,
screenShotContents:screenShotContents
};
$('#screenshot'+value.id).data('application',application)
.find('.mark-container').find('span:last').remove();
});
lazyload();
returnJson.status=0;
returnJson.msg='正常加载数据';
Enabled($('.loadMore'),'加载更多');
}
else{
console.log('page out of range');
$('.loadTips').text('没有更多数据').stop().fadeIn(500).fadeOut(1500);
returnJson.status=1;
returnJson.msg='没有更多数据';
Enabled($('.loadMore'),'没有更多了');
}
$('#footer-total-count,#resultsCount').text(data.count);
defer.resolve(returnJson);
},
error:function(data,status){
console.log(status);
Enabled($('.loadMore'),'加载更多');
$('.loadTips').text('加载数据异常,请重试!').stop().fadeIn(500).fadeOut(2000);
returnJson.status=2;
returnJson.msg='加载数据异常';
defer.reject(returnJson);
}
});
return defer.promise();
}
/**
* 加载更多(供搜索标签结果使用)
*/
function loadSearchScreenshotsData(params,keyword){
/* 打开页面首次加载数据 */
var returnJson={};
getSearchReturnJson(returnJson,params,keyword);
/* 点击加载更多 */
$('.loadMore').click(function(){
/* 正常加载数据 */
if(returnJson.status===0){
params.page++;
getSearchReturnJson(returnJson,params,keyword);
}
/* 没有更多数据 */
else if(returnJson.status===1){
$('.loadTips').text('没有更多数据').stop().fadeIn(500).fadeOut(1500);
}
/* 加载数据异常,重试 */
else{
getSearchReturnJson(returnJson,params,keyword);
}
});
}
//获取ajax的success or error回调函数返回的JSON
function getSearchReturnJson(returnJson,params,keyword){
Disabled($('.loadMore'),'');
Loading($('.loadMore'));
$.when(getSearchScreenShotList(params.url,params.page,keyword))
.done(function(data){
returnJson.status=data.status;
returnJson.msg=data.msg;
lazyload();
})
.fail(function(data){
returnJson.status=data.status;
returnJson.msg=data.msg;
});
}
//获取SearchScreenShotList
function getSearchScreenShotList(url,page,keyword){
var returnJson={};
var defer=$.Deferred();
/* ajax请求获取数据 */
$.ajax({
type:"GET",
url:url,
dataType:'json',
data:{
page:page
},
contentType : 'application/json',
success:function(data,status){
console.log(status);
console.log('screenshots:'+data);
//获取json数据不为空
if(data.content.length>0){
/* 遍历screenshorts */
$.each(data.content,function(key,value){
$('.shot-container').append(
'<div class="shot third column" id="screenshot'+value.id+'" data-application="">'+
'<div class="shot-image">'+
'<div class="actions">'+
'</div>'+
'<img src="http://www.placehold.it/286x508/EFEFEF/AAAAAA&text=egggo.cn" data-url="'+value.pic.mediumFileUrl+'" class="unload"/>'+
'<div class="cover"></div>'+
'</div>'+
'<div class="shot-info">'+
'<div class="text-overflow"><a class="two-thirds dark-gray text-align-left" href="/applications/get/'+value.application.id+'" target="_blank">'+value.application.name+'</a></div>'+
'<div class="third text-align-right fr"><i class="iconfont like-count inline-block">&#xe606;</i><h6>'+value.likeCount+'</h6></div>'+
'<div id="'+value.id+'" class="mark-container light-gray" name="screenshot-mark-container">'+
'<h6 class="text-overflow">'+
'</h6>'+
'</div>'+
'</div>'+
'</div>'
);
var marks=[],screenShotContents=[],application={};
/* LikeOrNot */
if(value.isLiked===0){
$('#screenshot'+value.id).find('.actions').append(
'<a class="btn-like text-align-center" id="'+value.id+'" onclick="like(this,'+value.id+')">'+
'<i class="iconfont unlike inline-block is-hidden">&#xe606;</i>'+
'<i class="iconfont liked inline-block">&#xe607;</i>'+
'</a>'
);
}
else{
$('#screenshot'+value.id).find('.actions').append(
'<a class="btn-like text-align-center" id="'+value.id+'" onclick="unlike(this,'+value.id+')">'+
'<i class="iconfont unlike inline-block">&#xe606;</i>'+
'<i class="iconfont liked inline-block is-hidden">&#xe607;</i>'+
'</a>'
);
}
/* 遍历marks */
$.each(value.marks,function(k,v){
if(v.name.indexOf(keyword)>-1){
$('#screenshot'+value.id).find('.mark-container').find('.text-overflow').append(
'<a href="/screenshots/searchscreenshot?search='+v.name+'" class="highlight" target="_blank">'+v.name+'</a>'+
'<span> , </span>'
);
}else{
$('#screenshot'+value.id).find('.mark-container').find('.text-overflow').append(
'<a href="/screenshots/searchscreenshot?search='+v.name+'" target="_blank">'+v.name+'</a>'+
'<span> , </span>'
);
}
marks.push({
id:v.id,
name:v.name
});
});
/* 遍历ScreenshotsContent */
$.each(value.screenShotContents,function(k,v){
screenShotContents.push({
type:v.type,
url:v.pic.mediumFileUrl+'&method=attachment'
});
});
//浏览图片Modal需要的数据
var application={
screenShotId:value.id,
pic:value.pic.originFileUrl,
appVersion:value.appVersion,
likeCount:value.likeCount,
applicationName:value.application.name,
applicationIcon:value.application.icon.thumbFileUrl,
updatedTime:value.createdAt,
marks:marks,
screenShotContents:screenShotContents
};
$('#screenshot'+value.id).data('application',application)
.find('.mark-container').find('span:last').remove();
});
lazyload();
returnJson.status=0;
returnJson.msg='正常加载数据';
Enabled($('.loadMore'),'加载更多');
}
else{
console.log('page out of range');
$('.loadTips').text('没有更多数据').stop().fadeIn(500).fadeOut(1500);
returnJson.status=1;
returnJson.msg='没有更多数据';
Enabled($('.loadMore'),'没有更多了');
}
$('#footer-total-count,#resultsCount').text(data.count);
defer.resolve(returnJson);
},
error:function(data,status){
console.log(status);
Enabled($('.loadMore'),'加载更多');
$('.loadTips').text('加载数据异常,请重试!').stop().fadeIn(500).fadeOut(2000);
returnJson.status=2;
returnJson.msg='加载数据异常';
defer.reject(returnJson);
}
});
return defer.promise();
}