|  | @@ -73,48 +73,15 @@ import {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import StartQuestion from './components/StartQuestion.vue';
 | 
	
		
			
				|  |  |  import AnswerReport from './components/AnswerReport.vue';
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -import SelectPreview from '@/views/exercise_questions/preview/SelectPreview.vue';
 | 
	
		
			
				|  |  | -import JudgePreview from '@/views/exercise_questions/preview/JudgePreview.vue';
 | 
	
		
			
				|  |  | -import MatchingPreview from '@/views/exercise_questions/preview/MatchingPreview.vue';
 | 
	
		
			
				|  |  | -import ChinesePreview from '@/views/exercise_questions/preview/ChinesePreview.vue';
 | 
	
		
			
				|  |  | -import WritePreview from '../preview/WritePreview.vue';
 | 
	
		
			
				|  |  | -import FillPreview from '../preview/FillPreview.vue';
 | 
	
		
			
				|  |  | -import ReadAloudPreview from '../preview/ReadAloudPreview.vue';
 | 
	
		
			
				|  |  | -import DialoguePreview from '../preview/DialoguePreview.vue';
 | 
	
		
			
				|  |  | -import TalkPictruePreview from '../preview/TalkPictruePreview.vue';
 | 
	
		
			
				|  |  | -import ChooseTonePreview from '../preview/ChooseTonePreview.vue';
 | 
	
		
			
				|  |  | -import RepeatPreview from '../preview/RepeatPreview.vue';
 | 
	
		
			
				|  |  | -import ReadPreview from '../preview/ReadPreview.vue';
 | 
	
		
			
				|  |  | -import SortPreview from '../preview/SortPreview.vue';
 | 
	
		
			
				|  |  | -import ListenSelectPreview from '../preview/ListenSelectPreview.vue';
 | 
	
		
			
				|  |  | -import ListenFillPreview from '../preview/ListenFillPreview.vue';
 | 
	
		
			
				|  |  | -import ListenJudgePreview from '../preview/ListenJudgePreview.vue';
 | 
	
		
			
				|  |  | -import WordCardPreview from '../preview/WordCardPreview.vue';
 | 
	
		
			
				|  |  | +import PreviewQuestionTypeMixin from '../data/PreviewQuestionTypeMixin';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  |    name: 'AnswerPage',
 | 
	
		
			
				|  |  |    components: {
 | 
	
		
			
				|  |  | -    SelectPreview,
 | 
	
		
			
				|  |  | -    JudgePreview,
 | 
	
		
			
				|  |  | -    MatchingPreview,
 | 
	
		
			
				|  |  | -    ChinesePreview,
 | 
	
		
			
				|  |  | -    WritePreview,
 | 
	
		
			
				|  |  | -    FillPreview,
 | 
	
		
			
				|  |  | -    ReadAloudPreview,
 | 
	
		
			
				|  |  | -    DialoguePreview,
 | 
	
		
			
				|  |  | -    TalkPictruePreview,
 | 
	
		
			
				|  |  | -    ChooseTonePreview,
 | 
	
		
			
				|  |  | -    RepeatPreview,
 | 
	
		
			
				|  |  | -    ReadPreview,
 | 
	
		
			
				|  |  | -    SortPreview,
 | 
	
		
			
				|  |  | -    ListenSelectPreview,
 | 
	
		
			
				|  |  | -    ListenFillPreview,
 | 
	
		
			
				|  |  | -    ListenJudgePreview,
 | 
	
		
			
				|  |  | -    WordCardPreview,
 | 
	
		
			
				|  |  |      StartQuestion,
 | 
	
		
			
				|  |  |      AnswerReport,
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  | +  mixins: [PreviewQuestionTypeMixin],
 | 
	
		
			
				|  |  |    data() {
 | 
	
		
			
				|  |  |      const { id, share_record_id } = this.$route.query;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -138,27 +105,7 @@ export default {
 | 
	
		
			
				|  |  |        answer_time_limit_minute: 30, // 答题时间限制
 | 
	
		
			
				|  |  |        time: 1800,
 | 
	
		
			
				|  |  |        isSubmit: false,
 | 
	
		
			
				|  |  | -      answerComponents: {
 | 
	
		
			
				|  |  | -        select: SelectPreview,
 | 
	
		
			
				|  |  | -        judge: JudgePreview,
 | 
	
		
			
				|  |  | -        matching: MatchingPreview,
 | 
	
		
			
				|  |  | -        chinese: ChinesePreview,
 | 
	
		
			
				|  |  | -        write: WritePreview,
 | 
	
		
			
				|  |  | -        fill: FillPreview,
 | 
	
		
			
				|  |  | -        read_aloud: ReadAloudPreview,
 | 
	
		
			
				|  |  | -        dialogue: DialoguePreview,
 | 
	
		
			
				|  |  | -        talk_picture: TalkPictruePreview,
 | 
	
		
			
				|  |  | -        choose_tone: ChooseTonePreview,
 | 
	
		
			
				|  |  | -        repeat: RepeatPreview,
 | 
	
		
			
				|  |  | -        read: ReadPreview,
 | 
	
		
			
				|  |  | -        sort: SortPreview,
 | 
	
		
			
				|  |  | -        listen_select: ListenSelectPreview,
 | 
	
		
			
				|  |  | -        listen_fill: ListenFillPreview,
 | 
	
		
			
				|  |  | -        listen_judge: ListenJudgePreview,
 | 
	
		
			
				|  |  | -        word_card: WordCardPreview,
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  |        curQuestionPage: '', // 当前问题页面
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |        isAnnotations: false, // 是否显示批注
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |    },
 | 
	
	
		
			
				|  | @@ -243,7 +190,7 @@ export default {
 | 
	
		
			
				|  |  |            this.curQuestionPage =
 | 
	
		
			
				|  |  |              this.questionList.length === 0 || this.curQuestionIndex < 0
 | 
	
		
			
				|  |  |                ? ''
 | 
	
		
			
				|  |  | -              : this.answerComponents[this.questionList[this.curQuestionIndex].type];
 | 
	
		
			
				|  |  | +              : this.previewComponents[this.questionList[this.curQuestionIndex].type];
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  |          .catch(() => {});
 | 
	
		
			
				|  |  |      },
 |