jForum.threads = (function ($) { function init() { var template = jForum.template; var util = jForum.utils; //话题内容页中会员信息弹出菜单 $('body').on('click', 'a.poper-member-menu', function (e) { e.preventDefault(); var self = $(this); var rawdata = {}; rawdata.uri = self.parents('.topic_posts_item_left').attr('data-handler'); //本地缓存命中 rawdata.member = $.url(rawdata.uri).param('id'); var cacheData = store.get('member_profile#' + rawdata.member); //本人的不缓存[20200118] if (!jQuery.isEmptyObject(cacheData)) { template.buildMemberProfileMenu(cacheData, self); return; } // console.log('[MP]不存在缓存去拉取数据'); jForum.xhr.jsonGet(rawdata.uri, { jsonCallback : function(data){ store.set('member_profile#' + rawdata.member, data); template.buildMemberProfileMenu(data, self); } }); }); //引用回复@20200506 $('body').on('click', '.post-action-quote', function () { var self = $(this); var options = util.parseQueryJson(self.attr('data-query')); jForum.xhr.jsonGet(self.attr('data-handler'), { data : {'id' : options.id}, jsonCallback : function(json){ if (jQuery.isEmptyObject(json)) { return util.errorMessage('读取原文内容失败'); } if (json.level === 'err') { return util.errorMessage(json.message); } if (json.infoTip) { util.insertEditorHtml(''); $('#reply-tip-message').html('提示! ' + json.infoTip); //插入到表单中@20200506 $('#quick_reply_form').find('input[name=quote]').val(json.quote); $('#quick_reply_form').find('input[name=scale]').val(json.scale); } }, failCallback : function(jqXHR, textStatus, errorThrown){ if (textStatus === 'error') { var err = $.parseJSON(jqXHR.responseText); if (err.level && err.level === 'err') { return util.errorMessage(err.message); } } util.errorMessage('当前操作因错误而异外中止'); } }); return false; }); //举报回复[NW] $('body').on('click', '.post-action-report', function () { var self = $(this); var requestParam = util.parseQueryJson(self.attr('data-query')); // $.confirm({ title: '', closeIcon: true, closeIconClass: 'ico-sm mdi mdi-close', content: '
' + '
' + '' + '
', buttons: { formSubmit: { text: '举报', btnClass: 'btn-blue', action: function () { var reason = this.$content.find('textarea[name=reason]').val(); if (util.isBlank(reason)) { this.$content.find('textarea[name=reason]').focus(); return false; } requestParam.reason = reason; requestParam.type = this.$content.find("select[name=type]").val(); jForum.xhr.jsonPost(self.attr('data-handler'), { data : requestParam, jsonCallback : function(response){ response.refresh = false; util.tipDialog(response); }, failCallback : function(jqXHR, textStatus, errorThrown){ if(textStatus === 'error'){ var err = $.parseJSON(jqXHR.responseText); if(err.level && err.level ==='err'){ return util.errorMessage(err.message); } } util.errorMessage('当前操作因错误而异外中止'); } }); } } }, onContentReady: function () { var jc = this; this.$content.find('form').on('submit', function (e) { e.preventDefault(); jc.$$formSubmit.trigger('click'); }); } }); return false; }); //快速回复[NW]@20200506 $('#quick_reply_posts').on('submit', '#quick_reply_form', function (e) { e.preventDefault(); var self = $(this); // var requestData = {} requestData.token = self.find('input[name=token]').val(); requestData.quote = self.find('input[name=quote]').val(); requestData.scale = self.find('input[name=scale]').val(); try { requestData.content = CKEDITOR.instances.content.getData(); } catch (e) { requestData.content = $(this).find('input[name=content]').val(); } if (util.isBlank(requestData.content)) { $.alert('请输入回复的内容'); return false; } // 同步操作 jForum.xhr.jsonPost(self.attr('action'), { data : requestData, jsonCallback : function(response){ if (response.level === 'err' && !util.isBlank(response.message)) { //出错了 response.refresh = false; util.tipDialog(response); } else { template.quickReplyFillPosts(response); //清空表单的元素 self.find('input[name=content]').val(''); self.find('input[name=quote]').val(''); self.find('input[name=scale]').val(''); $('#reply-tip-message').html(''); //清空编辑器的内容 CKEDITOR.instances['content'].setData(''); } }, failCallback : function(jqXHR, textStatus, errorThrown){ if(textStatus === 'error'){ var err = $.parseJSON(jqXHR.responseText); if(err.level && err.level ==='err'){ return util.errorMessage(err.message); } } util.errorMessage('当前操作因错误而异外中止'); } }); return false; }); } return { init: init }; })(jQuery);