mirror of
https://gitee.com/coder-xiaomo/flashsale
synced 2025-01-11 04:08:14 +08:00
181 lines
6.6 KiB
JavaScript
181 lines
6.6 KiB
JavaScript
(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 );
|