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.
 
 
 
 
 
 
zhishifufei_php/public/pc/components/my/wrong/index.js

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
};
});