rt-sim-training-client/src/views/competitionManage/bankList/question-update-page.vue

118 lines
3.0 KiB
Vue
Raw Normal View History

2020-05-26 15:59:11 +08:00
<template>
<div class="page">
<div class="page__container">
<el-card class="page__container-body">
2020-05-27 14:13:47 +08:00
<question-form ref="info" :option="formModel" :remove="true" :update="true" @modify="doModify" />
2020-05-26 15:59:11 +08:00
</el-card>
</div>
<div class="page__container-footer">
2020-05-27 14:13:47 +08:00
<el-button type="primary" :is-create="true" @click="update"> </el-button>
2020-05-26 15:59:11 +08:00
<el-button @click="back"> </el-button>
</div>
2020-05-27 14:13:47 +08:00
<dialog-modify-rich ref="rich" />
2020-05-26 15:59:11 +08:00
</div>
</template>
<script>
2020-05-27 14:13:47 +08:00
import QuestionForm from './question-form.vue';
2020-05-26 15:59:11 +08:00
import DialogModifyRich from './dialog-modify-rich';
2020-05-27 14:13:47 +08:00
import { getQuestionInfo, updateOption } from '@/api/questionBank.js';
2020-05-26 15:59:11 +08:00
export default {
components: {
2020-05-27 14:13:47 +08:00
QuestionForm,
2020-05-26 15:59:11 +08:00
DialogModifyRich
},
data() {
return {
formModel: {
id: '',
topic: '',
2020-05-27 14:13:47 +08:00
type: 'select',
answer: 0,
2020-05-27 14:13:47 +08:00
optionList: []
2020-05-26 15:59:11 +08:00
},
optionList: []
};
},
computed: {
questionId() {
return this.$route.params.questionId;
}
},
watch: {
'$router': function() {
this.loadInitData();
}
},
created() {
this.loadInitData();
},
methods: {
loadInitData() {
if (this.$route.query.draft) {
this.formModel = this.$store.state.race.preTheoryData[this.questionId];
this.formModel.answer = this.formModel.optionList.findIndex(ele => ele.correct);
} else {
getQuestionInfo(this.questionId).then(resp => {
this.formModel = resp.data;
this.formModel.answer = this.formModel.optionList.findIndex(ele => ele.correct);
});
}
2020-05-26 15:59:11 +08:00
},
doBack() {
this.$router.go(-1);
},
doModify(node) {
this.$refs.rich.doShow(node);
},
2020-05-27 14:13:47 +08:00
update() {
this.$refs.info.validate().then(valid => {
if (this.$route.query.draft && valid) {
this.$store.state.race.preTheoryData[this.questionId] = this.formModel;
this.doBack();
} else if (valid) {
2020-05-27 14:13:47 +08:00
updateOption(this.formModel).then(resp => {
this.doBack();
}).catch(error => {
this.$message.error(`创建试题失败: ${error.message}`);
});
}
}).catch(error => { this.$message.warning(error.message); });
2020-05-26 15:59:11 +08:00
},
back() {
this.$router.go(-1);
}
}
};
</script>
<style lang="scss" scoped>
.page {
width: 100%;
&__container {
width: 55%;
margin: auto;
&-header {
margin-bottom: 10px;
.step-group {
margin: 10px 0;
.box {
display: flex;
justify-content: flex-end;
}
}
}
&-body {
padding: 40px;
}
&-footer {
margin-top: 20px;
display: flex;
justify-content: center;
}
}
}
</style>