[前端]修复bug,更正了不恰当的foreach循环,(js里for(var key in array)不仅遍历了数组元素,还将遍历数组其他的属性以及成员方法),修复了显示编辑区函数对选中小组错误的清除方法.(原来的做法将导致某些情况下旧的小组无法移除编辑区域. 增添了切换编辑比赛的提示,防止用户丢失为保存的信息. 添加问题列表对可见比赛的筛选[CI SKIP]
This commit is contained in:
@@ -94,7 +94,7 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "datetimePicker",
|
|||||||
vm.editChoseGroupList= [];
|
vm.editChoseGroupList= [];
|
||||||
vm.editingProblemContestIndex= 0;
|
vm.editingProblemContestIndex= 0;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
var vm = avalon.define({
|
var vm = avalon.define({
|
||||||
$id: "contestList",
|
$id: "contestList",
|
||||||
contestList: [],
|
contestList: [],
|
||||||
@@ -102,6 +102,7 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "datetimePicker",
|
|||||||
nextPage: 0,
|
nextPage: 0,
|
||||||
page: 1,
|
page: 1,
|
||||||
totalPage: 1,
|
totalPage: 1,
|
||||||
|
showVisibleOnly: false,
|
||||||
group: "-1",
|
group: "-1",
|
||||||
groupList: [],
|
groupList: [],
|
||||||
choseGroupList: [],
|
choseGroupList: [],
|
||||||
@@ -143,6 +144,8 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "datetimePicker",
|
|||||||
getPageData(page_index);
|
getPageData(page_index);
|
||||||
},
|
},
|
||||||
showEditContestArea: function (contestId) {
|
showEditContestArea: function (contestId) {
|
||||||
|
if (vm.editingContestId && !confirm("如果继续将丢失未保存的信息,是否继续?"))
|
||||||
|
return;
|
||||||
if (contestId == vm.editingContestId)
|
if (contestId == vm.editingContestId)
|
||||||
vm.editingContestId = 0;
|
vm.editingContestId = 0;
|
||||||
else {
|
else {
|
||||||
@@ -155,12 +158,8 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "datetimePicker",
|
|||||||
vm.editVisible = vm.contestList[contestId-1].visible;
|
vm.editVisible = vm.contestList[contestId-1].visible;
|
||||||
if (vm.contestList[contestId-1].contest_type == 0) { //contest type == 0, contest in group
|
if (vm.contestList[contestId-1].contest_type == 0) { //contest type == 0, contest in group
|
||||||
//Clear the choseGroupList
|
//Clear the choseGroupList
|
||||||
var stack = [], sp;
|
while (vm.choseGroupList.length) {
|
||||||
for (sp = 0; sp < vm.choseGroupList.length; sp++){
|
vm.removeGroup(0);
|
||||||
stack. push(vm.choseGroupList[sp].index);
|
|
||||||
}
|
|
||||||
while (sp--){
|
|
||||||
vm.removeGroup(stack[sp]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < vm.contestList[contestId-1].groups.length; i++){
|
for (var i = 0; i < vm.contestList[contestId-1].groups.length; i++){
|
||||||
@@ -219,8 +218,8 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "datetimePicker",
|
|||||||
if (vm.groupList[vm.group].id == 0){
|
if (vm.groupList[vm.group].id == 0){
|
||||||
vm.passwordUsable = true;
|
vm.passwordUsable = true;
|
||||||
vm.choseGroupList = [];
|
vm.choseGroupList = [];
|
||||||
for (var key in vm.groupList){
|
for (var i = 0; i < vm.groupList.length; i++) {
|
||||||
vm.groupList[key].chose = true;
|
vm.groupList[i].chose = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
vm.groupList[vm.group]. chose = true;
|
vm.groupList[vm.group]. chose = true;
|
||||||
@@ -229,10 +228,11 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "datetimePicker",
|
|||||||
vm.group = -1;
|
vm.group = -1;
|
||||||
},
|
},
|
||||||
removeGroup: function(groupIndex){
|
removeGroup: function(groupIndex){
|
||||||
|
console.log(groupIndex);
|
||||||
if (vm.groupList[vm.choseGroupList[groupIndex].index].id == 0){
|
if (vm.groupList[vm.choseGroupList[groupIndex].index].id == 0){
|
||||||
vm.passwordUsable = false;
|
vm.passwordUsable = false;
|
||||||
for (key in vm.groupList){
|
for (var i = 0; i < vm.groupList.length; i++) {
|
||||||
vm.groupList[key].chose = false;
|
vm.groupList[i].chose = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
vm.groupList[vm.choseGroupList[groupIndex].index].chose = false;
|
vm.groupList[vm.choseGroupList[groupIndex].index].chose = false;
|
||||||
@@ -250,6 +250,10 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "datetimePicker",
|
|||||||
return "否";
|
return "否";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
vm.$watch("showVisibleOnly", function() {
|
||||||
|
getPageData(1);
|
||||||
|
})
|
||||||
|
}
|
||||||
getPageData(1);
|
getPageData(1);
|
||||||
|
|
||||||
//init time picker
|
//init time picker
|
||||||
@@ -268,6 +272,8 @@ require(["jquery", "avalon", "csrfToken", "bsAlert", "editor", "datetimePicker",
|
|||||||
|
|
||||||
function getPageData(page) {
|
function getPageData(page) {
|
||||||
var url = "/api/admin/contest/?paging=true&page=" + page + "&page_size=10";
|
var url = "/api/admin/contest/?paging=true&page=" + page + "&page_size=10";
|
||||||
|
if (vm.showVisibleOnly)
|
||||||
|
url += "&visible=true"
|
||||||
if (vm.keyword != "")
|
if (vm.keyword != "")
|
||||||
url += "&keyword=" + vm.keyword;
|
url += "&keyword=" + vm.keyword;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
|||||||
@@ -34,6 +34,9 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>仅显示可见 <input ms-duplex-checked="showVisibleOnly" type="checkbox"/></label>
|
||||||
|
</div>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
页数:{{ page }}/{{ totalPage }}
|
页数:{{ page }}/{{ totalPage }}
|
||||||
<button ms-attr-class="getBtnClass('pre')" ms-click="getPrevious">上一页</button>
|
<button ms-attr-class="getBtnClass('pre')" ms-click="getPrevious">上一页</button>
|
||||||
|
|||||||
Reference in New Issue
Block a user