修改源码模板路径
This commit is contained in:
106
template/src/admin/contest/add_contest.html
Normal file
106
template/src/admin/contest/add_contest.html
Normal file
@@ -0,0 +1,106 @@
|
||||
<div ms-controller="add_contest">
|
||||
<form id="add-contest-form">
|
||||
<div class="col-md-9">
|
||||
<div class="col-md-12">
|
||||
<label>比赛名称</label>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<input type="text" name="name" class="form-control" ms-duplex="title"
|
||||
data-error="请填写比赛名称(名称不能超过50个字)" ms-attr-readonly="contestCreated" required>
|
||||
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<label>说明</label>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<textarea id="editor" placeholder="这里输入内容" autofocus ms-duplex="description"></textarea>
|
||||
|
||||
<div class="help-block with-errors"></div>
|
||||
<small ms-visible="description==''" style="color:red">请填写比赛描述</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label>开始时间</label>
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control" name="start_time" id="contest_start_time"
|
||||
ms-duplex="startTime" data-error="请填写比赛开始时间" required>
|
||||
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label>结束时间</label>
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control" name="end_time" id="contest_end_time"
|
||||
ms-duplex="endTime" data-error="请填写比赛结束时间" required>
|
||||
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label>允许参加的用户</label>
|
||||
<div class="form-group">
|
||||
<select class="form-control" ms-duplex="group" ms-change="addGroup" value="-1">
|
||||
<option value="-1">请选择</option>
|
||||
<option ms-repeat="groupList" ms-attr-value="$index" ms-visible="!el.chose">{{el.name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6" ms-visible="passwordUsable">
|
||||
<label>密码保护</label>
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control" name="password" placeholder="留空就是公开赛" ms-duplex="password">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div ms-repeat="choseGroupList" class="group-tag" ms-click="removeGroup($index)">{{el.name}}</div>
|
||||
</div>
|
||||
<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">
|
||||
<label><input type="radio" name="mode" ms-duplex-string="mode" value="0">
|
||||
<small>ACM</small>
|
||||
</label>
|
||||
<label><input type="radio" name="mode" ms-duplex-string="mode" value="1">
|
||||
<small>AC数量</small>
|
||||
</label>
|
||||
<label><input type="radio" name="mode" ms-duplex-string="mode" value="2">
|
||||
<small>分数</small>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="form-group">
|
||||
<label class="text"><input type="checkbox" ms-duplex-checked="showRank">
|
||||
<small>开放排名</small>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="form-group">
|
||||
<label class="text"><input type="checkbox" ms-duplex-checked="showSubmission">
|
||||
<small>允许查看提交记录</small>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<input type="submit" class="btn btn-success btn-lg" value="发布比赛">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script src="/static/js/app/admin/contest/addContest.js"></script>
|
||||
188
template/src/admin/contest/contest_list.html
Normal file
188
template/src/admin/contest/contest_list.html
Normal file
@@ -0,0 +1,188 @@
|
||||
<div ms-controller="contestList" class="col-md-9">
|
||||
<h1>比赛列表</h1>
|
||||
|
||||
<div class="right">
|
||||
<form class="form-inline" onsubmit="return false;">
|
||||
<div class="form-group-sm">
|
||||
<label>搜索</label>
|
||||
<input name="keyWord" class="form-control" placeholder="请输入关键词" ms-duplex="keyword">
|
||||
<input type="submit" value="搜索" class="btn btn-primary" ms-click="getPage(1)">
|
||||
</div>
|
||||
</form>
|
||||
<br>
|
||||
</div>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>比赛</th>
|
||||
<th>公开排名</th>
|
||||
<th>可见</th>
|
||||
<th>创建时间</th>
|
||||
<th>创建者</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr ms-repeat="contestList">
|
||||
<td>{{ el.id }}</td>
|
||||
<td>{{ el.title }}</td>
|
||||
<td>{{ getYesOrNo(el.show_rank) }}</td>
|
||||
<td>{{ getYesOrNo(el.visible) }}</td>
|
||||
<td>{{ el.create_time|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<td>{{ el.created_by.username }}</td>
|
||||
<td>
|
||||
<a class="btn btn-info" href="javascript:void(0)" ms-click="showEditContestArea($index+1)">编辑</a>
|
||||
<a class="btn btn-primary" href="javascript:void(0)" ms-click="showEditProblemArea($index+1)">编辑问题</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="form-group">
|
||||
<label>仅显示可见 <input ms-duplex-checked="showVisibleOnly" type="checkbox"/></label>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
页数:{{ page }}/{{ totalPage }}
|
||||
<button ms-attr-class="getBtnClass('pre')" ms-click="getPrevious">上一页</button>
|
||||
<button ms-attr-class="getBtnClass('next')" ms-click="getNext">下一页</button>
|
||||
</div>
|
||||
<div ms-visible="editingContestId">
|
||||
<form id="edit-contest-form">
|
||||
<div class="col-md-12">
|
||||
<label>比赛名称</label>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<input type="text" name="name" class="form-control" ms-duplex="editTitle"
|
||||
data-error="请填写比赛名称(名称不能超过50个字)" required>
|
||||
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<label>说明</label>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<textarea id="editor" placeholder="这里输入内容" autofocus ms-duplex="editDescription"></textarea>
|
||||
|
||||
<div class="help-block with-errors"></div>
|
||||
<small ms-visible="editDescription==''" style="color:red">请填写比赛描述</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label>开始时间</label>
|
||||
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control" name="start_time" id="contest_start_time"
|
||||
ms-duplex="editStartTime" data-error="请填写比赛开始时间" required>
|
||||
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label>结束时间</label>
|
||||
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control" name="end_time" id="contest_end_time"
|
||||
ms-duplex="editEndTime" data-error="请填写比赛结束时间" required>
|
||||
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label>允许参加的用户</label>
|
||||
|
||||
<div class="form-group">
|
||||
<select class="form-control" ms-duplex="group" ms-change="addGroup" value="-1">
|
||||
<option value="-1">请选择</option>
|
||||
<option ms-repeat="groupList" ms-attr-value="$index" ms-visible="!el.chose">{{el.name}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6" ms-visible="passwordUsable">
|
||||
<label>密码保护</label>
|
||||
<input type="text" class="form-control" name="password" placeholder="留空就是公开赛" ms-duplex="editPassword">
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div ms-repeat="choseGroupList" class="group-tag" ms-click="removeGroup($index)">{{el.name}}</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label>排名方式</label>
|
||||
|
||||
<div class="form-group">
|
||||
<label><input type="radio" name="mode" ms-duplex-string="editMode" value="0">
|
||||
<small>ACM</small>
|
||||
</label>
|
||||
<label><input type="radio" name="mode" ms-duplex-string="editMode" value="1">
|
||||
<small>AC数量</small>
|
||||
</label>
|
||||
<label><input type="radio" name="mode" ms-duplex-string="editMode" value="2">
|
||||
<small>分数</small>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<label>是否可见</label><br>
|
||||
<label><input type="checkbox" ms-duplex-checked="editVisible">
|
||||
<small> 可见</small>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label>结束前是否开放排名</label>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="text"><input type="checkbox" ms-duplex-checked="editShowRank">
|
||||
<small>开放排名</small>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label>是否公开提交记录</label>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="text"><input type="checkbox" ms-duplex-checked="editShowSubmission">
|
||||
<small>允许查看提交记录</small>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<button class="btn btn-primary" type="submit">保存修改</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-md-12" ms-visible="editingProblemContestIndex">
|
||||
<label>题目列表</label>
|
||||
<a href="javascript:void(0)" class="btn btn-success btn-sm" ms-click="add_problem()">添加</a>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>编号</th>
|
||||
<th>题目</th>
|
||||
<th ms-visible="editMode=='2'">分值</th>
|
||||
<th>可见</th>
|
||||
<th>创建时间</th>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr ms-repeat="editProblemList">
|
||||
<td>{{ el.sort_index }}</td>
|
||||
<td>{{ el.title }}</td>
|
||||
<td ms-visible="editMode=='2'">{{ el.score}}</td>
|
||||
<td>{{ getYesOrNo(el.visible) }}</td>
|
||||
<td>{{ el.create_time|date("yyyy-MM-dd HH:mm:ss") }}</td>
|
||||
<td>
|
||||
<a href="javascript:void(0)" class="btn-sm btn-info"
|
||||
ms-click="showProblemEditor(el)">编辑</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<script src="/static/js/app/admin/contest/contestList.js"></script>
|
||||
138
template/src/admin/contest/edit_problem.html
Normal file
138
template/src/admin/contest/edit_problem.html
Normal file
@@ -0,0 +1,138 @@
|
||||
<div ms-controller="editProblem" class="col-md-9">
|
||||
<form id="edit-problem-form">
|
||||
<nav>
|
||||
<ul class="pager">
|
||||
<li class="previous" ms-click="goBack(0)"><a href="javascript:void(0)"><span
|
||||
aria-hidden="true">←</span> 返回</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label>题目编号</label>
|
||||
<input type="text" name="title" autofocus class="form-control" ms-duplex="sortIndex"
|
||||
data-error="请填写题目编号" maxlength="30" required>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
<div class="form-group col-md-9">
|
||||
<label>题目标题</label>
|
||||
<input type="text" name="title" autofocus class="form-control" ms-duplex="title"
|
||||
data-error="请填写题目名称" maxlength="30" required>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-12">
|
||||
<label>题目描述</label>
|
||||
<textarea id="problemDescription" placeholder="这里输入内容(此内容不能为空)" ms-duplex="description"></textarea>
|
||||
<small ms-visible="description==''" style="color:red">请填写题目描述</small>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="form-group"><label>时间限制(ms)</label>
|
||||
<input type="number" name="timeLimit" class="form-control" ms-duplex="timeLimit"
|
||||
data-error="请输入时间限制(保证是一个1000-5000的合法整数)" required>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="form-group"><label>内存限制(MB)</label>
|
||||
<input type="number" name="memory" class="form-control" ms-duplex="memoryLimit"
|
||||
data-error="请输入内存限制(保证是一个合法整数)" required>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3" ms-visible="contestMode=='2'">
|
||||
<div class="form-group"><label>分值(仅计分模式)</label>
|
||||
<input type="number" name="score" class="form-control" ms-duplex="score">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 form-group">
|
||||
<label>是否可见</label><br>
|
||||
<label><input type="checkbox" ms-duplex-checked="visible">
|
||||
<small> 可见</small>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-md-12 form-group">
|
||||
<label>输入描述</label><br>
|
||||
<textarea class="form-control" rows="5" name="input_description"
|
||||
ms-duplex="inputDescription" data-error="请填写输入描述"
|
||||
maxlength="10000" required>
|
||||
</textarea>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
<div class="col-md-12 form-group">
|
||||
<label>输出描述</label><br>
|
||||
<textarea class="form-control" rows="5" name="output_escription"
|
||||
ms-duplex="outputDescription" data-error="请填写输出描述"
|
||||
maxlength="10000" required>
|
||||
</textarea>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
<div class="col-md-12"><br>
|
||||
<label>样例</label>
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm" ms-click="addSample()">添加</a>
|
||||
|
||||
<div class="sample">
|
||||
<div class="panel panel-default sample-panel" ms-repeat-sample="samples">
|
||||
<div class="panel-heading">
|
||||
<span class="panel-title">样例{{$index + 1}}</span>
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm"
|
||||
ms-click="toggleSample(sample)">
|
||||
{{ getBtnContent(sample)}}
|
||||
</a>
|
||||
<a href="javascript:void(0)" class="btn btn-danger btn-sm"
|
||||
ms-click="delSample(sample)">
|
||||
删除
|
||||
</a>
|
||||
</div>
|
||||
<div class="panel-body row" ms-visible="sample.visible">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label>样例输入</label>
|
||||
<textarea class="form-control" rows="5" ms-duplex="sample.input"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label>样例输出</label>
|
||||
<textarea class="form-control" rows="5" ms-duplex="sample.output"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12"><br>
|
||||
<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 + 1 }}</td>
|
||||
<td>{{ el.input }}</td>
|
||||
<td>{{ el.output }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<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="col-md-12">
|
||||
<input type="submit" class="btn btn-success btn-lg" value="发布题目" id="submitBtn">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script src="/static/js/app/admin/contest/editProblem.js"></script>
|
||||
Reference in New Issue
Block a user