<template>
  <div style="width: 100%;height: 100%;">
    <div style="margin-top: 10px;position: absolute; right: 50px;">
      <el-button size="small" type="primary">导出试题</el-button>
      <el-button size="small" type="primary" @click="goBack">返回</el-button>
    </div>
    <el-card style="width: 45%;margin-left: 50px;margin-top: 60px;display: inline-block;height: calc(100% - 100px);">
      <div slot="header">
        <span>理论试题列表</span>
        <el-button style="float: right; padding: 3px 0" type="text" @click="addTheoryQuestion">添加试题</el-button>
        <el-button style="float: right; padding: 3px 0;margin-right: 5px" type="text" @click="theoryReview">预览</el-button>
      </div>
      <el-table
        :data="theoryQuestionList"
        style="width: 100%"
      >
        <el-table-column
          prop="type"
          label="类型"
        >
          <template slot-scope="scope">
            <el-tag
              type="primary"
              disable-transitions
            >{{ QuestionTypeMap[scope.row.type] }}</el-tag>
          </template>
        </el-table-column>
        <el-table-column
          prop="topic"
          label="题目"
        />
        <el-table-column
          prop="score"
          label="分值"
        >
          <template slot-scope="scope">
            <span v-if="!scope.row.editScope" @click="editScope(scope.row)">{{ scope.row.score }}</span>
            <i v-if="!scope.row.editScope" class="el-icon-edit" @click="editScope(scope.row)" />
            <el-input v-if="scope.row.editScope" :ref="'input'+scope.row.id" v-model="scope.row.score" size="small" style="width: 50px;" @blur="editScopeBlur(scope.row)" />
          </template>
        </el-table-column>
        <el-table-column prop="operate" label="操作11">
          <template slot-scope="scope">
            <el-button type="warning" size="mini" @click="removeTheoryQuestion(scope)">移出</el-button>
          </template>
        </el-table-column>
      </el-table>
    </el-card>
    <el-card style="width: 45%;margin-left: calc(10% - 100px);margin-top: 60px;display: inline-block;height: calc(100% - 100px);">
      <div slot="header">
        <span>实操试题列表</span>
        <el-button style="float: right; padding: 3px 0" type="text" @click="addOperateQuestion">添加试题</el-button>
        <el-button style="float: right; padding: 3px 0;margin-right: 5px" type="text" @click="operateReview">预览</el-button>
      </div>
      <el-table
        :data="operateQuestionList"
        style="width: 100%"
      >
        <el-table-column
          prop="name"
          label="实操名称"
        />
        <el-table-column
          prop="creatorName"
          label="创建人"
        />
        <el-table-column prop="score" label="分值">
          <template slot-scope="scope">
            <el-input v-model="scope.row.score" size="small" />
          </template>
        </el-table-column>
        <el-table-column prop="operate" label="操作">
          <template slot-scope="scope">
            <el-button type="warning" size="mini" @click="removeOperateQuestion(scope)">移出</el-button>
          </template>
        </el-table-column>
      </el-table>
    </el-card>
    <theory-review ref="theoryReview" :theory-question-list="theoryQuestionList" />
    <theory-question ref="theoryQuestion" :theory-index-list="theoryIndexList" @addQuestion="addTheoryQuestionList" @removeQuestion="removeTheoryQuestion" />
    <operate-question ref="operateQuestion" :operate-index-list="operateIndexList" @addQuestion="addOperateQuestionList" @removeQuestion="removeOperateQuestion" />
  </div>
</template>

<script>
import TheoryReview from './theoryReview';
import TheoryQuestion from './theoryQuestion';
import OperateQuestion from './operateQuestion';
export default {
    name: 'GeneratPaper',
    components: {
        TheoryReview,
        TheoryQuestion,
        OperateQuestion
    },
    data() {
        return {
            QuestionTypeMap: {
                select: '选择题',
                judge: '判断题'
            },
            theoryQuestionList: [], // 理论试卷试题列表
            operateQuestionList: [], // 实操试卷试题列表
            theoryIndexList: [], // 理论试卷试题索引列表
            operateIndexList: []// 实操试卷试题索引列表
        };
    },
    methods: {
        removeOperateQuestion(row) {
            const index = this.operateIndexList.indexOf(row.id);
            this.operateIndexList.splice(index, 1);
            this.operateQuestionList.splice(index, 1);
        },
        removeTheoryQuestion(row) {
            const index = this.theoryIndexList.indexOf(row.id);
            this.theoryIndexList.splice(index, 1);
            this.theoryQuestionList.splice(index, 1);
        },
        addTheoryQuestionList(row) {
            this.theoryIndexList.push(row.id);
            this.theoryQuestionList.push(row);
        },
        addOperateQuestionList(row) {
            this.operateIndexList.push(row.id);
            this.operateQuestionList.push(row);
        },
        addTheoryQuestion() {
            this.$refs.theoryQuestion.doShow();
        },
        addOperateQuestion() {
            this.$refs.operateQuestion.doShow();
        },
        goBack() {
            this.$router.go(-1);
        },
        theoryReview() {
            this.$refs.theoryReview.doShow();
        },
        operateReview() {
        },
        editScope(row) {
            this.$set(row, 'editScope', true);
            this.$nextTick(() => {
                this.$refs['input' + row.id].focus();
            });
        },
        editScopeBlur(row) {
            this.$set(row, 'editScope', false);
        }
    }
};
</script>

<style scoped>

</style>
