|
|
@@ -0,0 +1,231 @@
|
|
|
+<template>
|
|
|
+ <div class="answer-analysis-list-wrapper">
|
|
|
+ <el-divider content-position="left">参考答案与解析</el-divider>
|
|
|
+ <div v-for="(item, i) in answerList" :key="`answer-${i}`" class="answer-list">
|
|
|
+ <div class="answer">
|
|
|
+ <strong>
|
|
|
+ 参考答案 {{ i + 1 }}
|
|
|
+ <i class="el-icon-delete answer-delete" @click="deleteAnswerAnalysis(i, 'answer')"></i>
|
|
|
+ </strong>
|
|
|
+ <RichText
|
|
|
+ ref="richText"
|
|
|
+ v-model="item.answer_rich_text"
|
|
|
+ toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
|
|
|
+ :font-size="unifiedAttrib?.font_size"
|
|
|
+ :font-family="unifiedAttrib?.font"
|
|
|
+ />
|
|
|
+ <UploadFile
|
|
|
+ label-text="音频"
|
|
|
+ type="audio"
|
|
|
+ :show-divider="false"
|
|
|
+ :file-list="item.answer_audio_list"
|
|
|
+ :file-id-list="item.answer_audio_id_list"
|
|
|
+ :accept-file-type="'.mp3,.wav,.acc,.wma'"
|
|
|
+ :index="i"
|
|
|
+ :indexs="0"
|
|
|
+ @updateFileList="updateAnswerFileList"
|
|
|
+ />
|
|
|
+ <UploadFile
|
|
|
+ label-text="图片"
|
|
|
+ type="picture"
|
|
|
+ :show-divider="false"
|
|
|
+ :file-list="item.answer_image_list"
|
|
|
+ :file-id-list="item.answer_image_id_list"
|
|
|
+ :accept-file-type="'.jpg,.png,.jpeg'"
|
|
|
+ :index="i"
|
|
|
+ :indexs="1"
|
|
|
+ @updateFileList="updateAnswerFileList"
|
|
|
+ />
|
|
|
+ <UploadFile
|
|
|
+ label-text="视频"
|
|
|
+ type="video"
|
|
|
+ :show-divider="false"
|
|
|
+ :file-list="item.answer_video_list"
|
|
|
+ :file-id-list="item.answer_video_id_list"
|
|
|
+ :accept-file-type="'.mp4'"
|
|
|
+ :index="i"
|
|
|
+ :indexs="2"
|
|
|
+ @updateFileList="updateAnswerFileList"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-for="(item, j) in analysisList" :key="`analysis-${j}`" class="analysis-list">
|
|
|
+ <div class="analysis">
|
|
|
+ <strong>
|
|
|
+ 解析 {{ j + 1 }}
|
|
|
+ <i class="el-icon-delete analysis-delete" @click="deleteAnswerAnalysis(j, 'analysis')"></i>
|
|
|
+ </strong>
|
|
|
+ <RichText
|
|
|
+ ref="richText"
|
|
|
+ v-model="item.analysis_rich_text"
|
|
|
+ toolbar="fontselect fontsizeselect forecolor backcolor | underline | bold italic strikethrough alignleft aligncenter alignright"
|
|
|
+ :font-size="unifiedAttrib?.font_size"
|
|
|
+ :font-family="unifiedAttrib?.font"
|
|
|
+ />
|
|
|
+ <UploadFile
|
|
|
+ label-text="音频"
|
|
|
+ type="audio"
|
|
|
+ :show-divider="false"
|
|
|
+ :file-list="item.analysis_audio_list"
|
|
|
+ :file-id-list="item.analysis_audio_id_list"
|
|
|
+ :accept-file-type="'.mp3,.wav,.acc,.wma'"
|
|
|
+ :index="j"
|
|
|
+ :indexs="3"
|
|
|
+ @updateFileList="updateAnalysisFileList"
|
|
|
+ />
|
|
|
+ <UploadFile
|
|
|
+ label-text="图片"
|
|
|
+ type="picture"
|
|
|
+ :show-divider="false"
|
|
|
+ :file-list="item.analysis_image_list"
|
|
|
+ :file-id-list="item.analysis_image_id_list"
|
|
|
+ :accept-file-type="'.jpg,.png,.jpeg'"
|
|
|
+ :index="j"
|
|
|
+ :indexs="4"
|
|
|
+ @updateFileList="updateAnalysisFileList"
|
|
|
+ />
|
|
|
+ <UploadFile
|
|
|
+ label-text="视频"
|
|
|
+ type="video"
|
|
|
+ :show-divider="false"
|
|
|
+ :file-list="item.analysis_video_list"
|
|
|
+ :file-id-list="item.analysis_video_id_list"
|
|
|
+ :accept-file-type="'.mp4'"
|
|
|
+ :index="j"
|
|
|
+ :indexs="5"
|
|
|
+ @updateFileList="updateAnalysisFileList"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import UploadFile from '@/views/book/courseware/create/components/base/common/UploadFile.vue';
|
|
|
+import RichText from '@/components/RichText.vue';
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: 'AnswerAnalysisList',
|
|
|
+ components: {
|
|
|
+ UploadFile,
|
|
|
+ RichText,
|
|
|
+ },
|
|
|
+ props: {
|
|
|
+ answerList: {
|
|
|
+ type: Array,
|
|
|
+ required: true,
|
|
|
+ },
|
|
|
+ analysisList: {
|
|
|
+ type: Array,
|
|
|
+ required: true,
|
|
|
+ },
|
|
|
+ unifiedAttrib: {
|
|
|
+ type: Object,
|
|
|
+ required: true,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {};
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ updateAnswerFileList({ file_list, file_id_list }, index, indexs) {
|
|
|
+ this.$emit('updateAnswerAnalysisFileList', {
|
|
|
+ file_list,
|
|
|
+ file_id_list,
|
|
|
+ index,
|
|
|
+ indexs,
|
|
|
+ type: 'answer',
|
|
|
+ });
|
|
|
+ },
|
|
|
+ updateAnalysisFileList({ file_list, file_id_list }, index, indexs) {
|
|
|
+ this.$emit('updateAnswerAnalysisFileList', {
|
|
|
+ file_list,
|
|
|
+ file_id_list,
|
|
|
+ index,
|
|
|
+ indexs,
|
|
|
+ type: 'analysis',
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 删除答案或解析
|
|
|
+ * @param {number} index 索引
|
|
|
+ * @param {'answer'|'analysis'} type 类型
|
|
|
+ */
|
|
|
+ deleteAnswerAnalysis(index, type) {
|
|
|
+ this.$confirm(`您确定删除该${type === 'answer' ? '答案' : '解析'}吗?`)
|
|
|
+ .then(() => {
|
|
|
+ this.$emit('deleteAnswerAnalysis', { index, type });
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.answer-list {
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+ .answer {
|
|
|
+ margin-bottom: 16px;
|
|
|
+
|
|
|
+ strong {
|
|
|
+ display: block;
|
|
|
+ margin-bottom: 8px;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #000;
|
|
|
+
|
|
|
+ .answer-delete {
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .rich-wrapper {
|
|
|
+ margin-bottom: 8px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .upload-file {
|
|
|
+ margin-bottom: 8px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ & + .answer-list {
|
|
|
+ padding-top: 16px;
|
|
|
+ border-top: 1px solid #eaeaea;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.analysis-list {
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+ .analysis {
|
|
|
+ margin-bottom: 16px;
|
|
|
+
|
|
|
+ strong {
|
|
|
+ display: block;
|
|
|
+ margin-bottom: 8px;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #000;
|
|
|
+
|
|
|
+ .analysis-delete {
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .rich-wrapper {
|
|
|
+ margin-bottom: 8px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .upload-file {
|
|
|
+ margin-bottom: 8px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ & + .analysis-list {
|
|
|
+ padding-top: 16px;
|
|
|
+ border-top: 1px solid #eaeaea;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|