增加Special Judge的基础配置和创建Special Judge题目的逻辑
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
require(["jquery", "avalon", "editor", "uploader", "bsAlert",
|
||||
"csrfToken", "tagEditor", "validator", "jqueryUI", "editorComponent", "testCaseUploader"],
|
||||
"csrfToken", "tagEditor", "validator", "jqueryUI", "editorComponent", "testCaseUploader", "spj"],
|
||||
function ($, avalon, editor, uploader, bsAlert, csrfTokenHeader) {
|
||||
avalon.ready(function () {
|
||||
|
||||
@@ -37,6 +37,11 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert",
|
||||
bsAlert("请至少添加一个标签,这将有利于用户发现你的题目!");
|
||||
return false;
|
||||
}
|
||||
var spjVM = avalon.vmodels.spjConfig;
|
||||
if (spjVM.spj && spjVM.spjCode == ""){
|
||||
bsAlert("请填写Special Judge的代码");
|
||||
return false;
|
||||
}
|
||||
var ajaxData = {
|
||||
id: avalon.vmodels.admin.problemId,
|
||||
title: vm.title,
|
||||
@@ -51,8 +56,13 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert",
|
||||
tags: tags,
|
||||
input_description: vm.inputDescription,
|
||||
output_description: vm.outputDescription,
|
||||
difficulty: vm.difficulty
|
||||
difficulty: vm.difficulty,
|
||||
spj: spjVM.spj
|
||||
};
|
||||
if (spjVM.spj) {
|
||||
ajaxData.spj_language = spjVM.spjLanguage;
|
||||
ajaxData.spj_code = spjVM.spjCode;
|
||||
}
|
||||
|
||||
for (var i = 0; i < vm.samples.$model.length; i++) {
|
||||
ajaxData.samples.push({
|
||||
|
||||
30
static/src/js/components/spj.js
Normal file
30
static/src/js/components/spj.js
Normal file
@@ -0,0 +1,30 @@
|
||||
define("spj", ["avalon"], function (avalon) {
|
||||
avalon.component("ms:spj", {
|
||||
$template: '<div class="col-md-6">'+
|
||||
'<label>Special Judge</label>'+
|
||||
'<div class="form-group">'+
|
||||
'<label class="text"><input type="checkbox" ms-duplex-checked="spj">'+
|
||||
'<small> Special Judge用于答案不唯一的情况,需要自己上传判题代码。'+
|
||||
'<a href="#" target="_blank">帮助和示例</a></small>'+
|
||||
'</label></div></div>'+
|
||||
'<div class="col-md-6" ms-if="spj">'+
|
||||
'<label>SPJ代码语言</label>'+
|
||||
'<div class="form-group">'+
|
||||
'<label class="text">'+
|
||||
'<input type="radio" name="spjLanguage" value="1" ms-duplex-string="spjLanguage"> C '+
|
||||
'<input type="radio" name="spjLanguage" value="2" ms-duplex-string="spjLanguage"> C++'+
|
||||
'</label>'+
|
||||
'</div>'+
|
||||
'</div>'+
|
||||
'<div class="col-md-12" ms-if="spj">'+
|
||||
'<label>SPJ代码</label>'+
|
||||
'<textarea class="form-control" rows="5" ms-duplex="spjCode"></textarea>'+
|
||||
'</div>',
|
||||
spj: false,
|
||||
spjLanguage: 1,
|
||||
spjCode: "",
|
||||
$ready: function (vm, el) {
|
||||
el.msRetain = true;
|
||||
}
|
||||
})
|
||||
});
|
||||
@@ -7,7 +7,7 @@ define("testCaseUploader", ["avalon", "uploader", "bsAlert", "jquery"], function
|
||||
'请将所有测试用例打包在一个文件中上传,' +
|
||||
'所有文件要在压缩包的根目录,' +
|
||||
'且输入输出文件名要以从1开始连续数字标识要对应例如:' +
|
||||
'<br>1.in 1.out 2.in 2.out </small> ' +
|
||||
'<br>1.in 1.out 2.in 2.out(普通题目)或者1.in 2.in 3.in(Special Judge) </small> ' +
|
||||
'<p>上传进度<span ms-text="uploadProgress"></span>%</p> ' +
|
||||
'<table class="table table-striped" ms-visible="uploaded"> ' +
|
||||
'<tr> <td>编号</td> <td>输入文件名</td> <td>输出文件名</td> </tr> ' +
|
||||
|
||||
@@ -28,6 +28,7 @@ var require = {
|
||||
pager: "components/pager",
|
||||
editorComponent: "components/editorComponent",
|
||||
testCaseUploader: "components/testCaseUploader",
|
||||
spj: "components/spj",
|
||||
|
||||
|
||||
// ------ 下面写的都不要直接用,而是使用上面的封装版本 ------
|
||||
|
||||
Reference in New Issue
Block a user