2015-08-07 09:13:44 +00:00
|
|
|
|
<div ms-controller="add_contest">
|
|
|
|
|
<form id="add-contest-form">
|
|
|
|
|
<div class="col-md-9">
|
|
|
|
|
<div class="col-md-12">
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<label>比赛名称</label>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<div class="form-group">
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<input type="text" name="name" class="form-control" ms-duplex="title">
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<label>说明</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<div class="form-group">
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<textarea id="editor" placeholder="这里输入内容" autofocus ms-duplex="description"></textarea>
|
|
|
|
|
<small ms-visible="description==''" style="color:red">请填写比赛描述</small>
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-6">
|
|
|
|
|
<label>开始时间</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-6">
|
|
|
|
|
<label>结束时间</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-6">
|
|
|
|
|
<div class="form-group">
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<input type="text" class="form-control" name="start_time" id="contest_start_time"
|
|
|
|
|
ms-duplex="startTime">
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-6">
|
|
|
|
|
<div class="form-group">
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<input type="text" class="form-control" name="end_time" id="contest_end_time" ms-duplex="endTime">
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
2015-08-02 01:47:50 +00:00
|
|
|
|
|
2015-08-07 09:13:44 +00:00
|
|
|
|
<div class="col-md-6">
|
|
|
|
|
<label>
|
|
|
|
|
密码保护
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-3">
|
|
|
|
|
<label>
|
|
|
|
|
模式
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-3">
|
|
|
|
|
<label>
|
|
|
|
|
结束前是否开放排名
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-6">
|
|
|
|
|
<div class="form-group">
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<input type="text" class="form-control" name="password" placeholder="留空就是公开赛" ms-duplex="password">
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-3">
|
|
|
|
|
<div class="form-group">
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<label><input type="radio" name="mode" ms-duplex-checked="model">
|
|
|
|
|
<small>OI</small>
|
|
|
|
|
</label>
|
|
|
|
|
<label><input type="radio" name="mode">
|
|
|
|
|
<small>ACM</small>
|
|
|
|
|
</label>
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-3">
|
|
|
|
|
<div class="form-group">
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<label class="text"><input type="checkbox" ms-duplex-checked="openRank">
|
|
|
|
|
<small>开放排名</small>
|
|
|
|
|
</label>
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
2015-08-02 01:47:50 +00:00
|
|
|
|
|
2015-08-07 09:13:44 +00:00
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<label>添加题目</label>
|
|
|
|
|
<a href="javascript:void(0)" class="btn btn-primary btn-sm" ms-click="add_problem()">添加</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<div class="problem" ms-repeat-problem="problems">
|
|
|
|
|
<div class="panel panel-default problem-panel" ms-attr-id="problem-{{ problem.id }}">
|
|
|
|
|
<div class="panel-heading">
|
|
|
|
|
<span class="panel-title">题目{{$index + 1}} </span>
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<a href="javascript:void(0)" class="btn btn-primary btn-sm" ms-click="toggle(problem)">
|
|
|
|
|
{{getBtnContent(problem)}}
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</a>
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<a href="javascript:void(0)" class="btn btn-danger btn-sm" ms-click="del_problem(problem)">
|
2015-08-07 09:13:44 +00:00
|
|
|
|
删除
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<div class="panel-body" ms-visible="problem.visible">
|
2015-08-07 09:13:44 +00:00
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<label>题目</label>
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
|
|
|
|
|
2015-08-07 09:13:44 +00:00
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<div class="form-group">
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<input type="text" name="problem_name[]" class="form-control"
|
|
|
|
|
ms-duplex="problem.title">
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
2015-08-10 08:59:45 +00:00
|
|
|
|
<label>题目描述</label>
|
|
|
|
|
<textarea ms-attr-id="problem-{{ problem.id }}-description" placeholder="这里输入内容"
|
|
|
|
|
ms-duplex="problem.description"></textarea>
|
|
|
|
|
<small ms-visible="problem.description==''" style="color:red">请填写题目描述</small>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>提示</label>
|
|
|
|
|
<textarea ms-attr-id="problem-{{ problem.id }}-hint" placeholder="这里输入内容" ms-duplex="problem.hint"></textarea>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
2015-08-10 08:59:45 +00:00
|
|
|
|
|
|
|
|
|
<div class="col-md-3">
|
|
|
|
|
<div class="form-group"><label>cpu</label>
|
|
|
|
|
<input type="number" name="cpu[]" class="form-control" ms-duplex="problem.cpu">
|
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
2015-08-10 08:59:45 +00:00
|
|
|
|
<div class="col-md-3">
|
|
|
|
|
<div class="form-group"><label>内存</label>
|
|
|
|
|
<input type="number" name="memory[]" class="form-control" ms-duplex="problem.memory">
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
2015-08-10 08:59:45 +00:00
|
|
|
|
<div class="col-md-3">
|
|
|
|
|
<div class="form-group"><label>难度</label>
|
|
|
|
|
<input type="number" name="difficulty[]" class="form-control" ms-duplex="problem.difficulty">
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
2015-08-10 08:59:45 +00:00
|
|
|
|
<div class="col-md-3 form-group">
|
|
|
|
|
<label>前台是否可见</label><br>
|
|
|
|
|
<label><input type="checkbox" ms-duplex-checked="problem.isVisible">
|
|
|
|
|
<small> 可见</small>
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="tag" class="col-md-12">
|
|
|
|
|
<label>标签</label><br>
|
|
|
|
|
<input type="text" ms-attr-id="problem-{{ problem.id }}-tags" >
|
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
<div class="col-md-12">
|
2015-08-02 01:47:50 +00:00
|
|
|
|
|
2015-08-07 09:13:44 +00:00
|
|
|
|
<label>样例</label>
|
|
|
|
|
<a href="javascript:void(0)" class="btn btn-primary btn-sm"
|
|
|
|
|
ms-click="add_sample(problem)">
|
|
|
|
|
添加
|
|
|
|
|
</a>
|
2015-08-02 01:47:50 +00:00
|
|
|
|
|
2015-08-07 09:13:44 +00:00
|
|
|
|
<div class="sample">
|
|
|
|
|
<div class="panel panel-default sample-panel"
|
|
|
|
|
ms-repeat-sample="problem.samples">
|
|
|
|
|
<div class="panel-heading">
|
|
|
|
|
<span class="panel-title">样例{{$index + 1}}</span>
|
2015-08-02 01:47:50 +00:00
|
|
|
|
|
2015-08-07 09:13:44 +00:00
|
|
|
|
<a href="javascript:void(0)" class="btn btn-primary btn-sm"
|
2015-08-09 12:50:04 +00:00
|
|
|
|
ms-click="toggle(sample)">
|
|
|
|
|
{{getBtnContent(sample)}}
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</a>
|
|
|
|
|
<a href="javascript:void(0)" class="btn btn-danger btn-sm"
|
|
|
|
|
ms-click="del_sample(problem, sample)">
|
|
|
|
|
删除
|
|
|
|
|
</a>
|
2015-08-02 01:47:50 +00:00
|
|
|
|
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<div class="panel-body row" ms-visible="sample.visible">
|
|
|
|
|
<div class="col-md-6">
|
2015-08-07 09:13:44 +00:00
|
|
|
|
<div class="form-group">
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<label>样例输入</label>
|
|
|
|
|
<textarea class="form-control" rows="5"
|
|
|
|
|
ms-duplex="sample.input"></textarea>
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<div class="col-md-6">
|
2015-08-07 09:13:44 +00:00
|
|
|
|
<div class="form-group">
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<label>样例输出</label>
|
2015-08-10 08:59:45 +00:00
|
|
|
|
<textarea class="form-control" rows="5"
|
|
|
|
|
ms-duplex="sample.output"></textarea>
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-12">
|
2015-08-10 08:59:45 +00:00
|
|
|
|
<label>测试数据</label><br>
|
|
|
|
|
<small class="text-info">请将所有测试用例打包在一个文件中上传,所有文件要在压缩包的根目录,且输入输出文件名要以从1开始连续数字标识要对应例如:<br>
|
|
|
|
|
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>
|
|
|
|
|
</table>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<div ms-attr-id="problem-{{ problem.id }}-uploader">选择文件</div>
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2015-08-09 12:50:04 +00:00
|
|
|
|
|
2015-08-02 01:47:50 +00:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2015-08-09 12:50:04 +00:00
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<input type="submit" class="btn btn-success btn-lg" value="发布比赛">
|
|
|
|
|
</div>
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</div>
|
2015-08-09 12:50:04 +00:00
|
|
|
|
|
2015-08-07 09:13:44 +00:00
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
|
2015-08-10 08:59:45 +00:00
|
|
|
|
<script src="/static/js/app/admin/contest/contest.js"></script>
|
|
|
|
|
<link href="/static/css/tagEditor/jquery.tag-editor.css" rel="stylesheet">
|