You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
198 lines
7.1 KiB
198 lines
7.1 KiB
define([
|
|
'require',
|
|
'api/topic',
|
|
'text!./index.html',
|
|
'css!./index.css'
|
|
], function (require, topicApi, html) {
|
|
return {
|
|
props: {
|
|
activeName: {
|
|
type: String,
|
|
default: ''
|
|
}
|
|
},
|
|
data: function () {
|
|
return {
|
|
page: 1,
|
|
limit: 16,
|
|
is_master: '',
|
|
total: 0,
|
|
questionList: [],
|
|
finished: false,
|
|
question: {},
|
|
idList: [],
|
|
visible: false,
|
|
tabName: '0',
|
|
};
|
|
},
|
|
computed: {
|
|
index: function () {
|
|
console.log(this.question);
|
|
if (!this.question.id) {
|
|
return -1;
|
|
}
|
|
return this.idList.indexOf(this.question.id);
|
|
}
|
|
},
|
|
watch: {
|
|
activeName: function (value) {
|
|
if (value === 'wrong') {
|
|
this.getQuestionList();
|
|
}
|
|
},
|
|
is_master: function () {
|
|
this.page = 1;
|
|
this.total = 0;
|
|
this.finished = false;
|
|
this.getQuestionList();
|
|
},
|
|
tabName: function (value) {
|
|
switch (value) {
|
|
case '0':
|
|
this.is_master = '';
|
|
break;
|
|
case '1':
|
|
this.is_master = 0;
|
|
break;
|
|
case '2':
|
|
this.is_master = 1;
|
|
break;
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
getQuestionList: function () {
|
|
var vm = this;
|
|
topicApi.userWrongBank({
|
|
page: this.page,
|
|
limit: this.limit,
|
|
is_master: this.is_master
|
|
}).then(function (res) {
|
|
var questionList = res.data.data;
|
|
questionList.forEach(function (question) {
|
|
switch (question.question_type) {
|
|
case 1:
|
|
question.questionType = '单选题';
|
|
break;
|
|
case 2:
|
|
question.questionType = '多选题';
|
|
break;
|
|
case 3:
|
|
question.questionType = '判断题';
|
|
break;
|
|
}
|
|
});
|
|
vm.questionList = questionList;
|
|
vm.total = res.data.count;
|
|
vm.finished = vm.limit > vm.questionList.length;
|
|
});
|
|
},
|
|
handleCurrentChange: function () {
|
|
this.getQuestionList();
|
|
},
|
|
lookQuestion: function (id) {
|
|
var vm = this;
|
|
this.nodeId = id;
|
|
vm.idList.push(id)
|
|
vm.getQuestion(id);
|
|
vm.getIdList(1);
|
|
vm.getIdList();
|
|
},
|
|
getQuestion: function (id) {
|
|
var vm = this;
|
|
topicApi.oneWrongBank({
|
|
id: id
|
|
}).then(function (res) {
|
|
var question = res.data;
|
|
var options = {};
|
|
question.option = JSON.parse(question.option);
|
|
if (Array.isArray(question.option)) {
|
|
question.option.forEach(function (option, index) {
|
|
options[String.fromCharCode(index + 65)] = option;
|
|
});
|
|
question.option = options;
|
|
}
|
|
switch (question.question_type) {
|
|
case 1:
|
|
question.questionType = '单选题';
|
|
break;
|
|
case 2:
|
|
question.questionType = '多选题';
|
|
break;
|
|
case 1:
|
|
question.questionType = '判断题';
|
|
break;
|
|
}
|
|
vm.question = question;
|
|
vm.visible = true;
|
|
});
|
|
},
|
|
getIdList: function (order) {
|
|
var vm = this;
|
|
topicApi.userWrongBankIdArr({
|
|
id: this.nodeId,
|
|
is_master: this.is_master,
|
|
order: order || 0
|
|
}).then(function (res) {
|
|
vm.idList = vm.idList.concat(res.data).sort(function (a, b) {
|
|
return b - a;
|
|
});
|
|
});
|
|
},
|
|
masterQuestion: function (question) {
|
|
var vm = this;
|
|
topicApi.submitWrongBank({
|
|
wrong_id: question.id,
|
|
questions_id: question.questions_id,
|
|
is_master: question.is_master ? 0 : 1
|
|
}).then(function (res) {
|
|
question.is_master = question.is_master ? 0 : 1;
|
|
if (!vm.visible && vm.tabName !== '0') {
|
|
if (vm.questionList.length === 1) {
|
|
if (vm.page === 1) {
|
|
vm.getQuestionList();
|
|
} else {
|
|
vm.page = vm.page - 1;
|
|
vm.getQuestionList();
|
|
}
|
|
} else {
|
|
vm.getQuestionList();
|
|
}
|
|
}
|
|
});
|
|
},
|
|
deleteQuestion: function () {
|
|
var vm = this;
|
|
topicApi.delWrongBank({
|
|
id: this.question.id
|
|
}).then(function (res) {
|
|
vm.$message.success('删除成功');
|
|
if (vm.idList.length === 1) {
|
|
vm.visible = false;
|
|
} else if (vm.index === vm.idList.length - 1) {
|
|
vm.getQuestion(vm.idList[vm.idList.length - 2]);
|
|
vm.idList.splice(vm.index, 1);
|
|
} else {
|
|
vm.getQuestion(vm.idList[vm.index + 1]);
|
|
vm.idList.splice(vm.index, 1);
|
|
}
|
|
});
|
|
},
|
|
changeQuestion: function (value) {
|
|
var id = this.idList[this.index + value];
|
|
this.getQuestion(id);
|
|
if (this.index === this.idList.length - 2 && value === 1) {
|
|
this.nodeId = this.idList[this.idList.length - 1];
|
|
this.getIdList(1);
|
|
} else if (this.index === 1 && value === -1) {
|
|
this.nodeId = this.idList[0];
|
|
this.getIdList();
|
|
}
|
|
},
|
|
dialogClose: function () {
|
|
this.getQuestionList();
|
|
}
|
|
},
|
|
template: html
|
|
};
|
|
}); |