(function(){ //存储私有数据 const _acInfoId = $('#acInfoId').val(); const _acInfoName = $('#acInfoName').val(); const _branchIds = $('#branchIds').val(); const richTextEditorSelector = '.messageContent'; /** * 对layer.msg方法进行简单封装 * @param message 弹出信息内容 */ function popMessage(message){ layer.msg(`${message}`,{time:2000}); } /** * 初始化留言输入框/回复输入框 * @param $richTextBox 用来做富文本容器的对象 * @param options 配置,具体参考{@link trumbowygMod}方法的说明 */ function initMeesageInput($richTextBox,options){ $richTextBox.trumbowygMod(options); //获取富文本键盘事件 $richTextBox.on('keyup', function(){ let content = $richTextBox.trumbowyg().trumbowyg('html'); if(!content){ if($('.trumbowyg-box .placeholder').length) return; $('.messageContent').after('
${template}
`); }); } function showLoading(){ $('.message_list').hide(); $('.message_loading').show(); $('.message_noResult').hide(); $('.message_pageBar').hide(); // $('.msg_collapse').hide(); } function showResult(){ $('.message_list').show(); $('.message_loading').hide(); $('.message_noResult').hide(); $('.message_pageBar').show(); } function showNoResult(){ $('.message_list').hide(); $('.message_loading').hide(); $('.message_noResult').show(); $('.message_pageBar').hide(); // $('.msg_collapse').hide(); } /** * 初始化留言列表,支持分页 * @param pageSize 每页展示数量,最少2个 */ function initMessageList(pageSize){ if(pageSize<=2){ pageSize = 2; } //默认展示留言加载中 showLoading(); $('.message_pageBar').paginationMod({ dataSource:'/ysgSpecialDay/page', locator:'htmlArray', totalNumberLocator:function(resp){ return resp.totalCount; }, ajax:{data:{acInfoId: _acInfoId}}, pageNumber:1, pageSize:pageSize, showGoInput:false, callback:function(data){ appendData(data); }, afterPreviousOnClick:function(){ showLoading(); }, afterNextOnClick:function(){ showLoading(); }, afterPageOnClick:function(){ showLoading(); } }); } /** * 无分页获取数据 * 展示所有数据则改为 function noPageBar(pagesize=99999){ */ function noPageBar(pagesize=5){ // /ysgSpecialDay/page //默认展示留言加载中 showLoading(); fetch('/ysgSpecialDay/page?acInfoId='+_acInfoId+'&pageSize='+pagesize+'&pageNumber=1', {method:'GET'}).then((response) => { return response.json(); }).then((data) => { appendData(data); }); } /** * 拼接分页数据到DOM中,并切换展示状态 * @param data 分页数据,必须要是数组格式 */ function appendData(data){ if(data.htmlArray instanceof Array){ if(data.htmlArray.length > 0){ $('.message_list').empty(); data.htmlArray.forEach((ele)=>{ $('.message_list').append(ele); }); // if(data.totalCount < 5){ // $('.msg_collapse .check-in').hide();// 隐藏更多按钮 // // $('.msg_collapse .check-out').hide();// 隐藏收起按钮 // } showResult(); //这里发送AJAX去获取所有的点赞数据 appendThumbUpCount(); }else{ showNoResult(); } //拼接完成后替换所有的院士ID和院士姓名的隐藏表单 $('[name="acInfoId"]').val(_acInfoId); $('[name="acInfoName"]').val(_acInfoName); $('[name="branchIds"]').val(_branchIds); } } /** * 发送AJAX获取所有的点赞数据并拼接到页面上 */ function appendThumbUpCount(){ let dataIdArray = []; $('.message_thumbupBtn').each((index,ele)=>{ let dataId = $(ele).attr('data-id'); dataIdArray.push(dataId); }); dataIdArray = dataIdArray.join(','); $.ajax({ url:'/ysgSpecialDay/thumbUpCount', type:'POST', data:{dataIdArray:dataIdArray}, dataType:'json', success:function(data){ if(data instanceof Array){ //把返回的对象数据设置到页面的点赞数中 data.forEach((ele)=>{ let dataId = ele.dataId; let $thumbUpIcon = $(`[data-id='${dataId}']`); if($thumbUpIcon.hasClass('message_thumbupBtn')){ let $thumbUpCount = $thumbUpIcon.next(); $thumbUpCount.text(ele.count); } }); } } }); } /** * 初始化回复框,绑定回复按钮事件 */ function initReplyForm(){ $('.message_list').on('click','.message_replyBtn',function(){ //这里对回复框和回复按钮的结构有要求 let replyBox = $(this).parents('.message_list_socialBar:eq(0)').next(); let messageContent = replyBox.find(richTextEditorSelector).eq(0); if(replyBox.is(':hidden')){ //先初始化富文本输入框,再展开,但是禁止回复框上传图片 initMeesageInput(messageContent,{allowImage:false}); //初始化验证码 replyBox.find('.verify_code').val(currentCode); replyBox.slideDown(300); }else{ //先收起,再销毁富文本输入框 replyBox.slideUp(300,()=>{ destroyMessageInput(messageContent); }); } }); } /** * 绑定点赞事件 */ function initThumbUpAction(){ $('body').on('click','.message_thumbupBtn',function(){ $(this).doThumbUp({duration:400},function($ele){ //页面的点赞数+1 let $thumbUpCount = $ele.next(); let count = $thumbUpCount.text(); if(count==''){ count == 0; } count++; //先让页面上的点赞数发送变化,再调用点赞接口更新数据库点赞数 $thumbUpCount.text(count); $.ajax({ type:'GET', url:'/ysgSpecialDay/doThumbUp', data:{ dataId:$ele.attr('data-id'), }, success:function(){ //是否成功其实都不影响的 } }); }); }); } //无需等待页面加载完成就可以执行此代码 initCheckbox($('.presentMaxSelectNumber').val()); initMeesageInput($(richTextEditorSelector),{allowImage:true}); initMessageTemplate(); initReplyForm(); initMessageForm($('.message_submit_form')); noPageBar(); // 点击更多按钮,展示全部数据,并将按钮文本改为收起 // $('.msg_collapse .check-in').click(function() { // noPageBar(99999); // $('.msg_collapse .check-out').show();// 显示收起按钮 // $('.msg_collapse .check-in').hide();// 隐藏更多按钮 // }); // 点击收起按钮,隐藏超出的数据,并显示为默认的5条数据,并将按钮文本改为更多 // $(' .msg_collapse .check-out').click(function() { // noPageBar(); // $('.msg_collapse .check-out').hide();// 隐藏收起按钮 // $('.msg_collapse .check-in').show();// 显示更多按钮 // }); initThumbUpAction(); })();