<!--  -->
<template>
  <div class="Big-Book-Single" v-if="curQue">
    <div
      class="Big-Book-Single-content"
      style="margin-left: 20px; margin-top: 20px"
    >
      <div class="adult-book-input-item" v-if="type == 'single_chs'">
        <span class="adult-book-lable">题号：</span>
        <el-input
          class="adult-book-input"
          :autosize="{ minRows: 2 }"
          type="textarea"
          placeholder="请输入题号"
          v-model="curQue.topicNumber"
          @blur="onBlur(curQue, 'topicNumber')"
        ></el-input>
      </div>
      <div class="adult-book-input-item" v-else>
        <span class="adult-book-lable">标题：</span>
        <el-input
          class="adult-book-input"
          :autosize="{ minRows: 2 }"
          type="textarea"
          placeholder="请输入标题"
          v-model="curQue.title"
          @blur="onBlur(curQue, 'title')"
        ></el-input>
      </div>
      <div
        class="adult-book-input-item"
        v-if="type == 'single_chs' || type == 'checkbox_chs'"
      >
        <span class="adult-book-lable">录音：</span>
        <el-radio-group v-model="curQue.IsRecord">
          <el-radio :label="true">需要</el-radio>
          <el-radio :label="false">不需要</el-radio>
        </el-radio-group>
      </div>
      <div class="adult-book-input-item" v-if="curQue.IsRecord">
        <span class="adult-book-lable">录音控件：</span>
        <img src="../../../assets/adult/pro.png" alt="" />
      </div>
      <div class="adult-book-input-item">
        <span class="adult-book-lable">题目：</span>
        <el-input
          class="adult-book-input"
          :autosize="{ minRows: 2 }"
          type="textarea"
          placeholder="请输入题目"
          v-model="curQue.topic.con"
          @blur="curQue.topic.con = curQue.topic.con.trim()"
        ></el-input>
      </div>
      <div
        class="adult-book-input-item"
        v-if="type == 'single_chs' || type == 'checkbox_chs'"
      >
        <span class="adult-book-lable">题目图片：</span>
        <Upload
          :changeFillId="timuchangeImage"
          :datafileList="curQue.topic.img_list"
          :filleNumber="imgNumber"
          :uploadType="'image'"
        />
      </div>
      <div class="adult-book-input-item">
        <span class="adult-book-lable">题目音频：</span>
        <Upload
          :changeFillId="timuchangeMp3"
          :datafileList="curQue.topic.mp3_list"
          :filleNumber="mp3Number"
          :uploadType="'mp3'"
        />
      </div>
      <div
        class="Big-Book-main"
        v-for="(item, index) in curQue.option"
        :key="item + index"
        style="border-bottom: 1px #ccc solid; margin-bottom: 20px"
      >
        <SingleModule
          :curQueItem="item"
          :index="index"
          :changAnswer="changAnswer"
          :deleteOptionOne="deleteOptionOne"
          :type="curQue.type"
        />
      </div>
      <div class="addoption" @click="addOption">添加一个选项</div>
      <div class="Big-Book-divide">
        <el-divider content-position="center">功能设置</el-divider>
        <span style="margin: 0 10px">请选择每行数量</span>
        <el-select v-model="curQue.numberList.con" placeholder="请选择">
          <el-option
            v-for="(item, i) in curQue.numberList.arr"
            :key="i"
            :label="item.value"
            :value="item.id"
          >
          </el-option>
        </el-select>
      </div>
    </div>
  </div>
</template>

<script>
import Inputmodule from "../common/Inputmodule.vue";
import SingleModule from "../common/SingleModule.vue";
import Upload from "../common/Upload.vue";

export default {
  name: "Single",
  props: ["curQue", "fn_data", "changeCurQue", "type"],
  components: {
    Inputmodule,
    SingleModule,
    Upload,
  },
  data() {
    return {
      form: {
        stem: {
          con: "",
          pinyin: "",
          english: "",
          highlight: "",
          underline: "",
          img_url: [],
          mp3_url: [],
        },
      },
      imgNumber: 1,
      mp3Number: 1,
      data_structure: {
        type: "single_chs",
        name: "单选题",
        topicNumber: "",
        IsRecord: false,
        topic: {
          con: "",
          img_list: [],
          mp3_list: [],
        },
        option: [
          {
            number: "",
            con: "",
            img_list: [],
            mp3_list: [],
            isAnswer: "",
          },
          {
            number: "",
            con: "",
            img_list: [],
            mp3_list: [],
            isAnswer: "",
          },
        ],
        correct: [],
        numberList: {
          type: "number",
          name: "每行几个",
          con: "2",
          arr: [
            {
              id: 1,
              value: 1,
            },
            {
              id: 2,
              value: 2,
            },
            {
              id: 3,
              value: 3,
            },
            {
              id: 4,
              value: 4,
            },
          ],
        },
      },
      data_structure2: {
        type: "checkbox_chs",
        name: "多选题",
        title: "",
        IsRecord: false,
        topic: {
          con: "",
          img_list: [],
          mp3_list: [],
        },
        option: [
          {
            con: "",
            img_list: [],
            mp3_list: [],
            isAnswer: "",
            number: "",
          },
          {
            con: "",
            img_list: [],
            mp3_list: [],
            isAnswer: "",
            number: "",
          },
        ],
        correct: [],
        numberList: {
          type: "number",
          name: "每行几个",
          con: "2",
          arr: [
            {
              id: 1,
              value: 1,
            },
            {
              id: 2,
              value: 2,
            },
            {
              id: 3,
              value: 3,
            },
            {
              id: 4,
              value: 4,
            },
          ],
        },
      },
      data_structure3: {
        type: "listen_record_single_chs",
        name: "听录音选答案",
        title: "",
        topic: {
          con: "",
          mp3_list: [],
        },
        option: [
          {
            con: "",
            mp3_list: [],
            isAnswer: "",
            number: "",
          },
          {
            con: "",
            mp3_list: [],
            isAnswer: "",
            number: "",
          },
        ],
        correct: [],
        numberList: {
          type: "number",
          name: "每行几个",
          con: "2",
          arr: [
            {
              id: 1,
              value: 1,
            },
            {
              id: 2,
              value: 2,
            },
            {
              id: 3,
              value: 3,
            },
            {
              id: 4,
              value: 4,
            },
          ],
        },
      },
    };
  },
  computed: {},
  watch: {},
  //方法集合
  methods: {
    // 修改正确选项中得某一个为正确答案
    changAnswer(index) {
      let arr = [];
      if (this.curQue.type == "single_chs") {
        this.curQue.option.forEach((item, i) => {
          if (index == i) {
            this.curQue.correct = [];
            arr.push(i);
          } else {
            item.isAnswer = "";
          }
        });
        this.curQue.correct = arr;
      } else if (this.curQue.type == "checkbox_chs") {
        this.curQue.option.forEach((item, i) => {
          if (index == i && item.isAnswer != "") {
            this.curQue.correct.push(i);
          } else if (index == i && item.isAnswer == "") {
            this.curQue.correct.splice(i, 1);
          }
        });
      }
    },
    // 删除其中一个选项
    deleteOptionOne(index) {
      if (this.curQue.option.length <= 2) {
        this.$message.warning("至少要保留两个选项");
        return;
      }
      this.curQue.option.splice(index, 1);
    },
    //添加一个选项
    addOption() {
      let obj = JSON.parse(JSON.stringify(this.data_structure.option[0]));
      this.curQue.option.push(obj);
    },
    timuchangeMp3(fileList) {
      console.log(fileList);
      const articleImgList = JSON.parse(JSON.stringify(fileList));
      const articleImgRes = [];
      articleImgList.forEach((item) => {
        if (item.response) {
          const obj = {
            name: item.name,
            url: item.response.file_info_list[0].file_url,
            id: "[FID##" + item.response.file_info_list[0].file_id + "##FID]",
            media_duration: item.response.file_info_list[0].media_duration, //音频时长
          };
          articleImgRes.push(obj);
        }
      });
      this.curQue.topic.mp3_list = JSON.parse(JSON.stringify(articleImgRes));
    },
    timuchangeImage(fileList) {
      console.log(fileList);
      const articleImgList = JSON.parse(JSON.stringify(fileList));
      const articleImgRes = [];
      articleImgList.forEach((item) => {
        if (item.response) {
          const obj = {
            name: item.name,
            url: item.response.file_info_list[0].file_url,
            id: "[FID##" + item.response.file_info_list[0].file_id + "##FID]",
          };
          articleImgRes.push(obj);
        }
      });
      this.curQue.topic.img_list = JSON.parse(JSON.stringify(articleImgRes));
    },
  },
  //生命周期 - 创建完成（可以访问当前this实例）
  created() {
    if (!this.curQue) {
      if (this.type == "single_chs") {
        this.changeCurQue(this.data_structure);
      } else if (this.type == "checkbox_chs") {
        this.changeCurQue(this.data_structure2);
      } else if (this.type == "listen_record_single_chs") {
        this.changeCurQue(this.data_structure3);
      }
    }
  },
  //生命周期 - 挂载完成（可以访问DOM元素）
  mounted() {},
  beforeCreate() {}, //生命周期 - 创建之前
  beforeMount() {}, //生命周期 - 挂载之前
  beforeUpdate() {}, //生命周期 - 更新之前
  updated() {}, //生命周期 - 更新之后
  beforeDestroy() {}, //生命周期 - 销毁之前
  destroyed() {}, //生命周期 - 销毁完成
  activated() {}, //如果页面有keep-alive缓存功能，这个函数会触发
};
</script>
<style lang='scss' scope>
//@import url(); 引入公共css类
.Big-Book-Single {
  &-content {
    &.m {
      display: flex;
      justify-content: flex-start;
      align-items: flex-start;
    }

    .Big-Book-title {
      font-size: 16px;
      line-height: 40px;
      color: #000;
      margin-right: 15px;
    }
    .Big-Book-main {
      > div {
        margin-bottom: 10px;
        &.Big-Book-pinyin {
          display: flex;
          justify-content: flex-start;
          align-items: center;
        }
      }
    }
  }
  .addoption {
    width: 565px;
    height: 40px;
    left: 40px;
    top: 304px;
    background: #f3f3f3;
    border: 1px dashed rgba(0, 0, 0, 0.15);
    box-sizing: border-box;
    border-radius: 4px;
    text-align: center;
    line-height: 40px;
    cursor: pointer;
  }
}
</style>
<style lang="scss">
</style>