后台 js 的部分 bug 修复,还没改完
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
@import url("simditor/simditor.css");
|
||||
@import url("webuploader/webuploader.css");
|
||||
@import url("datetime_picker/bootstrap-datetimepicker.css");
|
||||
@import url("tagEditor/jquery.tag-editor.css");
|
||||
|
||||
#loading-gif{
|
||||
width: 40px;
|
||||
|
||||
@@ -64,18 +64,15 @@ require(["jquery", "avalon", "editor", "uploader", "bs_alert", "csrf", "tagEdito
|
||||
})
|
||||
.on("success.form.fv", function (e) {
|
||||
e.preventDefault();
|
||||
if (vm.test_case_id == '')
|
||||
{
|
||||
if (vm.test_case_id == '') {
|
||||
bs_alert("你还没有上传测试数据!");
|
||||
return;
|
||||
}
|
||||
if (vm.description == '')
|
||||
{
|
||||
if (vm.description == '') {
|
||||
bs_alert("题目描述不能为空!");
|
||||
return;
|
||||
}
|
||||
if (vm.hint == '')
|
||||
{
|
||||
if (vm.hint == '') {
|
||||
bs_alert("提示不能为空!");
|
||||
return;
|
||||
}
|
||||
@@ -88,33 +85,30 @@ require(["jquery", "avalon", "editor", "uploader", "bs_alert", "csrf", "tagEdito
|
||||
test_case_id: vm.test_case_id,
|
||||
hint: vm.hint,
|
||||
source: vm.source,
|
||||
tags: [],
|
||||
tags: $("#tags").tagEditor("getTags")[0].tags,
|
||||
difficulty: vm.difficulty
|
||||
};
|
||||
if (vm.samples.length == 0)
|
||||
{
|
||||
if (vm.samples.length == 0) {
|
||||
bs_alert("请至少添加一组样例!");
|
||||
return;
|
||||
}
|
||||
var tags = $("#tags").tagEditor("getTags")[0].tags;
|
||||
if (tags.length == 0)
|
||||
{
|
||||
|
||||
if (tags.length == 0) {
|
||||
bs_alert("请至少添加一个标签,这将有利于用户发现你的题目!");
|
||||
return;
|
||||
}
|
||||
for (key in vm.samples.length) {
|
||||
ajaxData.samples.push({input: vm.samples[key].input, output: vm.samples[key].output});
|
||||
|
||||
for (var i = 0; i < vm.samples.$model.length; i++) {
|
||||
ajaxData.samples.push({input: vm.samples.$model[i].input, output: vm.samples.$model[i].output});
|
||||
}
|
||||
for (key in tags) {
|
||||
ajaxData.tags.push(tags[key].tag);
|
||||
}
|
||||
console.log(ajaxData);
|
||||
|
||||
$.ajax({
|
||||
beforeSend: csrfHeader,
|
||||
url: "/api/admin/problem/",
|
||||
dataType: "json",
|
||||
data:ajaxData,
|
||||
data: JSON.stringify(ajaxData),
|
||||
method: "post",
|
||||
contentType: "application/json",
|
||||
success: function (data) {
|
||||
if (!data.code) {
|
||||
bs_alert("successful!");
|
||||
@@ -188,8 +182,8 @@ require(["jquery", "avalon", "editor", "uploader", "bs_alert", "csrf", "tagEdito
|
||||
if (!data.code) {
|
||||
tagList = data.data;
|
||||
completeList = [];
|
||||
for (key in tagList) {
|
||||
completeList.push(tagList[key].name);
|
||||
for (var i = 0; i < tagList.length; i++) {
|
||||
completeList.push(tagList[i].name);
|
||||
}
|
||||
$("#tags").tagEditor({
|
||||
autocomplete: {
|
||||
|
||||
@@ -1,23 +1,17 @@
|
||||
<div ms-controller="add_problem" class="col-md-9">
|
||||
<form id="add-problem-form">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group col-md-6">
|
||||
|
||||
<div class="form-group col-md-12">
|
||||
<label>题目标题</label>
|
||||
<input type="text" name="title" class="form-control" ms-duplex="title">
|
||||
</div>
|
||||
<div class="form-group col-md-6">
|
||||
<label>来源</label>
|
||||
<input type="text" name="source" class="form-control" ms-duplex="source">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
||||
<div class="form-group col-md-12">
|
||||
<label>题目描述</label>
|
||||
<textarea id="problemDescription" placeholder="这里输入内容" autofocus ms-duplex="description"></textarea>
|
||||
<small ms-visible="description==''" style="color:red">请填写题目描述</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>提示</label>
|
||||
<textarea id="hint" placeholder="这里输入内容" ms-duplex="hint"></textarea>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="form-group"><label>时间限制(ms)</label>
|
||||
@@ -54,7 +48,7 @@
|
||||
<span class="panel-title">样例{{$index + 1}}</span>
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm"
|
||||
ms-click="toggle_sample(sample)">
|
||||
{{getBtnContent(sample)}}
|
||||
{{ getBtnContent(sample)}}
|
||||
</a>
|
||||
<a href="javascript:void(0)" class="btn btn-danger btn-sm"
|
||||
ms-click="del_sample(sample)">
|
||||
@@ -81,10 +75,19 @@
|
||||
<div class="col-md-12"><br>
|
||||
<label>测试数据</label><br>
|
||||
<small class="text-info">请将所有测试用例打包在一个文件中上传,所有文件要在压缩包的根目录,且输入输出文件名要以从1开始连续数字标识要对应例如:<br>
|
||||
1.in 1.out 2.in 2.out</small>
|
||||
1.in 1.out 2.in 2.out
|
||||
</small>
|
||||
<table class="table table-striped" ms-visible="uploadSuccess">
|
||||
<tr><td>编号</td><td>输入文件名</td><td>输出文件名</td></tr>
|
||||
<tr ms-repeat="testCaseList"><td>{{$index}}</td><td>{{el.input}}</td><td>{{el.output}}</td></tr>
|
||||
<tr>
|
||||
<td>编号</td>
|
||||
<td>输入文件名</td>
|
||||
<td>输出文件名</td>
|
||||
</tr>
|
||||
<tr ms-repeat="testCaseList">
|
||||
<td>{{$index + 1}}</td>
|
||||
<td>{{ el.input }}</td>
|
||||
<td>{{ el.output }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
@@ -92,7 +95,15 @@
|
||||
<div id="testCaseFile">选择文件</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-12">
|
||||
<label>提示</label>
|
||||
<textarea id="hint" placeholder="这里输入内容" ms-duplex="hint"></textarea>
|
||||
</div>
|
||||
<div class="form-group col-md-12">
|
||||
<label>来源</label>
|
||||
<input type="text" name="source" class="form-control" ms-duplex="source">
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<input type="submit" class="btn btn-success btn-lg" value="发布题目" id="submitBtn">
|
||||
</div>
|
||||
@@ -100,4 +111,3 @@
|
||||
</div>
|
||||
|
||||
<script src="/static/js/app/admin/problem/add_problem.js"></script>
|
||||
<link href="/static/css/tagEditor/jquery.tag-editor.css" rel="stylesheet">
|
||||
@@ -7,16 +7,15 @@
|
||||
<a href="problem.html">题目</a></li>
|
||||
<li role="presentation"><a href="/problem/1/my_solutions/">我的提交</a></li>
|
||||
</ul>
|
||||
<h2 class="text-center">Battle Over Cities - Hard Version</h2>
|
||||
<h2 class="text-center">{{ problem.title }}</h2>
|
||||
|
||||
<p class="text-muted text-center">发布时间: 2015-07-05 CPU: 1000ms 内存: 256M</p>
|
||||
<p class="text-muted text-center">发布时间: {{ problem.create_time }} CPU: {{ problem.time_limit }}ms 内存: {{ problem.memory_limit }}M</p>
|
||||
|
||||
<div>
|
||||
<div class="problem-section">
|
||||
<label class="problem-label">描述</label>
|
||||
|
||||
<p class="problem-detail"> n的阶乘定义为n!=1*2*3*……*n 如3!=6
|
||||
n!通常最后会有很多0,如5!=120 最后有一个0,现在统计n!去除末尾的0后,最后k位是多少</p>
|
||||
<p class="problem-detail">{{ problem.description|safe }}</p>
|
||||
</div>
|
||||
<div class="problem-section">
|
||||
<label class="problem-label">输入</label>
|
||||
@@ -28,47 +27,37 @@
|
||||
|
||||
<p class="problem-detail">第一行包括两个数n,k</p>
|
||||
</div>
|
||||
{% for item in samples %}
|
||||
<div class="problem-section">
|
||||
<label class="problem-label">样例输入1</label>
|
||||
<pre title="双击可以复制哦~">
|
||||
1 2 3 4 5 6 7
|
||||
1 2 3 4 5 6 7</pre>
|
||||
<pre>
|
||||
{{ item.input }}</pre>
|
||||
|
||||
</div>
|
||||
<div class="problem-section">
|
||||
|
||||
<label class="problem-label">样例输出1</label>
|
||||
<pre>
|
||||
1 2 3 4 5 6 7</pre>
|
||||
</div>
|
||||
<div class="problem-section">
|
||||
<label class="problem-label">样例输入2</label>
|
||||
<pre title="双击可以复制哦~">
|
||||
1 2 3 4 5 6 7
|
||||
1 2 3 4 5 6 7</pre>
|
||||
|
||||
</div>
|
||||
<div class="problem-section">
|
||||
|
||||
<label class="problem-label">样例输出2</label>
|
||||
<pre>
|
||||
1 2 3 4 5 6 7</pre>
|
||||
{{ item.output }}</pre>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div>
|
||||
<button type="button" id="show-more-btn" class="btn btn-info btn-sm">查看隐藏信息</button>
|
||||
</div>
|
||||
|
||||
{% if problem.hind %}
|
||||
<div class="problem-section hide">
|
||||
<label class="problem-label">提示</label>
|
||||
|
||||
<p class="problem-detail">画一下图</p>
|
||||
<p class="problem-detail">{{ problem.hint|safe }}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="problem-section hide">
|
||||
<label class="problem-label">标签</label>
|
||||
|
||||
<p class="problem-detail">
|
||||
<span class="label label-success">Success</span>
|
||||
<span class="label label-info">Info</span>
|
||||
{% for tag in problem.tags.all %}
|
||||
<span class="label label-success">{{ tag.name }}</span>
|
||||
{% endfor %}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user