"
+"
"+ getByHot(news.hot) + "
"
+ "
"
+ "

"
+ "
";
return tpl;
}
//展示信息列表
$.dhnews.renderNews = function (data, params) {
params = $.extend(true, {
action: "news",
newsType: 0,
template: "newsSummary",
createTemplate: initCreateTemplate
}, params)
var action = params.action;
var template = params.template;
var newsType = params.newsType;
var createTemplate = params.createTemplate;
var i18n = $.dhnews.i18n[params.lang];
var tpl = "";
var count = 1;
var dataList = data.aaData;
for (var p in dataList) {
if (action == "news") {
var news = new News(dataList[p]);
//详细页面链接地址
var url = window.locations.href;
var detailUrl = url.replace(/#$/,"") + "?newsid=" + news.id;
if (newsType == 1) {
detailUrl = "viewPromotion.html?id=" + news.id;
}
if (news.isLink) {
detailUrl = $.dhnews.dhsite_host + "/" + news.url;
}
if (template == "newslist" && action == "news") {
var tpl = tpl + '
' + news.publishDateTime + getByHot(news.hot) + '' + news.title + '' + ''+i18n.viewDetail+'';
}
else if (template == "newsSummary" && action == "news") {
tpl += createTemplate(news, i18n, getByHot, params, detailUrl);
}
}
}
return tpl;
}
$.dhnews.renderPagination = function (currentPage, pageSize, total, locale) {
var i18n = $.dhnews.i18n[locale];
var showPage = 3;
var totalPage = parseInt(total / pageSize) + (total % pageSize == 0 ? 0 : 1);
var startPage = 1;
var endPage = totalPage;
var _showPage = (showPage - 1) / 2;
if (currentPage - startPage > _showPage) {
startPage = currentPage - _showPage;
}
if (endPage - currentPage > _showPage) {
endPage = currentPage + _showPage;
}
if (startPage == 1 && endPage != totalPage && (endPage - startPage + 1) != showPage) {
endPage = startPage + showPage - 1;
if (endPage > totalPage) {
endPage = totalPage;
}
}
if (endPage == totalPage && startPage != 1 && (endPage - startPage + 1) != showPage) {
startPage = endPage - showPage + 1;
if (startPage < 1) {
startPage = 1;
}
}
var currentPageHtm = '
' + currentPage + '';
var tpl = "";
if (currentPage != 1) {
tpl += '
';
}
for (var i = startPage; i <= endPage; i++) {
if (i == currentPage) {
tpl += currentPageHtm;
} else {
tpl += '
' + i + '';
}
}
if (currentPage != totalPage) {
tpl += '
';
}
return tpl;
}
$.dhnews.getNewsList = function (params, callback) {
params = $.extend(true, {
pageNo: 1,
pageSize: 3,
action: "news",
newsType: 0, //类型(可选 0为新闻, 1为促销信息 默认为0)
}, params);
//新闻列表
$.getJSON($.dhnews.dhsite_host + "/api/" + params.action + "?fun=?",
{
"hid": params.passport,
"lang": params.lang,
"catg": params.categoryId,
"type": params.newsType,
"pageNo": params.pageNo,
"pageSize": params.pageSize
},
function (data) {
// 处理错误信息,反馈给客户。处理方式可以更友好一些
if (data.success != undefined && data.success == false) {
alert(data.message);
}
callback(data);
}
);
}
$.dhnews.initNewsList = function (params, callback) {
params = $.extend(true, {
lang: "zh_CN",
action: "news",
}, params)
$.dhnews.getNewsList(params, callback);
}
$.dhnews.initNewsDetail = function (params, callback) {
params = $.extend(true, {
lang: "zh_CN",
}, params)
$.dhnews.getNewsDetail(params, callback || $.dhnews.renderViewNews);
}
$.dhnews.getParam = getParam;
})(jQuery);
$.uibuilder.registerWidget("list011", function (config) {
var passport = config.siteGroup.passport;
var locale = getLocale();
var lang = config.htmlConfig['otherDynamic']?config.htmlConfig['otherDynamic']:locale;
var newsId = $.dhnews.getParam('newsid');
var newsType = config.htmlConfig['type']?config.htmlConfig['type']=='news'?0:1:0;
var instanceId = config.instance.id; // the instance info will include in config object
var $container = $("#listWidget" + instanceId);
var widgetInstance = 'listWidget' + instanceId;
var $newList = $container.find(".newsList");
var $pagination = $container.find(".pagination");
var $newsDetail = $container.find(".newsDetail .detailBox");
var i18n = $.dhnews.i18n[locale];
var btnText = config.htmlConfig['button'] ? config.htmlConfig['button'] : null;
function getLocale() {
var locale = $.uibuilder.getLocale();
return (locale === 'zh_HK') ? 'zh_TW' : locale;
}
var widget = {
initList: function (pageNo) {
pageNo = pageNo || 1;
var action = "news";
var pageSize = 3;
var categoryId;
function createTemplate(news, i18n, getByHot, params) {
var tpl = "
"
+ "
"
+ "

"
+ "
";
return tpl;
}
$.dhnews.initNewsList({
pageNo: pageNo,
pageSize: pageSize,
action: action,
lang: lang,
passport: passport,
newsType: newsType,
}, function (data) {
//展示信息列表
var newsTpl = $.dhnews.renderNews(data, {
template: "newsSummary",
lang: locale,
btnText: btnText,
createTemplate: createTemplate
});
if(newsTpl!=""){
$newList.empty().html(newsTpl);
onNewsDetail();
setNewsImg()
$(window).on('resize', function(){
setNewsImg();
});
////展示信息分页
var paginationTpl = $.dhnews.renderPagination(pageNo, pageSize, data.iTotalRecords, locale);
$pagination.html(paginationTpl);
$pagination.find("[data-page-no]").click(function () {
var toPageNo = $(this).data("pageNo");
widget.initList(toPageNo)
});
}
});
function viewNewsAction(lang, newsId, callBackFun) {
//新闻详情
$.getJSON($.dhnews.dhsite_host + "/api/newsDetail?fun=?",
{
"hid": passport,
"lang": lang,
"newsId": newsId
},
function (data) {
// 处理错误信息,反馈给客户。处理方式可以更友好一些
if (data.success != undefined && data.success == false) {
alert(data.message);
return;
}
//展示新闻信息
callBackFun(lang, data);
}
);
}
function onNewsDetail() {
$('#' + widgetInstance + ' .btn').off('click').on('click', function(){
$('#' + widgetInstance + ' .newsDetail').fadeIn(300);
var newsId = $(this).attr('data-id');
viewNewsAction(lang, newsId, function(lang, data){
var content = data[12];
var title = data[0];
var date = data[1];
var str = '
'
+ '
' + title
+ '
' + date
+ '
' + content + '
'
$('#' + widgetInstance + ' .detailBox').html(str);
$('#' + widgetInstance + ' .newsDetail .shut').on('click', function() {
$('#' + widgetInstance + ' .newsDetail').hide();
});
});
return false;
});
}
$('#' + widgetInstance + ' .detailMask').on('click', function(){
$('#' + widgetInstance + ' .newsDetail').fadeOut(300);
});
$('#' + widgetInstance + ' .next-btn-wrap').on('click', function(){
$('#' + widgetInstance + ' .pageNext').trigger('click');
});
$('#' + widgetInstance + ' .prev-btn-wrap').on('click', function(){
$('#' + widgetInstance + ' .pagePrev').trigger('click');
});
$('#' + widgetInstance + ' .detailClose').on('click', function(){
$('#' + widgetInstance + ' .detailMask').trigger('click');
});
if( $('#' + widgetInstance + ' .newsImg').length <= 0 ) {
$('#' + widgetInstance + ' .newsInfo').css('width', '100%');
}
$('#' + widgetInstance + ' .next-btn').off('click').on('click', function(){
$(document).scrollTop($('#' + widgetInstance).offset().top - 100);
});
function imgLoad( obj, callback ){
if(obj[0].complete){
callback && callback( obj.width(), obj.height() );
}else {
obj.off('load').on('load',function(){
callback && callback( obj.width(), obj.height() );
});
}
}
function setNewsImg() {
var boxScale = $('#' + widgetInstance + ' .newsImg').width() / $('#' + widgetInstance + ' .newsImg').height();
$('#' + widgetInstance + ' .newsImg').each(function(){
var $img = $(this).children('img')
imgLoad($img, function(w, h){
if( boxScale > w/h ){
$img.css({
'width': '100%',
'height': 'auto',
'position': 'absolute',
'top': '50%',
'left': '0px',
'transform': 'translateY(-50%)'
});
}else {
$img.css({
'width': 'auto',
'height': '100%',
'position': 'absolute',
'top': '0px',
'left': '50%',
'transform': 'translateX(-50%)'
});
}
});
});
}
}
}
widget.initList();
});