1
0
mirror of https://gitee.com/coder-xiaomo/flashsale synced 2025-01-11 04:08:14 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
flashsale/frontend/static/js/common/createproblem.js

181 lines
6.6 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(function( $ ){
var methods = {
init : function( options ){
var $this = this;
options = $.extend( $.fn.createproblem.options, options );
return this.each(function(){
$("#createProblemMarkContainer").markinput("init",{adjustLeftComponent:$("#problemModalBody")});
$("#createProblemSummary").on("keydown",function(e){
var keyCode = e.keyCode;
if(keyCode == 13){
e.preventDefault();
}
});
$("#createProblemSummary").on("paste",function(e){
var pasteText = e.originalEvent.clipboardData.getData("text/plain");
pasteText = pasteText.replace(/\r\n/g,"");
pasteText = pasteText.replace(/\r/g,"");
pasteText = pasteText.replace(/\n/g,"");
document.execCommand("insertHTML", false, pasteText);
e.preventDefault();
});
//统计字数
$("#createProblemSummary").on("keydown cut copy paste",function(){
setTimeout(function(){
$("#createProblemModel").modal("adjustBackdrop");
var inputText = $("#createProblemSummary").text();
if(inputText.length > 500){
$("#problemSummaryLimit").show();
$("#problemSummaryLimit").css("color","red");
$("#problemSummaryLimit").text(inputText.length + " / 500");
}else if(inputText.length > 350){
$("#problemSummaryLimit").show();
$("#problemSummaryLimit").css("color","#838383");
$("#problemSummaryLimit").text(inputText.length + " / 500");
}else{
$("#problemSummaryLimit").hide();
}
},0);
});
$("#createProblemContent").on("keydown cut copy paste",function(){
setTimeout(function(){
var inputText = $("#createProblemContent").val();
if(inputText.length > 100){
$("#problemContentLimit").show();
$("#problemContentLimit").css("color","red");
$("#problemContentLimit").text(inputText.length + " / 100");
}else if(inputText.length > 80){
$("#problemContentLimit").show();
$("#problemContentLimit").css("color","#838383");
$("#problemContentLimit").text(inputText.length + " / 100");
}else{
$("#problemContentLimit").hide();
}
},0);
});
$("#createProblemCancel").on("click",function(){
$("#createProblemModel").modal("hide");
});
$("#createProblemSubmit").on("click",function(){
var problemContent = $("#createProblemContent").val();
var problemSummary = $("#createProblemSummary").text();
if(problemContent.length <= 0){
$("#drTipbar").drtipbar("showMsg","请输入问题");
return;
}
if(problemContent.length > 100){
$("#drTipbar").drtipbar("showMsg","问题内容最多100个字");
return;
}
if(problemSummary.length > 500){
$("#drTipbar").drtipbar("showMsg","问题描述最多500个字");
return;
}
//验证是否以问号结尾
var lastStr = problemContent.substr(problemContent.length - 1,problemContent.length);
if(lastStr != '?' && lastStr != ''){
$("#drTipbar").drtipbar("showMsg","问题必须以问号结尾");
return;
}
problemContent = encodeURIComponent(problemContent);
problemSummary = encodeURIComponent(problemSummary);
var markArr = $("#createProblemMarkContainer").markinput("getMarkArray");
if(markArr.length == 0){
$("#drTipbar").drtipbar("showMsg","问题必须带标签");
return;
}
var markDataString = JSON.stringify(markArr);
markDataString = encodeURIComponent(markDataString);
$("#createProblemSubmit").attr("disabled",true);
jQuery.ajax({
type : "POST",
contentType : "application/x-www-form-urlencoded",
url : "/problems/create",
data : "content="+problemContent+"&summary="+problemSummary+"&markstr="+markDataString,
beforeSend: function(request) {
$('#loadingBar').drloadingbar("startLoad");
},
success : function(data){
//disable不能去除在页面跳转前会有再被点的风险
$.drWindowLocation("/problems/get?guid="+data.guid,true);
},
error : function(data){
$('#loadingBar').drloadingbar("stopLoad");
$("#createProblemSubmit").removeAttr("disabled");
if(data.responseJSON == null){
$("#drTipbar").drtipbar("showMsg","网络不给力");
}else{
if(data.responseJSON.errCode != null){
$("#drTipbar").drtipbar("showMsg",data.responseJSON.errMessage);
}else{
$("#drTipbar").drtipbar("showMsg","网络不给力");
}
}
}
});
});
});
},
modalShow:function(){
$("#createProblemModel").modal("show");
}
};
$.fn.createproblem = function( method ) {
// Method calling logic
if ( methods[method] ) {
return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
} else if ( typeof method === 'object' || ! method ) {
return methods.init.apply( this, arguments );
} else {
$.error( 'Method ' + method + ' does not exist on jQuery.createproblem' );
}
};
$.fn.createproblem.options = {};
})( jQuery );