Blame view

src/views/basic/ask/components/interact.vue 2.78 KB
d01c5799   梁保满   随堂问 报表开发
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
  <template>
    <el-table :data="resultData" border style="width: 100%">
      <el-table-column prop="studentCode" label="学号" align="center"></el-table-column>
      <el-table-column prop="studentName" label="姓名" align="center"></el-table-column>
      <template v-if="types != 3">
        <el-table-column prop="rushAnswerTimes" label="抢答成功次数" sortable align="center"></el-table-column>
        <el-table-column prop="rushAnswerCorrectTimes" label="答对次数" sortable align="center"></el-table-column>
        <el-table-column prop="checkAnswerTimes" label="抽答次数" sortable align="center"></el-table-column>
        <el-table-column prop="checkAnswerCorrectTimes" label="抽答答对次数" sortable align="center"></el-table-column>
        <el-table-column prop="interactionsNum" label="参与得分" sortable align="center"></el-table-column>
        <el-table-column prop="interactionsCorrectNum" label="对错得分" sortable align="center"></el-table-column>
      </template>
      <template v-else>
        <el-table-column v-for="(item, index) in phaseInter" :key="index" :label="item" align="center">
          <el-table-column align="center" v-if="index == 0" label="参与分" sortable :prop="'interactionsNum' + item">
          </el-table-column>
          <el-table-column v-else align="center" label="互动数" :prop="'interactionsNum' + item">
          </el-table-column>
          <el-table-column v-if="index == 0" align="center" label="对错分" sortable :prop="'interactionsCorrectNum' + item">
          </el-table-column>
          <el-table-column v-else align="center" label="参与数" :prop="'interactionsCorrectNum' + item">
          </el-table-column>
        </el-table-column>
      </template>
    </el-table>
  </template>
  <script>
  export default {
    props: {
      tableData: Array,
      types: Number,
    },
    data() {
      return {
        phaseInter: [], //互动补充数据
      }
    },
    computed: {
      resultData: function () {
        let resultData = []
        if (this.tableData.length) {
          if (this.types == "3") {
            let subjectName = [];
            resultData = data?.list.map((item) => {
              let params = {};
              item.dataList.map((items, index) => {
                if (!subjectName.includes(items.subjectName)) {
                  subjectName.push(items.subjectName);
                }
                params["interactionsNum" + items.subjectName] =
                  items.interactionsNum;
                params["interactionsCorrectNum" + items.subjectName] =
                  items.interactionsCorrectNum;
              });
              return {
                ...item,
                ...params,
              };
            });
            this.phaseInter = [...subjectName];
          }
        } else {
          resultData = []
          this.optionsList = []
        }
        return resultData
      }
    },
  };
  </script>