<template>
  <el-dialog
    custom-class="question-preview-dialog edit-paper"
    :visible.sync="modalIsShow"
    title="试题预览"
    width="1000px"
    top="20px"
    :close-on-click-modal="false"
    :close-on-press-escape="false"
    append-to-body
  >
    <div v-if="modalIsShow" class="edit-part">
      <div class="edit-cont">
        <div class="edit-cont-title">
          <rich-text :text-json="question.quesBody"></rich-text>
        </div>
        <div class="edit-cont-body">
          <div
            v-for="(quesOption, optionIndex) in question.quesOptions"
            :key="optionIndex"
            class="paper-option"
          >
            <span>{{ optionIndex | optionOrderWordFilter }}. </span>
            <rich-text :text-json="quesOption.optionBody"></rich-text>
          </div>
          <div v-if="!isNested(question.questionType)" class="paper-answer">
            <span>答案:</span>
            <question-answer :data="question"></question-answer>
          </div>
        </div>
        <div
          v-if="!isNested(question.questionType)"
          class="edit-cont-props"
          style="margin-top: 10px"
        >
          <el-tag
            v-for="(content, propIndex) in question.quesProperties"
            :key="propIndex"
            type="primary"
            effect="dark"
            style="margin-right: 5px; margin-bottom: 5px"
          >
            <!-- {{ content.courseProperty && content.courseProperty.name }}
            <span style="margin: 0 3px">/</span> -->
            {{ content.firstProperty && content.firstProperty.name }}
            <span
              v-if="content.secondProperty && content.secondProperty.name"
              style="margin: 0 3px"
              >/</span
            >
            {{ content.secondProperty && content.secondProperty.name }}
          </el-tag>
        </div>
        <div
          v-if="isNested(question.questionType)"
          class="edit-paper-question-subs"
        >
          <div
            v-for="(subQuestion, subIndex) in question.subQuestions"
            :key="subIndex"
            class="edit-part"
          >
            <div class="edit-cont">
              <div class="edit-cont-title">
                <span>{{ subIndex + 1 }}. </span>
                <rich-text :text-json="subQuestion.quesBody"></rich-text>
              </div>
              <div class="edit-cont-body">
                <template v-if="!isMatchingQuestion(question.questionType)">
                  <div
                    v-for="(
                      subQuesOption, subOptIndex
                    ) in subQuestion.quesOptions"
                    :key="subOptIndex"
                    class="paper-option"
                  >
                    <span>{{ subOptIndex | optionOrderWordFilter }}. </span>
                    <rich-text
                      :text-json="subQuesOption.optionBody"
                    ></rich-text>
                  </div>
                </template>
                <div class="paper-answer">
                  <span>答案:</span>
                  <question-answer :data="subQuestion"></question-answer>
                </div>
              </div>
              <div class="edit-cont-props" style="margin-top: 10px">
                <el-tag
                  v-for="(content, propIndex) in subQuestion.quesProperties"
                  :key="propIndex"
                  type="primary"
                  effect="dark"
                  style="margin-right: 5px; margin-bottom: 5px"
                >
                  <!-- {{ content.courseProperty && content.courseProperty.name }}
                  <span style="margin: 0 3px">/</span> -->
                  {{ content.firstProperty && content.firstProperty.name }}
                  <span
                    v-if="content.secondProperty && content.secondProperty.name"
                    style="margin: 0 3px"
                    >/</span
                  >
                  {{ content.secondProperty && content.secondProperty.name }}
                </el-tag>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div slot="footer">
      <el-button @click="cancel">关闭</el-button>
    </div>
  </el-dialog>
</template>

<script>
import QuestionAnswer from "./QuestionAnswer.vue";

export default {
  name: "QuestionPreviewDialog",
  components: { QuestionAnswer },
  props: {
    question: {
      type: Object,
      default() {
        return {};
      },
    },
  },
  data() {
    return {
      modalIsShow: false,
    };
  },
  methods: {
    cancel() {
      this.modalIsShow = false;
    },
    open() {
      this.modalIsShow = true;
    },
    isNested(questionType) {
      const nestedQuestion = [
        "PARAGRAPH_MATCHING",
        "BANKED_CLOZE",
        "CLOZE",
        "READING_COMPREHENSION",
        "LISTENING_QUESTION",
      ];

      return nestedQuestion.includes(questionType);
    },
    isMatchingQuestion(questionType) {
      const typeQuestion = ["PARAGRAPH_MATCHING", "BANKED_CLOZE"];
      return typeQuestion.includes(questionType);
    },
  },
};
</script>